| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- package com.dderp.common.entity.base;
- import com.dderp.common.entity.site.ERPTokenUser;
- import com.dySweetFishPlugin.tool.crypto.EncryptUtil;
- import com.sweetfish.convert.json.JsonConvert;
- import com.sweetfish.source.PageFlipper;
- import com.sweetfish.util.AnyValue;
- import com.sweetfish.util.Comment;
- import org.apache.commons.lang3.StringUtils;
- import java.util.HashMap;
- import java.util.Map;
- public class InvokeCallParams extends BaseEntity {
- @Comment("业务名称")
- private String businessMethod;
- @Comment("时间戳")
- private String timeStamp;
- /**
- * json字符串
- * 这里针对业务类的数据直接用json字符串,是当前各平台的通用做法,之前验签如果双发使用了不同的序列化工具,导致有的null的字段没有带上,序列化之后的结果会不同,验签就出现问题
- * 现在直接统一Params即可
- */
- @Comment("参数")
- private String params;
- /**
- * 附加字符串,params不够用的情况下,增加附件参数
- */
- @Comment("附加参数")
- private AnyValue attach;
- /**
- * 分页对象,这里还是把分页信息从params里面拆分出来,减少脚本中转换的次数
- */
- @Comment("分页对象")
- private PageFlipper page;
- /**
- * 客户编号,由我们提供
- */
- @Comment("客户编号")
- private String clientCode;
- /**
- * md5串,字符串由
- * <ul>clientCode=xxx¶ms=xxx×tamp=xxx</ul>
- * 组成,所有参数均使用此格式,避免扩展麻烦,至于具体的业务,则由params的json字符串定义即可
- */
- @Comment("md5串")
- private String digest;
- @Comment("token")
- private String token;
- //下面的字段由服务端赋值
- @Comment("操作人")
- private ERPTokenUser currentUser;
- @Comment("分库")
- private String dataSourceId;
- @Comment("分表")
- private long supplierCode;
- @Comment("json转换器")
- private final Map<String, JsonConvert> jsonConvertMap = new HashMap<>();
- public InvokeCallParams() {
- }
- private InvokeCallParams(Builder builder) {
- setBusinessMethod(builder.businessMethod);
- setTimeStamp(builder.timeStamp);
- setParams(builder.params);
- setAttach(builder.attach);
- setPage(builder.page);
- setClientCode(builder.clientCode);
- setDigest(builder.digest);
- setToken(builder.token);
- setCurrentUser(builder.currentUser);
- setDataSourceId(builder.dataSourceId);
- setSupplierCode(builder.supplierCode);
- }
- public static Builder newBuilder() {
- return new Builder();
- }
- public boolean verifySign(String key) {
- String params = "businessMethod=" + this.businessMethod + "&clientCode=" + this.clientCode + "¶ms=" + this.params + "×tamp=" + this.timeStamp + "&key=" + key;
- String newDigest = EncryptUtil.md5Digest(params);
- return StringUtils.equals(newDigest.toUpperCase(), digest);
- }
- public InvokeCallParams generateSign(String key) {
- String params = "businessMethod=" + this.businessMethod + "&clientCode=" + this.clientCode + "¶ms=" + this.params + "×tamp=" + this.timeStamp + "&key=" + key;
- this.digest = EncryptUtil.md5Digest(params);
- return this;
- }
- public InvokeCallParams addConvert(String name, JsonConvert jsonConvert) {
- this.jsonConvertMap.put(name, jsonConvert);
- return this;
- }
- public String getBusinessMethod() {
- return businessMethod;
- }
- public void setBusinessMethod(String businessMethod) {
- this.businessMethod = businessMethod;
- }
- public String getTimeStamp() {
- return timeStamp;
- }
- public void setTimeStamp(String timeStamp) {
- this.timeStamp = timeStamp;
- }
- public String getParams() {
- return params;
- }
- public void setParams(String params) {
- this.params = params;
- }
- public ERPTokenUser getCurrentUser() {
- return currentUser;
- }
- public void setCurrentUser(ERPTokenUser currentUser) {
- this.currentUser = currentUser;
- }
- public String getDataSourceId() {
- return dataSourceId;
- }
- public void setDataSourceId(String dataSourceId) {
- this.dataSourceId = dataSourceId;
- }
- public long getSupplierCode() {
- return supplierCode;
- }
- public void setSupplierCode(long supplierCode) {
- this.supplierCode = supplierCode;
- }
- public Map<String, JsonConvert> getJsonConvertMap() {
- return jsonConvertMap;
- }
- public String getClientCode() {
- return clientCode;
- }
- public void setClientCode(String clientCode) {
- this.clientCode = clientCode;
- }
- public String getDigest() {
- return digest;
- }
- public void setDigest(String digest) {
- this.digest = digest;
- }
- public PageFlipper getPage() {
- return page;
- }
- public void setPage(PageFlipper page) {
- this.page = page;
- }
- public String getToken() {
- return token;
- }
- public void setToken(String token) {
- this.token = token;
- }
- public AnyValue getAttach() {
- return attach;
- }
- public void setAttach(AnyValue attach) {
- this.attach = attach;
- }
- public static final class Builder {
- private String businessMethod;
- private String timeStamp;
- private String params;
- private AnyValue attach;
- private PageFlipper page;
- private String clientCode;
- private String digest;
- private String token;
- private ERPTokenUser currentUser;
- private String dataSourceId;
- private long supplierCode;
- private Builder() {
- }
- public Builder businessMethod(String val) {
- businessMethod = val;
- return this;
- }
- public Builder timeStamp(String val) {
- timeStamp = val;
- return this;
- }
- public Builder params(String val) {
- params = val;
- return this;
- }
- public Builder attach(AnyValue val) {
- attach = val;
- return this;
- }
- public Builder page(PageFlipper val) {
- page = val;
- return this;
- }
- public Builder clientCode(String val) {
- clientCode = val;
- return this;
- }
- public Builder digest(String val) {
- digest = val;
- return this;
- }
- public Builder token(String val) {
- token = val;
- return this;
- }
- public Builder currentUser(ERPTokenUser val) {
- currentUser = val;
- return this;
- }
- public Builder dataSourceId(String val) {
- dataSourceId = val;
- return this;
- }
- public Builder supplierCode(long val) {
- supplierCode = val;
- return this;
- }
- public InvokeCallParams build() {
- return new InvokeCallParams(this);
- }
- }
- }
|