Przeglądaj źródła

下架用过的POE会员账号;用户可查看刷新直连token

zoujiajian 3 lat temu
rodzic
commit
06805f38f6

+ 1 - 0
netflix-service/src/main/java/com/cyksj/redis/RedisService.java

@@ -625,6 +625,7 @@ public class RedisService {
         CORP_DYNAMIC_RULE_TAG_KEY("corp_dynamic_rule_tag_key:", "企业微信动态标签key", 60 * 60L),
         ORDER_DON_POST_DATA_USER_KEY("order_don_post_data_user_key:", "用户订单回传缓存key", -1L),
         ABROAD_SUCCESS_URL("abroad:pay:success_url:","海外支付成功页",60 * 60 * 24L),
+        CHAT_GPT_TOKEN_KEY("chat_gpt_token_key:", "chatGPT直连token key", 60 * 10l),
         ;
 
         private String name;

+ 5 - 1
netflix-service/src/main/java/com/cyksj/service/chatgpt/impl/ChatGptAuthServiceImpl.java

@@ -13,7 +13,6 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.GoogleGenerator;
 import com.cyksj.common.util.IoKit;
 import com.cyksj.dto.RedisKey;
-import com.cyksj.dto.Result;
 import com.cyksj.mapper.AccountMapper;
 import com.cyksj.model.entity.Account;
 import com.cyksj.redis.RedisService;
@@ -124,12 +123,17 @@ public class ChatGptAuthServiceImpl implements ChatGptAuthService {
             throw BusinessRuntimeException.getInstance("账号不存在.");
         }
         if(StringUtils.isBlank(account.getGptRefreshToken())){
+            if (!redisService.setNx(RedisService.key.CHAT_GPT_TOKEN_KEY.getName() + username, username, RedisService.key.CHAT_GPT_TOKEN_KEY.getTimeout())) {
+                throw BusinessRuntimeException.getInstance("正在获取直连token中...");
+            }
             String refreshToken = getRefreshToken(account);
             if(StringUtils.isBlank(refreshToken)){
+                redisService.del(RedisService.key.CHAT_GPT_TOKEN_KEY.getName() + username);
                 throw BusinessRuntimeException.getInstance("该账号登录异常.");
             }
             account.setGptRefreshToken(refreshToken);
             accountMapper.updateById(account);
+            redisService.del(RedisService.key.CHAT_GPT_TOKEN_KEY.getName() + username);
             return redisService.getStr(RedisKey.CHATGPT_ACCESS_TOKEN + account.getAccount());
         }
         String accessToken = redisService.getStr(RedisKey.CHATGPT_ACCESS_TOKEN + username);

+ 12 - 0
netflix-service/src/main/java/com/cyksj/service/mange/group/CmsGroupServiceImpl.java

@@ -22,6 +22,7 @@ import com.cyksj.redis.RedisService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.cyksj.service.sms.SmsService;
 import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -215,6 +216,17 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
             }
         }
        groupsTrips.setStatus(GroupsTrips.Status.validity);
+        //下架上过车的POE 账号
+        if (groupsTrips.getGoodsId().equals(35l)) {
+            Number number = beanSearcher.searchCount(GroupsRelation.class, MapUtils.builder()
+                    .field(GroupsRelation::getGroupsId, groupsTrips.getId())
+                    .field(GroupsRelation::getUserId, 0).op(Operator.NotEqual)
+                    .field(GroupsRelation::getStatus, GroupsRelation.Status.validity)
+                    .build());
+            if (number.intValue() > 0) {
+                groupsTrips.setStatus(GroupsTrips.Status.down);
+            }
+        }
        updateById(groupsTrips);
 
     }

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

@@ -1165,6 +1165,13 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 					log.info("车位groupsId:{}未发车,修改订单号orderNo:{}订单为已付款状态:{}", groupsTrips.getId(), order.getOrderNo());
 					order.setStatus(OrderDon.Status.hasPayment);
 				}
+				//下架POE会员车队
+				if (order.getGoodsId() != null && order.getGoodsId().equals(35l)) {
+					if (groupsTrips.getAccountId() != null && groupsTrips.getStatus() == GroupsTrips.Status.validity) {
+						groupsTrips.setStatus(GroupsTrips.Status.down);
+						groupsMapper.updateById(groupsTrips);
+					}
+				}
 				//TODO 如未发车逻辑
 				groupsRelationMapper.updateById(relation);
 			}

+ 24 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.servlet.ServletUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.annotation.NoSubmit;
@@ -30,6 +31,7 @@ import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.request.OrderPayRequest;
 import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
+import com.cyksj.service.chatgpt.ChatGptAuthService;
 import com.cyksj.service.mange.coupon.CouponCommonService;
 import com.cyksj.service.mange.ticket.TicketAdvertiseConfigClickRecordService;
 import com.cyksj.service.order.OrderDonService;
@@ -95,6 +97,8 @@ public class GroupRelationController {
 
     private final GlobalThreadPoolTaskExecutor THREAD_POOL;
 
+    private final ChatGptAuthService chatGptAuthService;
+
     private final static Sequence SEQUENCE = new Sequence(0);
 
     @RequestMapping("/get/renewal")
@@ -502,4 +506,24 @@ public class GroupRelationController {
         Page<UserRecommendGoodsFrontView> page = groupRelationFrontService.getRecommendGoodsViews(isPayNf, filter_goods_id, start, limit);
         return GatewayResponse.SUCCESS.newBuilder().toResult(page);
     }
+
+    /**
+     * 查看GPT token
+     */
+    @GetMapping("/get/gptAccessToken")
+    public Result<String> getGptAccessToken(Long relationId) throws Exception {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        List<Long> userIds = userService.getRelationUserIdList(userId, null);
+        //存在该车票
+        RenewalView renewalView = beanSearcher.searchFirst(RenewalView.class, MapUtils.builder()
+                .field(RenewalView::getRelationId, relationId)
+                .field(RenewalView::getUserId, userIds).op(Operator.InList).build());
+        Assert.notNull(renewalView, "您的车票不存在");
+        if (renewalView.getCategory() != 1) {
+            throw BusinessRuntimeException.getInstance("该平台类型车票无法获取GPT直连token");
+        }
+        String account = renewalView.getAccount();
+        String accessToken = chatGptAuthService.getAccessToken(account);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(accessToken);
+    }
 }