zoujiajian 1 vuosi sitten
vanhempi
sitoutus
6093effb47

+ 50 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ExchangeCodeDetailView.java

@@ -0,0 +1,50 @@
+package com.cyksj.model.views;
+
+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;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: ExchangeCodeDetailView
+ * 创建者: JavaZou
+ * 创建时间:2024/12/11 15:38
+ */
+@Getter
+@Setter
+@SearchBean(tables = "exchange_code ec")
+public class ExchangeCodeDetailView {
+	@DbField("ec.code")
+	private String code;
+
+	@DbField("ec.sku_ids")
+	private String skuIds;
+
+	/**
+	 * 平台规格
+	 */
+	@DbIgnore
+	private String title;
+
+	/**
+	 * 使用状态
+	 */
+	@DbField("ec.use_status")
+	private Boolean useStatus;
+
+	/**
+	 * 使用时间
+	 */
+	@DbField("ec.use_time")
+	private Date useTime;
+
+	/**
+	 * 兑换形式 1兑换码 2兑换链接
+	 */
+	@DbField("ec.code_type")
+	private Integer codeType;
+}

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ExchangeCodeView.java

@@ -67,6 +67,9 @@ public class ExchangeCodeView {
 	@DbField("ec.code_type")
 	private Integer codeType;
 
+	@DbIgnore
+	private Long orderId;
+
 	/**
 	 * 生成日期
 	 */

+ 10 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/exchange/ExchangeCodeController.java

@@ -5,16 +5,18 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.Log;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
-import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.model.entity.CmsUser;
+import com.cyksj.model.entity.OrderDon;
 import com.cyksj.model.excel.ExcelExchangeCodeData;
 import com.cyksj.model.request.ExchangeCodeReq;
 import com.cyksj.model.views.ExchangeCodeView;
@@ -33,6 +35,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.Optional;
 
 /*
  *项目名: netflix
@@ -55,7 +58,7 @@ public class ExchangeCodeController {
 
 	private final GoodsDonSkuMapper skuMapper;
 
-	private final GoodsDonMapper goodsDonMapper;
+	private final OrderDonMapper orderDonMapper;
 
 	/**
 	 * 生成兑换码 并导出
@@ -96,6 +99,11 @@ public class ExchangeCodeController {
 			try {
 				List<Long> skuIds = Jsons.parseList(data.getSkuIds(), Long.class);
 				data.setTitle(skuMapper.selectExchangeTitle(skuIds));
+				if (data.getUseStatus()) {
+					Optional.ofNullable(orderDonMapper.selectOne(Wrappers.lambdaQuery(OrderDon.class)
+							.eq(OrderDon::getExCode, data.getCode())
+							.last("limit 1"))).ifPresent(exCodeOrder -> data.setOrderId(exCodeOrder.getId()));
+				}
 			} catch (Exception e) {
 			}
 		});

+ 11 - 0
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -6,6 +6,7 @@ import cn.hutool.extra.servlet.ServletUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.NoSubmit;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayApiCode;
 import com.cyksj.enums.GatewayResponse;
@@ -120,6 +121,16 @@ public class UserController {
         return exchangeCodeService.getTicketByExchangeCode(exchangeCodeTicket, userId);
     }
 
+    /**
+     * 车票兑换码详情
+     */
+    @GetMapping("/get/ticket/code/detail/{code}")
+    public Result<ExchangeCodeDetailView> getTicketCodeDetail(@PathVariable String code) throws Exception {
+        ExchangeCodeDetailView exchangeCodeDetailView = beanSearcher.searchFirst(ExchangeCodeDetailView.class, MapUtils.flatBuilder(request.getParameterMap()).field(ExchangeCodeDetailView::getCode, code).build());
+        exchangeCodeDetailView.setTitle(skuMapper.selectExchangeTitle(Jsons.parseList(exchangeCodeDetailView.getSkuIds(), Long.class)));
+        return GatewayResponse.SUCCESS.newBuilder().toResult(exchangeCodeDetailView);
+    }
+
     /**
      * 个人中心详情
      */