zoujiajian 1 рік тому
батько
коміт
a853871001

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

@@ -526,4 +526,9 @@ public interface Constant {
 	 * 引流新人优惠券id
 	 */
 	String YL_NEW_WELFARE_COUPON_ID = "yl_new_welfare_coupon_id";
+
+	/**
+	 * GPT代充平台id
+	 */
+	Long GPT_RECHARGE_GOODS_ID = 40L;
 }

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GptUserRechargeNumRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.GptUserRechargeNumRecord;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeNumRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:37
+ */
+public interface GptUserRechargeNumRecordMapper extends BaseMapper<GptUserRechargeNumRecord> {
+}

+ 30 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GptUserRechargeNumRecord.java

@@ -0,0 +1,30 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeNumRecord
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:35
+ */
+@Getter
+@Setter
+public class GptUserRechargeNumRecord extends BaseEntity{
+	private Long userId;
+
+	private Long relationId;
+
+	/**
+	 * 代充账号
+	 */
+	private String account;
+
+	private String operator;
+
+	/**
+	 * 次数 正为扣除 负为增加
+	 */
+	private Integer num;
+}

+ 38 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/GroupsRelation.java

@@ -44,6 +44,26 @@ public class GroupsRelation extends BaseEntity {
      */
     private String password;
 
+    /***
+     * 代充次数
+     */
+    private Integer rechargeNum;
+
+    /**
+     * 代充剩余次数
+     */
+    private Integer rechargeRemainNum;
+
+    /**
+     * gpt卡密
+     */
+    private String cardKey;
+
+    /**
+     * gpt自动充值任务id
+     */
+    private String gptTaskId;
+
     private Date submitTime;
 
     private Date sendTime;
@@ -52,6 +72,16 @@ public class GroupsRelation extends BaseEntity {
 
     private RechargeStatus rechargeStatus;
 
+    /**
+     * 邀请制家庭组链接
+     */
+    private String inviteLink;
+
+    /**
+     * 联系方式
+     */
+    private String contact;
+
     /**
      * 续费意愿处理状态
      */
@@ -119,6 +149,11 @@ public class GroupsRelation extends BaseEntity {
      */
     private String pinCode;
 
+    /**
+     * 是否是VIP
+     */
+    private Boolean isVip;
+
 
     @AllArgsConstructor
     @Getter
@@ -140,9 +175,11 @@ public class GroupsRelation extends BaseEntity {
         waiting("待充值"),
         complete("已完成"),
         error("账号错误"),
+        recharge_error("充值错误"),
+        recharging("充值中"),
         ;
 
         private String desc;
 
     }
-}
+}

+ 12 - 0
netflix-service/src/main/java/com/cyksj/service/chatgpt/GptUserRechargeRecordService.java

@@ -0,0 +1,12 @@
+package com.cyksj.service.chatgpt;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeRecordService
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:49
+ */
+public interface GptUserRechargeRecordService {
+
+	void recordGptUserRechargeNum(Long userId, Long relationId, String account, Integer num, String operator);
+}

+ 33 - 0
netflix-service/src/main/java/com/cyksj/service/chatgpt/impl/GptUserRechargeRecordServiceImpl.java

@@ -0,0 +1,33 @@
+package com.cyksj.service.chatgpt.impl;
+
+
+import com.cyksj.mapper.GptUserRechargeNumRecordMapper;
+import com.cyksj.model.entity.GptUserRechargeNumRecord;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeRecordServiceImpl
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:50
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class GptUserRechargeRecordServiceImpl implements GptUserRechargeRecordService {
+	private final GptUserRechargeNumRecordMapper gptUserRechargeNumRecordMapper;
+	@Override
+	public void recordGptUserRechargeNum(Long userId, Long relationId, String account, Integer num, String operator) {
+		//记录代充记录
+		GptUserRechargeNumRecord gptUserRechargeNumRecord = new GptUserRechargeNumRecord();
+		gptUserRechargeNumRecord.setUserId(userId);
+		gptUserRechargeNumRecord.setRelationId(relationId);
+		gptUserRechargeNumRecord.setAccount(account);
+		gptUserRechargeNumRecord.setNum(num);
+		gptUserRechargeNumRecord.setOperator(operator);
+		gptUserRechargeNumRecordMapper.insert(gptUserRechargeNumRecord);
+	}
+}

+ 21 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
@@ -14,6 +15,7 @@ import com.cyksj.model.entity.CorpFollow;
 import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.GroupsRelation;
 import com.cyksj.model.entity.OrderDon;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
 import com.cyksj.service.mange.CmsOrderDonService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -45,6 +47,8 @@ public class CmsOrderController {
 
     private final GoodsDonSkuMapper skuMapper;
 
+    private final GptUserRechargeRecordService gptUserRechargeRecordService;
+
     private final static String CORP_UUID = "corp-uuid";
 
     /**
@@ -94,6 +98,23 @@ public class CmsOrderController {
                 }
                 relation.setExpiryTime(expiryTime);
                 relationMapper.updateById(relation);
+
+                //GPT代充
+                if (orderDon.getGoodsId() == Constant.GPT_RECHARGE_GOODS_ID) {
+                    //扣除次数
+                    Integer rechargeRemainNum = relation.getRechargeRemainNum();
+                    if (rechargeRemainNum != null && rechargeRemainNum > 0) {
+                        int update = relationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+                                .set(GroupsRelation::getRechargeRemainNum, rechargeRemainNum - 1)
+                                .eq(GroupsRelation::getId, relationId)
+                                .eq(GroupsRelation::getRechargeRemainNum, rechargeRemainNum));
+                        if (update == 0) {
+                            throw BusinessRuntimeException.getInstance("更新用户代充剩余次数失败,请重试");
+                        }
+                        //记录gpt代充记录
+                        gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), 1, fcorpFollow != null ? fcorpFollow.getName() : null);
+                    }
+                }
             }
         });