Prechádzať zdrojové kódy

Merge branch 'refs/heads/bj_func' into pre

zoujiajian 2 mesiacov pred
rodič
commit
f3968924ff

+ 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();
 			//使用银河币记录

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

@@ -1,17 +1,25 @@
 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.service.user.UserBindRelationService;
+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;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 @RestController
 @RequiredArgsConstructor
@@ -20,14 +28,39 @@ public class EnterprisePurchaseLeadFrontController {
 
     private final EnterprisePurchaseLeadService enterprisePurchaseLeadService;
 
+    private final EnterprisePurchaseLeadPopupRecordMapper enterprisePurchaseLeadPopupRecordMapper;
+
     private final HttpServletRequest request;
 
+    private final UserBindRelationService userBindRelationService;
+
     @PostMapping
     public Result<Long> submit(@RequestBody @Validated EnterprisePurchaseLeadSubmitReq req) {
         Long id = enterprisePurchaseLeadService.submit(req, getClientIp(), request.getHeader("User-Agent"));
         return GatewayResponse.SUCCESS.newBuilder().toResult(id);
     }
 
+    /**
+     * 是否可以展示企业采购弹窗
+     */
+    @GetMapping("/popup/visible")
+    public Result<Boolean> popupVisible() {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+        Integer selectCount = enterprisePurchaseLeadPopupRecordMapper.selectCount(Wrappers.lambdaQuery(EnterprisePurchaseLeadPopupRecord.class)
+                .in(EnterprisePurchaseLeadPopupRecord::getUserId, userIdList));
+        if (selectCount == 0) {
+            EnterprisePurchaseLeadPopupRecord record = new EnterprisePurchaseLeadPopupRecord()
+                    .setUserId(userId)
+                    .setPopupCount(1);
+            try {
+                enterprisePurchaseLeadPopupRecordMapper.insert(record);
+            } catch (DuplicateKeyException e) {
+            }
+        }
+        return GatewayResponse.SUCCESS.newBuilder().toResult(selectCount == 0);
+    }
+
     private String getClientIp() {
         String ip = request.getHeader("X-Forwarded-For");
         if (ip != null && !ip.isBlank()) {