chenchaod vor 2 Monaten
Ursprung
Commit
914f3c317c
15 geänderte Dateien mit 440 neuen und 10 gelöschten Zeilen
  1. 16
    1
      gly-base-core/build.gradle
  2. 3
    3
      gly-base-core/src/main/java/cn/com/taiji/core/entity/issue/IssueMultipleEquity.java
  3. 3
    3
      gly-base-core/src/main/java/cn/com/taiji/core/entity/issue/IssueSingleEquity.java
  4. 2
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/AtsServiceType.java
  5. 85
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/model/CallbackModel.java
  6. 13
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/model/PayInfoModelQd.java
  7. 43
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/notice/AtsChannelNoticeRequest.java
  8. 22
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/notice/AtsChannelNoticeResponse.java
  9. 50
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/notice/NoticeServiceCmd.java
  10. 24
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/GetKeyRequest.java
  11. 27
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/GetKeyResponse.java
  12. 47
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/IfmwServiceSystem.java
  13. 51
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/IfmwServiceType.java
  14. 51
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/MysqlServiceCmd.java
  15. 3
    3
      gly-base-core/src/test/java/common/TestCodeManager.java

+ 16
- 1
gly-base-core/build.gradle Datei anzeigen

@@ -116,7 +116,15 @@ task atsProtocol(type:Jar){
into('cn/com/taiji/core/model/comm/protocol/ats')
dependsOn(classes)
}

