Bladeren bron

核销/优惠券

licailing 4 jaren geleden
bovenliggende
commit
8ec71311bd

+ 3 - 3
src/main/java/com/izouma/jiashanxia/domain/OrderInfo.java

@@ -1,7 +1,6 @@
 package com.izouma.jiashanxia.domain;
 
 import com.izouma.jiashanxia.annotations.Searchable;
-import com.izouma.jiashanxia.enums.GoodType;
 import com.izouma.jiashanxia.enums.OrderInfoStatus;
 import com.izouma.jiashanxia.enums.PayMethod;
 import io.swagger.annotations.ApiModel;
@@ -57,6 +56,9 @@ public class OrderInfo extends BaseEntity {
     @ApiModelProperty(value = "充值套餐")
     private Long packageId;
 
+    @ApiModelProperty(value = "原价")
+    private BigDecimal originalPrice;
+
     @ApiModelProperty(value = "价钱")
     private BigDecimal price;
 
@@ -68,8 +70,6 @@ public class OrderInfo extends BaseEntity {
     @NotFound(action = NotFoundAction.IGNORE)
     private User user;
 
-//    private boolean isUse;
-
     @ApiModelProperty(value = "分享此链接的用户")
     private Long parentUserId;
 

+ 3 - 1
src/main/java/com/izouma/jiashanxia/domain/UserCoupon.java

@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
 import org.hibernate.annotations.Where;
 
 import javax.persistence.Entity;
+import javax.persistence.Transient;
 import java.time.LocalDateTime;
 
 @Data
@@ -34,5 +35,6 @@ public class UserCoupon extends BaseEntity {
     @ApiModelProperty(value = "有效期")
     private LocalDateTime period;
 
-
+    @Transient
+    private Coupon coupon;
 }

+ 11 - 0
src/main/java/com/izouma/jiashanxia/dto/StatisticVO.java

@@ -0,0 +1,11 @@
+package com.izouma.jiashanxia.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class StatisticVO {
+    @ApiModelProperty(value = "直推团长")
+    private int directlyPush;
+    @ApiModelProperty(value = "间推团长")
+    private int indirectPush;
+
+}

+ 35 - 4
src/main/java/com/izouma/jiashanxia/dto/UserPackageFlowVO.java

@@ -1,11 +1,12 @@
 package com.izouma.jiashanxia.dto;
 
-import com.izouma.jiashanxia.enums.FlowType;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -22,9 +23,39 @@ public class UserPackageFlowVO {
 
     private String avatar;
 
-    private FlowType type;
+//    private FlowType type;
 
     private List<GoodsVO> content;
 
-    private LocalDateTime createdAt;
+    @ApiModelProperty(value = "核销时间")
+    private LocalDateTime writeOffTime;
+
+    @ApiModelProperty(value = "数量")
+    private Integer num;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "价钱")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "规格")
+    private String specification;
+
+    @ApiModelProperty(value = "日期")
+    private LocalDate day;
+
+    @ApiModelProperty(value = "真实姓名")
+    private String realName;
+
+    @ApiModelProperty(value = "身份证")
+    private String IDNo;
+
+    @ApiModelProperty(value = "购买手机")
+    private String buyPhone;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    private String packageImg;
 }

+ 2 - 2
src/main/java/com/izouma/jiashanxia/repo/OrderInfoRepo.java

@@ -33,7 +33,7 @@ public interface OrderInfoRepo extends JpaRepository<OrderInfo, Long>, JpaSpecif
 
     OrderInfo findByTransactionId(String transactionId);
 
-    List<OrderInfo> findAllByUserId(Long userId);
-
     List<OrderInfo> findAllByStatus(OrderInfoStatus status);
+
+    List<OrderInfo> findAllByStatusAndUserId(OrderInfoStatus status, Long userId);
 }

+ 5 - 21
src/main/java/com/izouma/jiashanxia/service/OrderInfoService.java

