Pārlūkot izejas kodu

fix 连续抵扣金额不对;企业采购弹窗一次

zoujiajian 2 mēneši atpakaļ
vecāks
revīzija
00fa65cd16

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/mapper/enterprise/EnterprisePurchaseLeadPopupRecordMapper.java

@@ -0,0 +1,7 @@
+package com.cyksj.mapper.enterprise;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.EnterprisePurchaseLeadPopupRecord;
+
+public interface EnterprisePurchaseLeadPopupRecordMapper extends BaseMapper<EnterprisePurchaseLeadPopupRecord> {
+}

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CodexDeductRecord.java

@@ -3,6 +3,8 @@ package com.cyksj.model.entity;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 项目名: yhlxj11111111
  * 文件名: CodexDeductRecord
@@ -27,4 +29,9 @@ public class CodexDeductRecord extends BaseEntity{
 	private Boolean status;
 
     private Integer extendsDays;
+
+    /**
+     * 抵扣金额
+     */
+    private BigDecimal deductMoney;
 }

+ 23 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/EnterprisePurchaseLeadPopupRecord.java

@@ -0,0 +1,23 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Getter
+@Setter
+@Accessors(chain = true)
+@TableName("enterprise_purchase_lead_popup_record")
+public class EnterprisePurchaseLeadPopupRecord extends BaseEntity {
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 弹窗次数
+     */
+    private Integer popupCount;
+}

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/codex/impl/CodexServiceImpl.java

@@ -831,6 +831,10 @@ public class CodexServiceImpl implements CodexService {
 			} else {
 				totalDays += sku.getMonths() * 30;
 			}
+            CodexDeductRecord codexDeductRecord = codexDeductRecordMapper.selectOne(Wrappers.lambdaQuery(CodexDeductRecord.class).eq(CodexDeductRecord::getOrderId, orderDon.getId()).last("limit 1"));
+            if (codexDeductRecord != null) {
+                totalOrderMoney = totalOrderMoney.add(Optional.ofNullable(codexDeductRecord.getDeductMoney()).orElse(BigDecimal.ZERO));
+            }
 			//原订单数
 			if (orderDonList.size() == 1) {
 				//此次订单过期时间

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -5061,6 +5061,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			codexDeductRecord.setOrderId(orderDon.getId());
 			codexDeductRecord.setRelationId(relationId);
 			codexDeductRecord.setExtendsDays(extendsDays);
+            //抵扣金额
+            codexDeductRecord.setDeductMoney(deductMoney);
 			codexDeductRecordMapper.insert(codexDeductRecord);
 			Long orderId = orderDon.getId();
 			//使用银河币记录

+ 36 - 0
netflix-web/src/main/java/com/cyksj/web/controller/enterprise/EnterprisePurchaseLeadFrontController.java

@@ -1,11 +1,17 @@
 package com.cyksj.web.controller.enterprise;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.enterprise.EnterprisePurchaseLeadPopupRecordMapper;
+import com.cyksj.model.entity.EnterprisePurchaseLeadPopupRecord;
 import com.cyksj.model.request.EnterprisePurchaseLeadSubmitReq;
 import com.cyksj.service.enterprise.EnterprisePurchaseLeadService;
+import com.cyksj.web.util.StpUserUtil;
 import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -20,6 +26,8 @@ public class EnterprisePurchaseLeadFrontController {
 
     private final EnterprisePurchaseLeadService enterprisePurchaseLeadService;
 
+    private final EnterprisePurchaseLeadPopupRecordMapper enterprisePurchaseLeadPopupRecordMapper;
+
     private final HttpServletRequest request;
 
     @PostMapping
@@ -28,6 +36,34 @@ public class EnterprisePurchaseLeadFrontController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(id);
     }
 
+    /**
+     * 是否可以展示企业采购弹窗
+     */
+    @GetMapping("/popup/visible")
+    public Result<Boolean> popupVisible() {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        Integer selectCount = enterprisePurchaseLeadPopupRecordMapper.selectCount(Wrappers.lambdaQuery(EnterprisePurchaseLeadPopupRecord.class)
+                .eq(EnterprisePurchaseLeadPopupRecord::getUserId, userId));
+        return GatewayResponse.SUCCESS.newBuilder().toResult(selectCount == 0);
+    }
+
+    /**
+     * 记录企业采购弹窗已展示
+     */
+    @PostMapping("/popup/record")
+    public Result<Boolean> recordPopup() {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        EnterprisePurchaseLeadPopupRecord record = new EnterprisePurchaseLeadPopupRecord()
+                .setUserId(userId)
+                .setPopupCount(1);
+        try {
+            enterprisePurchaseLeadPopupRecordMapper.insert(record);
+            return GatewayResponse.SUCCESS.newBuilder().toResult(true);
+        } catch (DuplicateKeyException e) {
+            return GatewayResponse.SUCCESS.newBuilder().toResult(false);
+        }
+    }
+
     private String getClientIp() {
         String ip = request.getHeader("X-Forwarded-For");
         if (ip != null && !ip.isBlank()) {