Explorar el Código

Merge remote-tracking branch 'origin/master'

郎学彬 hace 3 años
padre
commit
b924f0a37b
Se han modificado 23 ficheros con 717 adiciones y 741 borrados
  1. 1 1
      tianhu-system/src/main/java/com/tianhu/system/controller/SysMenuController.java
  2. 201 40
      tianhu-system/src/main/java/com/tianhu/system/controller/SysUserController.java
  3. 103 71
      tianhu-system/src/main/java/com/tianhu/system/controller/WxApiController.java
  4. 65 0
      tianhu-system/src/main/java/com/tianhu/system/domain/PubVerifyCode.java
  5. 68 159
      tianhu-system/src/main/java/com/tianhu/system/domain/SysWeChat.java
  6. 16 0
      tianhu-system/src/main/java/com/tianhu/system/mapper/PubVerifyCodeMapper.java
  7. 2 2
      tianhu-system/src/main/java/com/tianhu/system/mapper/SysRoleMapper.java
  8. 3 2
      tianhu-system/src/main/java/com/tianhu/system/mapper/SysUserRoleMapper.java
  9. 8 53
      tianhu-system/src/main/java/com/tianhu/system/mapper/SysWeChatMapper.java
  10. 59 0
      tianhu-system/src/main/java/com/tianhu/system/service/IPubVerifyCodeService.java
  11. 2 2
      tianhu-system/src/main/java/com/tianhu/system/service/ISysPermissionService.java
  12. 1 1
      tianhu-system/src/main/java/com/tianhu/system/service/ISysRoleService.java
  13. 33 35
      tianhu-system/src/main/java/com/tianhu/system/service/ISysWeChatService.java
  14. 64 0
      tianhu-system/src/main/java/com/tianhu/system/service/impl/PubVerifyCodeServiceImpl.java
  15. 1 1
      tianhu-system/src/main/java/com/tianhu/system/service/impl/SysMenuServiceImpl.java
  16. 8 7
      tianhu-system/src/main/java/com/tianhu/system/service/impl/SysPermissionServiceImpl.java
  17. 5 2
      tianhu-system/src/main/java/com/tianhu/system/service/impl/SysRoleServiceImpl.java
  18. 39 71
      tianhu-system/src/main/java/com/tianhu/system/service/impl/SysWeChatServiceImpl.java
  19. 0 175
      tianhu-system/src/main/java/com/tianhu/system/utils/DdApiUtils.java
  20. 15 0
      tianhu-system/src/main/resources/mapper/system/PubVerifyCodeMapper.xml
  21. 4 2
      tianhu-system/src/main/resources/mapper/system/SysRoleMapper.xml
  22. 4 2
      tianhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
  23. 15 115
      tianhu-system/src/main/resources/mapper/system/SysWeChatMapper.xml

+ 1 - 1
tianhu-system/src/main/java/com/tianhu/system/controller/SysMenuController.java

