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

Merge branch 'dev_v1.3.4_20220902' of http://git.dayaedu.com/yonge/cooleshow into dev_v1.3.4_20220902

liujunchi 2 лет назад
Родитель
Сommit
c1e8f1b8e3

+ 4 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CouponIssueService.java

@@ -1,15 +1,15 @@
 package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dto.UserParam;
 import com.yonge.cooleshow.biz.dal.entity.CouponIssue;
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponIssueQueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.CouponIssueUserVo;
+import com.yonge.cooleshow.biz.dal.vo.coupon.CouponInfoWrapper;
 import com.yonge.cooleshow.biz.dal.vo.coupon.CouponIssueWrapper;
-import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 
 import java.util.List;
 
@@ -62,7 +62,7 @@ public interface CouponIssueService extends IService<CouponIssue> {
      * 统计用户优惠券状态
      * @param id 用户ID
      * @param query CouponInfoQuery.CouponStateStatQuery
-     * @return List<StatGroupWrapper>
+     * @return List<CouponInfoWrapper.CouponStat>
      */
-    List<StatGroupWrapper> queryCouponStateStatInfo(Long id, CouponInfoQuery.CouponStateStatQuery query);
+    List<CouponInfoWrapper.CouponStat> queryCouponStateStatInfo(Long id, CouponInfoQuery.CouponStateStatQuery query);
 }

+ 24 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CouponIssueServiceImp.java

@@ -21,6 +21,7 @@ import com.yonge.cooleshow.biz.dal.service.CouponInfoService;
 import com.yonge.cooleshow.biz.dal.service.CouponIssueService;
 import com.yonge.cooleshow.biz.dal.service.SysMessageService;
 import com.yonge.cooleshow.biz.dal.vo.CouponIssueUserVo;
+import com.yonge.cooleshow.biz.dal.vo.coupon.CouponInfoWrapper;
 import com.yonge.cooleshow.biz.dal.vo.coupon.CouponIssueWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.common.enums.EStatus;
@@ -35,7 +36,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -203,14 +209,27 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
      *
      * @param id         用户ID
      * @param query     CouponInfoQuery.CouponStateStatQuery
-     * @return List<StatGroupWrapper>
+     * @return List<CouponInfoWrapper.CouponStat>
      */
     @Override
-    public List<StatGroupWrapper> queryCouponStateStatInfo(Long id, CouponInfoQuery.CouponStateStatQuery query) {
+    public List<CouponInfoWrapper.CouponStat> queryCouponStateStatInfo(Long id, CouponInfoQuery.CouponStateStatQuery query) {
 
         // 优惠券统计状态
-        List<StatGroupWrapper> wrappers = getBaseMapper().selectCouponStateStatInfo(id, query);
+        Map<String, Integer> collect = getBaseMapper().selectCouponStateStatInfo(id, query).stream()
+                .collect(Collectors.toMap(StatGroupWrapper::getGid, StatGroupWrapper::getTotal, (o, n) -> n));
 
-        return Optional.ofNullable(wrappers).orElse(Lists.newArrayList());
+        List<CouponInfoWrapper.CouponStat> couponStats = Lists.newArrayList();
+
+        // 统计数据封装
+        CouponUseStateEnum[] values = CouponUseStateEnum.values();
+        for (CouponUseStateEnum item : values) {
+
+            couponStats.add(CouponInfoWrapper.CouponStat.builder()
+                            .useState(item)
+                            .total(collect.getOrDefault(item.getCode(), 0))
+                    .build());
+        }
+
+        return couponStats;
     }
 }

+ 17 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/coupon/CouponInfoWrapper.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.vo.coupon;
 
 import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -51,4 +52,20 @@ public class CouponInfoWrapper implements Serializable {
         this.updatedUser = updateUser;
         return this;
     }
+
+    /**
+     * 优惠券状态统计
+     */
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class CouponStat implements Serializable {
+
+        // 优惠券统计状态
+        private CouponUseStateEnum useState;
+        // 统计数据
+        private Integer total;
+
+    }
 }

+ 4 - 15
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/coupon/CouponInfoController.java

@@ -2,16 +2,14 @@ package com.yonge.cooleshow.student.controller.coupon;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponIssueQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.CouponIssueService;
+import com.yonge.cooleshow.biz.dal.vo.coupon.CouponInfoWrapper;
 import com.yonge.cooleshow.biz.dal.vo.coupon.CouponIssueWrapper;
-import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.student.io.request.CouponInfoVO;
@@ -87,21 +85,12 @@ public class CouponInfoController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
 
-        List<StatGroupWrapper> wrappers = couponIssueService.queryCouponStateStatInfo(user.getId(),
+        // 优惠券统计
+        List<CouponInfoWrapper.CouponStat> wrappers = couponIssueService.queryCouponStateStatInfo(user.getId(),
                 CouponInfoQuery.CouponStateStatQuery.builder()
                         .clientType(ClientEnum.STUDENT)
                         .build().couponType(couponType));
 
-        List<CouponInfoVO.CouponStateStat> retlist = Lists.newArrayList();
-
-        for (StatGroupWrapper item : wrappers) {
-
-            retlist.add(CouponInfoVO.CouponStateStat.builder()
-                            .useState(CouponUseStateEnum.valueOf(item.getGid()))
-                            .total(item.getTotal())
-                    .build());
-        }
-
-        return succeed(retlist);
+        return succeed(JSON.parseArray(JSON.toJSONString(wrappers), CouponInfoVO.CouponStateStat.class));
     }
 }

+ 3 - 15
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/coupon/CouponInfoController.java

@@ -2,16 +2,14 @@ package com.yonge.cooleshow.teacher.controller.coupon;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponIssueQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.CouponIssueService;
+import com.yonge.cooleshow.biz.dal.vo.coupon.CouponInfoWrapper;
 import com.yonge.cooleshow.biz.dal.vo.coupon.CouponIssueWrapper;
-import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.teacher.io.request.CouponInfoVO;
@@ -87,21 +85,11 @@ public class CouponInfoController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
 
-        List<StatGroupWrapper> wrappers = couponIssueService.queryCouponStateStatInfo(user.getId(),
+        List<CouponInfoWrapper.CouponStat> wrappers = couponIssueService.queryCouponStateStatInfo(user.getId(),
                 CouponInfoQuery.CouponStateStatQuery.builder()
                 .clientType(ClientEnum.TEACHER)
                 .build().couponType(couponType));
 
-        List<CouponInfoVO.CouponStateStat> retlist = Lists.newArrayList();
-
-        for (StatGroupWrapper item : wrappers) {
-
-            retlist.add(CouponInfoVO.CouponStateStat.builder()
-                    .useState(CouponUseStateEnum.valueOf(item.getGid()))
-                    .total(item.getTotal())
-                    .build());
-        }
-
-        return succeed(retlist);
+        return succeed(JSON.parseArray(JSON.toJSONString(wrappers), CouponInfoVO.CouponStateStat.class));
     }
 }