|
|
@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
+import com.cyksj.mapper.UserMapper;
|
|
|
+import com.cyksj.mapper.manage.coupon.CouponUserMapper;
|
|
|
+import com.cyksj.mapper.manage.exchange.ExchangeCodeMapper;
|
|
|
import com.cyksj.mapper.market.draw.LuckyDrawMapper;
|
|
|
import com.cyksj.mapper.market.draw.LuckyDrawRecordMapper;
|
|
|
-import com.cyksj.model.entity.LuckyDraw;
|
|
|
-import com.cyksj.model.entity.LuckyDrawRecord;
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
+import com.cyksj.model.views.DrawRecordDetail;
|
|
|
import com.cyksj.model.views.LuckyDrawView;
|
|
|
import com.cyksj.service.market.draw.LuckyDrawService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
@@ -37,6 +40,12 @@ public class LuckyDrawController {
|
|
|
|
|
|
private final LuckyDrawRecordMapper luckyDrawRecordMapper;
|
|
|
|
|
|
+ private final UserMapper userMapper;
|
|
|
+
|
|
|
+ private final ExchangeCodeMapper exchangeCodeMapper;
|
|
|
+
|
|
|
+ private final CouponUserMapper couponUserMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 新增抽奖奖品
|
|
|
*/
|
|
|
@@ -98,4 +107,33 @@ public class LuckyDrawController {
|
|
|
});
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 奖品中奖明细
|
|
|
+ */
|
|
|
+ @GetMapping("/get/detail")
|
|
|
+ public Result<SearchResult<DrawRecordDetail>> getDrawRecordDetail(HttpServletRequest request) {
|
|
|
+ SearchResult<DrawRecordDetail> search = beanSearcher.search(DrawRecordDetail.class, MapUtils.flatBuilder(request.getParameterMap())
|
|
|
+ .build());
|
|
|
+ search.getDataList().forEach(data -> {
|
|
|
+ User user = userMapper.selectById(data.getUserId());
|
|
|
+ data.setNickname(user != null ? user.getNickname() : "");
|
|
|
+ if (data.getType() == LuckyDraw.Type.virtualGoods) {
|
|
|
+ ExchangeCode code = exchangeCodeMapper.selectOne(Wrappers.lambdaQuery(ExchangeCode.class)
|
|
|
+ .eq(ExchangeCode::getUserId, data.getUserId())
|
|
|
+ .eq(ExchangeCode::getCode, data.getExCode()).select(ExchangeCode::getUseStatus).last("limit 1"));
|
|
|
+ if (code != null) {
|
|
|
+ data.setDrawStatus(code.getUseStatus() ? LuckyDrawRecord.Status.success : LuckyDrawRecord.Status.pending);
|
|
|
+ }
|
|
|
+ } else if (data.getType() == LuckyDraw.Type.coupon) {
|
|
|
+ CouponUser couponUser = couponUserMapper.selectOne(Wrappers.lambdaQuery(CouponUser.class)
|
|
|
+ .eq(CouponUser::getUserId, data.getUserId())
|
|
|
+ .eq(CouponUser::getCouponId, data.getCouponId()).select(CouponUser::getStatus).last("limit 1"));
|
|
|
+ if (couponUser != null) {
|
|
|
+ data.setDrawStatus(couponUser.getStatus() != CouponUser.Status.unused ? LuckyDrawRecord.Status.success : LuckyDrawRecord.Status.pending);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
+ }
|
|
|
}
|