task ifmwProtocol(type:Jar){
archiveBaseName='tj'
archiveAppendix='ifmw-protocol'
archiveVersion='1.0.0-SNAPSHOT'
archiveExtension='jar'
from("build/classes/java/main/cn/com/taiji/core/model/comm/protocol/ifmw")
into('cn/com/taiji/core/model/comm/protocol/ifmw')
dependsOn(classes)
}
task inssProtocol(type:Jar){
archiveBaseName='tj'
archiveAppendix='inss-protocol'
@@ -234,6 +242,13 @@ publishing {
artifact atsProtocol
artifact packageCoreSrc
}
myPublicationIfmwProtocol(MavenPublication) {
groupId ="${groupname}"
artifactId ='ifmw-protocol'
version ='1.0.0-SNAPSHOT'
artifact ifmwProtocol
artifact packageCoreSrc
}
myPublicationInssProtocol(MavenPublication) {
groupId ="${groupname}"
artifactId ='inss-protocol'

+ 3
- 3
gly-base-core/src/main/java/cn/com/taiji/core/entity/issue/IssueMultipleEquity.java Datei anzeigen

@@ -45,7 +45,7 @@ public class IssueMultipleEquity extends StringPropertyUUIDEntity {
@Column(name = "MEMBER_POINTS")
private Integer memberPoints;//会员积分
@Column(name = "REFUND_ON_ETC_CANCEL")
private Integer refundOnEtcCancel;//ETC设备强绑定权益注销时是否退费(0---是;1---否)
private Integer refundOnEtcCancel;//ETC设备强绑定权益注销时是否退费(1---是;0---否)
@Column(name = "VALIDITY_FORMAT")
private Integer validityFormat;//有效期格式 1日 2月 3季 4年
@Size(max = 1024)
@@ -64,9 +64,9 @@ public class IssueMultipleEquity extends StringPropertyUUIDEntity {
@Column(name = "EQUITY_PROVIDER")
private String equityProvider;//权益提供方
@Column(name = "TRANSFERABLE")
private Integer transferable;//是否支持权益产品过户(0---是;1---否)
private Integer transferable;//是否支持权益产品过户(1---是;0---否)
@Column(name = "DISCOUNT_COUPON_USABLE")
private Integer discountCouponUsable;//是否可使用积分商城所兑换的折扣券(0---是;1---否)
private Integer discountCouponUsable;//是否可使用积分商城所兑换的折扣券(1---是;0---否)
@Column(name = "USAGE_VALIDITY")
private Integer usageValidity;//使用有效期
@NotNull

+ 3
- 3
gly-base-core/src/main/java/cn/com/taiji/core/entity/issue/IssueSingleEquity.java Datei anzeigen

@@ -48,7 +48,7 @@ public class IssueSingleEquity extends StringPropertyUUIDEntity {
@Column(name = "MEMBER_POINTS")
private Integer memberPoints;//会员积分
@Column(name = "REFUND_ON_ETC_CANCEL")
private Integer refundOnEtcCancel;//ETC设备强绑定权益注销时是否退费(0---是;1---否)
private Integer refundOnEtcCancel;//ETC设备强绑定权益注销时是否退费(1---是;0---否)
@Column(name = "VALIDITY_FORMAT")
private Integer validityFormat;//有效期格式 1日 2月 3季 4年
@Size(max = 1024)
@@ -67,9 +67,9 @@ public class IssueSingleEquity extends StringPropertyUUIDEntity {
@Column(name = "EQUITY_PROVIDER")
private String equityProvider;//权益提供方
@Column(name = "TRANSFERABLE")
private Integer transferable;//是否支持权益产品过户(0---是;1---否)
private Integer transferable;//是否支持权益产品过户(1---是;0---否)
@Column(name = "DISCOUNT_COUPON_USABLE")
private Integer discountCouponUsable;//是否可使用积分商城所兑换的折扣券(0---是;1---否)
private Integer discountCouponUsable;//是否可使用积分商城所兑换的折扣券(1---是;0---否)
@Column(name = "USAGE_VALIDITY")
private Integer usageValidity;//使用有效期
@NotNull

+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/AtsServiceType.java Datei anzeigen

@@ -5,6 +5,7 @@ import cn.com.taiji.core.model.comm.protocol.SignServiceCommand;
import cn.com.taiji.core.model.comm.protocol.SignServiceSystem;
import cn.com.taiji.core.model.comm.protocol.SignServiceType;
import cn.com.taiji.core.model.comm.protocol.ats.anXin.AnXinServiceCmd;
import cn.com.taiji.core.model.comm.protocol.ats.notice.NoticeServiceCmd;
import cn.com.taiji.core.model.comm.protocol.ats.jpush.JpushServiceCmd;
import cn.com.taiji.core.model.comm.protocol.ats.ocr.OcrServiceCmd;
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WeiXinServiceCmd;
@@ -19,6 +20,7 @@ public enum AtsServiceType implements SignServiceType {
ANXINSIGN("安心签","^ANXINSIGN_\\S+\\.json$", AnXinServiceCmd.values()),
OCR("ocr","^OCR\\S+\\.json$", OcrServiceCmd.values()),
JPUSH("极光发送","^JPUSH\\S+\\.json$", JpushServiceCmd.values()),
NOTICE("通知","^NOTICE_\\S+\\.json$", NoticeServiceCmd.values()),
;

@Getter

+ 85
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/model/CallbackModel.java Datei anzeigen

@@ -0,0 +1,85 @@
package cn.com.taiji.core.model.comm.protocol.ats.model;

import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.common.pub.TimeTools;
import cn.com.taiji.core.manager.tools.sm4.SM4Utils;
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.RandomStringUtils;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
* @Author : cehnchaod
* @Date: 2025/1/15 17:10
* @Description: 用于渠道回调
*/
@Getter
@Setter
@Accessors(chain = true)
public class CallbackModel extends BaseModel {

@NotBlank
private String orderNo;
/**
* 当订单完成基本信息填写后上传
* 7-审核不通过(人工审核)
* 4-审核通过,待支付
* 3-完成支付
* 5-完成签约
* 10-待激活
* 11-已激活
*/
@NotNull
@IntegerConstant(values = "3,4,5,7,10,11")
private Integer orderStep;
/**
* -1-取消
* 0-申办订单
* 1-已激活订单
*/
@NotNull
@IntegerConstant(values = "-1,0,1")
private Integer orderStatus;
/**
* 当orderStep=7时 必填
*/
private String msg;
/**
* orderStep为10或11时必填
*/
private String cardId;
/**
* orderStep为10或11时必填
*/
private String obuId;

private String activeTime;//orderStep为11时必填
private List<PayInfoModelQd> payInfoList;//支付信息,orderStep=3时 必填
@NotBlank
private String plateNum;//车牌号
@NotNull
private Integer plateColor;//车牌颜色

public SignJsonRequest getJsonReq(String appId,String key,String singKey){
String reqId = appId + "_" + LocalDateTime.now().format(TimeTools.yyyyMMddHHmmssSSS) + "_"
+ RandomStringUtils.randomNumeric(5);

SignJsonRequest jsonReq = new SignJsonRequest();
jsonReq.setAppId(appId);
jsonReq.setReqId(reqId);
jsonReq.setTimestamp(LocalDateTime.now().format(TimeTools.ISO_LOCAL_DATE_TIME));
jsonReq.setEncryptType("SM4");
jsonReq.setSignType("SM3");
jsonReq.setBizContent(SM4Utils.encryptCBC(this.toJson(), key));// 设置业务内容并按要求加密
jsonReq.setSign(jsonReq.toSignContent(singKey));
return jsonReq;
}

}

+ 13
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/model/PayInfoModelQd.java Datei anzeigen

@@ -0,0 +1,13 @@
package cn.com.taiji.core.model.comm.protocol.ats.model;

import cn.com.taiji.common.model.BaseModel;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class PayInfoModelQd extends BaseModel {
private String payOrderNo;
private Long fee;
private String payTime;
}

+ 43
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/notice/AtsChannelNoticeRequest.java Datei anzeigen

@@ -0,0 +1,43 @@
package cn.com.taiji.core.model.comm.protocol.ats.notice;

import cn.com.taiji.core.model.comm.protocol.ats.AbstractAtsRequest;
import cn.com.taiji.core.model.comm.protocol.ats.model.CallbackModel;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import lombok.Getter;
import lombok.Setter;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;


/**
* @Author:ChenChao
* @Date:2025/6/10 10:59
* @Filename:AtsChannelNoticeRequest
* @description:
*/
@Getter
@Setter
public class AtsChannelNoticeRequest extends AbstractAtsRequest<AtsChannelNoticeResponse> {
public AtsChannelNoticeRequest() {
super(NoticeServiceCmd.CHANNELNOTICE);
}
@NotBlank
private String url;//通知地址
@NotNull
@Valid
private CallbackModel callbackModel;//通知内容

@NotBlank
private String appId;//渠道appId
@NotBlank
private String key;//加密密钥
@NotBlank
private String singKey;//签名密钥

@Override
protected void validate(ErrorMsgBuilder builder) {

}
}

+ 22
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/notice/AtsChannelNoticeResponse.java Datei anzeigen

@@ -0,0 +1,22 @@
package cn.com.taiji.core.model.comm.protocol.ats.notice;

import cn.com.taiji.core.model.comm.protocol.ats.AbstractAtsResponse;
import lombok.Getter;
import lombok.Setter;

/**
* @Author:ChenChao
* @Date:2025/6/10 10:59
* @Filename:AtsChannelNoticeResponse
* @description:
*/
@Getter
@Setter
public class AtsChannelNoticeResponse extends AbstractAtsResponse {

private String receiveTime; //接收时间

private Integer checkStatus; //激活校验状态

private String failReason; //失败原因
}

+ 50
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/notice/NoticeServiceCmd.java Datei anzeigen

@@ -0,0 +1,50 @@
package cn.com.taiji.core.model.comm.protocol.ats.notice;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand;
import cn.com.taiji.core.model.comm.protocol.SignServiceType;
import cn.com.taiji.core.model.comm.protocol.ats.AtsServiceType;

/**
* @Author:ChenChao
* @Date:2025/6/10 9:32
* @Filename:NoticeCmdService
* @description:
*/
public enum NoticeServiceCmd implements SignServiceCommand {

CHANNELNOTICE("渠道通知","channelNotice", AtsChannelNoticeRequest.class)
;

private final String value;
private final String transCode;
private final Class<? extends AbstractSignTypeRequest<?>> reqClass;

NoticeServiceCmd(String value, String transCode, Class<? extends AbstractSignTypeRequest<?>> reqClass) {
this.value = value;
this.transCode = transCode;
this.reqClass = reqClass;
}

@Override
public SignServiceType getServiceType() {
return AtsServiceType.NOTICE;
}

@Override
public String getValue() {
return value;
}
public static NoticeServiceCmd fromIfCode(String ifCode) {
return SignServiceCommand.fromName(NoticeServiceCmd.class, SignServiceCommand.getCmdStr(ifCode));
}
@Override
public boolean isMyCommand(String ifCode) {
return this == fromIfCode(ifCode);
}

@Override
public Class<? extends AbstractSignTypeRequest<?>> getProtocolClass() {
return reqClass;
}
}

+ 24
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/GetKeyRequest.java Datei anzeigen

@@ -0,0 +1,24 @@
package cn.com.taiji.core.model.comm.protocol.ifmw;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;


/**
* @Author:ChenChao
* @Date:2025/6/10 17:09
* @Filename:GetKeyRequest
* @description:
*/
@Getter
@Setter
public class GetKeyRequest extends AbstractSignTypeRequest<GetKeyResponse> {
public GetKeyRequest() {
super(MysqlServiceCmd.GETKEY);
}

@NotBlank
private String agencyId;//渠道id
}

+ 27
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/GetKeyResponse.java Datei anzeigen

@@ -0,0 +1,27 @@
package cn.com.taiji.core.model.comm.protocol.ifmw;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;

/**
* @Author:ChenChao
* @Date:2025/6/10 17:10
* @Filename:GetKeyResponse
* @description:
*/
@Getter
@Setter
public class GetKeyResponse extends AbstractSignTypeResponse {

@NotBlank
private String appId;//渠道appId

@NotBlank
private String key;//加密密钥

@NotBlank
private String singKey;//签名密钥
}

+ 47
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/IfmwServiceSystem.java Datei anzeigen

@@ -0,0 +1,47 @@
package cn.com.taiji.core.model.comm.protocol.ifmw;

import cn.com.taiji.core.model.comm.protocol.SignServiceSystem;
import cn.com.taiji.core.model.comm.protocol.SignServiceType;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public enum IfmwServiceSystem implements SignServiceSystem {
IFMW("ifmw", "中台", "/inss/api/json", "/inss/common/binapi/") {
public List<SignServiceType> listAllServices() {
return Arrays.asList(IfmwServiceType.values());
}
};

private final String appId;// 微服务环境当做注册中心的服务名
private final String appName;
private final String jsonUri;

IfmwServiceSystem(String appId, String appName, String jsonUri, String binUri) {
this.appId = appId;
this.appName = appName;
this.jsonUri = jsonUri;
}

@Override
public List<SignServiceType> listAllServices() {
return new ArrayList<>();
}

@Override
public String getAppId() {
return appId;
}

@Override
public String getAppName() {
return appName;
}

@Override
public String getJsonUri() {
return jsonUri;
}

}

+ 51
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/IfmwServiceType.java Datei anzeigen

@@ -0,0 +1,51 @@
package cn.com.taiji.core.model.comm.protocol.ifmw;

import cn.com.taiji.core.manager.comm.client.CommServiceCommand;
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand;
import cn.com.taiji.core.model.comm.protocol.SignServiceSystem;
import cn.com.taiji.core.model.comm.protocol.SignServiceType;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;

public enum IfmwServiceType implements SignServiceType {
MYSQL("mysql操作", "^VFJ_\\S+\\.json$", MysqlServiceCmd.values()),
;

@Getter
private final String value;
@Getter
private final Pattern reqNamePattern;

private final List<SignServiceCommand> commands;

IfmwServiceType(String value, String reqNameRegex, SignServiceCommand[] commands) {
this.value = value;
this.reqNamePattern = Pattern.compile(reqNameRegex);
this.commands = Arrays.asList(commands);
}

@Override
public SignServiceSystem getServiceSystem() {
return IfmwServiceSystem.IFMW;
}

@Override
public List<SignServiceCommand> listAllCommands() {
return commands;
}

public static IfmwServiceType fromName(String name) {
return CommServiceCommand.fromName(IfmwServiceType.class, name);
}

public static IfmwServiceType fromFileName(String filename) {
return fromName(CommServiceCommand.getServiceTypeStr(filename));
}

public static IfmwServiceType fromIfCode(String ifCode) {
return SignServiceCommand.fromName(IfmwServiceType.class, SignServiceCommand.getServiceTypeStr(ifCode));
}

}

+ 51
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ifmw/MysqlServiceCmd.java Datei anzeigen

@@ -0,0 +1,51 @@
package cn.com.taiji.core.model.comm.protocol.ifmw;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand;
import cn.com.taiji.core.model.comm.protocol.SignServiceType;

public enum MysqlServiceCmd implements SignServiceCommand {

GETKEY("获取渠道密钥", "GetKey", GetKeyRequest.class)
;


private final String value;
private final String transCode;
private final Class<? extends AbstractSignTypeRequest<?>> reqClass;

MysqlServiceCmd(String value, String transCode, Class<? extends AbstractSignTypeRequest<?>> reqClass) {
this.value = value;
this.transCode = transCode;
this.reqClass = reqClass;
}

@Override
public SignServiceType getServiceType() {
return IfmwServiceType.MYSQL;
}

public static MysqlServiceCmd fromIfCode(String ifCode) {
return SignServiceCommand.fromName(MysqlServiceCmd.class, SignServiceCommand.getCmdStr(ifCode));
}

@Override
public boolean isMyCommand(String ifCode) {
return this == fromIfCode(ifCode);
}

@Override
public String getValue() {
return value;
}

public String getTransCode() {
return transCode;
}

@Override
public Class<? extends AbstractSignTypeRequest<?>> getProtocolClass() {
return reqClass;
}

}

+ 3
- 3
gly-base-core/src/test/java/common/TestCodeManager.java Datei anzeigen

@@ -50,11 +50,11 @@ public class TestCodeManager extends AbstractManager {
/* 全局配置参数,详细的参数说明参见GlobalConfigBuilder的属性注释 */
GlobalConfigBuilder configBuilder = GlobalConfigBuilder.create();
configBuilder.setAppName("core");
configBuilder.setModule("msgw");
String pak = "msgw";
configBuilder.setModule("issue");
String pak = "basic";
configBuilder.setEntityPackage("cn/com/taiji/core/entity/"+pak);
configBuilder.setRepoPackage("cn/com/taiji/core/repo/jpa/"+pak);
configBuilder.setTableName("MEGW_USER_MESSAGE");
configBuilder.setTableName("QTK_BRANDINFO");
// 生成分页查询request
// configBuilder.setQueryField(List.of("intVal", "name", "mobile", "insertTime1", "insertTime2"));
// configBuilder.setOrderBy("orderIndex");

Laden…
Abbrechen
Speichern