Procházet zdrojové kódy

Merge branch 'dev' of 113.31.163.91:quanshu/mp-server into dev

chunping před 3 roky
rodič
revize
2b0beb327a
18 změnil soubory, kde provedl 188 přidání a 47 odebrání
  1. 24 23
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelOrderController.java
  2. 1 1
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelTicketController.java
  3. 5 7
      mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserDeliverOrderController.java
  4. 53 4
      mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketController.java
  5. 6 2
      mp-service/src/main/java/com/qs/mp/admin/domain/excel/UserTicketOrderExcel.java
  6. 3 0
      mp-service/src/main/java/com/qs/mp/admin/domain/vo/UserTicketOrderListVO.java
  7. 9 4
      mp-service/src/main/java/com/qs/mp/admin/service/impl/CouponPkgServiceImpl.java
  8. 5 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java
  9. 9 0
      mp-service/src/main/java/com/qs/mp/common/service/IShippingTemplateService.java
  10. 17 0
      mp-service/src/main/java/com/qs/mp/common/service/impl/ShippingTemplateServiceImpl.java
  11. 6 0
      mp-service/src/main/java/com/qs/mp/user/domain/vo/TicketHitPrizeBarrageVO.java
  12. 12 0
      mp-service/src/main/java/com/qs/mp/user/mapper/UserExchangeOrderMapper.java
  13. 11 0
      mp-service/src/main/java/com/qs/mp/user/service/IUserExchangeOrderService.java
  14. 7 0
      mp-service/src/main/java/com/qs/mp/user/service/impl/UserExchangeOrderServiceImpl.java
  15. 1 1
      mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java
  16. 10 0
      mp-service/src/main/resources/mapper/user/UserExchangeOrderMapper.xml
  17. 8 5
      mp-service/src/main/resources/mapper/user/UserHitPrizeMapper.xml
  18. 1 0
      mp-service/src/main/resources/mapper/user/UserTicketOrderMapper.xml

+ 24 - 23
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelOrderController.java

@@ -16,6 +16,7 @@ import com.qs.mp.common.domain.DeliveryCompany;
 import com.qs.mp.common.enums.*;
 import com.qs.mp.common.service.IDeliveryCompanyService;
 import com.qs.mp.common.service.IShippingTemplateRuleService;
+import com.qs.mp.common.service.IShippingTemplateService;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.system.domain.SysUser;
 import com.qs.mp.system.service.ISysUserService;
