Explorar el Código

修改前后端登录未同步问题

ssk hace 1 mes
padre
commit
e5ed0f81e8
Se han modificado 26 ficheros con 306 adiciones y 376 borrados
  1. 2 2
      alien-gateway/src/main/java/shop/alien/gateway/AlienGatewayApplication.java
  2. 4 4
      alien-gateway/src/main/java/shop/alien/gateway/config/JwtTokenFilter.java
  3. 6 3
      alien-gateway/src/main/java/shop/alien/gateway/controller/LifeUserController.java
  4. 2 2
      alien-gateway/src/main/java/shop/alien/gateway/controller/StoreUserController.java
  5. 1 1
      alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeSysGatewayMapper.java
  6. 1 1
      alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeUserGatewayMapper.java
  7. 1 1
      alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeUserLogGatewayMapper.java
  8. 1 1
      alien-gateway/src/main/java/shop/alien/gateway/mapper/StoreInfoGatewayMapper.java
  9. 1 1
      alien-gateway/src/main/java/shop/alien/gateway/mapper/StoreUserGatewayMapper.java
  10. 15 0
      alien-gateway/src/main/java/shop/alien/gateway/service/ActivityInviteConfigService.java
  11. 49 36
      alien-gateway/src/main/java/shop/alien/gateway/service/LifeUserService.java
  12. 15 0
      alien-gateway/src/main/java/shop/alien/gateway/service/UserPointService.java
  13. 120 0
      alien-gateway/src/main/java/shop/alien/gateway/service/impl/ActivityInviteConfigServiceImpl.java
  14. 2 2
      alien-gateway/src/main/java/shop/alien/gateway/service/impl/StoreInfoServiceImpl.java
  15. 4 4
      alien-gateway/src/main/java/shop/alien/gateway/service/impl/StoreUserServiceImpl.java
  16. 2 2
      alien-gateway/src/main/java/shop/alien/gateway/service/impl/SystemServiceImpl.java
  17. 50 0
      alien-gateway/src/main/java/shop/alien/gateway/service/impl/UserPointServiceImpl.java
  18. 1 1
      alien-gateway/src/main/resources/mapper/StoreUserGatewayMapper.xml
  19. 0 15
      alien-store/src/main/java/shop/alien/store/controller/LifeUserController.java
  20. 2 2
      alien-store/src/main/java/shop/alien/store/controller/StoreAppVersionController.java
  21. 0 54
      alien-store/src/main/java/shop/alien/store/controller/SystemController.java
  22. 13 101
      alien-store/src/main/java/shop/alien/store/service/LifeUserService.java
  23. 3 2
      alien-store/src/main/java/shop/alien/store/service/StoreAppVersionService.java
  24. 0 18
      alien-store/src/main/java/shop/alien/store/service/SystemService.java
  25. 11 2
      alien-store/src/main/java/shop/alien/store/service/impl/StoreAppVersionServiceImpl.java
  26. 0 121
      alien-store/src/main/java/shop/alien/store/service/impl/SystemServiceImpl.java

+ 2 - 2
alien-gateway/src/main/java/shop/alien/gateway/AlienGatewayApplication.java

@@ -14,7 +14,7 @@ import org.springframework.context.annotation.ComponentScan;
  * @date 2025/1/21 16:58
  */
 @ComponentScan({"shop.alien.gateway.*"})
-@MapperScan({"shop.alien.gateway.mapper"})
+@MapperScan(basePackages = {"shop.alien.gateway.mapper", "shop.alien.mapper"})
 @EnableFeignClients(basePackages = "shop.alien.gateway.feign")
 @SpringBootApplication
 public class AlienGatewayApplication {
@@ -28,4 +28,4 @@ public class AlienGatewayApplication {
         SpringApplication.run(AlienGatewayApplication.class, args);
     }
 
-}
+}

+ 4 - 4
alien-gateway/src/main/java/shop/alien/gateway/config/JwtTokenFilter.java

@@ -25,8 +25,8 @@ import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 import shop.alien.entity.store.LifeUser;
 import shop.alien.entity.store.StoreUser;
-import shop.alien.gateway.mapper.LifeUserMapper;
-import shop.alien.gateway.mapper.StoreUserMapper;
+import shop.alien.gateway.mapper.LifeUserGatewayMapper;
+import shop.alien.gateway.mapper.StoreUserGatewayMapper;
 import shop.alien.util.common.JwtUtil;
 
 import java.nio.charset.StandardCharsets;
