Procházet zdrojové kódy

奖品库返回回收相关信息

cup před 2 roky
rodič
revize
57a951d040

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

@@ -3,8 +3,10 @@ package com.qs.mp.web.controller.api.user;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qs.mp.admin.domain.Goods;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.vo.TicketListVO;
+import com.qs.mp.admin.service.IGoodsService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.PrizeStorageStatusEnum;
@@ -17,7 +19,9 @@ import com.qs.mp.user.domain.UserCoin;
 import com.qs.mp.user.domain.UserCoinLog;
 import com.qs.mp.user.domain.UserCoupon;
 import com.qs.mp.user.domain.UserPrizeStorage;
+import com.qs.mp.user.domain.param.UserPrizeStorageQueryParam;
 import com.qs.mp.user.domain.vo.UserCouponVO;
+import com.qs.mp.user.domain.vo.UserPrizeStorageVO;
 import com.qs.mp.user.service.IUserCoinLogService;
 import com.qs.mp.user.service.IUserCoinService;
 import com.qs.mp.user.service.IUserCouponService;
@@ -27,6 +31,10 @@ import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -34,6 +42,7 @@ import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -67,6 +76,9 @@ public class UserMineController extends BaseApiController {
   @Autowired
   private MapperFacade mapperFacade;
 
+  @Autowired
+  private IGoodsService goodsService;
+
   /**
    * 我的票包
    */
@@ -144,18 +156,33 @@ public class UserMineController extends BaseApiController {
    */
   @PostMapping("/prize/list")
   @ApiOperation(value = "我的实物奖品库", notes = "获取我的实物奖品库")
-  public TableDataInfo listPrize(@RequestBody JSONObject param) {
+  public TableDataInfo listPrize(@RequestBody UserPrizeStorageQueryParam userPrizeStorageQueryParam) {
     Long userId = SecurityUtils.getLoginUser().getUserId();
     startPage();
-    List<UserPrizeStorage> userPrizeStorageList = userPrizeStorageService.list(
-        new LambdaQueryWrapper<UserPrizeStorage>()
+    LambdaQueryWrapper<UserPrizeStorage> queryWrapper = new LambdaQueryWrapper<UserPrizeStorage>()
             .eq(UserPrizeStorage::getUserId, userId)
-            .eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED)
-            .orderByDesc(UserPrizeStorage::getCreatedTime));
-    return getDataTable(userPrizeStorageList);
+            .orderByDesc(UserPrizeStorage::getCreatedTime);
+    if (userPrizeStorageQueryParam.getStatus() != null && PrizeStorageStatusEnum.RECOVERY.getValue().equals(userPrizeStorageQueryParam.getStatus())) {
+      queryWrapper.eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.RECOVERY);
+    }else {
+      queryWrapper.eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED);
+    }
+    List<UserPrizeStorage> userPrizeStorageList = userPrizeStorageService.list(queryWrapper);
+    List<UserPrizeStorageVO> userPrizeStorageVOS = new ArrayList<>();
+    if (!CollectionUtils.isEmpty(userPrizeStorageList)) {
+      for (UserPrizeStorage userPrizeStorage : userPrizeStorageList) {
+        UserPrizeStorageVO userPrizeStorageVO = new UserPrizeStorageVO();
+        BeanUtils.copyProperties(userPrizeStorage,userPrizeStorageVO);
+        Goods goods = goodsService.getById(userPrizeStorage.getGoodsId());
+        userPrizeStorageVO.setDiscountRate(goods.getDiscountRate());
+        int refundNum = BigDecimal.valueOf(goods.getExchangePrice()).multiply(goods.getDiscountRate()).divide(BigDecimal.valueOf(100),1, RoundingMode.HALF_UP).intValue();
+        userPrizeStorageVO.setReturnCoin(refundNum);
+        userPrizeStorageVOS.add(userPrizeStorageVO);
+      }
+    }
+    return getDataTable(userPrizeStorageVOS);
   }
 
-
   /**
    * 我的
    */

+ 3 - 3
mp-service/src/main/java/com/qs/mp/user/domain/UserPrizeStorage.java

@@ -84,7 +84,7 @@ public class UserPrizeStorage implements Serializable {
   private Integer goodsNum;
 
   /**
-   * 入库类型;1盲票兑奖、2盲豆兑换
+   * 入库类型;1盲票兑奖、2盲豆兑换、3营销活动
    */
   @TableField("in_type")
   @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
@@ -99,11 +99,11 @@ public class UserPrizeStorage implements Serializable {
   private String refId;
 
   /**
-   * 状态;1待提货、2已提货
+   * 状态;1待提货、2已提货,3已回收
    */
   @TableField("status")
   @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  @ApiModelProperty("状态;1待提货、2已提货")
+  @ApiModelProperty("状态;1待提货、2已提货,3已回收")
   private PrizeStorageStatusEnum status;
 
   /**

+ 24 - 0
mp-service/src/main/java/com/qs/mp/user/domain/param/UserPrizeStorageQueryParam.java

@@ -0,0 +1,24 @@
+package com.qs.mp.user.domain.param;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.qs.mp.common.enums.PrizeStorageInTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户实物奖品库查询入参类
+ * @author Cup
+ * @date 2022/5/24
+ */
+@ApiModel("用户实物奖品库查询入参类")
+@Data
+public class UserPrizeStorageQueryParam {
+
+    @ApiModelProperty("状态;1待提货、2已提货,3已回收")
+    private Integer status;
+
+
+}

+ 25 - 0
mp-service/src/main/java/com/qs/mp/user/domain/vo/UserPrizeStorageVO.java

@@ -0,0 +1,25 @@
+package com.qs.mp.user.domain.vo;
+
+import com.qs.mp.user.domain.UserPrizeStorage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 用户实物奖品库出参类
+ * @author Cup
+ * @date 2022/5/24
+ */
+@ApiModel("用户事务奖品库出参类")
+@Data
+public class UserPrizeStorageVO extends UserPrizeStorage {
+
+    @ApiModelProperty("回收折扣")
+    private BigDecimal discountRate;
+
+    @ApiModelProperty("回收返还盲豆数")
+    private Integer returnCoin;
+
+}