CZT
2023-09-13 dfdd615c4cab8c142c76caebc70bdf16f4e12b10
优化上海接口指令时效问题
已修改5个文件
79 ■■■■ 文件已修改
src/main/java/com/fzzy/api/data/ApiParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/utils/RedisConst.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/data/ApiParam.java
@@ -36,9 +36,6 @@
    private String bizId;
    //指令ID,用于上级平台发送指令获取数据的情况
    private String orderid;
    public ApiParam() {
        super();
src/main/java/com/fzzy/api/utils/RedisConst.java
@@ -24,6 +24,11 @@
     */
    public static String KYE_TOKEN = "TOKEN";
    /**
     * 指令ID-ORDER
     */
    public static String KYE_ORDER = "ORDER";
src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
@@ -106,13 +106,24 @@
                return responseDto;
            }
            //获取指令id
            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
            String orderId = (String)redisUtil.get(key);
            if(StringUtils.isEmpty(orderId)){
                ResponseDto responseDto = new ResponseDto(99, "指令id失效");
                apiLog.setStatus(99);
                apiLog.setResult("指令id失效");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            //封装推送数据
            SH2023ReqDto reqData = new SH2023ReqDto();
            reqData.setId(ContextUtil.getUUID());
            //获取身份ID,即行政区划码
            reqData.setUid(conf.getUserName());
            //指令id
            reqData.setOrderid(param.getOrderid());
            reqData.setOrderid(orderId);
            //身份签名,使用自有RSA私钥进行加密(地区行政区划代码_当天日期)
            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPassword()));
            //数据总条数
@@ -182,27 +193,31 @@
                return responseDto;
            }
            //获取指令id
            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
            String orderId = (String)redisUtil.get(key);
            if(StringUtils.isEmpty(orderId)){
                ResponseDto responseDto = new ResponseDto(99, "指令id失效");
                apiLog.setStatus(99);
                apiLog.setResult("指令id失效");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            //封装推送数据
            SH2023ReqDto reqData = new SH2023ReqDto();
            reqData.setId(ContextUtil.getUUID());
            //获取身份ID,即行政区划码
            if (null == api1102List || api1102List.isEmpty()) {
                ResponseDto responseDto = new ResponseDto(99, "没有获取到身份ID");
                apiLog.setStatus(99);
                apiLog.setResult("没有获取到身份ID");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            reqData.setUid(api1102List.get(0).getXzqhdm());
            reqData.setUid(conf.getUserName());
            //指令id
            reqData.setOrderid(param.getOrderid());
            //身份签名,对地区行政区划代码_当天日期进行MD5算法签名
            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPublicKey()));
            reqData.setOrderid(orderId);
            //身份签名,使用自有RSA私钥进行加密(地区行政区划代码_当天日期)
            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPassword()));
            //数据总条数
            List<Object> list = (List<Object>) data;
            reqData.setDatalength(list.size());
            //数据进行SM4加密
            reqData.setData(jsonData);
            //使用区级平台公钥对数据进行RSA加密
            reqData.setData(RSAUtils.encrypt(jsonData, conf.getPublicKey()));
            //摘要,数据主体的MD5值
            reqData.setDigst(MyMD5Util.encrypt(jsonData));
src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java
@@ -4,6 +4,8 @@
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.utils.RedisConst;
import com.fzzy.api.utils.RedisUtil;
import com.fzzy.order.OrderApiService;
import com.fzzy.order.data.OrderConstant;
import com.fzzy.order.data.OrderData;
@@ -22,6 +24,8 @@
@Slf4j
public class SH2023OrderApiServiceImpl implements OrderApiService {
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private SH2023ApiRemoteService apiRemoteService;
    @Autowired
@@ -51,13 +55,16 @@
            return;
        }
        //指令存入缓存,时效24小时
        String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
        redisUtil.set(key, orderid, 59 * 60 * 24);
        ApiParam param = new ApiParam();
        param.setPushProtocol(conf.getPushProtocol());
        param.setKqdm(conf.getKqdm());
        param.setStart(DateUtils.parseDate(req.getStarttime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
        param.setEnd(DateUtils.parseDate(req.getEndtime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
        param.setDeptId(conf.getDeptId());
        param.setOrderid(orderid);
        String[] interfaces = ids.split(",");
        for (String inteId : interfaces) {
src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
@@ -8,10 +8,7 @@
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.AESUtils;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.MyMD5Util;
import com.fzzy.api.utils.RedisUtil;
import com.fzzy.api.utils.*;
import com.fzzy.api.view.repository.*;
import com.fzzy.push.whhpjl.dto.WhjlReqDto;
import com.fzzy.push.whhpjl.dto.WhjlRespDto;
@@ -88,12 +85,24 @@
                apiLogRep.save(apiLog);
                return responseDto;
            }
            //获取指令id
            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
            String orderId = (String)redisUtil.get(key);
            if(StringUtils.isEmpty(orderId)){
                ResponseDto responseDto = new ResponseDto(99, "指令id失效");
                apiLog.setStatus(99);
                apiLog.setResult("指令id失效");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            //封装推送数据
            WhjlReqDto reqData = new WhjlReqDto();
            reqData.setId(ContextUtil.getUUID());
            reqData.setUid(conf.getKqdm());
            //指令ID
            reqData.setOrderid(param.getOrderid());
            reqData.setOrderid(orderId);
            reqData.setAppcode(conf.getUserName());
            reqData.setTimestamp(ContextUtil.getCurTimeMillis());
            List<Object> list  = (List<Object>)data;