@@ -57,10 +57,10 @@ public class JwtTokenFilter implements GlobalFilter, Ordered {
     private BaseRedisService baseRedisService;
 
     @Autowired
-    private StoreUserMapper storeUserMapper;
+    private StoreUserGatewayMapper storeUserMapper;
 
     @Autowired
-    private LifeUserMapper lifeUserMapper;
+    private LifeUserGatewayMapper lifeUserMapper;
 
     /**
      * 过滤器

+ 6 - 3
alien-gateway/src/main/java/shop/alien/gateway/controller/LifeUserController.java

@@ -28,12 +28,15 @@ public class LifeUserController {
     @ApiOperationSupport(order = 1)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "phoneNum", value = "手机号", dataType = "String", paramType = "query", required = true),
-            @ApiImplicitParam(name = "code", value = "验证码", dataType = "String", paramType = "query", required = true)
+            @ApiImplicitParam(name = "code", value = "验证码", dataType = "String", paramType = "query", required = true),
+            @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = false),
+            @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = false)
     })
     @GetMapping("/userLogin")
     public R<LifeUserVo> userLogin(@RequestParam("phoneNum") String phoneNum,
                                    @RequestParam("code") String code,
-                                   @RequestParam(value = "macIp",required = false) String macIp) {
+                                   @RequestParam(value = "macIp", required = false) String macIp,
+                                   @RequestParam(value = "inviteCode", required = false) String inviteCode) {
         log.info("LifeUserController.userLogin?phoneNum={}&code={}", phoneNum, code);
         // 2025-11-04 验证码-用户端登录
         String cacheCode = baseRedisService.getString("verification_user_login_" + phoneNum);
@@ -43,7 +46,7 @@ public class LifeUserController {
         if (!cacheCode.trim().equals(code.trim())) {
             return R.fail("验证码错误");
         }
-        LifeUserVo userVo = lifeUserService.userLogin(phoneNum, macIp);
+        LifeUserVo userVo = lifeUserService.userLogin(phoneNum, inviteCode, macIp);
         if (null == userVo) {
             return R.fail("登录失败");
         }

+ 2 - 2
alien-gateway/src/main/java/shop/alien/gateway/controller/StoreUserController.java

@@ -9,7 +9,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.StoreUserVo;
 import shop.alien.gateway.config.BaseRedisService;
-import shop.alien.gateway.mapper.StoreUserMapper;
+import shop.alien.gateway.mapper.StoreUserGatewayMapper;
 import shop.alien.gateway.service.StoreUserService;
 
 import java.util.Objects;
@@ -32,7 +32,7 @@ public class StoreUserController {
 
     private final StoreUserService storeUserService;
 
-    private final StoreUserMapper storeUserMapper;
+    private final StoreUserGatewayMapper storeUserMapper;
 
     private final BaseRedisService baseRedisService;
 

+ 1 - 1
alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeSysMapper.java → alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeSysGatewayMapper.java

@@ -8,5 +8,5 @@ import shop.alien.entity.store.LifeSys;
  * 系统用户
  */
 @Mapper
-public interface LifeSysMapper extends BaseMapper<LifeSys> {
+public interface LifeSysGatewayMapper extends BaseMapper<LifeSys> {
 }

+ 1 - 1
alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeUserMapper.java → alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeUserGatewayMapper.java

@@ -8,6 +8,6 @@ import shop.alien.entity.store.LifeUser;
  * 用户
  */
 @Mapper
-public interface LifeUserMapper extends BaseMapper<LifeUser> {
+public interface LifeUserGatewayMapper extends BaseMapper<LifeUser> {
 
 }

+ 1 - 1
alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeUserLogMapper.java → alien-gateway/src/main/java/shop/alien/gateway/mapper/LifeUserLogGatewayMapper.java

@@ -9,7 +9,7 @@ import shop.alien.entity.second.LifeUserLog;
 import java.util.List;
 
 @Mapper
-public interface LifeUserLogMapper extends BaseMapper<LifeUserLog> {
+public interface LifeUserLogGatewayMapper extends BaseMapper<LifeUserLog> {
 
     /**
      * 查询时间段内同一个macip地址的登录记录

+ 1 - 1
alien-gateway/src/main/java/shop/alien/gateway/mapper/StoreInfoMapper.java → alien-gateway/src/main/java/shop/alien/gateway/mapper/StoreInfoGatewayMapper.java

@@ -11,5 +11,5 @@ import shop.alien.entity.store.StoreInfo;
  * @since 2024-12-05
  */
 @Mapper
-public interface StoreInfoMapper extends BaseMapper<StoreInfo> {
+public interface StoreInfoGatewayMapper extends BaseMapper<StoreInfo> {
 }

+ 1 - 1
alien-gateway/src/main/java/shop/alien/gateway/mapper/StoreUserMapper.java → alien-gateway/src/main/java/shop/alien/gateway/mapper/StoreUserGatewayMapper.java

@@ -13,5 +13,5 @@ import shop.alien.entity.store.StoreUser;
  * @since 2024-12-11
  */
 @Mapper
-public interface StoreUserMapper extends BaseMapper<StoreUser> {
+public interface StoreUserGatewayMapper extends BaseMapper<StoreUser> {
 }

+ 15 - 0
alien-gateway/src/main/java/shop/alien/gateway/service/ActivityInviteConfigService.java

@@ -0,0 +1,15 @@
+package shop.alien.gateway.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import shop.alien.entity.store.ActivityInviteConfig;
+
+/**
+ * @author zhangchen
+ * @version 1.0
+ * @date 2025/09/05 10:00
+ */
+public interface ActivityInviteConfigService extends IService<ActivityInviteConfig> {
+
+    String bindInviteCode(Integer invitedUserId, String inviteCode);
+
+}

+ 49 - 36
alien-gateway/src/main/java/shop/alien/gateway/service/LifeUserService.java

@@ -1,9 +1,10 @@
 package shop.alien.gateway.service;
 
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -12,8 +13,8 @@ import shop.alien.entity.store.LifeUser;
 import shop.alien.entity.store.vo.LifeUserVo;
 import shop.alien.gateway.config.BaseRedisService;
 import shop.alien.gateway.feign.SecondServiceFeign;
-import shop.alien.gateway.mapper.LifeUserLogMapper;
-import shop.alien.gateway.mapper.LifeUserMapper;
+import shop.alien.gateway.mapper.LifeUserLogGatewayMapper;
+import shop.alien.gateway.mapper.LifeUserGatewayMapper;
 import shop.alien.util.common.JwtUtil;
 
 import java.time.LocalDateTime;
@@ -29,45 +30,25 @@ import java.util.stream.Collectors;
  */
 @Service
 @RequiredArgsConstructor
-public class LifeUserService extends ServiceImpl<LifeUserMapper, LifeUser> {
+public class LifeUserService extends ServiceImpl<LifeUserGatewayMapper, LifeUser> {
 
-    private final LifeUserMapper lifeUserMapper;
+    private final LifeUserGatewayMapper lifeUserMapper;
 
-    private final LifeUserLogMapper lifeUserLogMapper;
+    private final LifeUserLogGatewayMapper lifeUserLogMapper;
 
     private final BaseRedisService baseRedisService;
 
     private final SecondServiceFeign secondServiceFeign;
 
+    private final ActivityInviteConfigService activityInviteConfigService;
+
     @Value("${risk-control.account-abnormal.reg-count24h:4}")
     private Integer regCount24h;
 
     @Value("${jwt.expiration-time}")
     private String effectiveTime;
 
-    public LifeUserVo userLogin(String phoneNum, String macIp) {
-        int effectiveTimeInt = Integer.parseInt(effectiveTime.substring(0, effectiveTime.length() - 1));
-        String effectiveTimeUnit = effectiveTime.substring(effectiveTime.length() - 1);
-        long effectiveTimeIntLong = 0L;
-        switch (effectiveTimeUnit) {
-            case "s": {
-                effectiveTimeIntLong = effectiveTimeInt * 1000L;
-                break;
-            }
-            case "m": {
-                effectiveTimeIntLong = effectiveTimeInt * 60L * 1000L;
-                break;
-            }
-            case "h": {
-                effectiveTimeIntLong = effectiveTimeInt * 60L * 60L * 1000L;
-                break;
-            }
-            case "d": {
-                effectiveTimeIntLong = effectiveTimeInt * 24L * 60L * 60L * 1000L;
-                break;
-            }
-        }
-
+    public LifeUserVo userLogin(String phoneNum, String inviteCode, String macIp) {
         LifeUser user = getUserByPhone(phoneNum);
         if (user == null) {
             LifeUser lifeUser = new LifeUser();
@@ -85,13 +66,16 @@ public class LifeUserService extends ServiceImpl<LifeUserMapper, LifeUser> {
                 tokenMap.put("userName", lifeUser.getUserName());
                 tokenMap.put("userId", lifeUser.getId().toString());
                 tokenMap.put("userType", "user");
-                userVo.setToken(JwtUtil.createJWT("user_" + phoneNum, lifeUser.getUserName(), JSONObject.toJSONString(tokenMap), effectiveTimeIntLong));
-//                userVo.setToken(JWTUtils.createToken(tokenMap));
-                baseRedisService.setString("user_" + phoneNum, userVo.getToken());
+//                userVo.setToken(JWTUtils1.createToken(tokenMap));
+                String token = getToken(phoneNum, userVo.getUserName(), tokenMap);
+                userVo.setToken(token);
+                baseRedisService.setString("user_" + phoneNum, token);
+                // 生成邀请记录
+                if (StringUtils.isNotEmpty(inviteCode)) {
+                    activityInviteConfigService.bindInviteCode(lifeUser.getId(), inviteCode);
+                }
                 // 二手平台登录log,同一个macip登录多账号记录
                 addLifeUserLogInfo(user2, macIp);
-                // 第一次登录,添加用户基础积分
-                secondServiceFeign.createPointsRecord(user2.getId(), 300, 1);
                 return userVo;
             } else {
                 return null;
@@ -104,16 +88,45 @@ public class LifeUserService extends ServiceImpl<LifeUserMapper, LifeUser> {
             tokenMap.put("userName", user.getUserName());
             tokenMap.put("userId", user.getId().toString());
             tokenMap.put("userType", "user");
-//            String token = JWTUtils.createToken(tokenMap);
-            String token = JwtUtil.createJWT("user_" + phoneNum, user.getUserName(), JSONObject.toJSONString(tokenMap), effectiveTimeIntLong);
+            String token = getToken(phoneNum, user.getUserName(), tokenMap);
             userVo.setToken(token);
             baseRedisService.setString("user_" + phoneNum, token);
+            if (StringUtils.isNotEmpty(inviteCode)) {
+                // 生成邀请记录
+                activityInviteConfigService.bindInviteCode(user.getId(), inviteCode);
+            }
             // 二手平台登录log,同一个macip登录多账号记录
             addLifeUserLogInfo(user, macIp);
             return userVo;
         }
     }
 
+    private String getToken(String phoneNum, String userVo, Map<String, String> tokenMap) {
+        int effectiveTimeInt = Integer.parseInt(effectiveTime.substring(0, effectiveTime.length() - 1));
+        String effectiveTimeUnit = effectiveTime.substring(effectiveTime.length() - 1);
+        long effectiveTimeIntLong = 0L;
+        switch (effectiveTimeUnit) {
+            case "s": {
+                effectiveTimeIntLong = effectiveTimeInt * 1000L;
+                break;
+            }
+            case "m": {
+                effectiveTimeIntLong = effectiveTimeInt * 60L * 1000L;
+                break;
+            }
+            case "h": {
+                effectiveTimeIntLong = effectiveTimeInt * 60L * 60L * 1000L;
+                break;
+            }
+            case "d": {
+                effectiveTimeIntLong = effectiveTimeInt * 24L * 60L * 60L * 1000L;
+                break;
+            }
+        }
+        String token = JwtUtil.createJWT("user_" + phoneNum, userVo, JSONObject.toJSONString(tokenMap), effectiveTimeIntLong);
+        return token;
+    }
+
     public LifeUser getUserByPhone(String phoneNum) {
         LambdaQueryWrapper<LifeUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(LifeUser::getUserPhone, phoneNum);

+ 15 - 0
alien-gateway/src/main/java/shop/alien/gateway/service/UserPointService.java

@@ -0,0 +1,15 @@
+package shop.alien.gateway.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import shop.alien.entity.store.UserPoint;
+
+/**
+ * @author zhangchen
+ * @version 1.0
+ * @date 2025/09/05 10:00
+ */
+public interface UserPointService extends IService<UserPoint> {
+
+    UserPoint addPoint(Integer userId, Integer point);
+
+}

+ 120 - 0
alien-gateway/src/main/java/shop/alien/gateway/service/impl/ActivityInviteConfigServiceImpl.java

@@ -0,0 +1,120 @@
+package shop.alien.gateway.service.impl;
+
+import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+import shop.alien.entity.store.ActivityInviteConfig;
+import shop.alien.entity.store.ActivityInviteLog;
+import shop.alien.entity.store.LifeUser;
+import shop.alien.gateway.service.ActivityInviteConfigService;
+import shop.alien.gateway.service.UserPointService;
+import shop.alien.mapper.ActivityInviteConfigMapper;
+import shop.alien.mapper.ActivityInviteLogMapper;
+import shop.alien.mapper.LifeUserMapper;
+
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class ActivityInviteConfigServiceImpl extends ServiceImpl<ActivityInviteConfigMapper, ActivityInviteConfig> implements ActivityInviteConfigService {
+
+    private final UserPointService userPointService;
+
+    private final ActivityInviteConfigMapper activityInviteConfigMapper;
+
+    private final LifeUserMapper lifeUserMapper;
+
+    private final ActivityInviteLogMapper activityInviteLogMapper;
+
+
+    @Override
+    public String bindInviteCode(Integer invitedUserId, String inviteCode) {
+        if (StringUtils.isNotBlank(inviteCode) && invitedUserId != null) {
+            // 根据邀请码查询邀请用户
+            LambdaQueryWrapper<LifeUser> lifeUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lifeUserLambdaQueryWrapper.eq(LifeUser::getDeleteFlag, 0);
+            lifeUserLambdaQueryWrapper.apply("BINARY invite_code = {0}", inviteCode);
+            List<LifeUser> lifeUserList = lifeUserMapper.selectList(lifeUserLambdaQueryWrapper);
+            if (CollectionUtils.isEmpty(lifeUserList)) {
+                return "邀请码异常或邀请用户已注销";
+            }
+            LifeUser originalLifeUser = lifeUserList.get(0);
+            int inviteUserId = originalLifeUser.getId();
+            LifeUser invitedLifeUser = lifeUserMapper.selectById(invitedUserId);
+            if (invitedLifeUser == null) {
+                return "被邀请用户异常";
+            } else if (StringUtils.isNotBlank(invitedLifeUser.getBindInviteCode())) {
+                return "已经绑定邀请码不能重复绑定";
+            } else if (StringUtils.isNotBlank(invitedLifeUser.getInviteCode()) && invitedLifeUser.getInviteCode().equals(inviteCode)) {
+                return "不能绑定自己的邀请码";
+            } else {
+                LambdaQueryWrapper<ActivityInviteConfig> activityInviteConfigLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                activityInviteConfigLambdaQueryWrapper.eq(ActivityInviteConfig::getDeleteFlag, 0);
+                List<ActivityInviteConfig> activityInviteConfigList = activityInviteConfigMapper.selectList(activityInviteConfigLambdaQueryWrapper);
+                if (CollectionUtils.isNotEmpty(activityInviteConfigList)) {
+                    ActivityInviteConfig activityInviteConfig = activityInviteConfigList.get(0);
+
+                    // 判断是否达到当天邀请最大次数
+                    Integer maxInviteNum = activityInviteConfig.getMaxInviteNum();
+                    if (maxInviteNum != null) {
+                        LambdaQueryWrapper<ActivityInviteLog> activityInviteLogLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                        activityInviteLogLambdaQueryWrapper.eq(ActivityInviteLog::getInviteUserId, inviteUserId);
+                        activityInviteLogLambdaQueryWrapper.eq(ActivityInviteLog::getDeleteFlag, 0);
+                        // 使用 Date 对象而不是字符串,确保类型匹配
+                        LocalDate today = LocalDate.now();
+                        LocalDateTime startOfDay = today.atStartOfDay();
+                        LocalDateTime endOfDay = today.atTime(23, 59, 59);
+                        Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
+                        Date endDate = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
+                        activityInviteLogLambdaQueryWrapper.between(ActivityInviteLog::getInviteTime, startDate, endDate);
+                        int todayInviteCount = activityInviteLogMapper.selectCount(activityInviteLogLambdaQueryWrapper);
+                        if (todayInviteCount > maxInviteNum) {
+                            return "绑定数量已超过当天最大绑定数量";
+                        }
+                    }
+
+                    ActivityInviteLog activityInviteLog = new ActivityInviteLog();
+                    activityInviteLog.setInviteUserId(inviteUserId);
+                    activityInviteLog.setInvitedUserId(invitedUserId);
+                    activityInviteLog.setActivityId(activityInviteConfig.getId());
+
+                    // 邀请奖励
+                    activityInviteLog.setInviteRewardType(activityInviteConfig.getInviteRewardType());
+                    activityInviteLog.setInviteRewardCoupon(activityInviteConfig.getInviteRewardCoupon());
+                    activityInviteLog.setInviteRewardPoint(activityInviteConfig.getInviteRewardPoint());
+                    // 被邀请奖励
+                    activityInviteLog.setInvitedRewardType(activityInviteConfig.getInvitedRewardType());
+                    activityInviteLog.setInvitedRewardCoupon(activityInviteConfig.getInvitedRewardCoupon());
+                    activityInviteLog.setInvitedRewardPoint(activityInviteConfig.getInvitedRewardPoint());
+                    activityInviteLog.setInviteTime(Date.from(Instant.now()));
+                    activityInviteLogMapper.insert(activityInviteLog);
+
+                    if (activityInviteConfig.getInviteRewardType() == 2) {
+                        userPointService.addPoint(inviteUserId, activityInviteConfig.getInviteRewardPoint());
+                    }
+                    if (activityInviteConfig.getInvitedRewardType() == 2) {
+                        userPointService.addPoint(invitedUserId, activityInviteConfig.getInvitedRewardPoint());
+                    }
+                    LifeUser updateLifeUser = new LifeUser();
+                    updateLifeUser.setId(invitedLifeUser.getId());
+                    updateLifeUser.setBindInviteCode(inviteCode);
+                    lifeUserMapper.updateById(updateLifeUser);
+                    return "绑定成功";
+                } else {
+                    return "活动未开始或已结束";
+                }
+            }
+        }
+        return "参数异常";
+    }
+}

+ 2 - 2
alien-gateway/src/main/java/shop/alien/gateway/service/impl/StoreInfoServiceImpl.java

@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import shop.alien.entity.store.StoreInfo;
-import shop.alien.gateway.mapper.StoreInfoMapper;
+import shop.alien.gateway.mapper.StoreInfoGatewayMapper;
 import shop.alien.gateway.service.StoreInfoService;
 
 /**
@@ -17,6 +17,6 @@ import shop.alien.gateway.service.StoreInfoService;
 @Service
 @RequiredArgsConstructor
 @Transactional
-public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo> implements StoreInfoService {
+public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoGatewayMapper, StoreInfo> implements StoreInfoService {
 
 }

+ 4 - 4
alien-gateway/src/main/java/shop/alien/gateway/service/impl/StoreUserServiceImpl.java

@@ -12,8 +12,8 @@ import shop.alien.entity.store.StoreInfo;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.StoreUserVo;
 import shop.alien.gateway.config.BaseRedisService;
-import shop.alien.gateway.mapper.StoreInfoMapper;
-import shop.alien.gateway.mapper.StoreUserMapper;
+import shop.alien.gateway.mapper.StoreInfoGatewayMapper;
+import shop.alien.gateway.mapper.StoreUserGatewayMapper;
 import shop.alien.gateway.service.StoreUserService;
 import shop.alien.util.common.JwtUtil;
 
@@ -29,7 +29,7 @@ import java.util.Map;
 @Transactional
 @Service
 @RequiredArgsConstructor
-public class StoreUserServiceImpl extends ServiceImpl<StoreUserMapper, StoreUser> implements StoreUserService {
+public class StoreUserServiceImpl extends ServiceImpl<StoreUserGatewayMapper, StoreUser> implements StoreUserService {
 
     @Value("${jwt.expiration-time}")
     private String effectiveTime;
@@ -38,7 +38,7 @@ public class StoreUserServiceImpl extends ServiceImpl<StoreUserMapper, StoreUser
      * 设定初始化默认密码
      */
 
-    private final StoreInfoMapper storeInfoMapper;
+    private final StoreInfoGatewayMapper storeInfoMapper;
 
     private final BaseRedisService baseRedisService;
 

+ 2 - 2
alien-gateway/src/main/java/shop/alien/gateway/service/impl/SystemServiceImpl.java

@@ -9,7 +9,7 @@ import shop.alien.entity.store.LifeSys;
 import shop.alien.entity.store.UserLoginInfo;
 import shop.alien.entity.store.vo.SystemLoginVo;
 import shop.alien.gateway.config.BaseRedisService;
-import shop.alien.gateway.mapper.LifeSysMapper;
+import shop.alien.gateway.mapper.LifeSysGatewayMapper;
 import shop.alien.gateway.service.SystemService;
 import shop.alien.util.common.JwtUtil;
 
@@ -30,7 +30,7 @@ import java.util.Map;
 @RequiredArgsConstructor
 public class SystemServiceImpl implements SystemService {
 
-    private final LifeSysMapper lifeSysMapper;
+    private final LifeSysGatewayMapper lifeSysMapper;
 
     private final BaseRedisService baseRedisService;
 

+ 50 - 0
alien-gateway/src/main/java/shop/alien/gateway/service/impl/UserPointServiceImpl.java

@@ -0,0 +1,50 @@
+package shop.alien.gateway.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import shop.alien.entity.store.UserPoint;
+import shop.alien.gateway.service.UserPointService;
+import shop.alien.mapper.UserPointMapper;
+
+import java.util.List;
+
+/**
+ * 签到类型活动服务
+ *
+ * @author zhangchen
+ * @since 2025-9-8
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class UserPointServiceImpl extends ServiceImpl<UserPointMapper, UserPoint> implements UserPointService {
+
+    private final UserPointMapper userPointMapper;
+
+    @Override
+    public UserPoint addPoint(Integer userId, Integer point) {
+        UserPoint userPoint = new UserPoint();
+        if (userId != null && point != null) {
+            LambdaQueryWrapper<UserPoint> userPointLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            userPointLambdaQueryWrapper.eq(UserPoint::getUserId, userId);
+            userPointLambdaQueryWrapper.eq(UserPoint::getDeleteFlag, 0);
+            List<UserPoint> userPointList = userPointMapper.selectList(userPointLambdaQueryWrapper);
+            if (!CollectionUtils.isEmpty(userPointList)) {
+                userPoint = userPointList.get(0);
+                int totalPoint = point + userPoint.getUserPoint();
+                userPoint.setUserPoint(totalPoint);
+                userPointMapper.updateById(userPoint);
+            } else {
+                userPoint.setUserId(userId);
+                userPoint.setUserPoint(point);
+                userPointMapper.insert(userPoint);
+            }
+        }
+        return userPoint;
+    }
+
+}

+ 1 - 1
alien-gateway/src/main/resources/mapper/StoreUserMapper.xml → alien-gateway/src/main/resources/mapper/StoreUserGatewayMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="shop.alien.gateway.mapper.StoreUserMapper">
+<mapper namespace="shop.alien.gateway.mapper.StoreUserGatewayMapper">
 
     <!-- 查询已删除的用户 -->
     <select id="getRemoveUser" resultType="shop.alien.entity.store.StoreUser">

+ 0 - 15
alien-store/src/main/java/shop/alien/store/controller/LifeUserController.java

@@ -41,21 +41,6 @@ public class LifeUserController {
 
     private final BaseRedisService baseRedisService;
 
-    @ApiOperation("用户登录")
-    @ApiOperationSupport(order = 1)
-    @ApiImplicitParams({@ApiImplicitParam(name = "phoneNum", value = "手机号", dataType = "String", paramType = "query", required = true),
-            @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = false)})
-    @GetMapping("/userLogin")
-    public R<LifeUserVo> userLogin(@RequestParam("phoneNum") String phoneNum,  @RequestParam(required = false) String inviteCode,
-                                   @RequestParam(value = "macIp",required = false) String macIp) {
-        log.info("LifeUserController.userLogin?phoneNum={}", phoneNum);
-        LifeUserVo userVo = service.userLogin(phoneNum, inviteCode, macIp);
-        if (null == userVo) {
-            return R.fail("登录失败");
-        }
-        return R.data(userVo);
-    }
-
     @ApiOperation("查询用户信息")
     @ApiOperationSupport(order = 2)
     @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键id", dataType = "String", paramType = "query", required = true)})

+ 2 - 2
alien-store/src/main/java/shop/alien/store/controller/StoreAppVersionController.java

@@ -37,8 +37,8 @@ public class StoreAppVersionController {
     @ApiOperation("保存或修改版本信息")
     @ApiOperationSupport(order = 2)
     @PostMapping("/saveVersionInfo")
-    public R<StoreAppVersion> saveVersionInfo(@RequestBody StoreAppVersion storeAppVersion) {
-        return storeAppVersionService.saveVersionInfo(storeAppVersion) ? R.success("成功") : R.fail("失败");
+    public R<String> saveVersionInfo(@RequestBody StoreAppVersion storeAppVersion) {
+        return storeAppVersionService.saveVersionInfo(storeAppVersion);
     }
 
     @ApiOperation("列表分页查询")

+ 0 - 54
alien-store/src/main/java/shop/alien/store/controller/SystemController.java

@@ -1,54 +0,0 @@
-package shop.alien.store.controller;
-
-import io.swagger.annotations.*;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.UserLoginInfo;
-import shop.alien.entity.store.dto.SystemLoginDto;
-import shop.alien.entity.store.vo.SystemLoginVo;
-import shop.alien.store.service.SystemService;
-import shop.alien.util.common.TokenInfo;
-import springfox.documentation.annotations.ApiIgnore;
-
-/**
- * 商家会员记录 前端控制器
- *
- * @author ssk
- * @since 2025-02-20
- */
-@Slf4j
-@Api(tags = {"数据中台基础服务接口"})
-@ApiSort(1)
-@CrossOrigin
-@RestController
-@RequestMapping("/sys")
-@RequiredArgsConstructor
-public class SystemController {
-
-    private final SystemService systemService;
-
-    @ApiOperation("web中台登录")
-    @ApiOperationSupport(order = 1)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "userName", value = "用户名", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "password", value = "密码", dataType = "String", paramType = "query"),
-    })
-    @PostMapping(value = "/login")
-    public R<SystemLoginVo> getStoreVipLogPage(@RequestBody SystemLoginDto systemLogin) {
-        return R.data(systemService.login(systemLogin.getUsername(), systemLogin.getPassword()));
-    }
-
-    @ApiOperation("web中台退出登录")
-    @ApiOperationSupport(order = 1)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "userName", value = "用户名", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "password", value = "密码", dataType = "String", paramType = "query"),
-    })
-    @PostMapping(value = "/logout")
-    public R<SystemLoginVo> logout(@ApiIgnore @TokenInfo UserLoginInfo userLoginInfo) {
-        return R.success("退出成功");
-    }
-
-}

+ 13 - 101
alien-store/src/main/java/shop/alien/store/service/LifeUserService.java

@@ -11,34 +11,30 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Triple;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import shop.alien.config.properties.RiskControlProperties;
 import shop.alien.entity.second.LifeUserLog;
-import shop.alien.entity.result.R;
 import shop.alien.entity.second.SecondRiskControlRecord;
-import shop.alien.entity.second.SecondUserCredit;
 import shop.alien.entity.store.LifeFans;
 import shop.alien.entity.store.LifeNotice;
 import shop.alien.entity.store.LifeUser;
 import shop.alien.entity.store.vo.LifeMessageVo;
 import shop.alien.entity.store.vo.LifeUserVo;
 import shop.alien.entity.store.vo.WebSocketVo;
-import shop.alien.mapper.second.LifeUserLogMapper;
-import shop.alien.mapper.second.SecondRiskControlRecordMapper;
-import shop.alien.mapper.second.SecondUserCreditMapper;
-import shop.alien.store.config.BaseRedisService;
 import shop.alien.mapper.LifeFansMapper;
 import shop.alien.mapper.LifeMessageMapper;
 import shop.alien.mapper.LifeNoticeMapper;
 import shop.alien.mapper.LifeUserMapper;
+import shop.alien.mapper.second.LifeUserLogMapper;
+import shop.alien.mapper.second.SecondRiskControlRecordMapper;
+import shop.alien.mapper.second.SecondUserCreditMapper;
+import shop.alien.store.config.BaseRedisService;
 import shop.alien.store.config.WebSocketProcess;
 import shop.alien.store.feign.SecondServiceFeign;
 import shop.alien.store.util.FunctionMagic;
-import shop.alien.util.common.JwtUtil;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
@@ -161,90 +157,6 @@ public class LifeUserService extends ServiceImpl<LifeUserMapper, LifeUser> {
         return voList;
     }
 
-    public LifeUserVo userLogin(String phoneNum, String inviteCode, String macIp) {
-        LifeUser user = getUserByPhone(phoneNum);
-        if (user == null) {
-            LifeUser lifeUser = new LifeUser();
-            lifeUser.setUserPhone(phoneNum);
-            lifeUser.setUserName(phoneNum);
-            lifeUser.setRealName(phoneNum);
-            lifeUser.setCreatedTime(new Date());
-            int ret = lifeUserMapper.insert(lifeUser);
-            if (ret == 1) {
-                LifeUser user2 = getUserByPhone(phoneNum);
-                LifeUserVo userVo = new LifeUserVo();
-                BeanUtils.copyProperties(user2, userVo);
-                Map<String, String> tokenMap = new HashMap<>();
-                tokenMap.put("phone", phoneNum);
-                tokenMap.put("userName", lifeUser.getUserName());
-                tokenMap.put("userId", lifeUser.getId().toString());
-                tokenMap.put("userType", "user");
-//                userVo.setToken(JWTUtils1.createToken(tokenMap));
-                String token = getToken(phoneNum, userVo.getUserName(), tokenMap);
-                userVo.setToken(token);
-                baseRedisService.setString("user_" + phoneNum, token);
-
-                // 生成邀请记录
-                if(StringUtils.isNotEmpty(inviteCode)){
-                    activityInviteConfigService.bindInviteCode(lifeUser.getId(), inviteCode);
-                }
-
-                // 二手平台登录log,同一个macip登录多账号记录
-                addLifeUserLogInfo(user2, macIp);
-
-                return userVo;
-            } else {
-                return null;
-            }
-        } else {
-            LifeUserVo userVo = new LifeUserVo();
-            BeanUtils.copyProperties(user, userVo);
-            Map<String, String> tokenMap = new HashMap<>();
-            tokenMap.put("phone", phoneNum);
-            tokenMap.put("userName", user.getUserName());
-            tokenMap.put("userId", user.getId().toString());
-            tokenMap.put("userType", "user");
-            String token = getToken(phoneNum, user.getUserName(), tokenMap);
-            userVo.setToken(token);
-            baseRedisService.setString("user_" + phoneNum, token);
-            if(StringUtils.isNotEmpty(inviteCode)){
-                // 生成邀请记录
-                activityInviteConfigService.bindInviteCode(user.getId(), inviteCode);
-            }
-
-            // 二手平台登录log,同一个macip登录多账号记录
-            addLifeUserLogInfo(user, macIp);
-
-            return userVo;
-        }
-    }
-
-    private String getToken(String phoneNum, String userVo, Map<String, String> tokenMap) {
-        int effectiveTimeInt = Integer.parseInt(effectiveTime.substring(0, effectiveTime.length() - 1));
-        String effectiveTimeUnit = effectiveTime.substring(effectiveTime.length() - 1);
-        long effectiveTimeIntLong = 0L;
-        switch (effectiveTimeUnit) {
-            case "s": {
-                effectiveTimeIntLong = effectiveTimeInt * 1000L;
-                break;
-            }
-            case "m": {
-                effectiveTimeIntLong = effectiveTimeInt * 60L * 1000L;
-                break;
-            }
-            case "h": {
-                effectiveTimeIntLong = effectiveTimeInt * 60L * 60L * 1000L;
-                break;
-            }
-            case "d": {
-                effectiveTimeIntLong = effectiveTimeInt * 24L * 60L * 60L * 1000L;
-                break;
-            }
-        }
-        String token = JwtUtil.createJWT("user_" + phoneNum, userVo, JSONObject.toJSONString(tokenMap), effectiveTimeIntLong);
-        return token;
-    }
-
     public LifeUser getUserByPhone(String phoneNum) {
         LambdaQueryWrapper<LifeUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(LifeUser::getUserPhone, phoneNum);
@@ -290,19 +202,19 @@ public class LifeUserService extends ServiceImpl<LifeUserMapper, LifeUser> {
     }
 
     public boolean checkRealInfo(LifeUser user) {
-        LifeUser lifeUser =  lifeUserMapper.selectById(user.getId());
-        if(lifeUser != null) {
-          String realName = user.getRealName();
-          String idCard = user.getIdCard();
-          if ((realName == null && lifeUser.getRealName() == null)|| (idCard == null && lifeUser.getIdCard() == null)) {
-              return false;
-          }
-          return (StringUtils.isNotEmpty(realName) && !realName.equals(lifeUser.getRealName())) || (StringUtils.isNotEmpty(idCard) && !idCard.equals(lifeUser.getIdCard()));
+        LifeUser lifeUser = lifeUserMapper.selectById(user.getId());
+        if (lifeUser != null) {
+            String realName = user.getRealName();
+            String idCard = user.getIdCard();
+            if ((realName == null && lifeUser.getRealName() == null) || (idCard == null && lifeUser.getIdCard() == null)) {
+                return false;
+            }
+            return (StringUtils.isNotEmpty(realName) && !realName.equals(lifeUser.getRealName())) || (StringUtils.isNotEmpty(idCard) && !idCard.equals(lifeUser.getIdCard()));
         }
         return false;
     }
 
-    public void sendNotice(LifeUser user){
+    public void sendNotice(LifeUser user) {
         String receiverId = "user_" + user.getUserPhone();
         LifeNotice lifeNotice = new LifeNotice();
         lifeNotice.setReceiverId(receiverId);

+ 3 - 2
alien-store/src/main/java/shop/alien/store/service/StoreAppVersionService.java

@@ -2,6 +2,7 @@ package shop.alien.store.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreAppVersion;
 
 /**
@@ -24,9 +25,9 @@ public interface StoreAppVersionService extends IService<StoreAppVersion> {
      * 保存或修改版本信息
      *
      * @param storeAppVersion App版本类
-     * @return int
+     * @return R
      */
-    boolean saveVersionInfo(StoreAppVersion storeAppVersion);
+    R<String> saveVersionInfo(StoreAppVersion storeAppVersion);
 
     /**
      * 列表分页查询

+ 0 - 18
alien-store/src/main/java/shop/alien/store/service/SystemService.java

@@ -1,18 +0,0 @@
-package shop.alien.store.service;
-
-import shop.alien.entity.store.UserLoginInfo;
-import shop.alien.entity.store.vo.SystemLoginVo;
-
-/**
- * 数据中台基本服务接口
- *
- * @author YinDP
- * @since 2025-02-27
- */
-public interface SystemService {
-
-    public SystemLoginVo login(String username, String password);
-
-    public SystemLoginVo logout(UserLoginInfo userLoginInfo);
-
-}

+ 11 - 2
alien-store/src/main/java/shop/alien/store/service/impl/StoreAppVersionServiceImpl.java

@@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreAppVersion;
 import shop.alien.mapper.StoreAppVersionMapper;
 import shop.alien.store.service.StoreAppVersionService;
 
+import java.util.List;
+
 /**
  * App版本表 服务实现类
  *
@@ -40,12 +43,18 @@ public class StoreAppVersionServiceImpl extends ServiceImpl<StoreAppVersionMappe
      */
     @Transactional
     @Override
-    public boolean saveVersionInfo(StoreAppVersion storeAppVersion) {
+    public R<String> saveVersionInfo(StoreAppVersion storeAppVersion) {
+        LambdaQueryWrapper<StoreAppVersion> versionQuery = new LambdaQueryWrapper<>();
+        versionQuery.eq(StoreAppVersion::getVersion, storeAppVersion.getVersion());
+        List<StoreAppVersion> versionList = this.list(versionQuery);
+        if (!versionList.isEmpty()) {
+            return R.fail("该版本号已存在");
+        }
         LambdaQueryWrapper<StoreAppVersion> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(StoreAppVersion::getAppType, storeAppVersion.getAppType()).orderByDesc(StoreAppVersion::getVersionNum).last("limit 1");
         StoreAppVersion one = this.getOne(lambdaQueryWrapper);
         storeAppVersion.setVersionNum(one.getVersionNum() + 1);
-        return this.saveOrUpdate(storeAppVersion);
+        return this.saveOrUpdate(storeAppVersion) ? R.success("新增成功") : R.fail("新增失败");
     }
 
     /**

+ 0 - 121
alien-store/src/main/java/shop/alien/store/service/impl/SystemServiceImpl.java

@@ -1,121 +0,0 @@
-package shop.alien.store.service.impl;
-
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import shop.alien.entity.store.LifeSys;
-import shop.alien.entity.store.UserLoginInfo;
-import shop.alien.entity.store.vo.SystemLoginVo;
-import shop.alien.store.config.BaseRedisService;
-import shop.alien.mapper.LifeSysMapper;
-import shop.alien.store.service.SystemService;
-import shop.alien.util.common.JwtUtil;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * <p>
- * 商家会员记录 服务实现类
- * </p>
- *
- * @author ssk
- * @since 2025-02-20
- */
-@Service
-@RequiredArgsConstructor
-public class SystemServiceImpl implements SystemService {
-
-    private final LifeSysMapper lifeSysMapper;
-
-    private final BaseRedisService baseRedisService;
-
-    @Value("${jwt.expiration-time}")
-    private String effectiveTime;
-
-    @Override
-    public SystemLoginVo login(String username, String password) {
-        int effectiveTimeInt = Integer.parseInt(effectiveTime.substring(0, effectiveTime.length() - 1));
-        String effectiveTimeUnit = effectiveTime.substring(effectiveTime.length() - 1);
-        long effectiveTimeIntLong = 0L;
-        switch (effectiveTimeUnit) {
-            case "s": {
-                effectiveTimeIntLong = effectiveTimeInt * 1000L;
-                break;
-            }
-            case "m": {
-                effectiveTimeIntLong = effectiveTimeInt * 60L * 1000L;
-                break;
-            }
-            case "h": {
-                effectiveTimeIntLong = effectiveTimeInt * 60L * 60L * 1000L;
-                break;
-            }
-            case "d": {
-                effectiveTimeIntLong = effectiveTimeInt * 24L * 60L * 60L * 1000L;
-                break;
-            }
-        }
-        SystemLoginVo result = new SystemLoginVo();
-        //给密码加密MD5,查询用户是否存在
-        LifeSys lifeSys = lifeSysMapper.selectOne(
-                new LambdaQueryWrapper<LifeSys>()
-                        .eq(LifeSys::getUserName, username)
-        );
-        if (lifeSys != null && encryptToMD5(lifeSys.getUserPassword()).equals(password)) {
-            Map<String, String> tokenMap = new HashMap<>();
-            tokenMap.put("phone", "123456");
-            tokenMap.put("userName", lifeSys.getUserName());
-            tokenMap.put("userId", lifeSys.getId());
-            tokenMap.put("userType", "web");
-            //存入token
-            result.setToken(JwtUtil.createJWT("web_" + lifeSys.getId(), lifeSys.getUserName(), JSONObject.toJSONString(tokenMap), effectiveTimeIntLong));
-            baseRedisService.setString("web_" + lifeSys.getUserName(), result.getToken());
-            //登录结果
-            result.setResult(true);
-            //登录结果
-            result.setMessage("登录成功!!");
-        } else {
-            result.setResult(false);
-            result.setMessage("用户名或者密码错误,请确认!!");
-        }
-        return result;
-    }
-
-    @Override
-    public SystemLoginVo logout(UserLoginInfo userLoginInfo) {
-        //JWT移除token
-        return null;
-    }
-
-    public static String encryptToMD5(String input) {
-        try {
-            // 获取 MD5 算法的 MessageDigest 实例
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            // 将输入的字符串转换为字节数组,并进行 MD5 计算
-            byte[] messageDigest = md.digest(input.getBytes());
-
-            // 创建一个 StringBuilder 用于存储十六进制字符串
-            StringBuilder hexString = new StringBuilder();
-            for (byte b : messageDigest) {
-                // 将字节转换为十六进制字符串
-                String hex = Integer.toHexString(0xFF & b);
-                if (hex.length() == 1) {
-                    // 如果十六进制字符串长度为 1,则在前面补 0
-                    hexString.append('0');
-                }
-                hexString.append(hex);
-            }
-            // 返回最终的 MD5 加密后的十六进制字符串
-            return hexString.toString();
-        } catch (NoSuchAlgorithmException e) {
-            // 若指定的算法(MD5)不可用,抛出运行时异常
-            throw new RuntimeException(e);
-        }
-    }
-
-}