@@ -192,7 +192,7 @@ public class SysMenuController extends BaseController
             menus = menuService.selectMenuTreeByUserId(userId);
             System.out.println("平台");
         }else{
-            List<String> roleList = permissionService.getRoles(userId.toString());
+            List<String> roleList = permissionService.getRoles(userId.toString(), user.getCompanyId());
             //初始用户,菜单权限数据取企业产品菜单数据
             if(roleList.contains(SysConstant.ROLE_IS_AUTO)){
                 menus = menuService.getMenuTreeByAutoUser(user);

+ 201 - 40
tianhu-system/src/main/java/com/tianhu/system/controller/SysUserController.java

@@ -1,47 +1,46 @@
 package com.tianhu.system.controller;
 
-import java.io.IOException;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletResponse;
-
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.tianhu.common.core.constant.CacheConstants;
+import com.tianhu.common.core.constant.Constants;
 import com.tianhu.common.core.constant.SalaryConstants;
-import com.tianhu.common.core.utils.CommonUtil;
-import com.tianhu.common.core.utils.DateUtils;
-import com.tianhu.common.security.service.TokenService;
-import com.tianhu.system.api.domain.SysDept;
-import com.tianhu.system.domain.*;
-import com.tianhu.system.service.*;
-import com.tianhu.system.utils.SysConstant;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
 import com.tianhu.common.core.constant.UserConstants;
 import com.tianhu.common.core.domain.R;
+import com.tianhu.common.core.exception.BaseException;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.core.utils.IdUtils;
 import com.tianhu.common.core.utils.SecurityUtils;
 import com.tianhu.common.core.utils.StringUtils;
 import com.tianhu.common.core.utils.poi.ExcelUtil;
 import com.tianhu.common.core.web.controller.BaseController;
 import com.tianhu.common.core.web.domain.AjaxResult;
-import com.tianhu.common.core.web.page.TableDataInfo;
 import com.tianhu.common.log.annotation.Log;
 import com.tianhu.common.log.enums.BusinessType;
+import com.tianhu.common.redis.service.RedisService;
 import com.tianhu.common.security.annotation.PreAuthorize;
+import com.tianhu.common.security.service.TokenService;
+import com.tianhu.system.api.domain.SysDept;
 import com.tianhu.system.api.domain.SysRole;
 import com.tianhu.system.api.domain.SysUser;
 import com.tianhu.system.api.model.LoginUser;
+import com.tianhu.system.domain.*;
+import com.tianhu.system.service.*;
+import com.tianhu.system.utils.SysConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 /**
  * 用户信息
@@ -71,7 +70,14 @@ public class SysUserController extends BaseController
     private ISysUserCompanyRelService userCompanyRelService;
     @Autowired
     private ISysCompanyService companyService;
-
+    @Autowired
+    private IPubVerifyCodeService iPubVerifyCodeService;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private RedisService redisService;
+    @Autowired
+    private ISysWeChatService iSysWeChatService;
 
 
     //    下载模板
@@ -109,31 +115,128 @@ public class SysUserController extends BaseController
     /**
      * 获取当前用户信息
      */
-    @GetMapping("/info/{username}")
-    public R<Map<String, Object>> info(@PathVariable("username") String username)
+    @PostMapping("/zcInfo")
+    @Transactional(rollbackFor = Exception.class)
+    public R<Map<String, Object>> info(@RequestParam(value = "type", required = false) String type,
+                                       @RequestParam(value = "code", required = false) String code,
+                                       @RequestParam(value = "unionId", required = false) String unionId,
+                                       @RequestParam(value = "username") String username,
+                                       @RequestParam(value = "shortMessageCode", required = false) String shortMessageCode)
     {
+        Map<String, Object> resMap = new HashMap<>();
+
         SysUser sysUser = userService.selectUserByUserName(username);
-        if (StringUtils.isNull(sysUser))
-        {
-            return R.fail("用户名或密码错误");
+        // 短信验证码登陆 或者 验证码注册
+        if ("1".equals(type) || "2".equals(type)) {
+            // 验证短信验证码
+            if(CommonUtil.isNotEmpty(shortMessageCode)){
+                LambdaQueryWrapper<PubVerifyCode> pubVerifyCode = new LambdaQueryWrapper<>();
+                pubVerifyCode.eq(PubVerifyCode::getPvcPhone,username);
+                pubVerifyCode.eq(PubVerifyCode::getPvcCode,shortMessageCode);
+                pubVerifyCode.orderByDesc(PubVerifyCode::getPvcLastTime);
+                List<PubVerifyCode> staffInf = iPubVerifyCodeService.findPubVerifyCodes(pubVerifyCode);
+                if(staffInf.size()>0){
+                    if(!shortMessageCode.equals(staffInf.get(0).getPvcCode())){
+                        System.out.println("验证码校验失败请重试" );
+                        throw new BaseException("验证码校验失败请重试!");
+                    }
+                    //取得指定时间间隔后的系统时间
+                    GregorianCalendar calendar = (GregorianCalendar) Calendar.getInstance();
+                    calendar.add( Calendar.MINUTE, -5);
+                    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
+                    if(formatter.format(calendar.getTime()).compareTo(formatter.format(staffInf.get(0).getPvcLastTime()))>0){
+                        throw new BaseException("验证码已过期,请重新获取!");
+                    }
+                }else{
+                    throw new BaseException("验证码校验失败请重新发送验证码!");
+                }
+            }else{
+                throw new BaseException("请填写验证码!");
+            }
+
+            // 未注册账号,自动注册一个账号
+            if ("1".equals(type) && StringUtils.isNull(sysUser)) {
+                sysUser = new SysUser();
+                sysUser.setUserName(username);
+                sysUser.setNickName(username);
+                String password = configService.selectConfigByKey("sys.user.initPassword");
+                sysUser.setPassword(SecurityUtils.encryptPassword(password));
+                userService.insertUser(sysUser);
+                sysUser = userService.selectUserByUserName(username);
+
+                LoginUser sysUserVo = new LoginUser();
+                sysUserVo.setSysUser(sysUser);
+                resMap.put("code", "0");
+                resMap.put("message", "用户未绑定企业");
+                resMap.put("loginUser", sysUserVo);
+                return R.ok(resMap);
+            }
+
+            // 扫码后注册
+            if ("2".equals(type)) {
+                if (StringUtils.isNotNull(sysUser)) {
+                    return R.fail("手机号已被注册!");
+                }
+                if (StringUtils.isEmpty(unionId)) {
+                    return R.fail("unionId数据错误!");
+                }
+
+                //查询微信关联表找到员工信息
+                LambdaQueryWrapper<SysWeChat> weChatLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                weChatLambdaQueryWrapper.eq(SysWeChat::getSwcWxUuid, unionId);
+                List<SysWeChat> list = iSysWeChatService.findSysWeChats(weChatLambdaQueryWrapper);
+                if (list.size() != 0) {
+                    return R.fail("此微信已绑定账号!");
+                }
+
+                sysUser = new SysUser();
+                sysUser.setUserName(username);
+                sysUser.setNickName(username);
+                String password = configService.selectConfigByKey("sys.user.initPassword");
+                sysUser.setPassword(SecurityUtils.encryptPassword(password));
+                userService.insertUser(sysUser);
+                sysUser = userService.selectUserByUserName(username);
+
+                String  wechatId  =  IdUtils.fastSimpleUUID();
+                SysWeChat sysWeChat = new SysWeChat();
+                sysWeChat.setSwcId(wechatId);
+                sysWeChat.setSwcUserId(String.valueOf(sysUser.getUserId()));
+                sysWeChat.setSwcStatus("00");
+                sysWeChat.setSwcWxUuid(unionId);
+                iSysWeChatService.createSysWeChat(sysWeChat);
+
+                LoginUser sysUserVo = new LoginUser();
+                sysUserVo.setSysUser(sysUser);
+                resMap.put("code", "0");
+                resMap.put("message", "用户未绑定企业");
+                resMap.put("loginUser", sysUserVo);
+                return R.ok(resMap);
+            }
+
+        // 密码登陆
+        } else {
+            if (StringUtils.isNull(sysUser))
+            {
+                return R.fail("用户名或密码错误");
+            }
         }
         // 查询是否实名认证
         LambdaQueryWrapper<SysUserCompanyRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrUserId, sysUser.getUserId());
         List<SysUserCompanyRel> userCompanyRelList = userCompanyRelService.findSysUserCompanyRels(lambdaQueryWrapper);
 
-        Map<String, Object> resMap = new HashMap<>();
         // 未认证
         if (userCompanyRelList.size() == 0) {
             resMap.put("code", "0");
             resMap.put("message", "用户未绑定企业");
-
+            LoginUser sysUserVo = new LoginUser();
+            sysUserVo.setSysUser(sysUser);
+            resMap.put("loginUser", sysUserVo);
         // 只绑定了一家企业
         } else if (userCompanyRelList.size() == 1) {
             resMap.put("code", "1");
             resMap.put("message", "用户已绑定一家企业");
 
-
             // 绑定企业
             sysUser.setCompanyId(userCompanyRelList.get(0).getSucrCompanyId());
             // 不是平台
@@ -145,12 +248,17 @@ public class SysUserController extends BaseController
                 // 存放企业类型
                 SysCompany company = companyService.getById(userCompanyRelList.get(0).getSucrCompanyId());
                 sysUser.setCompanyType(company.getScyType());
+                if ("01".equals(company.getScyStatus()) || "99".equals(company.getScyStatus())) {
+                    return R.fail("企业状态异常,请联系管理员!");
+                }
+                sysUser.setCompanyStatus(company.getScyStatus());
              // 平台用户
             } else {
                 sysUser.setCompanyType("00");
+                sysUser.setCompanyStatus("00");
             }
             // 角色集合
-            Set<String> roles = permissionService.getRolePermission(sysUser.getUserId());
+            Set<String> roles = permissionService.getRolePermission(sysUser.getUserId(), sysUser.getCompanyId());
             Set<String> permissions = this.getPermissions(sysUser);
 
             LoginUser sysUserVo = new LoginUser();
@@ -161,12 +269,64 @@ public class SysUserController extends BaseController
             resMap.put("loginUser", sysUserVo);
         // 绑定多加企业
         } else {
+            LoginUser sysUserVo = new LoginUser();
+            sysUserVo.setSysUser(sysUser);
+            resMap.put("loginUser", sysUserVo);
+
+            List<String> companyIdList = new ArrayList<>();
+            for (SysUserCompanyRel companyRel : userCompanyRelList) {
+                companyIdList.add(companyRel.getSucrCompanyId());
+            }
+            LambdaQueryWrapper<SysCompany> companyLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            companyLambdaQueryWrapper.in(SysCompany::getScyId, companyIdList);
+            List<SysCompany> companyList = companyService.findSysCompanys(companyLambdaQueryWrapper);
+
             resMap.put("code", "2");
             resMap.put("message", "用户已绑定" + userCompanyRelList.size() + "家企业");
+            resMap.put("companyList", companyList);
         }
         return R.ok(resMap);
     }
 
+    @PostMapping("/chooseCompanyLogin")
+    public R<LoginUser> chooseCompanyLogin(@RequestBody Map<String, String> param, HttpServletRequest request)
+    {
+        String companyId = param.get("companyId");
+        if (StringUtils.isEmpty(companyId)) {
+            return R.fail("请选择登陆企业!");
+        }
+        LoginUser loginUser = tokenService.getLoginUser();
+        LambdaQueryWrapper<SysUserCompanyRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrUserId, loginUser.getUserid());
+        lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrCompanyId, companyId);
+        List<SysUserCompanyRel> userCompanyRelList = userCompanyRelService.findSysUserCompanyRels(lambdaQueryWrapper);
+        if (userCompanyRelList.size() == 0) {
+            return R.fail("用户未关联选择企业!");
+        }
+        // 查询企业信息
+        SysCompany company = companyService.getById(companyId);
+        if ("01".equals(company.getScyStatus()) || "99".equals(company.getScyStatus())) {
+            return R.fail("企业状态异常,请联系管理员!");
+        }
+
+        SysUser sysUser = loginUser.getSysUser();
+        sysUser.setCompanyId(companyId);
+        sysUser.setCompanyType(company.getScyType());
+        sysUser.setCompanyStatus(company.getScyStatus());
+
+        // 角色集合
+        Set<String> roles = permissionService.getRolePermission(sysUser.getUserId(), sysUser.getCompanyId());
+        Set<String> permissions = this.getPermissions(sysUser);
+
+        loginUser.setRoles(roles);
+        loginUser.setPermissions(permissions);
+        loginUser.setSysUser(sysUser);
+
+        String token = SecurityUtils.getToken(request);
+        redisService.setCacheObject(CacheConstants.LOGIN_TOKEN_KEY + token, loginUser, Constants.TOKEN_EXPIRE * 60, TimeUnit.SECONDS);
+        return R.ok(loginUser);
+    }
+
     /**
      * 获取用户信息
      *
@@ -176,14 +336,15 @@ public class SysUserController extends BaseController
     public AjaxResult getInfo()
     {
         Long userId = SecurityUtils.getUserId();
+        SysUser user = tokenService.getLoginUser().getSysUser();
         // 角色集合
-        Set<String> roles = permissionService.getRolePermission(userId);
+        Set<String> roles = permissionService.getRolePermission(userId, user.getCompanyId());
 
         //公司用户判断角色isAuto是否包括1数据,如包含则菜单权限数据取企业-产品-菜单数据
         //不包含则取角色-菜单 与 企业产品菜单数据并集
         //获取用户角色列表,判断是否存在isAuto
 //        SysUser user = userService.selectUserById(userId);
-        SysUser user = tokenService.getLoginUser().getSysUser();
+
         // 权限集合
         System.out.println("getInfo 菜单权限加载开始");
         Set<String> permissions = this.getPermissions(user);
@@ -210,7 +371,7 @@ public class SysUserController extends BaseController
             permissions = permissionService.getMenuPermission(user.getUserId());
             System.out.println("平台用户");
         }else{
-            List<String> roleList = permissionService.getRoles(user.getUserId().toString());
+            List<String> roleList = permissionService.getRoles(user.getUserId().toString(), user.getCompanyId());
             //初始用户,菜单权限数据取企业产品菜单数据
             if(roleList.contains(SysConstant.ROLE_IS_AUTO)){
                 permissions = permissionService.getMenuByAutoUser(user);

+ 103 - 71
tianhu-system/src/main/java/com/tianhu/system/controller/WxApiController.java

@@ -1,20 +1,17 @@
 package com.tianhu.system.controller;
 
 import com.alibaba.fastjson.JSONObject;
-import com.tianhu.common.core.constant.Constants;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.tianhu.common.core.domain.R;
-import com.tianhu.common.core.enums.UserStatus;
 import com.tianhu.common.core.utils.StringUtils;
 import com.tianhu.common.security.service.TokenService;
-import com.tianhu.system.api.RemoteLogService;
+import com.tianhu.system.api.domain.SysDept;
 import com.tianhu.system.api.domain.SysUser;
 import com.tianhu.system.api.model.LoginUser;
 import com.tianhu.system.domain.SysCompany;
+import com.tianhu.system.domain.SysUserCompanyRel;
 import com.tianhu.system.domain.SysWeChat;
-import com.tianhu.system.service.IOwnSysUserService;
-import com.tianhu.system.service.ISysCompanyService;
-import com.tianhu.system.service.ISysPermissionService;
-import com.tianhu.system.service.ISysWeChatService;
+import com.tianhu.system.service.*;
 import com.tianhu.system.utils.HttpUtil;
 import com.tianhu.system.utils.SysConstant;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,9 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 微信扫码登录
@@ -66,22 +61,22 @@ public class WxApiController {
     private TokenService tokenService;
 
     @Autowired
-    private IOwnSysUserService iOwnSysUserService;
-
-    @Autowired
     private ISysPermissionService permissionService;
 
     @Autowired
-    private RemoteLogService remoteLogService;
-
+    private ISysUserService userService;
+    @Autowired
+    private ISysUserCompanyRelService userCompanyRelService;
+    @Autowired
+    private ISysDeptService deptService;
     @Autowired
-    private ISysCompanyService iSysCompanyService;
+    private ISysCompanyService companyService;
 
     /**
      * 获取二维码
      */
     @GetMapping("/login")
