Просмотр исходного кода

Merge remote-tracking branch 'origin/master' into master

zxf 17 часов назад
Родитель
Сommit
42ceb7c1da

+ 2 - 2
jd-logistics-auth/src/main/java/com/ruoyi/auth/controller/WxMiniController.java

@@ -34,7 +34,7 @@ public class WxMiniController {
         // 用户登录
         LoginUser userInfo = sysLoginService.openIdLogin(form.getJsCode(), form.getCode());
         // 获取登录token
-        return R.ok(tokenService.createToken(userInfo));
+        return R.ok(tokenService.createTokenWechat(userInfo));
     }
 
     /**
@@ -48,6 +48,6 @@ public class WxMiniController {
         // 用户登录
         LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
         // 获取登录token
-        return R.ok(tokenService.createToken(userInfo));
+        return R.ok(tokenService.createTokenWechat(userInfo));
     }
 }

+ 42 - 0
jd-logistics-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java

@@ -171,4 +171,46 @@ public class TokenService
     {
         return ACCESS_TOKEN + token;
     }
+
+
+    /**
+     * 创建微信登录令牌
+     */
+    public Map<String, Object> createTokenWechat(LoginUser loginUser)
+    {
+        String token = IdUtils.fastUUID();
+        Long userId = loginUser.getSysUser().getUserId();
+        String userName = loginUser.getSysUser().getUserName();
+        loginUser.setToken(token);
+        loginUser.setUserid(userId);
+        loginUser.setUsername(userName);
+        loginUser.setIpaddr(IpUtils.getIpAddr());
+        refreshTokenWechat(loginUser);
+
+        // Jwt存储信息
+        Map<String, Object> claimsMap = new HashMap<String, Object>();
+        claimsMap.put(SecurityConstants.USER_KEY, token);
+        claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+        claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+
+        // 接口返回信息
+        Map<String, Object> rspMap = new HashMap<String, Object>();
+        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+        rspMap.put("expires_in", 15 * 24 * MILLIS_MINUTE);
+        return rspMap;
+    }
+
+    /**
+     * 刷新微信令牌有效期
+     *
+     * @param loginUser 登录信息
+     */
+    public void refreshTokenWechat(LoginUser loginUser)
+    {
+        loginUser.setLoginTime(System.currentTimeMillis());
+        loginUser.setExpireTime(loginUser.getLoginTime() + 15 * 24 * MILLIS_MINUTE);
+        // 根据uuid将loginUser缓存
+        String userKey = getTokenKey(loginUser.getToken());
+        redisService.setCacheObject(userKey, loginUser, 15L, TimeUnit.DAYS);
+    }
 }

+ 10 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/request/CommonBusinessGetQRCodeExtendRequest.java

@@ -0,0 +1,10 @@
+package com.ruoyi.front.request;
+
+import com.lop.open.api.sdk.domain.ECAP.CommonBusinessApi.commonGetQRCodeV1.CommonBusinessGetQRCodeRequest;
+import lombok.Data;
+
+@Data
+public class CommonBusinessGetQRCodeExtendRequest extends CommonBusinessGetQRCodeRequest {
+
+    private String businessUnitCode;
+}

+ 10 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/request/CommonMonthSettleQRQueryExtendRequest.java

@@ -0,0 +1,10 @@
+package com.ruoyi.front.request;
+
+import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderByMonthSettleQRV1.CommonMonthSettleQRQueryRequest;
+import lombok.Data;
+
+@Data
+public class CommonMonthSettleQRQueryExtendRequest extends CommonMonthSettleQRQueryRequest {
+
+    private String businessUnitCode;
+}

+ 5 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/dto/MonthQRCodeDTO.java

@@ -47,4 +47,9 @@ public class MonthQRCodeDTO {
      * 创建时间
      */
     private Date createTime;
+
+    /**
+     * 类型 1.京东快递 2.京东快运
+     */
+    private Integer type;
 }

+ 2 - 2
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsOrderService.java

@@ -107,10 +107,10 @@ public class LogisticsOrderService {
         }
     }
 
