|
@@ -3,8 +3,10 @@ package com.qs.mp.web.controller.api.user;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
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.Ticket;
|
|
import com.qs.mp.admin.domain.vo.TicketListVO;
|
|
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.domain.AjaxResult;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.enums.PrizeStorageStatusEnum;
|
|
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.UserCoinLog;
|
|
import com.qs.mp.user.domain.UserCoupon;
|
|
import com.qs.mp.user.domain.UserCoupon;
|
|
import com.qs.mp.user.domain.UserPrizeStorage;
|
|
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.UserCouponVO;
|
|
|
|
+import com.qs.mp.user.domain.vo.UserPrizeStorageVO;
|
|
import com.qs.mp.user.service.IUserCoinLogService;
|
|
import com.qs.mp.user.service.IUserCoinLogService;
|
|
import com.qs.mp.user.service.IUserCoinService;
|
|
import com.qs.mp.user.service.IUserCoinService;
|
|
import com.qs.mp.user.service.IUserCouponService;
|
|
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 com.qs.mp.web.controller.common.BaseApiController;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -34,6 +42,7 @@ import io.swagger.annotations.ApiResponse;
|
|
import io.swagger.annotations.ApiResponses;
|
|
import io.swagger.annotations.ApiResponses;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import ma.glasnost.orika.MapperFacade;
|
|
import ma.glasnost.orika.MapperFacade;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
@@ -67,6 +76,9 @@ public class UserMineController extends BaseApiController {
|
|
@Autowired
|
|
@Autowired
|
|
private MapperFacade mapperFacade;
|
|
private MapperFacade mapperFacade;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IGoodsService goodsService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 我的票包
|
|
* 我的票包
|
|
*/
|
|
*/
|
|
@@ -144,18 +156,33 @@ public class UserMineController extends BaseApiController {
|
|
*/
|
|
*/
|
|
@PostMapping("/prize/list")
|
|
@PostMapping("/prize/list")
|
|
@ApiOperation(value = "我的实物奖品库", notes = "获取我的实物奖品库")
|
|
@ApiOperation(value = "我的实物奖品库", notes = "获取我的实物奖品库")
|
|
- public TableDataInfo listPrize(@RequestBody JSONObject param) {
|
|
|
|
|
|
+ public TableDataInfo listPrize(@RequestBody UserPrizeStorageQueryParam userPrizeStorageQueryParam) {
|
|
Long userId = SecurityUtils.getLoginUser().getUserId();
|
|
Long userId = SecurityUtils.getLoginUser().getUserId();
|
|
startPage();
|
|
startPage();
|
|
- List<UserPrizeStorage> userPrizeStorageList = userPrizeStorageService.list(
|
|
|
|
- new LambdaQueryWrapper<UserPrizeStorage>()
|
|
|
|
|
|
+ LambdaQueryWrapper<UserPrizeStorage> queryWrapper = new LambdaQueryWrapper<UserPrizeStorage>()
|
|
.eq(UserPrizeStorage::getUserId, userId)
|
|
.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);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 我的
|
|
* 我的
|
|
*/
|
|
*/
|