yangdamao 2 jaren geleden
bovenliggende
commit
aaf91c8c7b

+ 4 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysLoginController.java

@@ -10,6 +10,7 @@ import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.core.domain.model.LoginBody;
 import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.framework.web.service.SysLoginService;
 import com.zhongzheng.framework.web.service.SysPermissionService;
 import com.zhongzheng.framework.web.service.TokenService;
@@ -139,9 +140,9 @@ public class SysLoginController
     @PostMapping("/old/login")
     public AjaxResult oldTenantLogin(@RequestBody OldTenantLoginBo bo)
     {
-//        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
-//            return AjaxResult.error("签名错误");
-//        }
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            return AjaxResult.error("签名错误");
+        }
         if (StringUtils.isBlank(bo.getAccount())){
             return AjaxResult.error("账号不能为空");
         }

+ 57 - 20
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysLoginService.java

@@ -17,6 +17,8 @@ import com.zhongzheng.common.utils.*;
 import com.zhongzheng.common.utils.http.HttpUtils;
 import com.zhongzheng.framework.manager.AsyncManager;
 import com.zhongzheng.framework.manager.factory.AsyncFactory;
+import com.zhongzheng.modules.distribution.domain.DistributionSeller;
+import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
 import com.zhongzheng.modules.goods.bo.OldTenantLoginBo;
 import com.zhongzheng.modules.system.domain.SysUserRole;
 import com.zhongzheng.modules.system.service.ISysConfigService;
@@ -32,6 +34,7 @@ import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.InputStream;
@@ -58,6 +61,9 @@ public class SysLoginService
     @Autowired
     private ISysUserService iSysUserService;
 
+    @Autowired
+    private IDistributionSellerService iDistributionSellerService;
+
     @Autowired
     private ISysConfigService configService;
 
@@ -201,16 +207,12 @@ public class SysLoginService
         return tokenService.createToken(loginUser);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public String oldTenantLogin(OldTenantLoginBo bo) {
         // 用户验证
         SysUser sysUser = iSysUserService.getOne(new LambdaQueryWrapper<SysUser>()
-                .eq(SysUser::getUserName, bo.getAccount())
-                .eq(SysUser::getTenantId, bo.getTenantId()));
+                .eq(SysUser::getUserName, bo.getAccount()));
         if (ObjectUtils.isNull(sysUser)){
-            //新增账号
-            sysUser = new SysUser();
-            sysUser.setTenantId(Long.valueOf(bo.getTenantId()));
-            sysUser.setUserName(bo.getAccount());
             //查询老系统密码
             OldTenantLoginBo loginBo = new OldTenantLoginBo();
             Long nowTime = DateUtils.getNowTime();
@@ -228,23 +230,26 @@ public class SysLoginService
                 }
                 JSONObject jsonObject = JSONObject.parseObject(respone);
                 String password = jsonObject.get("Message").toString();
-                sysUser.setPassword(SecurityUtils.encryptPassword(password));
+                String idCard = jsonObject.get("ErrorMessage").toString();
+                String telphone = jsonObject.get("Url").toString();
+                SysUser user = iSysUserService.getOne(new LambdaQueryWrapper<SysUser>()
+                        .eq(SysUser::getStatus, 1)
+                        .and(x -> x.eq(SysUser::getPhonenumber, telphone).or().eq(SysUser::getIdCard, idCard))
+                        .last("limit 1"));
+                if (ObjectUtils.isNotNull(user)){
+                    sysUser = user;
+                }else {
+                    //新增账号
+                    sysUser = new SysUser();
+                    sysUser.setPassword(SecurityUtils.encryptPassword(password));
+                    sysUser.setIdCard(idCard);
+                    sysUser.setPhonenumber(telphone);
+                    initSysUser(bo,sysUser);
+                }
             } catch (Exception e) {
+                e.printStackTrace();
                 throw new CustomException("获取用户密码" + e.getMessage());
             }
-            sysUser.setNickName(bo.getAccount());
-            sysUser.setSex("0");
-            sysUser.setStatus(1L);
-            sysUser.setDelFlag("0");
-            sysUser.setCode(ServletUtils.getEncoded("ZH"));
-            sysUser.setCreateTime(DateUtils.getNowDate());
-            sysUser.setUpdateTime(DateUtils.getNowDate());
-            sysUser.setCreateBy("admin");
-            sysUser.setUpdateBy("admin");
-            sysUser.setRemark("系统增加(老系统业务员跳转)");
-            iSysUserService.save(sysUser);
-            //绑定用户角色
-            initRole(sysUser.getUserId(),bo.getTenantId());
         }
         LoginUser loginUser = new LoginUser();
         loginUser.setUser(sysUser);
@@ -252,6 +257,38 @@ public class SysLoginService
         return tokenService.createToken(loginUser);
     }
 
+    private void initSysUser(OldTenantLoginBo bo,SysUser sysUser){
+        //新增业务员账号
+        DistributionSeller seller = new DistributionSeller();
+        seller.setRealname(bo.getAccount());
+        seller.setStatus(1);
+        seller.setCreateTime(DateUtils.getNowTime());
+        seller.setUpdateTime(DateUtils.getNowTime());
+        seller.setTenantId(Long.valueOf(bo.getTenantId()));
+        seller.setShareCode(ToolsUtils.getRandomString(8));
+        seller.setUserAccount(ServletUtils.getEncoded("YW"));
+        seller.setParentId(0L);
+        seller.setRegisterFrom(2);
+        iDistributionSellerService.save(seller);
+        //用户
+        sysUser.setTenantId(Long.valueOf(bo.getTenantId()));
+        sysUser.setUserName(bo.getAccount());
+        sysUser.setNickName(bo.getAccount());
+        sysUser.setSex("0");
+        sysUser.setStatus(1L);
+        sysUser.setDelFlag("0");
+        sysUser.setCode(ServletUtils.getEncoded("ZH"));
+        sysUser.setCreateTime(DateUtils.getNowDate());
+        sysUser.setUpdateTime(DateUtils.getNowDate());
+        sysUser.setCreateBy("admin");
+        sysUser.setUpdateBy("admin");
+        sysUser.setRemark("系统增加(老系统业务员跳转)");
+        sysUser.setSellerId(seller.getSellerId());
+        iSysUserService.save(sysUser);
+        //绑定用户角色
+        initRole(sysUser.getUserId(),bo.getTenantId());
+    }
+
     private void initRole(Long userId,String tenantId) {
         //业务员管理员
         SysRole role = iSysRoleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleKey, "seller_admin"));

+ 6 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionSeller.java

@@ -1,14 +1,15 @@
 package com.zhongzheng.modules.distribution.domain;
 
-import com.baomidou.mybatisplus.annotation.*;
-import com.zhongzheng.common.type.EncryptHandler;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
+
 import java.io.Serializable;
-import java.util.Date;
 import java.math.BigDecimal;
-import com.zhongzheng.common.annotation.Excel;
 
 /**
  * 分销业务员对象 distribution_seller
@@ -55,4 +56,5 @@ private static final long serialVersionUID=1L;
     private BigDecimal freezeCash;
     /** 1招募注册 2后台添加 3关联注册 */
     private Integer registerFrom;
+    private Long tenantId;
 }