@@ -46,8 +46,7 @@ public class OrderInfoService {
     private final SmsService              smsService;
     private final ShoppingCartRepo        shoppingCartRepo;
     private final CommissionRecordService commissionRecordService;
-    private final CouponRepo              couponRepo;
-    private final UserCouponRepo          userCouponRepo;
+    private final UserCouponService       userCouponService;
 
     public Page<OrderInfo> all(PageQuery pageQuery) {
         pageQuery.setSort("createdAt,desc");
@@ -115,7 +114,6 @@ public class OrderInfoService {
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
         String localTime = df.format(LocalDateTime.now());
         String orderNum = String.format("%05d", orderInfoRepo.orderNum() + 1);
-        BigDecimal price = aPackage.getAmount();
         OrderInfo order = OrderInfo.builder()
                 .packageId(createOrder.getPackageId())
                 .status(OrderInfoStatus.UNPAID)
@@ -130,6 +128,8 @@ public class OrderInfoService {
                 .IDNo(createOrder.getIDNo())
                 .remark(createOrder.getRemark())
                 .build();
+        order.setPrice(aPackage.getAmount().multiply(new BigDecimal(createOrder.getNum())));
+        order.setOriginalPrice(aPackage.getOriginalPrice().multiply(BigDecimal.valueOf(createOrder.getNum())));
         if (ObjectUtil.isNotEmpty(createOrder.getStockId())) {
             // 保存规格
             Stock stock = stockRepo.findById(createOrder.getStockId()).orElseThrow(new BusinessException("无规格"));
@@ -138,11 +138,10 @@ public class OrderInfoService {
             }
             order.setStockId(createOrder.getStockId());
             order.setPrice(stock.getPrice().multiply(BigDecimal.valueOf(createOrder.getNum())));
+            order.setOriginalPrice(stock.getOriginalPrice().multiply(BigDecimal.valueOf(createOrder.getNum())));
             order.setDay(stock.getDay());
             order.setSpecification(stock.getSpecification());
-            price = stock.getPrice();
         }
-        order.setPrice(price.multiply(new BigDecimal(createOrder.getNum())));
         //        orderDelayService.orderDelay(save.getId(), save.getCreatedAt());
         return orderInfoRepo.save(order);
     }
@@ -220,7 +219,6 @@ public class OrderInfoService {
         if (ObjectUtil.isNotNull(user.getPhone())) {
             smsService.sendNotification(user.getPhone(), order.getName(), order.getOrderNumber());
         }
-
 //        orderDelayService.remove(order.getId(), order.getCreatedAt());
     }
 
@@ -856,22 +854,8 @@ public class OrderInfoService {
 
         // 上级分销变 可提现
         commissionRecordService.canWithdraw(id);
-
         // 获得优惠券
-        Package aPackage = packageRepo.findById(orderInfo.getPackageId()).orElseThrow(new BusinessException("无套餐"));
-        if (CollUtil.isNotEmpty(aPackage.getCouponId())) {
-            List<Coupon> coupons = couponRepo.findAllByIdInAndPeriodAfter(aPackage.getCouponId(), LocalDateTime
-                    .now());
-            if (CollUtil.isNotEmpty(coupons)) {
-                UserCoupon build = UserCoupon.builder()
-                        .period(coupons.get(0).getPeriod())
-                        .couponId(coupons.get(0).getId())
-                        .isUse(false)
-                        .userId(orderInfo.getUserId())
-                        .build();
-                userCouponRepo.save(build);
-            }
-        }
+        userCouponService.autoGetCoupon(orderInfo.getPackageId(), orderInfo.getUserId());
         return orderInfo;
     }
 

+ 0 - 3
src/main/java/com/izouma/jiashanxia/service/OrderRefundService.java

@@ -1,8 +1,6 @@
 package com.izouma.jiashanxia.service;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.github.binarywang.wxpay.bean.entpay.EntPayRequest;
-import com.github.binarywang.wxpay.bean.entpay.EntPayResult;
 import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult;
 import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
 import com.github.binarywang.wxpay.exception.WxPayException;
@@ -19,7 +17,6 @@ import com.izouma.jiashanxia.utils.JpaUtils;
 import com.izouma.jiashanxia.utils.SnowflakeIdWorker;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.core.env.Environment;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;

+ 0 - 12
src/main/java/com/izouma/jiashanxia/service/PackageService.java

@@ -1,11 +1,8 @@
 package com.izouma.jiashanxia.service;
 
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.WxMaCodeLineColor;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.izouma.jiashanxia.config.Constants;
 import com.izouma.jiashanxia.domain.*;
 import com.izouma.jiashanxia.domain.Package;
 import com.izouma.jiashanxia.dto.PackageVO;
@@ -20,19 +17,11 @@ import com.izouma.jiashanxia.security.Authority;
 import com.izouma.jiashanxia.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import me.chanjar.weixin.common.error.WxErrorException;
-import net.coobird.thumbnailator.Thumbnails;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
-import javax.imageio.ImageIO;
-import java.awt.*;
-import java.awt.geom.Ellipse2D;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.net.URL;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -52,7 +41,6 @@ public class PackageService {
     private final StockRepo          stockRepo;
     private final SysConfigService   sysConfigService;
     private final UserService        userService;
-    private final WxMaService        wxMaService;
 
     public Page<Package> all(PageQuery pageQuery) {
         return packageRepo.findAll(JpaUtils.toSpecification(pageQuery, Package.class), JpaUtils.toPageRequest(pageQuery));

+ 23 - 0
src/main/java/com/izouma/jiashanxia/service/UserCouponService.java

@@ -1,13 +1,16 @@
 package com.izouma.jiashanxia.service;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.izouma.jiashanxia.domain.Coupon;
+import com.izouma.jiashanxia.domain.Package;
 import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.domain.UserCoupon;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.dto.UserCouponDTO;
 import com.izouma.jiashanxia.exception.BusinessException;
 import com.izouma.jiashanxia.repo.CouponRepo;
+import com.izouma.jiashanxia.repo.PackageRepo;
 import com.izouma.jiashanxia.repo.UserCouponRepo;
 import com.izouma.jiashanxia.repo.UserRepo;
 import com.izouma.jiashanxia.utils.JpaUtils;
@@ -31,6 +34,7 @@ public class UserCouponService {
     private final UserCouponRepo userCouponRepo;
     private final UserRepo       userRepo;
     private final CouponRepo     couponRepo;
+    private final PackageRepo    packageRepo;
 
     public Page<UserCoupon> all(PageQuery pageQuery) {
         return userCouponRepo.findAll(JpaUtils.toSpecification(pageQuery, UserCoupon.class), JpaUtils.toPageRequest(pageQuery));
@@ -111,4 +115,23 @@ public class UserCouponService {
         userCouponRepo.save(userCoupon);
     }
 
+    /*
+    自动获得优惠券
+     */
+    public void autoGetCoupon(Long packageId, Long userId) {
+        Package aPackage = packageRepo.findById(packageId).orElseThrow(new BusinessException("无套餐"));
+        if (CollUtil.isNotEmpty(aPackage.getCouponId())) {
+            List<Coupon> coupons = couponRepo.findAllByIdInAndPeriodAfter(aPackage.getCouponId(), LocalDateTime
+                    .now());
+            if (CollUtil.isNotEmpty(coupons)) {
+                UserCoupon build = UserCoupon.builder()
+                        .period(coupons.get(0).getPeriod())
+                        .couponId(coupons.get(0).getId())
+                        .isUse(false)
+                        .userId(userId)
+                        .build();
+                userCouponRepo.save(build);
+            }
+        }
+    }
 }

+ 51 - 39
src/main/java/com/izouma/jiashanxia/service/UserPackageFlowService.java

@@ -1,14 +1,11 @@
 package com.izouma.jiashanxia.service;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.izouma.jiashanxia.domain.GoodsInfo;
-import com.izouma.jiashanxia.domain.OrderInfo;
-import com.izouma.jiashanxia.domain.UserPackage;
-import com.izouma.jiashanxia.domain.UserPackageFlow;
+import com.izouma.jiashanxia.domain.*;
+import com.izouma.jiashanxia.domain.Package;
 import com.izouma.jiashanxia.dto.*;
 import com.izouma.jiashanxia.enums.FlowType;
 import com.izouma.jiashanxia.enums.OrderInfoStatus;
@@ -32,6 +29,8 @@ public class UserPackageFlowService {
     private final UserPackageRepo         userPackageRepo;
     private final OrderInfoRepo           orderInfoRepo;
     private final CommissionRecordService commissionRecordService;
+    private final UserCouponService       userCouponService;
+    private final PackageRepo             packageRepo;
 
 
     public Page<UserPackageFlow> all(PageQuery pageQuery) {
@@ -64,9 +63,13 @@ public class UserPackageFlowService {
 
     public Page<UserPackageFlowVO> writeOffAll1(PageQuery pageQuery) {
         pageQuery.setSort("createdAt,desc");
-        Map<Long, String> goodsMap = goodsInfoRepo.findAll()
+        Map<Long, Package> packageMap = packageRepo.findAll()
                 .stream()
-                .collect(Collectors.toMap(GoodsInfo::getId, GoodsInfo::getName));
+                .collect(Collectors.toMap(Package::getId, aPackage -> aPackage));
+
+        Map<Long, OrderInfo> orderInfoMap = orderInfoRepo.findAllByStatus(OrderInfoStatus.USED)
+                .stream()
+                .collect(Collectors.toMap(OrderInfo::getId, orderInfo -> orderInfo));
         return userPackageFlowRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
             List<Predicate> and = JpaUtils
                     .toPredicates(pageQuery, UserPackageFlow.class, root, criteriaQuery, criteriaBuilder);
@@ -81,39 +84,54 @@ public class UserPackageFlowService {
                 and.add(criteriaBuilder.or(or.toArray(new Predicate[0])));
             }
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
-        }), JpaUtils.toPageRequest(pageQuery)).map(flow -> {
-
-            UserPackageFlowVO vo = new UserPackageFlowVO();
-            BeanUtil.copyProperties(flow, vo);
-            vo.setNickname(flow.getUser().getNickname());
-            vo.setAvatar(flow.getUser().getAvatar());
-            if (CollUtil.isNotEmpty(flow.getContent())){
-                List<GoodsVO> goodsVOS = this.toGoodsVO(flow.getContent(), goodsMap);
-                vo.setContent(goodsVOS);
-            }
-            return vo;
-        });
+        }), JpaUtils.toPageRequest(pageQuery))
+                .map(flow -> this.toVO(flow, orderInfoMap.get(flow.getOrderInfoId()), packageMap));
     }
 
     public List<UserPackageFlowVO> my(Long userId) {
         List<UserPackageFlowVO> vos = new ArrayList<>();
         // 查找用户相关
         List<UserPackageFlow> flows = userPackageFlowRepo.findAllByUserIdOrderByCreatedAtDesc(userId);
-        Map<Long, String> goodsMap = goodsInfoRepo.findAll()
+        Map<Long, OrderInfo> orderInfoMap = orderInfoRepo.findAllByStatusAndUserId(OrderInfoStatus.USED, userId)
                 .stream()
-                .collect(Collectors.toMap(GoodsInfo::getId, GoodsInfo::getName));
+                .collect(Collectors.toMap(OrderInfo::getId, orderInfo -> orderInfo));
+        Set<Long> packageIds = orderInfoMap.values().stream().map(OrderInfo::getPackageId).collect(Collectors.toSet());
+        Map<Long, Package> packageMap = packageRepo.findAllById(packageIds)
+                .stream()
+                .collect(Collectors.toMap(Package::getId, aPackage -> aPackage));
+//        Map<Long, String> goodsMap = goodsInfoRepo.findAll()
+//                .stream()
+//                .collect(Collectors.toMap(GoodsInfo::getId, GoodsInfo::getName));
         // 转vo
         flows.forEach(flow -> {
-            List<GoodsVO> goodsVOS = this.toGoodsVO(flow.getContent(), goodsMap);
-            UserPackageFlowVO vo = new UserPackageFlowVO();
-            BeanUtil.copyProperties(flow, vo);
-            vo.setContent(goodsVOS);
-            vos.add(vo);
+//            if (CollUtil.isNotEmpty(flow.getContent())) {
+//                List<GoodsVO> goodsVOS = this.toGoodsVO(flow.getContent(), goodsMap);
+//                vo.setContent(goodsVOS);
+//            }
+            vos.add(this.toVO(flow, orderInfoMap.get(flow.getOrderInfoId()), packageMap));
         });
         return vos;
 
     }
 
+    public UserPackageFlowVO toVO(UserPackageFlow flow, OrderInfo orderInfo, Map<Long, Package> packageMap) {
+        UserPackageFlowVO vo = new UserPackageFlowVO();
+        BeanUtil.copyProperties(flow, vo);
+        vo.setWriteOffTime(flow.getCreatedAt());
+
+        vo.setNickname(flow.getUser().getNickname());
+        vo.setAvatar(flow.getUser().getAvatar());
+        if (ObjectUtil.isNotNull(orderInfo)) {
+            BeanUtil.copyProperties(orderInfo, vo);
+            Package aPackage = packageMap.get(orderInfo.getPackageId());
+            if (ObjectUtil.isNotNull(aPackage)) {
+                vo.setPackageImg(aPackage.getImg().get(0));
+                vo.setName(aPackage.getName());
+            }
+        }
+        return vo;
+    }
+
     public List<GoodsVO> toGoodsVO(List<GoodsDTO> goodsDTOS, Map<Long, String> goodsMap) {
 //        List<GoodsDTO> goodsDTOS = JSONObject.parseArray(content, GoodsDTO.class);
         List<GoodsVO> goodsVOS = new ArrayList<>();
@@ -130,10 +148,6 @@ public class UserPackageFlowService {
     核销
     */
     public UserPackageFlow writeOff(WriteOffSaveVO writeOffSaveVO) {
-//        if (writeOffSaveVO.getUserId().equals(writeOffSaveVO.getWriteOffUserId())) {
-//            throw new BusinessException("不可自己核销自己");
-//        }
-
         // 用户已有套餐
         Map<Long, UserPackage> userPackageMap = userPackageRepo.findAllByUserId(writeOffSaveVO.getUserId())
                 .stream()
@@ -176,33 +190,31 @@ public class UserPackageFlowService {
         if (ObjectUtil.isNotEmpty(orderInfoId)) {
             OrderInfo orderInfo = orderInfoRepo.findById(orderInfoId)
                     .orElseThrow(new BusinessException("无订单"));
-
-            if (orderInfo.getUserId().equals(writeOffSaveVO.getWriteOffUserId())) {
+            Long userId = orderInfo.getUserId();
+            if (userId.equals(writeOffSaveVO.getWriteOffUserId())) {
                 throw new BusinessException("不可自己核销自己");
             }
 
-//            if (orderInfo.isUse()) {
             if (OrderInfoStatus.USED.equals(orderInfo.getStatus())) {
                 throw new BusinessException("已核销");
             }
-//            orderInfo.setUse(true);
             orderInfo.setStatus(OrderInfoStatus.USED);
             orderInfoRepo.save(orderInfo);
-//            UserPackageFlow flow = userPackageFlowRepo.findByOrderInfoId(orderInfoId);
-//            flow.getContent().forEach(goods -> goods.setNum(-goods.getNum()));
 
             // 上级分销变 可提现
             commissionRecordService.canWithdraw(orderInfoId);
+            // 获得优惠券
+            userCouponService.autoGetCoupon(orderInfo.getPackageId(), userId);
 
             return userPackageFlowRepo.save(
                     UserPackageFlow.builder()
-                            .userId(orderInfo.getUserId())
-//                            .content(flow.getContent())
-                            .orderInfoId(writeOffSaveVO.getOrderInfoId())
+                            .userId(userId)
+                            .orderInfoId(orderInfoId)
                             .type(FlowType.WRITE_OFF)
                             .writeOffUserId(writeOffSaveVO.getWriteOffUserId())
                             .build());
         }
+
         // 余额类的
         if (writeOffSaveVO.getUserId().equals(writeOffSaveVO.getWriteOffUserId())) {
             throw new BusinessException("不可自己核销自己");

+ 0 - 4
src/main/java/com/izouma/jiashanxia/service/UserPackageService.java

@@ -3,19 +3,15 @@ package com.izouma.jiashanxia.service;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.izouma.jiashanxia.domain.PackageGoods;
-import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.domain.UserPackage;
 import com.izouma.jiashanxia.domain.UserPackageFlow;
 import com.izouma.jiashanxia.dto.GoodsDTO;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.enums.FlowType;
 import com.izouma.jiashanxia.enums.PackageType;
-import com.izouma.jiashanxia.exception.BusinessException;
-import com.izouma.jiashanxia.repo.UserRepo;
 import com.izouma.jiashanxia.repo.UserPackageFlowRepo;
 import com.izouma.jiashanxia.repo.UserPackageRepo;
 import com.izouma.jiashanxia.utils.JpaUtils;
-import io.swagger.models.auth.In;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;

+ 0 - 1
src/main/java/com/izouma/jiashanxia/web/StatisticController.java

@@ -8,7 +8,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 

+ 0 - 1
src/main/java/com/izouma/jiashanxia/web/SysConfigController.java

@@ -7,7 +7,6 @@ import com.izouma.jiashanxia.repo.SysConfigRepo;
 import com.izouma.jiashanxia.service.SysConfigService;
 import com.izouma.jiashanxia.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
-import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;

+ 0 - 1
src/main/java/com/izouma/jiashanxia/web/UserController.java

@@ -21,7 +21,6 @@ import com.izouma.jiashanxia.utils.excel.ExcelUtils;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import me.chanjar.weixin.common.error.WxErrorException;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

+ 7 - 5
src/main/java/com/izouma/jiashanxia/web/UserCouponController.java

@@ -1,11 +1,9 @@
 package com.izouma.jiashanxia.web;
 
 import com.izouma.jiashanxia.domain.Coupon;
-import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.domain.UserCoupon;
 import com.izouma.jiashanxia.dto.UserCouponDTO;
 import com.izouma.jiashanxia.repo.CouponRepo;
-import com.izouma.jiashanxia.repo.UserRepo;
 import com.izouma.jiashanxia.service.UserCouponService;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.exception.BusinessException;
@@ -23,7 +21,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 @RestController
@@ -32,7 +29,6 @@ import java.util.stream.Collectors;
 public class UserCouponController extends BaseController {
     private final UserCouponService userCouponService;
     private final UserCouponRepo    userCouponRepo;
-    private final UserRepo          userRepo;
     private final CouponRepo        couponRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
@@ -50,7 +46,13 @@ public class UserCouponController extends BaseController {
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")
     public Page<UserCoupon> all(@RequestBody PageQuery pageQuery) {
-        return userCouponService.all(pageQuery);
+        Map<Long, Coupon> couponMap = couponRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(Coupon::getId, coupon -> coupon));
+        return userCouponService.all(pageQuery).map(userCoupon -> {
+            userCoupon.setCoupon(couponMap.get(userCoupon.getCouponId()));
+            return userCoupon;
+        });
     }
 
     @PostMapping("/backAll")

BIN
src/main/resources/static/shareImg1.png