From 220b6da85c960a28e205264154b5aefe01cc1624 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 24 Mar 2026 21:45:17 +0800
Subject: [PATCH] refactor(common): 移除HTTP消息转换器配置类

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   82 +++++++++++++++++++++++++++++++++++------
 1 files changed, 70 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 6a585ee..905bc42 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -34,8 +34,10 @@
 import cc.mrbird.febs.vip.entity.MallVipConfig;
 import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
 import cc.mrbird.febs.yinhe.entity.YHAiCompany;
+import cc.mrbird.febs.yinhe.entity.YHSysCompanyLevel;
 import cc.mrbird.febs.yinhe.entity.YhAiMember;
 import cc.mrbird.febs.yinhe.mapper.YHAiCompanyMapper;
+import cc.mrbird.febs.yinhe.mapper.YHSysCompanyLevelMapper;
 import cc.mrbird.febs.yinhe.mapper.YhAiMemberMapper;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
@@ -702,16 +704,23 @@
     private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
     private final YhAiMemberMapper yhAiMemberMapper;
     private final YHAiCompanyMapper yhAiCompanyMapper;
+    private final YHSysCompanyLevelMapper yhSysCompanyLevelMapper;
 
     @Override
-    public FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto) throws IOException {
+    @Transactional
+    public FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto){
         log.info("登录请求参数:{}", JSONObject.toJSONString(apiXcxLoginDto));
         FebsResponse febsResponse = new FebsResponse();
         String code = apiXcxLoginDto.getCode();
         log.info("code:" + code);
         if (StrUtil.isNotBlank(code)) {
             String requrl = getXcxLoginUrl(code);
-            String reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
+            String reslutData = null;
+            try {
+                reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
             net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(reslutData);
             log.info("微信登录获取到登录信息={}", json);
 
@@ -738,14 +747,35 @@
                     entity.setSessionKey(sessionKey);
 
                     entity.setMemberUuid(UUID.getSimpleUUIDString());
+
+                    log.info("公司编码={}", apiXcxLoginDto.getCompanyId());
                     if (StrUtil.isNotEmpty(apiXcxLoginDto.getCompanyId())){
                         YHAiCompany aiCompany = yhAiCompanyMapper.selectOne(
                                 Wrappers.lambdaQuery(YHAiCompany.class)
                                         .eq(YHAiCompany::getCode, apiXcxLoginDto.getCompanyId())
                         );
-                        if (ObjectUtil.isNotEmpty(aiCompany)){
-                            entity.setCompanyId(aiCompany.getId());
+                        if (ObjectUtil.isEmpty(aiCompany)){
+                            throw new FebsException("公司编码错误");
                         }
+                        String levelCode = aiCompany.getLevelCode();
+                        YHSysCompanyLevel yhSysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
+                                Wrappers.lambdaQuery(YHSysCompanyLevel.class)
+                                        .eq(YHSysCompanyLevel::getCode, levelCode)
+                        );
+                        Integer memberNum = yhSysCompanyLevel.getMemberNum();
+                        List<YhAiMember> yhAiMembers = yhAiMemberMapper.selectList(
+                                Wrappers.lambdaQuery(YhAiMember.class)
+                                        .eq(YhAiMember::getCompanyId, aiCompany.getId())
+                                        .isNull(YhAiMember::getRoleId)
+                        );
+                        Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
+                        log.info("公司会员数:{}", realNum);
+                        log.info("公司会员数:{}", memberNum);
+                        log.info("公司会员数:{}", realNum >= memberNum);
+                        if (realNum >= memberNum){
+                            throw new FebsException("公司会员已满");
+                        }
+                        entity.setCompanyId(aiCompany.getId());
                     }
                     entity.setCreateTime(systemTime);
                     entity.setUpdateTime(systemTime);
@@ -758,10 +788,9 @@
                     );
                     String inviteId = ShareCodeUtil.toSerialCode(entity.getId());
                     entity.setInviteId(inviteId);
-                    entity.setName("XCX"+inviteId);
                     yhAiMemberMapper.updateById(entity);
                 } else {
-                    if ("1".equals(entity.getAccountStatus())) {
+                    if (entity.getAccountStatus() == 1) {
                         throw new FebsException("账号已停用");
                     }
                     entity.setSessionKey(sessionKey);
@@ -778,14 +807,17 @@
                     redisUtils.del(existToken);
                 }
             }
+            YhAiMember yhAiMember = yhAiMemberMapper.selectById(entity.getId());
             String token = IdUtil.simpleUUID();
-            redisUtils.set(token, JSONObject.toJSONString(entity), -1);
-            redisUtils.set(redisKey, token, -1);
+            redisUtils.set(token, JSONObject.toJSONString(yhAiMember), 60 * 60 * 24);
+            redisUtils.set(redisKey, token, 60 * 60 * 24);
             Map<String, Object> authInfo = new HashMap<>();
             authInfo.put("token", token);
             authInfo.put("appid", xcxProperties.getXcxAppid());
-            authInfo.put("member", entity);
-            authInfo.put("rasToken", generateAsaToken(token));
+            authInfo.put("member", yhAiMember);
+            String rasToken = generateAsaToken(token);
+            authInfo.put("rasToken", rasToken);
+            log.info("登录成功rasToken={}", rasToken);
             febsResponse.success().data(authInfo);
         } else {
             return febsResponse.fail().message("自动登录失败");
@@ -798,7 +830,7 @@
     public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) {
         log.info("name={},phone={},avatar={},sex={}",
                 apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender());
-        String memberId = LoginUserUtil.getLoginUser().getMemberUuid();
+        String memberId = YHLoginUserUtil.getLoginUser().getMemberUuid();
         YhAiMember entity = yhAiMemberMapper.selectOne(
                 Wrappers.lambdaQuery(YhAiMember.class)
                         .eq(YhAiMember::getMemberUuid, memberId)
@@ -838,10 +870,29 @@
                 throw new FebsException("公司编码不存在");
             }
             if (ObjectUtil.isNotEmpty(aiCompany)){
+                String levelCode = aiCompany.getLevelCode();
+                YHSysCompanyLevel yhSysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
+                        Wrappers.lambdaQuery(YHSysCompanyLevel.class)
+                                .eq(YHSysCompanyLevel::getCode, levelCode)
+                );
+                Integer memberNum = yhSysCompanyLevel.getMemberNum();
+                List<YhAiMember> yhAiMembers = yhAiMemberMapper.selectList(
+                        Wrappers.lambdaQuery(YhAiMember.class)
+                                .eq(YhAiMember::getCompanyId, aiCompany.getId())
+                                .isNull(YhAiMember::getRoleId)
+                );
+                Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
+                log.info("公司会员数:{}", realNum);
+                log.info("公司会员数:{}", memberNum);
+                log.info("公司会员数:{}", realNum >= memberNum);
+                if (realNum >= memberNum){
+                    throw new FebsException("公司会员已满");
+                }
+
                 companyId = aiCompany.getId();
             }
+            entity.setCompanyId(companyId);
         }
-        entity.setCompanyId(companyId);
         yhAiMemberMapper.updateById(entity);
 
         return new FebsResponse().success();
@@ -2077,6 +2128,13 @@
         return new FebsResponse().success().message("操作成功");
     }
 
+    @Override
+    public FebsResponse getCompanyCode() {
+
+        String companyCode = yhAiCompanyMapper.selectDictLabel("xcx_register_default","default");
+        return new FebsResponse().success().data(companyCode);
+    }
+
 //    public static void main(String[] args) {
 //        Long userld = 16425L;
 //        String shopAccount = "爱和美医疗";

--
Gitblit v1.9.1