Selaa lähdekoodia

fix 后台中奖明细

zoujiajian 3 vuotta sitten
vanhempi
sitoutus
d297a7b47d

+ 55 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DrawRecordDetail.java

@@ -0,0 +1,55 @@
+package com.cyksj.model.views;
+
+import com.cyksj.model.entity.*;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: DrawRecordDetail
+ *创建者: JavaZou
+ *创建时间:2023/1/17 10:25
+ */
+@Getter
+@Setter
+@SearchBean(tables = "lucky_draw_record lr left join order_don od on od.id = lr.order_id")
+public class DrawRecordDetail {
+
+	@DbField("lr.draw_id")
+	private Long drawId;
+
+	@DbField("lr.user_id")
+	private Long userId;
+
+	@DbField("lr.coupon_id")
+	private Long couponId;
+
+	/**
+	 * 奖品类型
+	 */
+	@DbField("lr.type")
+	private LuckyDraw.Type type;
+
+	@DbIgnore
+	private String nickname;
+
+	/**
+	 * 领取状态
+	 */
+	@DbField("lr.status")
+	private LuckyDrawRecord.Status drawStatus;
+
+	@DbField("od.status")
+	private OrderDon.Status orderDonStatus;
+
+	@DbField("lr.ex_code")
+	private String exCode;
+
+	@DbField("lr.created_time")
+	private Date createTime;
+}

+ 40 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/market/LuckyDrawController.java

@@ -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);
+	}
 }