@@ -113,6 +114,9 @@ public class ChannelOrderController extends BaseApiController {
   @Value("${shipping.channel}")
   public Long shippingTemplateId;
 
+  @Autowired
+  private IShippingTemplateService shippingTemplateService;
+
 
 
   /**
@@ -208,29 +212,6 @@ public class ChannelOrderController extends BaseApiController {
       }
     }
 
-    // 运费计算
-    Integer freightAmt = 0;
-    // 计算运费
-    UserAddr userAddr = orderSettleVO.getAddr();
-    // TODO: 4L上线需要调整,后期放开就是取的商品里配的运费模板id
-    ShippingTemplateCalculateVO shippingTemplateCalculateVO = shippingTemplateRuleService.getShippingTemplateRuleByTemplateIdAndAreaInfo(shippingTemplateId, userAddr.getProvinceId(), userAddr.getCityId());
-    // 无法查到运费模板则默认为0
-    if (Objects.nonNull(shippingTemplateCalculateVO)) {
-
-      orderSettleVO.setFreightRemark(shippingTemplateCalculateVO.getRemark());
-      orderSettleVO.setFreightType(shippingTemplateCalculateVO.getType());
-
-      if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
-        int orderNum = param.getOrderNum();
-        freightAmt = shippingTemplateCalculateVO.getDefaultPrice();
-        if (orderNum - shippingTemplateCalculateVO.getDefaultNumber() >= shippingTemplateCalculateVO.getCreateNumber()) {
-          // 运费:首件价格 + ((商品数量 - 首件数量) / 续件数量)向上取整 * 续件价格
-          int createNumber = shippingTemplateCalculateVO.getCreateNumber();
-          freightAmt += ((int) Math.ceil(NumberUtil.div(orderNum - shippingTemplateCalculateVO.getDefaultNumber(), createNumber))) * shippingTemplateCalculateVO.getCreatePrice();
-        }
-      }
-    }
-
     // 订单金额计算
     Integer orderAmt = 0;
     Integer pkgNum = 0;
@@ -254,6 +235,26 @@ public class ChannelOrderController extends BaseApiController {
       orderSettleVO.getItems().add(cartVO);
       pkgNum += param.getOrderNum();
     }
+
+
+    // 运费计算
+    Integer freightAmt = 0;
+    // 计算运费
+    UserAddr userAddr = orderSettleVO.getAddr();
+    // TODO: 4L上线需要调整,后期放开就是取的商品里配的运费模板id
+    ShippingTemplateCalculateVO shippingTemplateCalculateVO = shippingTemplateRuleService.getShippingTemplateRuleByTemplateIdAndAreaInfo(shippingTemplateId, userAddr.getProvinceId(), userAddr.getCityId());
+    // 无法查到运费模板则默认为0
+    if (Objects.nonNull(shippingTemplateCalculateVO)) {
+
+      orderSettleVO.setFreightRemark(shippingTemplateCalculateVO.getRemark());
+      orderSettleVO.setFreightType(shippingTemplateCalculateVO.getType());
+
+      if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
+        // 运费计算
+        freightAmt = shippingTemplateService.calculateFreightAmt(pkgNum, shippingTemplateCalculateVO);
+      }
+    }
+
     // 设置运费
     orderSettleVO.setFreightAmt(freightAmt);
 

+ 1 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelTicketController.java

@@ -64,7 +64,7 @@ public class ChannelTicketController extends BaseApiController {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
     Channel channel = channelService.getById(channelId);
     List<Long> channelIds = new ArrayList<>();
-    if (StringUtils.isBlank(channel.getChannelNo())) {
+    if (StringUtils.isNotBlank(channel.getChannelNo())) {
       String[] split = StringUtils.split(channel.getChannelNo(), ".");
       for (String s : split) {
         channelIds.add(Long.valueOf(s));

+ 5 - 7
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserDeliverOrderController.java

@@ -87,6 +87,9 @@ public class UserDeliverOrderController extends BaseApiController {
   @Autowired
   private IShippingTemplateRuleService shippingTemplateRuleService;
 
+  @Autowired
+  private IShippingTemplateService shippingTemplateService;
+
   @Value("${shipping.user}")
   public Long shippingTemplateId;
 
@@ -189,13 +192,8 @@ public class UserDeliverOrderController extends BaseApiController {
 
       if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
         int goodsNum = prizeStorageList.stream().mapToInt(UserPrizeStorage::getGoodsNum).sum();
-        freightAmt = shippingTemplateCalculateVO.getDefaultPrice();
-        if (goodsNum - shippingTemplateCalculateVO.getDefaultNumber() >= shippingTemplateCalculateVO.getCreateNumber()) {
-
-          // 运费:首件价格 + ((商品数量 - 首件数量) / 续件数量)向上取整 * 续件价格
-          int createNumber = shippingTemplateCalculateVO.getCreateNumber();
-          freightAmt += ((int) Math.ceil(NumberUtil.div(goodsNum - shippingTemplateCalculateVO.getDefaultNumber(), createNumber))) * shippingTemplateCalculateVO.getCreatePrice();
-        }
+        // 计算运费
+        freightAmt = shippingTemplateService.calculateFreightAmt(goodsNum,shippingTemplateCalculateVO);
       }
 
     }

+ 53 - 4
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketController.java

@@ -23,12 +23,14 @@ import com.qs.mp.admin.service.ITicketService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.*;
+import com.qs.mp.common.utils.DateUtils;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.framework.security.handle.HostHolder;
 import com.qs.mp.user.domain.UserHitPrize;
 import com.qs.mp.user.domain.UserTicketOrderItem;
 import com.qs.mp.user.domain.vo.TicketHitPrizeBarrageVO;
+import com.qs.mp.user.service.IUserExchangeOrderService;
 import com.qs.mp.user.service.IUserHitPrizeService;
 import com.qs.mp.user.service.IUserTicketOrderItemService;
 import com.qs.mp.utils.SecurityUtils;
@@ -36,10 +38,10 @@ import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.lang.reflect.Array;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.*;
 
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
@@ -83,6 +85,9 @@ public class UserTicketController extends BaseApiController {
   @Autowired
   private HostHolder hostHolder;
 
+  @Autowired
+  private IUserExchangeOrderService userExchangeOrderService;
+
   /**
    * 盲票进货列表
    */
@@ -265,6 +270,34 @@ public class UserTicketController extends BaseApiController {
     List<TicketHitPrizeBarrageVO> listOne = new ArrayList<>();
     List<TicketHitPrizeBarrageVO> listTwo = new ArrayList<>();
 
+    // 获取除当前用户外最近10条盲豆大于1000的商品兑换数据
+    QueryWrapper<TicketHitPrizeBarrageVO> queryWrapper = new QueryWrapper<>();
+    queryWrapper.ge("t1.order_coin", 1000);
+    queryWrapper.notIn("t1.user_id", userId);
+    queryWrapper.orderByDesc("t1.created_time");
+    queryWrapper.last("limit 10");
+    List<TicketHitPrizeBarrageVO> exchangeList = userExchangeOrderService.listByWrapper(queryWrapper);
+
+    // 获取当前用户当天的商品兑换数据
+    LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);
+    LocalDateTime endTime = LocalDateTime.now().withNano(0);
+    queryWrapper.clear();
+    queryWrapper.eq("t1.user_id", userId);
+    queryWrapper.between("t1.created_time", startTime, endTime);
+    List<TicketHitPrizeBarrageVO> userExchangeList = userExchangeOrderService.listByWrapper(queryWrapper);
+
+
+    if (CollectionUtils.isNotEmpty(userExchangeList)) {
+      exchangeList.addAll(userExchangeList);
+    }
+
+    for (TicketHitPrizeBarrageVO ticketHitPrizeBarrageVO : exchangeList) {
+      // 设置为兑换类型
+      ticketHitPrizeBarrageVO.setType(2);
+    }
+
+
+
     // 获取用户当天中奖的 2 条弹幕
     if (userId != 0L) {
       List<TicketHitPrizeBarrageVO> ticketHitPrizeBarrageVOList = userHitPrizeService.hitPrizeBarrageByUserId(userId);
@@ -275,6 +308,9 @@ public class UserTicketController extends BaseApiController {
             ticketHitPrizeBarrageVOList.get(i).setPrizeInfo(ticketHitPrizeBarrageVOList.get(i).getPrizeInfo() + ticketHitPrizeBarrageVOList.get(i).getValue() + "颗");
           }
 
+          // 设置类型为中奖
+          ticketHitPrizeBarrageVOList.get(i).setType(1);
+
           if (i % 2 == 0) {
             listOne.add(ticketHitPrizeBarrageVOList.get(i));
           }else {
@@ -286,6 +322,17 @@ public class UserTicketController extends BaseApiController {
     // 获取除该用户外,最近中奖的 40 条弹幕信息
     List<TicketHitPrizeBarrageVO> ticketHitPrizeBarrageVOList = userHitPrizeService.hitPrizeBarrage(userId);
 
+
+    for (TicketHitPrizeBarrageVO ticketHitPrizeBarrageVO : ticketHitPrizeBarrageVOList) {
+      // 设置为中奖类型
+      ticketHitPrizeBarrageVO.setType(1);
+    }
+
+    // 增加兑奖信息并且按时间排序
+    ticketHitPrizeBarrageVOList.addAll(exchangeList);
+
+    ticketHitPrizeBarrageVOList.sort((o1, o2) -> o2.getCreatedTime().compareTo(o1.getCreatedTime()));
+
     // 获取除该用户外,近 6 个月,8 条高级中奖弹幕信息
     List<TicketHitPrizeBarrageVO> expensiveHitPrizeBarrageList = userHitPrizeService.expensiveHitPrizeBarrage(userId);
     int count = 0;
@@ -305,6 +352,8 @@ public class UserTicketController extends BaseApiController {
 
       // 插入大奖弹幕
       if (count != 0 && i % 5 == 0) {
+        // 设置类型为中奖
+        expensiveHitPrizeBarrageList.get(index).setType(1);
         if (index % 2 == 0) {
           listOne.add(expensiveHitPrizeBarrageList.get(index));
         }else {

+ 6 - 2
mp-service/src/main/java/com/qs/mp/admin/domain/excel/UserTicketOrderExcel.java

@@ -34,12 +34,16 @@ public class UserTicketOrderExcel {
     @Excel(name = "盲票售价")
     private Integer salePrice;
 
-    @Excel(name = "支付金额")
-    private Integer payAmt;
+    @Excel(name = "购买数量")
+    private Integer ticketNum;
 
     @Excel(name = "优惠金额")
     private Integer discountAmt;
 
+    @Excel(name = "实付金额")
+    private Integer payAmt;
+
+
     @Excel(name = "用户昵称")
     private String nickName;
 

+ 3 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/UserTicketOrderListVO.java

@@ -33,6 +33,9 @@ public class UserTicketOrderListVO {
     @ApiModelProperty("优惠金额")
     private Integer discountAmt;
 
+    @ApiModelProperty("盲票数量")
+    private Integer ticketNum;
+
     @ApiModelProperty("实付金额")
     private Integer payAmt;
 

+ 9 - 4
mp-service/src/main/java/com/qs/mp/admin/service/impl/CouponPkgServiceImpl.java

@@ -118,7 +118,12 @@ public class CouponPkgServiceImpl extends ServiceImpl<CouponPkgMapper, CouponPkg
             throw new ServiceException("券包ID不正确");
         }
 
-        if (!CouponPkgStatusEnum.PUT_INIT.getValue().equals(couponPkgParam.getStatus())) {
+        CouponPkg couponPkg = this.getById(couponPkgParam.getId());
+        if (Objects.isNull(couponPkg)) {
+            throw new ServiceException("券包不存在");
+        }
+
+        if (!CouponPkgStatusEnum.PUT_INIT.getValue().equals(couponPkg.getStatus())) {
             throw new ServiceException("券包只有待上架才可编辑");
         }
 
@@ -133,9 +138,9 @@ public class CouponPkgServiceImpl extends ServiceImpl<CouponPkgMapper, CouponPkg
                 .eq(CouponPkgItem::getCouponPkgId, couponPkgParam.getId()));
 
         // 更新券包
-        CouponPkg couponPkg = new CouponPkg();
+        couponPkg = new CouponPkg();
         BeanUtils.copyProperties(couponPkgParam, couponPkg);
-        couponPkgParam.setPicUrl("coupon_def.jpeg");
+        couponPkg.setPicUrl("coupon_def.jpeg");
         this.updateById(couponPkg);
 
         // 创建券包明细
@@ -163,7 +168,7 @@ public class CouponPkgServiceImpl extends ServiceImpl<CouponPkgMapper, CouponPkg
 
         CouponPkg couponPkg = new CouponPkg();
         BeanUtils.copyProperties(couponPkgParam, couponPkg);
-        couponPkgParam.setPicUrl("coupon_def.jpeg");
+        couponPkg.setPicUrl("coupon_def.jpeg");
         this.save(couponPkg);
 
         List<CouponPkgItem> params = new ArrayList<>();

+ 5 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java

@@ -194,6 +194,11 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
             awardsPrize.setTitle(coupon.getTitle());
             awardsPrize.setPicUrl(coupon.getPicUrl());
             awardsPrize.setValue(coupon.getDiscount());
+          } else if (ticketAwardsPrizeParam.getPrizeType() == TicketPrizeTypeEnum.COUPON_PKG) {
+            CouponPkg couponPkg = couponPkgService.getById(awardsPrize.getRefId());
+            awardsPrize.setTitle(couponPkg.getTitle());
+            awardsPrize.setValue(couponPkg.getFacePrice());
+            awardsPrize.setPicUrl(couponPkg.getPicUrl());
           } else {
             awardsPrize.setTitle("盲豆");
             awardsPrize.setPicUrl("md.jpeg");

+ 9 - 0
mp-service/src/main/java/com/qs/mp/common/service/IShippingTemplateService.java

@@ -1,7 +1,9 @@
 package com.qs.mp.common.service;
 
 import com.qs.mp.admin.domain.param.ShippingTemplateParam;
+import com.qs.mp.admin.domain.vo.ShippingTemplateCalculateVO;
 import com.qs.mp.admin.domain.vo.ShippingTemplateVO;
+import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
 import com.qs.mp.common.domain.ShippingTemplate;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -44,4 +46,11 @@ public interface IShippingTemplateService extends IService<ShippingTemplate> {
      */
     boolean deleteShippingTemplate(Long id);
 
+    /**
+     * 计算运费
+     * @param num  购买数量
+     * @param shippingTemplateCalculateVO   运费模板计算入参类
+     * @return
+     */
+    int calculateFreightAmt(Integer num, ShippingTemplateCalculateVO shippingTemplateCalculateVO);
 }

+ 17 - 0
mp-service/src/main/java/com/qs/mp/common/service/impl/ShippingTemplateServiceImpl.java

@@ -1,21 +1,26 @@
 package com.qs.mp.common.service.impl;
 
+import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qs.mp.admin.domain.param.ShippingTemplateParam;
 import com.qs.mp.admin.domain.param.ShippingTemplateRuleAreaParam;
 import com.qs.mp.admin.domain.param.ShippingTemplateRuleParam;
+import com.qs.mp.admin.domain.vo.ShippingTemplateCalculateVO;
 import com.qs.mp.admin.domain.vo.ShippingTemplateRuleAreaVO;
 import com.qs.mp.admin.domain.vo.ShippingTemplateRuleVO;
 import com.qs.mp.admin.domain.vo.ShippingTemplateVO;
+import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
 import com.qs.mp.common.domain.ShippingTemplate;
 import com.qs.mp.common.domain.ShippingTemplateRule;
 import com.qs.mp.common.domain.ShippingTemplateRuleArea;
+import com.qs.mp.common.enums.ShippingTemplateRuleTypeEnum;
 import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.mapper.ShippingTemplateMapper;
 import com.qs.mp.common.service.IShippingTemplateRuleAreaService;
 import com.qs.mp.common.service.IShippingTemplateRuleService;
 import com.qs.mp.common.service.IShippingTemplateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qs.mp.user.domain.UserAddr;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +50,18 @@ public class ShippingTemplateServiceImpl extends ServiceImpl<ShippingTemplateMap
     @Autowired
     private IShippingTemplateRuleAreaService shippingTemplateRuleAreaService;
 
+    @Override
+    public int calculateFreightAmt(Integer num, ShippingTemplateCalculateVO shippingTemplateCalculateVO) {
+        int freightAmt = shippingTemplateCalculateVO.getDefaultPrice();
+        if (num - shippingTemplateCalculateVO.getDefaultNumber() >= shippingTemplateCalculateVO.getCreateNumber()) {
+            // 运费:首件价格 + ((商品数量 - 首件数量) / 续件数量)向上取整 * 续件价格
+            int createNumber = shippingTemplateCalculateVO.getCreateNumber();
+            freightAmt += ((int) Math.ceil(NumberUtil.div(num - shippingTemplateCalculateVO.getDefaultNumber(), createNumber))) * shippingTemplateCalculateVO.getCreatePrice();
+        }
+        return freightAmt;
+    }
+
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean deleteShippingTemplate(Long id) {

+ 6 - 0
mp-service/src/main/java/com/qs/mp/user/domain/vo/TicketHitPrizeBarrageVO.java

@@ -9,6 +9,7 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -36,5 +37,10 @@ public class TicketHitPrizeBarrageVO {
     @ApiModelProperty("奖品类型")
     private String prizeType;
 
+    @ApiModelProperty("弹幕类型 1中奖,2兑换")
+    private Integer type;
+
+    @ApiModelProperty("创建时间")
+    private Date createdTime;
 
 }

+ 12 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/UserExchangeOrderMapper.java

@@ -1,7 +1,13 @@
 package com.qs.mp.user.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.user.domain.UserExchangeOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.user.domain.vo.TicketHitPrizeBarrageVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @auther quanshu
@@ -10,4 +16,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UserExchangeOrderMapper extends BaseMapper<UserExchangeOrder> {
 
+    /**
+     * 根据条件获取用户兑奖列表
+     * @param queryWrapper
+     * @return
+     */
+    List<TicketHitPrizeBarrageVO> listByWrapper(@Param(Constants.WRAPPER) QueryWrapper<TicketHitPrizeBarrageVO> queryWrapper);
 }

+ 11 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserExchangeOrderService.java

@@ -1,7 +1,11 @@
 package com.qs.mp.user.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.user.domain.UserExchangeOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.mp.user.domain.vo.TicketHitPrizeBarrageVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -21,4 +25,11 @@ public interface IUserExchangeOrderService extends IService<UserExchangeOrder> {
    * @return 余额不足返回false,其他抛异常
    */
   boolean exchange(Long userId, Long goodsId, Long skuId, int orderNum);
+
+  /**
+   * 根据条件获取用户兑奖记录列表
+   * @param queryWrapper
+   * @return
+   */
+  List<TicketHitPrizeBarrageVO> listByWrapper(QueryWrapper<TicketHitPrizeBarrageVO> queryWrapper);
 }

+ 7 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserExchangeOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qs.mp.user.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.admin.domain.Goods;
 import com.qs.mp.admin.domain.GoodsSku;
@@ -15,6 +16,7 @@ import com.qs.mp.system.service.id.BizIdGenerator;
 import com.qs.mp.user.domain.UserCoin;
 import com.qs.mp.user.domain.UserExchangeOrder;
 import com.qs.mp.user.domain.UserPrizeStorage;
+import com.qs.mp.user.domain.vo.TicketHitPrizeBarrageVO;
 import com.qs.mp.user.mapper.UserExchangeOrderMapper;
 import com.qs.mp.user.service.IUserCoinService;
 import com.qs.mp.user.service.IUserExchangeOrderService;
@@ -53,6 +55,11 @@ public class UserExchangeOrderServiceImpl extends ServiceImpl<UserExchangeOrderM
   @Autowired
   private BizIdGenerator bizIdGenerator;
 
+  @Override
+  public List<TicketHitPrizeBarrageVO> listByWrapper(QueryWrapper<TicketHitPrizeBarrageVO> queryWrapper) {
+    return getBaseMapper().listByWrapper(queryWrapper);
+  }
+
   @Override
   @Transactional
   public boolean exchange(Long userId, Long goodsId, Long skuId, int orderNum) {

+ 1 - 1
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -242,7 +242,7 @@ public class UserTicketOrderServiceImpl extends
     UserTicketOrder ticketOrder = new UserTicketOrder();
     ticketOrder.setOrderId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
     ticketOrder.setUserId(userId);
-    ticketOrder.setTitle(ticket.getTitle());
+    ticketOrder.setTitle(ticketBox.getTitle());
     ticketOrder.setBoxId(ticket.getBoxId());
     ticketOrder.setSalePrice(ticketBox.getSalePrice());
     ticketOrder.setSaleCommRate(ticketBox.getSaleCommRate());

+ 10 - 0
mp-service/src/main/resources/mapper/user/UserExchangeOrderMapper.xml

@@ -18,4 +18,14 @@
         order_id, user_id, goods_id, sku_id, order_coin, created_time, updated_time
     </sql>
 
+    <select id="listByWrapper" resultType="com.qs.mp.user.domain.vo.TicketHitPrizeBarrageVO">
+        select  t2.avatar,
+                t2.nick_name,
+                t1.created_time,
+               t3.title prizeInfo
+        from mp_user_exchange_order t1
+         left join sys_user t2 on t1.user_id = t2.user_id
+         left join mp_goods t3 on t1.goods_id = t3.goods_id
+         ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 8 - 5
mp-service/src/main/resources/mapper/user/UserHitPrizeMapper.xml

@@ -26,11 +26,12 @@
                 su.avatar avatar,
                 mtap.title prizeInfo,
                 mtap.value value,
-                mtap.prize_type prizeType
+                mtap.prize_type prizeType,
+                muhp.created_time
 
         FROM mp_user_hit_prize muhp
-                 LEFT JOIN mp_ticket_awards_prize mtap ON muhp.prize_id = mtap.prize_id
-                 LEFT JOIN sys_user su ON muhp.user_id = su.user_id
+         LEFT JOIN mp_ticket_awards_prize mtap ON muhp.prize_id = mtap.prize_id
+         LEFT JOIN sys_user su ON muhp.user_id = su.user_id
         WHERE muhp.prize_id != ''
         AND muhp.user_id != #{userId}
         AND ((mtap.prize_type = 'coin' AND mtap.value >= 100) OR mtap.prize_type='goods')
@@ -43,7 +44,8 @@
                 su.avatar avatar,
                 mtap.title prizeInfo,
                 mtap.value value,
-                mtap.prize_type prizeType
+                mtap.prize_type prizeType,
+                muhp.created_time
 
         FROM mp_user_hit_prize muhp
                  LEFT JOIN mp_ticket_awards_prize mtap ON muhp.prize_id = mtap.prize_id
@@ -61,7 +63,8 @@
                 su.avatar avatar,
                 mtap.title prizeInfo,
                 mtap.value value,
-                mtap.prize_type prizeType
+                mtap.prize_type prizeType,
+                muhp.created_time
         FROM mp_user_hit_prize muhp
                  LEFT JOIN mp_ticket_awards_prize mtap ON muhp.prize_id = mtap.prize_id
                  LEFT JOIN sys_user su ON muhp.user_id = su.user_id

+ 1 - 0
mp-service/src/main/resources/mapper/user/UserTicketOrderMapper.xml

@@ -139,6 +139,7 @@
 				t1.sale_price,
 				t1.pay_amt,
 				t1.discount_amt,
+				t1.ticket_num,
 				t2.nick_name,
 				t2.phonenumber phone,
 				t3.type boxType