Explorar el Código

普通推广奖励积分卡

zoujiajian hace 1 año
padre
commit
e5d8fbb8fd

+ 10 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -658,4 +658,14 @@ public interface Constant {
 	 * claude code日卡推广活动
 	 */
 	Long DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID = 732L;
+
+	/**
+	 * cc推广标识
+	 */
+	String CC_DISTRIBUTE_MARK = "cc";
+
+	/**
+	 * CLAUDE CODE 积分卡number
+	 */
+	String CLAUDE_CODE_CARD_NUMBER = "CODE_CARD_NUMBER_";
 }

+ 7 - 5
netflix-dao/src/main/java/com/cyksj/model/entity/ClaudeCodeCreditCard.java

@@ -22,6 +22,13 @@ public class ClaudeCodeCreditCard extends BaseEntity {
      * 积分卡编号
      */
     private String cardNumber;
+
+    private Long userId;
+
+    /**
+     * 首单订单id
+     */
+    private Long orderId;
     
     /**
      * 积分额度
@@ -50,11 +57,6 @@ public class ClaudeCodeCreditCard extends BaseEntity {
      */
     private Date expiryTime;
     
-    /**
-     * 创建批次
-     */
-    private String batchNumber;
-    
     /**
      * 备注
      */

+ 1 - 0
netflix-dao/src/main/resources/mapper/CouponRecommendMapper.xml

@@ -78,6 +78,7 @@
         where cr.deleted is true and c.deleted is true and cr.status is true
         and (cr.up_time is null or cr.up_time <= now()) and (cr.down_time is null or cr.down_time > now())
         and (select count(1) from coupon_sku cs where cs.coupon_id = cr.coupon_id and cs.goods_id = #{goodsId}) > 0
+        order by c.discount asc,c.reduce_money desc
         limit 1
     </select>
 </mapper>

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/claude/ClaudeCodeService.java

@@ -137,4 +137,9 @@ public interface ClaudeCodeService {
 	 * 获取用户奖励明细
 	 */
 	ClaudeCodeRewardDetailsResp getUserRewardDetails(Long userId);
+
+	/**
+	 * 发送积分卡
+	 */
+	void sendCreditCard(Long orderId, Long userId, Integer points, String cardNumber, String remark);
 }

+ 12 - 0
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -785,6 +785,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		ClaudeCodeCreditCard creditCard = claudeCodeCreditCardMapper.selectOne(
 			Wrappers.lambdaQuery(ClaudeCodeCreditCard.class)
 				.eq(ClaudeCodeCreditCard::getStatus, 0)
+					.in(ClaudeCodeCreditCard::getUserId, userIdList)
 					.last("limit 1")
 		);
 		
@@ -896,6 +897,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		Integer availableCreditCards = claudeCodeCreditCardMapper.selectCount(
 			Wrappers.lambdaQuery(ClaudeCodeCreditCard.class)
 				.eq(ClaudeCodeCreditCard::getStatus, 0)
+					.in(ClaudeCodeCreditCard::getUserId,userIdList)
 				.isNull(ClaudeCodeCreditCard::getUsedUserId)
 		);
 		response.setAvailableCreditCards(availableCreditCards != null ? availableCreditCards : 0);
@@ -938,4 +940,14 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		return response;
 	}
 
+	@Override
+	public void sendCreditCard(Long orderId, Long userId, Integer points, String cardNumber, String remark) {
+		ClaudeCodeCreditCard creditCard = new ClaudeCodeCreditCard();
+		creditCard.setUserId(userId);
+		creditCard.setOrderId(orderId);
+		creditCard.setCardNumber(cardNumber);
+		creditCard.setCreditAmount(points);
+		creditCard.setRemark(remark);
+		claudeCodeCreditCardMapper.insert(creditCard);
+	}
 }

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

@@ -2072,6 +2072,16 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 						//给商务人员 分配提成权益
 						userBusinessFrontService.taskDistributeRateBenefits(userDistributeShared.getSharedId(), businessId, goodsDon.getType(), order, rate);
 					}
+					//是否是cc普通推广
+					if (userDistribute == null && Constant.CC_DISTRIBUTE_MARK.equals(userDistributeShared.getRemark())) {
+						//普通推广用户首单,给上级渠道发放 claude code 积分卡
+						try {
+							claudeCodeService.sendCreditCard(order.getId(), userDistributeShared.getSharedId(), 1000, Constant.CLAUDE_CODE_CARD_NUMBER + System.currentTimeMillis(), "邀请新用户首单奖励");
+							log.info("用户{}邀请新用户{}首单,发放claude code积分卡成功", userDistributeShared.getSharedId(), order.getUserId());
+						} catch (Exception e) {
+							log.error("给用户{}发放claude code积分卡失败:{}", userDistributeShared.getSharedId(), e.getMessage());
+						}
+					}
 				}
 			}
 		}