-    public JSONObject queryOrderByQRCode(Integer orderType, String qrCode) {
+    public JSONObject queryOrderByQRCode(Integer orderType, String qrCode, Integer qrcodeType) {
         // 根据订单中的物流公司类型获取对应服务
         LogisticsService logisticsService = logisticsFactory.getLogisticsService(orderType==1?"JD":"SF");
-        JSONObject jsonObject = logisticsService.queryOrderByQRCode(qrCode);
+        JSONObject jsonObject = logisticsService.queryOrderByQRCode(qrCode, qrcodeType);
         return jsonObject;
     }
 

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsService.java

@@ -50,7 +50,7 @@ public interface LogisticsService {
     /**
      * 根据二维码查询
      */
-    JSONObject queryOrderByQRCode(String qrCode);
+    JSONObject queryOrderByQRCode(String qrCode, Integer qrcodeType);
 
     /**
      * 根据运单号查询订单详情

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillOrderServiceImpl.java

@@ -316,7 +316,7 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
         }
         
         // 保存到Redis,设置过期时间30天
+        redisService.deleteObject(redisKey);
         redisService.setCacheList(redisKey, addressList);
-        redisService.expire(redisKey, 30, TimeUnit.DAYS);
     }
 }

+ 11 - 5
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/JDLogisticsService.java

@@ -21,6 +21,8 @@ import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
+import com.ruoyi.front.request.CommonBusinessGetQRCodeExtendRequest;
+import com.ruoyi.front.request.CommonMonthSettleQRQueryExtendRequest;
 import com.ruoyi.logistics.config.JDExpressConfig;
 import com.ruoyi.logistics.constant.JDDictConstants;
 import com.ruoyi.logistics.constant.SysConfigConstants;
@@ -512,11 +514,11 @@ public class JDLogisticsService  implements LogisticsService {
             EcapV1BusinessQrcodeLopRequest request = new EcapV1BusinessQrcodeLopRequest();
 
             //取消订单入参对象
-            CommonBusinessGetQRCodeRequest requestDTO = new CommonBusinessGetQRCodeRequest();
+            CommonBusinessGetQRCodeExtendRequest requestDTO = new CommonBusinessGetQRCodeExtendRequest();
             if (type == 1) {
                 requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
             } else if (type == 2) {
-                requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
+                requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
             }
 
             request.setRequest(requestDTO);
@@ -550,7 +552,7 @@ public class JDLogisticsService  implements LogisticsService {
     }
 
     @Override
-    public JSONObject queryOrderByQRCode(String qrCode) {
+    public JSONObject queryOrderByQRCode(String qrCode, Integer qrcodeType) {
         log.info("京东开放平台根据二维码查询运单号接口,入参:{}", qrCode);
         JSONObject result = new JSONObject();
         try {
@@ -561,8 +563,12 @@ public class JDLogisticsService  implements LogisticsService {
             //入参对象
             CommonqueryorderapiCommongetorderbymonthsettleqrv1LopRequest request = new CommonqueryorderapiCommongetorderbymonthsettleqrv1LopRequest();
 
-            CommonMonthSettleQRQueryRequest requestDTO = new CommonMonthSettleQRQueryRequest();
-            requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            CommonMonthSettleQRQueryExtendRequest requestDTO = new CommonMonthSettleQRQueryExtendRequest();
+            if (1 == qrcodeType) {
+                requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            } else if (2 == qrcodeType) {
+                requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
+            }
             requestDTO.setMonthSettleQR(qrCode);
             requestDTO.setAppKey(jdExpressConfig.getAppKey());
 

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/MonthQRCodeTaskServiceImpl.java

@@ -93,7 +93,7 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
     }
 
     private void jdQRCodeConsume(MonthQRCodeDTO monthQRCodeDTO, SysUser sysUser, SysDept sysDept, String key) {
-        JSONObject waybillCode = logisticsOrderService.queryOrderByQRCode(1, monthQRCodeDTO.getQrCodeContent());
+        JSONObject waybillCode = logisticsOrderService.queryOrderByQRCode(1, monthQRCodeDTO.getQrCodeContent(), monthQRCodeDTO.getType());
         if(!waybillCode.getBooleanValue("success")){
             log.info("根据二维码查询运单号失败{}", waybillCode.getString("msg"));
             return;

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/SFLogisticsService.java

@@ -346,7 +346,7 @@ public class SFLogisticsService implements LogisticsService {
     }
 
     @Override
-    public JSONObject queryOrderByQRCode(String qrCode) {
+    public JSONObject queryOrderByQRCode(String qrCode, Integer qrcodeType) {
         return null;
     }