Forráskód Böngészése

修复计奖交易明细接口

mac 2 éve
szülő
commit
572c1f2ffd

+ 1 - 1
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/valid/impl/NormMonthValidator.java

@@ -30,7 +30,7 @@ public class NormMonthValidator implements ConstraintValidator<NormMonth, String
         if (value == null || value.isEmpty()){
             return false;
         }
-        // 获取【Phone】对象的手机格式验证表达式
+        // 获取格式验证表达式
         String pattern = normMonth.pattern();
         Pattern compile = Pattern.compile(pattern);
         Matcher matcher = compile.matcher(value);

+ 1 - 0
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsShopOrderMapper.xml

@@ -76,6 +76,7 @@
         <where>
             a.user_id = #{query.userId}
         </where>
+        order by a.create_time desc
     </select>
     <select id="getDateBetweenOrders" resultType="com.kxs.product.api.vo.kxsapp.shop.ShopOrderGoodsUserVO">
         SELECT a.id, a.total_price, a.user_id

+ 6 - 2
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetTradeDetailDTO.java

@@ -2,6 +2,7 @@ package com.kxs.stat.api.dto.statUser;
 
 import com.kxs.common.core.valid.NormMonth;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 
@@ -18,14 +19,15 @@ public class StatUserGetTradeDetailDTO {
      * 0:个人 1:计奖
      */
     @Schema(description = "0:个人 1:计奖")
+    @NotNull(message = "类型不能为空")
     private Integer totalType;
 
 
     /**
      * 该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
      */
-    @Schema(description = "只有type=1时该参数有效获取月份格式yyyyMM")
-    @NormMonth
+    @Schema(description = "有效获取月份格式yyyyMM")
+    @NotNull(message = "日期不能为空")
     private Integer date;
 
 
@@ -33,6 +35,7 @@ public class StatUserGetTradeDetailDTO {
      * 1获取日详情 2获取月详情
      */
     @Schema(description = "1获取日详情 2获取月详情")
+    @NotNull(message = "类型不能为空")
     private Integer getType;
 
 
@@ -40,6 +43,7 @@ public class StatUserGetTradeDetailDTO {
      * 1获取增量 2获取存量 3获取全部
      */
     @Schema(description = "1获取增量 2获取存量 3获取全部")
+    @NotNull(message = "类型不能为空")
     private Integer tradeType;
 
 

+ 2 - 1
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java

@@ -123,7 +123,8 @@ public class KxsStatUserController {
      * @return 计奖交易-交易统计页面-交易明细
      */
     @GetMapping("/getTradeDetail")
-    public R getTradeDetail(@ParameterObject StatUserGetTradeDetailDTO param) {
+    public R getTradeDetail(@Valid @ParameterObject StatUserGetTradeDetailDTO param) {
+
         return kxsUserTradeService.getTradeDetail(param);
     }
 }

+ 17 - 7
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -1,6 +1,7 @@
 package com.kxs.stat.biz.service.impl;
 
 import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.NumberUtil;
@@ -508,26 +509,35 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     @Override
     public R getTradeDetail(StatUserGetTradeDetailDTO param) {
         Integer totalType = param.getTotalType();//0:个人 1:计奖
-        Integer month = param.getDate();//该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
+        Integer date = param.getDate();//该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
         Integer getType = param.getGetType();// 1获取日详情 2获取月详情
         Integer tradeType = param.getTradeType();//1获取增量 2获取存量 3获取全部
+
         Long userId = param.getUserId();//用户id
         if (userId == null || userId == 0) {
             userId = SecurityUtils.getUser().getId();
         }
+        if(getType == 1 && String.valueOf(date).length() != 8){
+            return R.failed("日期格式错误");
+        }
+        if(getType == 2 && String.valueOf(date).length() != 6){
+            return R.failed("日期格式错误");
+        }
         Integer brandId = param.getBrandId();//品牌id
 
         String tableName;
+        String tableMonth = String.valueOf(date).substring(0, 6);
+
         switch (tradeType) {
-            case 1 -> tableName = CommonConstants.USER_TABLE_AFTER_PREFIX + month;
-            case 2 -> tableName = CommonConstants.USER_TABLE_BEFORE_PREFIX + month;
-            case 3 -> tableName = CommonConstants.USER_TABLE_PREFIX + month;
+            case 1 -> tableName = CommonConstants.USER_TABLE_AFTER_PREFIX + tableMonth;
+            case 2 -> tableName = CommonConstants.USER_TABLE_BEFORE_PREFIX + tableMonth;
+            case 3 -> tableName = CommonConstants.USER_TABLE_PREFIX + tableMonth;
             default -> throw new GlobalCustomerException("参数错误");
         }
 
 
         StatUserGetTradeDetailVO statUserGetTradeDetailVO = new StatUserGetTradeDetailVO();
-        statUserGetTradeDetailVO.setDate(month);//交易时间
+        statUserGetTradeDetailVO.setDate(date);//交易时间
         statUserGetTradeDetailVO.setBrandId(brandId);//品牌
 
         //扶持期
@@ -540,7 +550,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         StatUserTradeVo proBstatUserTradeVo = new StatUserTradeVo();
 
         //pos交易
-        KxsUserTrade kxsUserTradePos = baseMapper.getAllUserTradeSum(userId, month, getType, 0, brandId, totalType, tableName);
+        KxsUserTrade kxsUserTradePos = baseMapper.getAllUserTradeSum(userId, date, getType, 0, brandId, totalType, tableName);
         if (kxsUserTradePos != null) {
             statUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getHelpDirectTradeAmt());//扶持期贷记卡
             statUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getHelpDebitTradeAmt());//扶持期借记卡
@@ -575,7 +585,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             proBstatUserTradeVo.setPosTrade(kxsUserTradePos.getProBDirectTradeAmt().add(kxsUserTradePos.getProBDebitTradeAmt()));//交易总和
         }
         //云闪付
-        KxsUserTrade kxsUserTradeCloud = baseMapper.getAllUserTradeSum(userId, month, getType, 1, brandId, totalType, tableName);
+        KxsUserTrade kxsUserTradeCloud = baseMapper.getAllUserTradeSum(userId, date, getType, 1, brandId, totalType, tableName);
         if (kxsUserTradeCloud != null) {
             BigDecimal helpTrade = kxsUserTradeCloud.getHelpDebitCapTradeAmt().add(kxsUserTradeCloud.getHelpDirectTradeAmt());//计算扶持期云闪付交易额
             statUserTradeVo.setCloudTrade(helpTrade);//扶持期云闪付交易额

+ 3 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseLimitServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kxs.store.biz.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -87,10 +88,11 @@ public class KxsWarehouseLimitServiceImpl extends ServiceImpl<KxsWarehouseLimitM
         KxsWarehouseLimit kxsWarehouseLimit = baseMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
                 .eq(KxsWarehouseLimit::getUserId, userId)
                 .eq(KxsWarehouseLimit::getWarehouseType, WarehouseLimitTypeEnum.XFC.getType()));
+        Optional.ofNullable(kxsWarehouseLimit).orElseThrow(() -> new GlobalCustomerException("仓库额度未配置,请联系客服"));
 
         AdvanceAmountVO advanceAmountVO = new AdvanceAmountVO();
 
-        BeanUtils.copyProperties(kxsWarehouseLimit, advanceAmountVO);
+        BeanUtil.copyProperties(kxsWarehouseLimit, advanceAmountVO);
 
         advanceAmountVO.setTotalForAmt(NumberUtil.add(kxsWarehouseLimit.getForAmount(), kxsWarehouseLimit.getYueForAmount()));
         //可用额度大于等于临时总额度那就临时额度都可以提现 否则只能提现可用额度