浏览代码

代充优化

zoujiajian 1 年之前
父节点
当前提交
135e965aa1

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GroupsRelation.java

@@ -92,6 +92,11 @@ public class GroupsRelation extends BaseEntity {
      */
     private String contact;
 
+    /**
+     * 备用验证码
+     */
+    private String bpVerifyCode;
+
     /**
      * 续费意愿处理状态
      */

+ 42 - 0
netflix-dao/src/main/java/com/cyksj/model/request/InviteBindAccountReq.java

@@ -0,0 +1,42 @@
+package com.cyksj.model.request;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 项目名: yhlxj321312312312312312
+ * 文件名: InviteBindAccountReq
+ * 创建者: JavaZou
+ * 创建时间:2025/8/13 10:22
+ */
+@Getter
+@Setter
+public class InviteBindAccountReq {
+	/**
+	 * 车票id
+	 */
+	@NotNull
+	private Long id;
+
+	/**
+	 * 账号
+	 */
+	private String account;
+
+	/**
+	 * 密码
+	 */
+	private String password;
+
+	/**
+	 * 联系方式
+	 */
+	private String contact;
+
+	/**
+	 * 备用验证码
+	 */
+	private String bpVerifyCode;
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GroupsRelationRechargeView.java

@@ -91,6 +91,12 @@ public class GroupsRelationRechargeView {
 	@DbField("gr.contact")
 	private String contact;
 
+	/**
+	 * 备用验证码
+	 */
+	@DbField("gr.bp_verify_code")
+	private String bpVerifyCode;
+
 	@DbField("g.id")
 	private Long goodsId;
 

+ 4 - 0
netflix-service/src/main/java/com/cyksj/server/recharge/impl/GptProxyRechargeServiceImpl.java

@@ -194,6 +194,7 @@ public class GptProxyRechargeServiceImpl implements GptProxyRechargeService {
 		if (relation == null) {
 			throw BusinessRuntimeException.getInstance("车票不存在");
 		}
+		String userAccount = relation.getAccount();
 		GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 		GoodsDonSku sku = skuMapper.selectById(groupsTrips.getSkuId());
 //		//GPT 代充
@@ -240,6 +241,9 @@ public class GptProxyRechargeServiceImpl implements GptProxyRechargeService {
 				throw BusinessRuntimeException.getInstance("您输入的凭证有误,请重新输入");
 			}
 			String rechargeAccount = tokenParseResult.getMessage();
+			if (!StrUtil.equals(rechargeAccount, userAccount)) {
+				throw BusinessRuntimeException.getInstance("请填入绑定账号的token");
+			}
 			//记录代充账号 token
 			relation.setAccount(rechargeAccount);
 			//获取GPT代充key

+ 21 - 12
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -180,30 +180,39 @@ public class GroupRelationController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(orderDon);
     }
 
+    /**
+     * 邀请制绑定账号
+     */
     @PutMapping("/update/set/account")
-    public Result<String> setAccount(@RequestBody GroupsRelation relation) {
+    public Result<String> setAccount(@RequestBody @Validated InviteBindAccountReq req) {
         long userId = StpUserUtil.getLoginIdAsLong();
+        Long relationId = req.getId();
         List<Long> userIds = userBindRelationService.getRelationUserIdList(userId, null);
-        GroupsRelation re = relationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class)
-                .eq(GroupsRelation::getId, relation.getId())
+        GroupsRelation relation = relationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class)
+                .eq(GroupsRelation::getId, relationId)
                 .in(GroupsRelation::getUserId, userIds)
                 .last(" limit 1"));
-        if (re == null) {
+        if (relation == null) {
             throw new BusinessRuntimeException("该车票不存在,请联系客服.");
         }
+        String account = req.getAccount();
+        String password = req.getPassword();
+        String contact = req.getContact();
+        String bpVerifyCode = req.getBpVerifyCode();
         LambdaUpdateWrapper<GroupsRelation> updateWrapper = Wrappers.lambdaUpdate(GroupsRelation.class)
-                .set(GroupsRelation::getAccount, relation.getAccount())
-                .set(GroupsRelation::getPassword, relation.getPassword())
-                .set(GroupsRelation::getContact, relation.getContact())
-                .eq(GroupsRelation::getId, relation.getId());
-        if (re.getRechargeStatus() != null) {
-            if (re.getRechargeStatus() == GroupsRelation.RechargeStatus.complete) {
+                .set(GroupsRelation::getAccount, account)
+                .set(GroupsRelation::getPassword, password)
+                .set(GroupsRelation::getContact, contact)
+                .set(GroupsRelation::getBpVerifyCode, bpVerifyCode)
+                .eq(GroupsRelation::getId, relationId);
+        if (relation.getRechargeStatus() != null) {
+            if (relation.getRechargeStatus() == GroupsRelation.RechargeStatus.complete) {
                 throw BusinessRuntimeException.getInstance("代充账号已充值");
             }
-            if (StrUtil.isEmpty(relation.getAccount())) {
+            if (StrUtil.isEmpty(account)) {
                 throw BusinessRuntimeException.getInstance("请输入正确的账号信息");
             }
-            if (re.getRechargeStatus() == GroupsRelation.RechargeStatus.error) {
+            if (relation.getRechargeStatus() == GroupsRelation.RechargeStatus.error) {
                 updateWrapper.set(GroupsRelation::getRechargeStatus, GroupsRelation.RechargeStatus.waiting);
             }
             relationMapper.update(relation, updateWrapper);