-    public String qrCode(@RequestParam String state) throws UnsupportedEncodingException {
+    public String qrCode() throws UnsupportedEncodingException {
         //%s表示占位符,需要我们设定值,其他则是固定式
         String baseUrl = "https://open.weixin.qq.com/connect/qrconnect" +
                 "?appid=%s" +
@@ -95,7 +90,7 @@ public class WxApiController {
         //自己设置的
 //        String state = "http://tianhu.adm.minpay.cc";
         //给上面路径中的%s占位符赋值
-        String retUrl = String.format(baseUrl, WEB_APP_ID, redirectUrl, state);
+        String retUrl = String.format(baseUrl, WEB_APP_ID, redirectUrl, "00");
         //将结果返回,就可以生成二维码
         return retUrl;
     }
@@ -104,7 +99,7 @@ public class WxApiController {
      * code回调
      */
     @GetMapping("/callback")
-    public R callback(@RequestParam String code, @RequestParam String hostname) throws Exception {
+    public R callback(@RequestParam String code) throws Exception {
         //向认证服务器发送请求换取access_token和open_id
         String baseAccessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token" +
                 "?appid=%s" +
@@ -119,66 +114,103 @@ public class WxApiController {
         JSONObject obj = JSONObject.parseObject(retUrl);
         //判断是否有unionid
         Object unionId = obj.get("unionid");
+
+        Map<String, Object> resMap = new HashMap<>();
+        resMap.put("unionId", unionId);
         if (unionId != null) {
-            SysWeChat sysWeChat = new SysWeChat();
-            sysWeChat.setSwcWxUuid(obj.getString("unionid"));
             //查询微信关联表找到员工信息
-            List<SysWeChat> list = iSysWeChatService.selectSysWeChatList(sysWeChat);
+            LambdaQueryWrapper<SysWeChat> weChatLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            weChatLambdaQueryWrapper.eq(SysWeChat::getSwcWxUuid, unionId);
+            List<SysWeChat> list = iSysWeChatService.findSysWeChats(weChatLambdaQueryWrapper);
+            // 已扫码
             if (list.size() == 1) {
-                //员工id
-                String staffCode = list.get(0).getSwcUserId();
-                //获取当前操作人员
-                LoginUser userInfo = tokenService.getLoginUser();
-                String companyId = userInfo.getSysUser().getCompanyId();
-                SysCompany company = iSysCompanyService.getById(companyId);
-                if (StringUtils.isNull(company)){
-                    return R.fail("企业不存在");
-                }else{
-                    //停用提示异常
-                    if("01".equals(company.getScyStatus())){
-                        return R.fail("企业状态异常,登录失败");
-                    //删除重新绑定
-                    }else if("99".equals(company.getScyStatus())){
-                        return R.fail("未绑定登录用户,请关注公众号绑定用户");
+                // 判断是否绑定登陆用户
+                SysWeChat weChat = list.get(0);
+                // 已绑定用户
+                if (StringUtils.isNotEmpty(weChat.getSwcUserId())) {
+                    SysUser sysUser = userService.selectUserById(Long.parseLong(weChat.getSwcUserId()));
+                    // 查询是否实名认证
+                    LambdaQueryWrapper<SysUserCompanyRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+                    lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrUserId, sysUser.getUserId());
+                    List<SysUserCompanyRel> userCompanyRelList = userCompanyRelService.findSysUserCompanyRels(lambdaQueryWrapper);
+
+                    // 未认证
+                    if (userCompanyRelList.size() == 0) {
+                        resMap.put("code", "0");
+                        resMap.put("message", "用户未绑定企业");
+                        LoginUser sysUserVo = new LoginUser();
+                        sysUserVo.setSysUser(sysUser);
+                        resMap.put("loginUser", sysUserVo);
+                        tokenService.createToken(sysUserVo);
+                        // 只绑定了一家企业
+                    } else if (userCompanyRelList.size() == 1) {
+                        resMap.put("code", "1");
+                        resMap.put("message", "用户已绑定一家企业");
+
+                        // 绑定企业
+                        sysUser.setCompanyId(userCompanyRelList.get(0).getSucrCompanyId());
+                        // 不是平台
+                        if(!SysConstant.PLATFORM_NO.equals(sysUser.getCompanyId()) ){
+                            // 绑定部门
+                            sysUser.setDeptId(userCompanyRelList.get(0).getSucrDeptId());
+                            SysDept dept = deptService.selectDeptById(userCompanyRelList.get(0).getSucrDeptId());
+                            sysUser.setDept(dept);
+                            // 存放企业类型
+                            SysCompany company = companyService.getById(userCompanyRelList.get(0).getSucrCompanyId());
+                            sysUser.setCompanyType(company.getScyType());
+                            if ("01".equals(company.getScyStatus()) || "99".equals(company.getScyStatus())) {
+                                return R.fail("企业状态异常,请联系管理员!");
+                            }
+                            sysUser.setCompanyStatus(company.getScyStatus());
+                            // 平台用户
+                        } else {
+                            sysUser.setCompanyType("00");
+                            sysUser.setCompanyStatus("00");
+                        }
+                        // 角色集合
+                        Set<String> roles = permissionService.getRolePermission(sysUser.getUserId(), sysUser.getCompanyId());
+                        Set<String> permissions = this.getPermissions(sysUser);
+
+                        LoginUser sysUserVo = new LoginUser();
+                        sysUserVo.setRoles(roles);
+                        sysUserVo.setPermissions(permissions);
+                        sysUserVo.setSysUser(sysUser);
+
+                        resMap.put("loginUser", sysUserVo);
+                        tokenService.createToken(sysUserVo);
+                        // 绑定多加企业
+                    } else {
+                        LoginUser sysUserVo = new LoginUser();
+                        sysUserVo.setSysUser(sysUser);
+                        resMap.put("loginUser", sysUserVo);
+                        tokenService.createToken(sysUserVo);
+
+                        List<String> companyIdList = new ArrayList<>();
+                        for (SysUserCompanyRel companyRel : userCompanyRelList) {
+                            companyIdList.add(companyRel.getSucrCompanyId());
+                        }
+                        LambdaQueryWrapper<SysCompany> companyLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                        companyLambdaQueryWrapper.in(SysCompany::getScyId, companyIdList);
+                        List<SysCompany> companyList = companyService.findSysCompanys(companyLambdaQueryWrapper);
+
+                        resMap.put("code", "2");
+                        resMap.put("message", "用户已绑定" + userCompanyRelList.size() + "家企业");
+                        resMap.put("companyList", companyList);
                     }
+                    return R.ok(resMap);
+                // 未绑定用户
+                } else {
+                    resMap.put("code", "3");
+                    return R.ok(resMap);
                 }
-                // 查询用户信息
-                SysUser sysUser = iOwnSysUserService.selectUserByStaff(staffCode);
-                //没有登录用户
-                if (StringUtils.isNull(sysUser)) {
-                    return R.fail("未绑定登录用户,请关注公众号绑定用户");
-                }
-                if (!companyId.equals(sysUser.getCompanyId()))
-                {
-                    return R.fail("未绑定登录用户,请关注公众号绑定用户");
-                }
-                if (UserStatus.DELETED.getCode().equals(sysUser.getDelFlag()))
-                {
-                    return R.fail("未绑定登录用户,请关注公众号绑定用户");
-                }
-                if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus()))
-                {
-                    return R.fail("用户状态异常,登录失败");
-                }
-                remoteLogService.saveLogininfor(sysUser.getUserName(), Constants.LOGIN_SUCCESS, "登录成功", companyId);
-                // 角色集合
-                Set<String> roles = permissionService.getRolePermission(sysUser.getUserId());
-                //权限集合
-                Set<String> permissions = this.getPermissions(sysUser);
-                //创建登录用户
-                LoginUser sysUserVo = new LoginUser();
-                sysUserVo.setSysUser(sysUser);
-                sysUserVo.setRoles(roles);
-                sysUserVo.setPermissions(permissions);
-                //返回登录用户信息
-                return R.ok(tokenService.createToken(sysUserVo));
+            // 未绑定用户
             } else {
-                //没有员工信息或有多个员工信息
-                return R.fail("未绑定登录用户,请关注公众号绑定用户");
+                resMap.put("code", "3");
+                return R.ok(resMap);
             }
         } else {
             //没有unionid
-            return R.fail("未绑定登录用户,请关注公众号绑定用户");
+            return R.fail("用户信息获取失败");
         }
     }
 
@@ -195,7 +227,7 @@ public class WxApiController {
             permissions = permissionService.getMenuPermission(user.getUserId());
             System.out.println("平台用户");
         } else {
-            List<String> roleList = permissionService.getRoles(user.getUserId().toString());
+            List<String> roleList = permissionService.getRoles(user.getUserId().toString(), user.getCompanyId());
             //初始用户,菜单权限数据取企业产品菜单数据
             if (roleList.contains(SysConstant.ROLE_IS_AUTO)) {
                 permissions = permissionService.getMenuByAutoUser(user);

+ 65 - 0
tianhu-system/src/main/java/com/tianhu/system/domain/PubVerifyCode.java

@@ -0,0 +1,65 @@
+package com.tianhu.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 短信验证码信息表
+ * </p>
+ *
+ * @author cuixq
+ * @since 2021-08-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("pub_verify_code")
+public class PubVerifyCode implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId("pvc_id")
+    private String pvcId;
+
+    /**
+     * 校验码
+     */
+    @TableField("pvc_code")
+    private String pvcCode;
+
+    /**
+     * 短信内容
+     */
+    @TableField("pvc_content")
+    private String pvcContent;
+
+    /**
+     * 手机号
+     */
+    @TableField("pvc_phone")
+    private String pvcPhone;
+
+    /**
+     * 发送时间
+     */
+    @TableField("pvc_last_time")
+    private Date pvcLastTime;
+
+    /**
+     * 00:未校验;01:已校验
+     */
+    @TableField("pvc_state")
+    private String pvcState;
+
+
+}

+ 68 - 159
tianhu-system/src/main/java/com/tianhu/system/domain/SysWeChat.java

@@ -1,180 +1,89 @@
 package com.tianhu.system.domain;
 
-import com.tianhu.common.core.annotation.Excel;
-import com.tianhu.common.core.web.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
 
 /**
- * 微信关联信息 对象 sys_we_chat
+ * <p>
+ * 微信关联信息表 
+ * </p>
  *
- * @author huyi
- * @date 2021-05-28
+ * @author cuixq
+ * @since 2021-08-23
  */
-public class SysWeChat extends BaseEntity
-{
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sys_we_chat")
+public class SysWeChat implements Serializable {
+
     private static final long serialVersionUID = 1L;
 
-    /** 主键 */
+    /**
+     * 主键
+     */
+    @TableId("swc_id")
     private String swcId;
 
-    /** 微信OPENID */
-    private String swcOpenid;
-
-    /** 公司ID */
-    @Excel(name = "公司ID")
-    private String swcCompanyId;
-
-    /** 绑定员工id */
-    @Excel(name = "绑定员工id")
+    /**
+     * 绑定员工id
+     */
+    @TableField("swc_user_id")
     private String swcUserId;
 
-    /** 绑定员工名称 */
-    @Excel(name = "绑定员工名称")
-    private String swcUserName;
-
-    /** 微信MINOPENID */
-    @Excel(name = "微信MINOPENID")
-    private String swcWxMinopenid;
-
-    /** 微信UUID */
-    @Excel(name = "微信UUID")
+    /**
+     * 微信UUID
+     */
+    @TableField("swc_wx_uuid")
     private String swcWxUuid;
 
-    /** 用户手机号 */
-    @Excel(name = "用户手机号")
+    /**
+     * 用户手机号
+     */
+    @TableField("swc_phone")
     private String swcPhone;
 
-    /** 用户头像 */
-    @Excel(name = "用户头像")
+    /**
+     * 用户头像
+     */
+    @TableField("swc_headpath")
     private String swcHeadpath;
 
-    /** 状态:00正常、01冻结 */
-    @Excel(name = "状态:00正常、01冻结")
+    /**
+     * 创建者
+     */
+    @TableField("create_by")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField("update_by")
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 状态:00正常、01冻结
+     */
+    @TableField("swc_status")
     private String swcStatus;
 
-    /** 微信名称 */
-    @Excel(name = "微信名称")
-    private String swcWxName;
-
-    public void setSwcId(String swcId)
-    {
-        this.swcId = swcId;
-    }
-
-    public String getSwcId()
-    {
-        return swcId;
-    }
-    public void setSwcOpenid(String swcOpenid)
-    {
-        this.swcOpenid = swcOpenid;
-    }
-
-    public String getSwcOpenid()
-    {
-        return swcOpenid;
-    }
-    public void setSwcCompanyId(String swcCompanyId)
-    {
-        this.swcCompanyId = swcCompanyId;
-    }
-
-    public String getSwcCompanyId()
-    {
-        return swcCompanyId;
-    }
-    public void setSwcUserId(String swcUserId)
-    {
-        this.swcUserId = swcUserId;
-    }
-
-    public String getSwcUserId()
-    {
-        return swcUserId;
-    }
-    public void setSwcUserName(String swcUserName)
-    {
-        this.swcUserName = swcUserName;
-    }
-
-    public String getSwcUserName()
-    {
-        return swcUserName;
-    }
-    public void setSwcWxMinopenid(String swcWxMinopenid)
-    {
-        this.swcWxMinopenid = swcWxMinopenid;
-    }
-
-    public String getSwcWxMinopenid()
-    {
-        return swcWxMinopenid;
-    }
-    public void setSwcWxUuid(String swcWxUuid)
-    {
-        this.swcWxUuid = swcWxUuid;
-    }
-
-    public String getSwcWxUuid()
-    {
-        return swcWxUuid;
-    }
-    public void setSwcPhone(String swcPhone)
-    {
-        this.swcPhone = swcPhone;
-    }
-
-    public String getSwcPhone()
-    {
-        return swcPhone;
-    }
-    public void setSwcHeadpath(String swcHeadpath)
-    {
-        this.swcHeadpath = swcHeadpath;
-    }
-
-    public String getSwcHeadpath()
-    {
-        return swcHeadpath;
-    }
-    public void setSwcStatus(String swcStatus)
-    {
-        this.swcStatus = swcStatus;
-    }
-
-    public String getSwcStatus()
-    {
-        return swcStatus;
-    }
-    public void setSwcWxName(String swcWxName)
-    {
-        this.swcWxName = swcWxName;
-    }
-
-    public String getSwcWxName()
-    {
-        return swcWxName;
-    }
 
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-                .append("swcId", getSwcId())
-                .append("swcOpenid", getSwcOpenid())
-                .append("swcCompanyId", getSwcCompanyId())
-                .append("swcUserId", getSwcUserId())
-                .append("swcUserName", getSwcUserName())
-                .append("swcWxMinopenid", getSwcWxMinopenid())
-                .append("swcWxUuid", getSwcWxUuid())
-                .append("swcPhone", getSwcPhone())
-                .append("swcHeadpath", getSwcHeadpath())
-                .append("createBy", getCreateBy())
-                .append("createTime", getCreateTime())
-                .append("updateBy", getUpdateBy())
-                .append("updateTime", getUpdateTime())
-                .append("swcStatus", getSwcStatus())
-                .append("swcWxName", getSwcWxName())
-                .toString();
-    }
-}
+}

+ 16 - 0
tianhu-system/src/main/java/com/tianhu/system/mapper/PubVerifyCodeMapper.java

@@ -0,0 +1,16 @@
+package com.tianhu.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.tianhu.system.domain.PubVerifyCode;
+
+/**
+ * <p>
+ * 短信验证码信息表 Mapper 接口
+ * </p>
+ *
+ * @author cuixq
+ * @since 2021-08-20
+ */
+public interface PubVerifyCodeMapper extends BaseMapper<PubVerifyCode> {
+
+}

+ 2 - 2
tianhu-system/src/main/java/com/tianhu/system/mapper/SysRoleMapper.java

@@ -23,10 +23,10 @@ public interface SysRoleMapper
     /**
      * 根据用户ID查询角色
      * 
-     * @param userId 用户ID
+     * @param param 用户ID与公司Id
      * @return 角色列表
      */
-    public List<SysRole> selectRolePermissionByUserId(Long userId);
+    public List<SysRole> selectRolePermissionByUserId(Map<String, Object> param);
 
     /**
      * 查询所有角色

+ 3 - 2
tianhu-system/src/main/java/com/tianhu/system/mapper/SysUserRoleMapper.java

@@ -1,6 +1,7 @@
 package com.tianhu.system.mapper;
 
 import java.util.List;
+import java.util.Map;
 
 import org.apache.ibatis.annotations.Param;
 
@@ -64,10 +65,10 @@ public interface SysUserRoleMapper
 
     /**
      * 获取用户角色
-     * @param userId
+     * @param param
      * @return
      */
-    public List<String> selectRoles(String userId);
+    public List<String> selectRoles(Map<String, Object> param);
 
     /**
      * 查询用户和角色关联

+ 8 - 53
tianhu-system/src/main/java/com/tianhu/system/mapper/SysWeChatMapper.java

@@ -1,61 +1,16 @@
 package com.tianhu.system.mapper;
 
-import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.tianhu.system.domain.SysWeChat;
 
 /**
- * 微信关联信息 Mapper接口
+ * <p>
+ * 微信关联信息表  Mapper 接口
+ * </p>
  *
- * @author huyi
- * @date 2021-05-28
+ * @author cuixq
+ * @since 2021-08-23
  */
-public interface SysWeChatMapper
-{
-    /**
-     * 查询微信关联信息
-     *
-     * @param swcId 微信关联信息 ID
-     * @return 微信关联信息
-     */
-    public SysWeChat selectSysWeChatById(String swcId);
+public interface SysWeChatMapper extends BaseMapper<SysWeChat> {
 
-    /**
-     * 查询微信关联信息 列表
-     *
-     * @param sysWeChat 微信关联信息
-     * @return 微信关联信息 集合
-     */
-    public List<SysWeChat> selectSysWeChatList(SysWeChat sysWeChat);
-
-    /**
-     * 新增微信关联信息
-     *
-     * @param sysWeChat 微信关联信息
-     * @return 结果
-     */
-    public int insertSysWeChat(SysWeChat sysWeChat);
-
-    /**
-     * 修改微信关联信息
-     *
-     * @param sysWeChat 微信关联信息
-     * @return 结果
-     */
-    public int updateSysWeChat(SysWeChat sysWeChat);
-
-    /**
-     * 删除微信关联信息
-     *
-     * @param swcId 微信关联信息 ID
-     * @return 结果
-     */
-    public int deleteSysWeChatById(String swcId);
-
-    /**
-     * 批量删除微信关联信息
-     *
-     * @param swcIds 需要删除的数据ID
-     * @return 结果
-     */
-    public int deleteSysWeChatByIds(String[] swcIds);
-}
+}

+ 59 - 0
tianhu-system/src/main/java/com/tianhu/system/service/IPubVerifyCodeService.java

@@ -0,0 +1,59 @@
+package com.tianhu.system.service;
+
+
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.tianhu.system.domain.PubVerifyCode;
+
+
+import java.util.List;
+
+/**
+ * ClassName: IPubVerifyCodeService<br>
+ * Description: PubVerifyCodeService接口 <br>
+ * Company: keao
+ *
+ * @author cuixq
+ * @version v1.0.0    2021-08-20  cuixq    由Generator自动创建
+ */
+public interface IPubVerifyCodeService extends IService<PubVerifyCode> {
+    /**
+     * 查询(分页)
+     *
+     * @param request QueryRequest
+     * @param wrapper LambdaQueryWrapper<PubVerifyCode>
+     * @return IPage<PubVerifyCode>
+     */
+    IPage<PubVerifyCode> findPubVerifyCodes(QueryRequest request, LambdaQueryWrapper<PubVerifyCode> wrapper);
+
+    /**
+     * 查询(所有)
+     *
+     * @param wrapper LambdaQueryWrapper<PubVerifyCode>
+     * @return List<PubVerifyCode>
+     */
+    List<PubVerifyCode> findPubVerifyCodes(LambdaQueryWrapper<PubVerifyCode> wrapper);
+
+    /**
+     * 新增
+     *
+     * @param pubVerifyCode pubVerifyCode
+     */
+    void createPubVerifyCode(PubVerifyCode pubVerifyCode);
+
+    /**
+     * 修改
+     *
+     * @param pubVerifyCode pubVerifyCode
+     */
+    void updatePubVerifyCode(PubVerifyCode pubVerifyCode);
+
+    /**
+     * 删除
+     *
+     * @param wrapper LambdaQueryWrapper<PubVerifyCode>
+     */
+    void deletePubVerifyCode(LambdaQueryWrapper<PubVerifyCode> wrapper);
+}

+ 2 - 2
tianhu-system/src/main/java/com/tianhu/system/service/ISysPermissionService.java

@@ -14,7 +14,7 @@ public interface ISysPermissionService
      * @param userId 用户Id
      * @return 角色权限信息
      */
-    public Set<String> getRolePermission(Long userId);
+    public Set<String> getRolePermission(Long userId, String companyId);
 
     /**
      * 获取菜单数据权限
@@ -29,7 +29,7 @@ public interface ISysPermissionService
      * @param userId
      * @return
      */
-    public List<String> getRoles(String userId);
+    public List<String> getRoles(String userId, String companyId);
 
     /**
      * 获取公司初始用户角色数据

+ 1 - 1
tianhu-system/src/main/java/com/tianhu/system/service/ISysRoleService.java

@@ -27,7 +27,7 @@ public interface ISysRoleService
      * @param userId 用户ID
      * @return 权限列表
      */
-    public Set<String> selectRolePermissionByUserId(Long userId);
+    public Set<String> selectRolePermissionByUserId(Long userId, String companyId);
 
     /**
      * 查询所有角色

+ 33 - 35
tianhu-system/src/main/java/com/tianhu/system/service/ISysWeChatService.java

@@ -1,61 +1,59 @@
 package com.tianhu.system.service;
 
-import java.util.List;
+
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.tianhu.system.domain.SysWeChat;
 
+
+import java.util.List;
+
 /**
- * 微信关联信息 Service接口
+ * ClassName: ISysWeChatService<br>
+ * Description: SysWeChatService接口 <br>
+ * Company: keao
  *
- * @author huyi
- * @date 2021-05-28
+ * @author cuixq
+ * @version v1.0.0    2021-08-23  cuixq    由Generator自动创建
  */
-public interface ISysWeChatService
-{
-    /**
-     * 查询微信关联信息
-     *
-     * @param swcId 微信关联信息 ID
-     * @return 微信关联信息
-     */
-    public SysWeChat selectSysWeChatById(String swcId);
-
+public interface ISysWeChatService extends IService<SysWeChat> {
     /**
-     * 查询微信关联信息 列表
+     * 查询(分页)
      *
-     * @param sysWeChat 微信关联信息
-     * @return 微信关联信息 集合
+     * @param request QueryRequest
+     * @param wrapper LambdaQueryWrapper<SysWeChat>
+     * @return IPage<SysWeChat>
      */
-    public List<SysWeChat> selectSysWeChatList(SysWeChat sysWeChat);
+    IPage<SysWeChat> findSysWeChats(QueryRequest request, LambdaQueryWrapper<SysWeChat> wrapper);
 
     /**
-     * 新增微信关联信息
+     * 查询(所有)
      *
-     * @param sysWeChat 微信关联信息
-     * @return 结果
+     * @param wrapper LambdaQueryWrapper<SysWeChat>
+     * @return List<SysWeChat>
      */
-    public int insertSysWeChat(SysWeChat sysWeChat);
+    List<SysWeChat> findSysWeChats(LambdaQueryWrapper<SysWeChat> wrapper);
 
     /**
-     * 修改微信关联信息
+     * 新增
      *
-     * @param sysWeChat 微信关联信息
-     * @return 结果
+     * @param sysWeChat sysWeChat
      */
-    public int updateSysWeChat(SysWeChat sysWeChat);
+    void createSysWeChat(SysWeChat sysWeChat);
 
     /**
-     * 批量删除微信关联信息
+     * 修改
      *
-     * @param swcIds 需要删除的微信关联信息 ID
-     * @return 结果
+     * @param sysWeChat sysWeChat
      */
-    public int deleteSysWeChatByIds(String[] swcIds);
+    void updateSysWeChat(SysWeChat sysWeChat);
 
     /**
-     * 删除微信关联信息 信息
+     * 删除
      *
-     * @param swcId 微信关联信息 ID
-     * @return 结果
+     * @param wrapper LambdaQueryWrapper<SysWeChat>
      */
-    public int deleteSysWeChatById(String swcId);
-}
+    void deleteSysWeChat(LambdaQueryWrapper<SysWeChat> wrapper);
+}

+ 64 - 0
tianhu-system/src/main/java/com/tianhu/system/service/impl/PubVerifyCodeServiceImpl.java

@@ -0,0 +1,64 @@
+package com.tianhu.system.service.impl;
+
+import com.tianhu.system.domain.PubVerifyCode;
+import com.tianhu.system.mapper.PubVerifyCodeMapper;
+import com.tianhu.system.service.IPubVerifyCodeService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+
+
+import java.util.List;
+
+/**
+ * ClassName: PubVerifyCodeServiceImpl<br>
+ * Description: IPubVerifyCodeService实现 <br>
+ * Company: keao
+ *
+ * @author cuixq
+ * @version v1.0.0    2021-08-20  cuixq    由Generator自动创建
+ */
+@Service
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class PubVerifyCodeServiceImpl extends ServiceImpl<PubVerifyCodeMapper, PubVerifyCode> implements IPubVerifyCodeService {
+
+    @Autowired
+    private PubVerifyCodeMapper pubVerifyCodeMapper;
+
+    @Override
+    public IPage<PubVerifyCode> findPubVerifyCodes(QueryRequest request, LambdaQueryWrapper<PubVerifyCode> wrapper) {
+        Page<PubVerifyCode> page = new Page<>(request.getPageNum(), request.getPageSize());
+        return this.page(page, wrapper);
+    }
+
+    @Override
+    public List<PubVerifyCode> findPubVerifyCodes(LambdaQueryWrapper<PubVerifyCode> wrapper) {
+		return this.list(wrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createPubVerifyCode(PubVerifyCode pubVerifyCode) {
+        this.save(pubVerifyCode);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updatePubVerifyCode(PubVerifyCode pubVerifyCode) {
+        this.saveOrUpdate(pubVerifyCode);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deletePubVerifyCode(LambdaQueryWrapper<PubVerifyCode> wrapper) {
+	    this.remove(wrapper);
+	}
+}

+ 1 - 1
tianhu-system/src/main/java/com/tianhu/system/service/impl/SysMenuServiceImpl.java

@@ -91,7 +91,7 @@ public class SysMenuServiceImpl implements ISysMenuService
                 menuList = menuMapper.selectMenuListByUserId(menu);
             }
         }else{
-            List<String> roleList = permissionService.getRoles(user.getUserId().toString());
+            List<String> roleList = permissionService.getRoles(user.getUserId().toString(), user.getCompanyId());
             menu.getParams().put("companyId", companyId);
             //初始化管理员
             if(roleList.contains(SysConstant.ROLE_IS_AUTO)){

+ 8 - 7
tianhu-system/src/main/java/com/tianhu/system/service/impl/SysPermissionServiceImpl.java

@@ -8,9 +8,7 @@ import com.tianhu.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 @Service
 public class SysPermissionServiceImpl implements ISysPermissionService
@@ -31,7 +29,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService
      * @return 角色权限信息
      */
     @Override
-    public Set<String> getRolePermission(Long userId)
+    public Set<String> getRolePermission(Long userId, String companyId)
     {
         Set<String> roles = new HashSet<String>();
         // 管理员拥有所有权限
@@ -41,7 +39,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService
         }
         else
         {
-            roles.addAll(roleService.selectRolePermissionByUserId(userId));
+            roles.addAll(roleService.selectRolePermissionByUserId(userId, companyId));
         }
         return roles;
     }
@@ -69,8 +67,11 @@ public class SysPermissionServiceImpl implements ISysPermissionService
     }
 
     @Override
-    public List<String> getRoles(String userId) {
-        List<String> list = userRoleMapper.selectRoles(userId);
+    public List<String> getRoles(String userId, String companyId) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("userId", userId);
+        param.put("companyId", companyId);
+        List<String> list = userRoleMapper.selectRoles(param);
         return list;
     }
 

+ 5 - 2
tianhu-system/src/main/java/com/tianhu/system/service/impl/SysRoleServiceImpl.java

@@ -59,9 +59,12 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 权限列表
      */
     @Override
-    public Set<String> selectRolePermissionByUserId(Long userId)
+    public Set<String> selectRolePermissionByUserId(Long userId, String companyId)
     {
-        List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId);
+        Map<String, Object> param = new HashMap<String, Object>();
+        param.put("userId", userId);
+        param.put("companyId", companyId);
+        List<SysRole> perms = roleMapper.selectRolePermissionByUserId(param);
         Set<String> permsSet = new HashSet<>();
         for (SysRole perm : perms)
         {

+ 39 - 71
tianhu-system/src/main/java/com/tianhu/system/service/impl/SysWeChatServiceImpl.java

@@ -1,96 +1,64 @@
 package com.tianhu.system.service.impl;
 
-import java.util.List;
-import com.tianhu.common.core.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.tianhu.system.mapper.SysWeChatMapper;
 import com.tianhu.system.domain.SysWeChat;
+import com.tianhu.system.mapper.SysWeChatMapper;
 import com.tianhu.system.service.ISysWeChatService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+
+
+import java.util.List;
 
 /**
- * 微信关联信息 Service业务层处理
+ * ClassName: SysWeChatServiceImpl<br>
+ * Description: ISysWeChatService实现 <br>
+ * Company: keao
  *
- * @author huyi
- * @date 2021-05-28
+ * @author cuixq
+ * @version v1.0.0    2021-08-23  cuixq    由Generator自动创建
  */
 @Service
-public class SysWeChatServiceImpl implements ISysWeChatService
-{
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class SysWeChatServiceImpl extends ServiceImpl<SysWeChatMapper, SysWeChat> implements ISysWeChatService {
+
     @Autowired
     private SysWeChatMapper sysWeChatMapper;
 
-    /**
-     * 查询微信关联信息
-     *
-     * @param swcId 微信关联信息 ID
-     * @return 微信关联信息
-     */
     @Override
-    public SysWeChat selectSysWeChatById(String swcId)
-    {
-        return sysWeChatMapper.selectSysWeChatById(swcId);
+    public IPage<SysWeChat> findSysWeChats(QueryRequest request, LambdaQueryWrapper<SysWeChat> wrapper) {
+        Page<SysWeChat> page = new Page<>(request.getPageNum(), request.getPageSize());
+        return this.page(page, wrapper);
     }
 
-    /**
-     * 查询微信关联信息 列表
-     *
-     * @param sysWeChat 微信关联信息
-     * @return 微信关联信息
-     */
     @Override
-    public List<SysWeChat> selectSysWeChatList(SysWeChat sysWeChat)
-    {
-        return sysWeChatMapper.selectSysWeChatList(sysWeChat);
+    public List<SysWeChat> findSysWeChats(LambdaQueryWrapper<SysWeChat> wrapper) {
+		return this.list(wrapper);
     }
 
-    /**
-     * 新增微信关联信息
-     *
-     * @param sysWeChat 微信关联信息
-     * @return 结果
-     */
     @Override
-    public int insertSysWeChat(SysWeChat sysWeChat)
-    {
-        sysWeChat.setCreateTime(DateUtils.getNowDate());
-        return sysWeChatMapper.insertSysWeChat(sysWeChat);
+    @Transactional(rollbackFor = Exception.class)
+    public void createSysWeChat(SysWeChat sysWeChat) {
+        this.save(sysWeChat);
     }
 
-    /**
-     * 修改微信关联信息
-     *
-     * @param sysWeChat 微信关联信息
-     * @return 结果
-     */
     @Override
-    public int updateSysWeChat(SysWeChat sysWeChat)
-    {
-        sysWeChat.setUpdateTime(DateUtils.getNowDate());
-        return sysWeChatMapper.updateSysWeChat(sysWeChat);
+    @Transactional(rollbackFor = Exception.class)
+    public void updateSysWeChat(SysWeChat sysWeChat) {
+        this.saveOrUpdate(sysWeChat);
     }
 
-    /**
-     * 批量删除微信关联信息
-     *
-     * @param swcIds 需要删除的微信关联信息 ID
-     * @return 结果
-     */
     @Override
-    public int deleteSysWeChatByIds(String[] swcIds)
-    {
-        return sysWeChatMapper.deleteSysWeChatByIds(swcIds);
-    }
-
-    /**
-     * 删除微信关联信息 信息
-     *
-     * @param swcId 微信关联信息 ID
-     * @return 结果
-     */
-    @Override
-    public int deleteSysWeChatById(String swcId)
-    {
-        return sysWeChatMapper.deleteSysWeChatById(swcId);
-    }
-}
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteSysWeChat(LambdaQueryWrapper<SysWeChat> wrapper) {
+	    this.remove(wrapper);
+	}
+}

+ 0 - 175
tianhu-system/src/main/java/com/tianhu/system/utils/DdApiUtils.java

@@ -1,175 +0,0 @@
-package com.tianhu.system.utils;
-
-import com.dingtalk.api.DefaultDingTalkClient;
-import com.dingtalk.api.DingTalkClient;
-import com.dingtalk.api.request.OapiGettokenRequest;
-import com.dingtalk.api.request.OapiV2UserGetRequest;
-import com.dingtalk.api.request.OapiV2UserGetuserinfoRequest;
-import com.dingtalk.api.response.OapiGettokenResponse;
-import com.dingtalk.api.response.OapiV2UserGetResponse;
-import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
-import com.tianhu.common.core.domain.R;
-import com.taobao.api.ApiException;
-import com.tianhu.common.core.exception.BaseException;
-import com.tianhu.common.core.utils.CommonUtil;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 钉钉免登录工具类
- *
- * @author dudm@minpay.cc
- * @date 2021-07-06
- */
-public class DdApiUtils {
-
-    /**
-     * 钉钉微应用appKey
-     */
-    private static String DD_APP_KEY = "dingzsrp6tjsroooaih6";
-
-    /**
-     * 钉钉微应用appSecret
-     */
-    private static String DD_APP_SECRET = "jjpDc786GFQ6OWXulDZUwuIydJvrc2PIl3NtdIpbqZNkcKeHDQGIkxOrAJ5JfWGU";
-
-    /**
-     * 获取企业应用凭证 url
-     */
-    private static String GET_TOKEN_URL = "https://oapi.dingtalk.com/gettoken";
-
-    /**
-     * 获取钉钉userId url
-     */
-    private static String GET_USERID_URL = "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo";
-
-    /**
-     * 获取用户信息 url
-     */
-    private static String GET_USERINFO_URL = "https://oapi.dingtalk.com/topapi/v2/user/get";
-
-    /**
-     * 请求类型 get
-     */
-    private static String METHOD_GET = "GET";
-
-    /**
-     * 钉钉access_token缓存key
-     */
-    private static String DD_ACCESS_TOKEN = "dd_access_token";
-
-    /**
-     * 状态值 0:正常
-     */
-    private static String STATE_VALUE = "0";
-
-    /**
-     * 钉钉mobile参数
-     */
-    private static String MOBILE = "mobile";
-
-    /**
-     * 钉钉name参数
-     */
-    private static String NAME = "name";
-
-    /**
-     * 获取企业凭证access_token
-     *
-     * @param
-     * @return
-     */
-    public static String getToken() {
-        //获取缓存token
-        String token = DictUtils.getCache(DD_ACCESS_TOKEN);
-        if(!CommonUtil.isEmpty(token)){
-            return token;
-        }
-        //缓存中获取不到调用api
-        try {
-            DingTalkClient client = new DefaultDingTalkClient(GET_TOKEN_URL);
-            OapiGettokenRequest req = new OapiGettokenRequest();
-            req.setAppkey(DD_APP_KEY);
-            req.setAppsecret(DD_APP_SECRET);
-            req.setHttpMethod(METHOD_GET);
-            OapiGettokenResponse rsp = client.execute(req);
-            System.out.println("获取钉钉access_token返回:" + rsp.getBody());
-            //判断api获取是否正常
-            if(!STATE_VALUE.equals(CommonUtil.objToString(rsp.getErrcode()))){
-                //钉钉返回错误信息
-                throw new BaseException(CommonUtil.objToString(rsp.getErrmsg()));
-            }
-            //通过api获取到的access_token
-            token = rsp.getAccessToken();
-            //超时时间
-            Long time = rsp.getExpiresIn();
-            //缓存access_token
-            DictUtils.setCache(DD_ACCESS_TOKEN, token, time, TimeUnit.SECONDS);
-            return token;
-        } catch (ApiException e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    /**
-     * 获取钉钉userId
-     *
-     * @param code   钉钉授权码
-     * @param token  企业凭证access_token
-     * @return
-     */
-    public static String getUserId(String code, String token) {
-        try {
-            DingTalkClient client = new DefaultDingTalkClient(GET_USERID_URL);
-            OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
-            req.setCode(code);
-            OapiV2UserGetuserinfoResponse rsp = client.execute(req, token);
-            System.out.println("获取钉钉userId返回:" + rsp.getBody());
-            //判断api获取是否正常
-            if(!STATE_VALUE.equals(CommonUtil.objToString(rsp.getErrcode()))){
-                //钉钉返回错误信息
-                throw new BaseException(CommonUtil.objToString(rsp.getErrmsg()));
-            }
-            //钉钉userId
-            String userId = rsp.getResult().getUserid();
-            return userId;
-        } catch (ApiException e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    /**
-     * 获取用户详细信息
-     *
-     * @param userId   钉钉userId
-     * @param token    企业凭证access_token
-     * @return
-     */
-    public static R getUserInfo(String userId, String token) {
-        try {
-            DingTalkClient client = new DefaultDingTalkClient(GET_USERINFO_URL);
-            OapiV2UserGetRequest req = new OapiV2UserGetRequest();
-            req.setUserid(userId);
-            OapiV2UserGetResponse rsp = client.execute(req, token);
-            System.out.println("获取钉钉用户详情返回:" + rsp.getBody());
-            //判断api获取是否正常
-            if(!STATE_VALUE.equals(CommonUtil.objToString(rsp.getErrcode()))){
-                //钉钉返回错误信息
-                throw new BaseException(CommonUtil.objToString(rsp.getErrmsg()));
-            }
-            String mobile = rsp.getResult().getMobile();
-            String name = rsp.getResult().getName();
-            Map<String, Object> map = new HashMap();
-            map.put(NAME,name);
-            map.put(MOBILE,mobile);
-            return R.ok(map);
-        } catch (ApiException e) {
-            e.printStackTrace();
-            return R.ok();
-        }
-    }
-}

+ 15 - 0
tianhu-system/src/main/resources/mapper/system/PubVerifyCodeMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.tianhu.system.mapper.PubVerifyCodeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.tianhu.system.domain.PubVerifyCode">
+        <id column="pvc_id" property="pvcId" />
+        <result column="pvc_code" property="pvcCode" />
+        <result column="pvc_content" property="pvcContent" />
+        <result column="pvc_phone" property="pvcPhone" />
+        <result column="pvc_last_time" property="pvcLastTime" />
+        <result column="pvc_state" property="pvcState" />
+    </resultMap>
+
+</mapper>

+ 4 - 2
tianhu-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -59,9 +59,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		order by r.create_time desc
 	</select>
     
-	<select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">
+	<select id="selectRolePermissionByUserId" parameterType="map" resultMap="SysRoleResult">
 		<include refid="selectRoleVo"/>
-		WHERE r.del_flag = '0' and ur.user_id = #{userId}
+		WHERE r.del_flag = '0'
+		and ur.user_id = #{userId}
+		and r.company_id = #{companyId}
 	</select>
 	
 	<select id="selectRoleAll" parameterType="SysRole" resultMap="SysRoleResult">

+ 4 - 2
tianhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml

@@ -42,9 +42,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach> 
 	</delete>
 
-	<select id="selectRoles" resultType="string" parameterType="java.lang.String">
+	<select id="selectRoles" resultType="string" parameterType="map">
 	    select r.is_auto from sys_user_role ur,sys_role r
-	    where ur.user_id = #{userId} and ur.role_id = r.role_id
+	    where ur.user_id = #{userId}
+	    and ur.role_id = r.role_id
+	    and r.company_id = #{companyId}
 	</select>
 
 	<sql id="selectSysUserRoleVo">

+ 15 - 115
tianhu-system/src/main/resources/mapper/system/SysWeChatMapper.xml

@@ -1,119 +1,19 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.tianhu.system.mapper.SysWeChatMapper">
 
-    <resultMap type="SysWeChat" id="SysWeChatResult">
-        <result property="swcId"    column="swc_id"    />
-        <result property="swcOpenid"    column="swc_openid"    />
-        <result property="swcCompanyId"    column="swc_company_id"    />
-        <result property="swcUserId"    column="swc_user_id"    />
-        <result property="swcUserName"    column="swc_user_name"    />
-        <result property="swcWxMinopenid"    column="swc_wx_minopenid"    />
-        <result property="swcWxUuid"    column="swc_wx_uuid"    />
-        <result property="swcPhone"    column="swc_phone"    />
-        <result property="swcHeadpath"    column="swc_headpath"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="swcStatus"    column="swc_status"    />
-        <result property="swcWxName"    column="swc_wx_name"    />
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.tianhu.system.domain.SysWeChat">
+        <id column="swc_id" property="swcId" />
+        <result column="swc_user_id" property="swcUserId" />
+        <result column="swc_wx_uuid" property="swcWxUuid" />
+        <result column="swc_phone" property="swcPhone" />
+        <result column="swc_headpath" property="swcHeadpath" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="swc_status" property="swcStatus" />
     </resultMap>
 
-    <sql id="selectSysWeChatVo">
-        select swc_id, swc_openid, swc_company_id, swc_user_id, swc_user_name, swc_wx_minopenid, swc_wx_uuid, swc_phone, swc_headpath, create_by, create_time, update_by, update_time, swc_status, swc_wx_name from sys_we_chat
-    </sql>
-
-    <select id="selectSysWeChatList" parameterType="SysWeChat" resultMap="SysWeChatResult">
-        <include refid="selectSysWeChatVo"/>
-        <where>
-            <if test="swcCompanyId != null  and swcCompanyId != ''"> and swc_company_id = #{swcCompanyId}</if>
-            <if test="swcUserId != null  and swcUserId != ''"> and swc_user_id = #{swcUserId}</if>
-            <if test="swcUserName != null  and swcUserName != ''"> and swc_user_name like concat('%', #{swcUserName}, '%')</if>
-            <if test="swcWxMinopenid != null  and swcWxMinopenid != ''"> and swc_wx_minopenid = #{swcWxMinopenid}</if>
-            <if test="swcWxUuid != null  and swcWxUuid != ''"> and swc_wx_uuid = #{swcWxUuid}</if>
-            <if test="swcPhone != null  and swcPhone != ''"> and swc_phone = #{swcPhone}</if>
-            <if test="swcHeadpath != null  and swcHeadpath != ''"> and swc_headpath = #{swcHeadpath}</if>
-            <if test="swcStatus != null  and swcStatus != ''"> and swc_status = #{swcStatus}</if>
-            <if test="swcWxName != null  and swcWxName != ''"> and swc_wx_name like concat('%', #{swcWxName}, '%')</if>
-        </where>
-    </select>
-
-    <select id="selectSysWeChatById" parameterType="String" resultMap="SysWeChatResult">
-        <include refid="selectSysWeChatVo"/>
-        where swc_id = #{swcId}
-    </select>
-
-    <insert id="insertSysWeChat" parameterType="SysWeChat">
-        insert into sys_we_chat
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="swcId != null">swc_id,</if>
-            <if test="swcOpenid != null">swc_openid,</if>
-            <if test="swcCompanyId != null">swc_company_id,</if>
-            <if test="swcUserId != null">swc_user_id,</if>
-            <if test="swcUserName != null">swc_user_name,</if>
-            <if test="swcWxMinopenid != null">swc_wx_minopenid,</if>
-            <if test="swcWxUuid != null">swc_wx_uuid,</if>
-            <if test="swcPhone != null">swc_phone,</if>
-            <if test="swcHeadpath != null">swc_headpath,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="swcStatus != null">swc_status,</if>
-            <if test="swcWxName != null">swc_wx_name,</if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="swcId != null">#{swcId},</if>
-            <if test="swcOpenid != null">#{swcOpenid},</if>
-            <if test="swcCompanyId != null">#{swcCompanyId},</if>
-            <if test="swcUserId != null">#{swcUserId},</if>
-            <if test="swcUserName != null">#{swcUserName},</if>
-            <if test="swcWxMinopenid != null">#{swcWxMinopenid},</if>
-            <if test="swcWxUuid != null">#{swcWxUuid},</if>
-            <if test="swcPhone != null">#{swcPhone},</if>
-            <if test="swcHeadpath != null">#{swcHeadpath},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="swcStatus != null">#{swcStatus},</if>
-            <if test="swcWxName != null">#{swcWxName},</if>
-        </trim>
-    </insert>
-
-    <update id="updateSysWeChat" parameterType="SysWeChat">
-        update sys_we_chat
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="swcOpenid != null">swc_openid = #{swcOpenid},</if>
-            <if test="swcCompanyId != null">swc_company_id = #{swcCompanyId},</if>
-            <if test="swcUserId != null">swc_user_id = #{swcUserId},</if>
-            <if test="swcUserName != null">swc_user_name = #{swcUserName},</if>
-            <if test="swcWxMinopenid != null">swc_wx_minopenid = #{swcWxMinopenid},</if>
-            <if test="swcWxUuid != null">swc_wx_uuid = #{swcWxUuid},</if>
-            <if test="swcPhone != null">swc_phone = #{swcPhone},</if>
-            <if test="swcHeadpath != null">swc_headpath = #{swcHeadpath},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="swcStatus != null">swc_status = #{swcStatus},</if>
-            <if test="swcWxName != null">swc_wx_name = #{swcWxName},</if>
-        </trim>
-        where swc_id = #{swcId}
-    </update>
-
-    <delete id="deleteSysWeChatById" parameterType="String">
-        delete from sys_we_chat where swc_id = #{swcId}
-    </delete>
-
-    <delete id="deleteSysWeChatByIds" parameterType="String">
-        delete from sys_we_chat where swc_id in
-        <foreach item="swcId" collection="array" open="(" separator="," close=")">
-            #{swcId}
-        </foreach>
-    </delete>
-
-</mapper>
+</mapper>