Parcourir la source

bugfix-联调

Aslee il y a 2 ans
Parent
commit
22f416c2cc
43 fichiers modifiés avec 418 ajouts et 170 suppressions
  1. 7 6
      src/main/java/com/caimei/annotation/CurrentUserResolver.java
  2. 24 17
      src/main/java/com/caimei/controller/admin/auth/AuthApi.java
  3. 58 34
      src/main/java/com/caimei/controller/admin/auth/AuthProductApi.java
  4. 20 11
      src/main/java/com/caimei/controller/admin/auth/DoctorApi.java
  5. 11 1
      src/main/java/com/caimei/controller/admin/auth/DownloadApi.java
  6. 28 9
      src/main/java/com/caimei/controller/admin/auth/ShopApi.java
  7. 1 1
      src/main/java/com/caimei/controller/admin/data/ArticleApi.java
  8. 9 1
      src/main/java/com/caimei/controller/admin/sys/SysRoleApi.java
  9. 7 3
      src/main/java/com/caimei/controller/admin/sys/SysUserApi.java
  10. 10 9
      src/main/java/com/caimei/controller/admin/vip/VipApi.java
  11. 18 5
      src/main/java/com/caimei/controller/wechat/WxAuthApi.java
  12. 1 1
      src/main/java/com/caimei/mapper/cmMapper/AuthMapper.java
  13. 2 0
      src/main/java/com/caimei/mapper/cmMapper/AuthProductMapper.java
  14. 2 0
      src/main/java/com/caimei/mapper/cmMapper/ShopMapper.java
  15. 6 2
      src/main/java/com/caimei/mapper/cmMapper/SystemMapper.java
  16. 4 0
      src/main/java/com/caimei/model/po/SysRole.java
  17. 4 0
      src/main/java/com/caimei/model/po/SysUser.java
  18. 5 0
      src/main/java/com/caimei/model/po/UserPo.java
  19. 5 0
      src/main/java/com/caimei/model/vo/AuthVo.java
  20. 8 2
      src/main/java/com/caimei/model/vo/ProductListVo.java
  21. 3 0
      src/main/java/com/caimei/model/vo/ProductTypeListVo.java
  22. 5 0
      src/main/java/com/caimei/model/vo/ShopFormVo.java
  23. 3 0
      src/main/java/com/caimei/model/vo/ShopListVo.java
  24. 5 5
      src/main/java/com/caimei/model/vo/UserLoginVo.java
  25. 3 0
      src/main/java/com/caimei/model/vo/WxProductListVo.java
  26. 3 0
      src/main/java/com/caimei/model/vo/WxShopVo.java
  27. 7 0
      src/main/java/com/caimei/service/auth/AuthProductService.java
  28. 2 0
      src/main/java/com/caimei/service/auth/DownloadService.java
  29. 19 7
      src/main/java/com/caimei/service/auth/impl/AuthProductServiceImpl.java
  30. 5 4
      src/main/java/com/caimei/service/auth/impl/AuthServiceImpl.java
  31. 0 3
      src/main/java/com/caimei/service/auth/impl/DoctorServiceImpl.java
  32. 18 2
      src/main/java/com/caimei/service/auth/impl/DownloadServiceImpl.java
  33. 10 2
      src/main/java/com/caimei/service/auth/impl/ShopServiceImpl.java
  34. 1 0
      src/main/java/com/caimei/service/sys/impl/SysMenuServiceImpl.java
  35. 4 3
      src/main/java/com/caimei/service/sys/impl/SysRoleServiceImpl.java
  36. 24 5
      src/main/java/com/caimei/service/sys/impl/SysUserServiceImpl.java
  37. 13 1
      src/main/java/com/caimei/service/wechat/impl/RegisterServiceImpl.java
  38. 1 0
      src/main/java/com/caimei/utils/SmsUtils.java
  39. 4 2
      src/main/resources/mapper/AuthMapper.xml
  40. 11 6
      src/main/resources/mapper/AuthProductMapper.xml
  41. 9 5
      src/main/resources/mapper/ShopMapper.xml
  42. 21 9
      src/main/resources/mapper/SystemMapper.xml
  43. 17 14
      src/main/resources/mapper/UserMapper.xml

+ 7 - 6
src/main/java/com/caimei/annotation/CurrentUserResolver.java

@@ -47,15 +47,16 @@ public class CurrentUserResolver implements HandlerMethodArgumentResolver {
         String cacheToken = null!=token ? String.valueOf(redisService.get(token)) : null;
         // Redis过期后会得到"null"值,所以需判断字符串"null"
         if (cacheToken != null && cacheToken.length() != 0 && !"null".equals(cacheToken)) {
-            if (cacheToken.contains(",")) {
-                // 前端机构用户登录
-                String[] tokenArr = cacheToken.split(",");
-                Integer authUserId = Integer.parseInt(tokenArr[1]);
-                return systemMapper.getUser(authUserId);
-            } else {
+            if (!cacheToken.contains(",")) {
                 // 后台管理员/供应商/供应商子用户登录
                 Integer authUserId = JwtUtil.parseTokenUid(cacheToken);
                 return systemMapper.getUser(authUserId);
+            } else {
+                // 前端机构用户登录
+                /*String[] tokenArr = cacheToken.split(",");
+                Integer authUserId = Integer.parseInt(tokenArr[1]);
+                return systemMapper.getUser(authUserId);*/
+                return null;
             }
         }
 //        return systemMapper.getUser(17);

+ 24 - 17
src/main/java/com/caimei/controller/admin/auth/AuthApi.java

@@ -46,6 +46,7 @@ public class AuthApi {
      */
     @ApiOperation("授权列表")
     @ApiImplicitParams({
+            @ApiImplicitParam(name = "authUserId", required = false, value = "供应商用户id"),
             @ApiImplicitParam(name = "listType", required = false, value = "列表类型:1授权列表,2授权审核列表,3供应商审核列表,4授权牌物流列表"),
             @ApiImplicitParam(name = "authParty", required = false, value = "授权机构"),
             @ApiImplicitParam(name = "mobile", required = false, value = "机构用户手机号"),
@@ -59,18 +60,20 @@ public class AuthApi {
             @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
     })
     @GetMapping("/list")
-    public ResponseJson<PageInfo<AuthVo>> getAuthList(@CurrentUser SysUser sysUser, Integer listType, String authParty, String mobile,
+    public ResponseJson<PageInfo<AuthVo>> getAuthList(@CurrentUser SysUser sysUser, Integer authUserId, Integer listType,  String authParty, String mobile,
                                                       Integer status, Integer starFlag, Integer auditStatus, Integer lowerAuditStatus,
                                                       Integer shopAuditStatus, Integer sendStatus,
                                                       @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                                                       @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
-        if (null == sysUser) {
-            return ResponseJson.error("用户信息异常", null);
-        }
-        // 获取供应商用户id
-        Integer userIdentity = sysUser.getUserIdentity();
-        Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
-        if (null == authUserId) {
+        // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
+        if (null != sysUser && 1 != sysUser.getId()) {
+            // 获取供应商用户id
+            Integer userIdentity = sysUser.getUserIdentity();
+            authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+            if (null == authUserId) {
+                return ResponseJson.error("供应商用户id不能为空", null);
+            }
+        } else if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
         return authService.getAuthList(listType, authUserId, authParty, mobile, status, starFlag, auditStatus, lowerAuditStatus, shopAuditStatus, sendStatus, pageNum, pageSize);
@@ -140,10 +143,10 @@ public class AuthApi {
         if (null == sysUser) {
             return ResponseJson.error("用户信息异常", null);
         }
-
         // 获取供应商用户id
         Integer userIdentity = sysUser.getUserIdentity();
         Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+        Integer createBy = (2 == userIdentity || 3 == userIdentity) ? sysUser.getId() : null;
         if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
@@ -177,7 +180,6 @@ public class AuthApi {
         String remarks = paramsMap.getString("remarks");
         List<String> bannerList = (List<String>) paramsMap.get("bannerList");
         String authParty = paramsMap.getString("authParty");
-        Integer createBy = paramsMap.getInteger("createBy");
         Integer source = paramsMap.getInteger("source");
         if (null == source) {
             // 默认供应商保存
@@ -229,29 +231,34 @@ public class AuthApi {
     @ApiImplicitParam(name = "params", value = "authId:授权id;auditStatus:审核状态:0审核未通过,1审核通过,2待审核;" +
             "invalidReason:审核不通过原因;auditBy:审核人用户id;source:来源:1管理员审核,2供应商审核", required = true)
     @PostMapping("/audit")
-    public ResponseJson auditAuth(@RequestBody String params) {
+    public ResponseJson auditAuth(@CurrentUser SysUser sysUser, @RequestBody String params) {
+        if (null == sysUser) {
+            return ResponseJson.error("用户信息异常", null);
+        }
+        // 获取审核人用户id
+        Integer auditBy = sysUser.getId();
+        if (null == auditBy) {
+            return ResponseJson.error("审核人用户id不能为空", null);
+        }
         JSONObject paramsMap = JSONObject.parseObject(params);
         Integer authId = paramsMap.getInteger("authId");
         Integer auditStatus = paramsMap.getInteger("auditStatus");
         String invalidReason = paramsMap.getString("invalidReason");
-        Integer auditBy = paramsMap.getInteger("auditBy");
         Integer source = paramsMap.getInteger("source");
         return authService.auditAuth(authId, auditStatus, invalidReason, auditBy, source);
     }
 
     @ApiOperation("excel导入")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "createBy", required = true, value = "创建人用户id"),
-            @ApiImplicitParam(name = "file", required = true, value = "机构excel表格"),
-    })
+    @ApiImplicitParam(name = "file", required = true, value = "机构excel表格")
     @PostMapping("/import/excel")
-    public ResponseJson importDataByExcel(@CurrentUser SysUser sysUser, MultipartFile file, Integer createBy) {
+    public ResponseJson importDataByExcel(@CurrentUser SysUser sysUser, MultipartFile file) {
         if (null == sysUser) {
             return ResponseJson.error("用户信息异常", null);
         }
         // 获取供应商用户id
         Integer userIdentity = sysUser.getUserIdentity();
         Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+        Integer createBy = sysUser.getId();
         if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }

+ 58 - 34
src/main/java/com/caimei/controller/admin/auth/AuthProductApi.java

@@ -123,7 +123,11 @@ public class AuthProductApi {
      */
     @ApiOperation("添加/编辑授权商品")
     @PostMapping("/save")
-    public ResponseJson saveProduct(@RequestBody ProductSaveDto productSaveDto) throws IOException {
+    public ResponseJson saveProduct(@CurrentUser SysUser sysUser, @RequestBody ProductSaveDto productSaveDto) throws IOException {
+        // 获取创建人用户id
+        Integer userIdentity = sysUser.getUserIdentity();
+        Integer createBy = (2 == userIdentity || 3 == userIdentity) ? sysUser.getId() : null;
+        productSaveDto.setCreateBy(createBy);
         return authProductService.saveProduct(productSaveDto);
     }
 
@@ -165,12 +169,19 @@ public class AuthProductApi {
             "invalidReason:审核不通过原因;auditBy:审核人用户id;source:来源:1管理员审核,2供应商审核", required = true)
     @Idempotent(prefix = "idempotent_product", keys = {"#params"}, expire = 5)
     @PostMapping("/audit")
-    public ResponseJson auditProduct(@RequestBody String params) {
+    public ResponseJson auditProduct(@CurrentUser SysUser sysUser, @RequestBody String params) {
+        if (null == sysUser) {
+            return ResponseJson.error("用户信息异常", null);
+        }
+        // 获取审核人用户id
+        Integer auditBy = sysUser.getId();
+        if (null == auditBy) {
+            return ResponseJson.error("审核人用户id不能为空", null);
+        }
         JSONObject paramsMap = JSONObject.parseObject(params);
         Integer productId = paramsMap.getInteger("productId");
         Integer auditStatus = paramsMap.getInteger("auditStatus");
         String invalidReason = paramsMap.getString("invalidReason");
-        Integer auditBy = paramsMap.getInteger("auditBy");
         Integer source = paramsMap.getInteger("source");
         return authProductService.auditProduct(productId, auditStatus, invalidReason, auditBy, source);
     }
@@ -232,25 +243,9 @@ public class AuthProductApi {
         return authProductService.deleteProductType(productTypeId);
     }
 
-    @ApiOperation("更新设备分类状态")
-    @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id;status:上线状态:0已下线,1已上线,2待上线", required = true)
-    @PostMapping("/type/update/status")
-    public ResponseJson updateProductTypeStatus(@RequestBody Map<String,Integer> params) {
-        Integer productTypeId = params.get("productTypeId");
-        Integer status = params.get("status");
-        if (productTypeId == null) {
-            return ResponseJson.error("请输入设备分类id");
-        }
-        if (status == null) {
-            return ResponseJson.error("请输入要更新的状态值");
-        } else if (status != 0 && status != 1) {
-            return ResponseJson.error("状态值只能为0或1");
-        }
-        return authProductService.updateProductTypeStatus(productTypeId, status);
-    }
-
     @ApiOperation("设备分类列表")
     @ApiImplicitParams({
+            @ApiImplicitParam(name = "authUserId", required = false, value = "供应商用户id"),
             @ApiImplicitParam(name = "listType", required = false, value = "列表类型:1设备分类列表,2设备分类审核列表"),
             @ApiImplicitParam(name = "name", required = false, value = "设备分类名称"),
             @ApiImplicitParam(name = "status", required = false, value = "上线状态:0下线,1上线,2待上线"),
@@ -259,21 +254,40 @@ public class AuthProductApi {
             @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
     })
     @GetMapping("/type/list")
-    public ResponseJson<PageInfo<ProductTypeListVo>> getProductTypeList(@CurrentUser SysUser sysUser, Integer listType, String name, Integer status, Integer auditStatus,
+    public ResponseJson<PageInfo<ProductTypeListVo>> getProductTypeList(@CurrentUser SysUser sysUser, Integer authUserId, Integer listType, String name, Integer status, Integer auditStatus,
                                                                         @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                                                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
-        if (null == sysUser) {
-            return ResponseJson.error("用户信息异常", null);
-        }
-        // 获取供应商用户id
-        Integer userIdentity = sysUser.getUserIdentity();
-        Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
-        if (null == authUserId) {
+        // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
+        if (null != sysUser && 1 != sysUser.getId()) {
+            // 获取供应商用户id
+            Integer userIdentity = sysUser.getUserIdentity();
+            authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+            if (null == authUserId) {
+                return ResponseJson.error("供应商用户id不能为空", null);
+            }
+        } else if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
         return authProductService.getProductTypeList(listType, authUserId, name, status, auditStatus, pageNum, pageSize);
     }
 
+    @ApiOperation("更新设备分类状态")
+    @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id;status:上线状态:0已下线,1已上线,2待上线", required = true)
+    @PostMapping("/type/update/status")
+    public ResponseJson updateProductTypeStatus(@RequestBody Map<String,Integer> params) {
+        Integer productTypeId = params.get("productTypeId");
+        Integer status = params.get("status");
+        if (productTypeId == null) {
+            return ResponseJson.error("请输入设备分类id");
+        }
+        if (status == null) {
+            return ResponseJson.error("请输入要更新的状态值");
+        } else if (status != 0 && status != 1) {
+            return ResponseJson.error("状态值只能为0或1");
+        }
+        return authProductService.updateProductTypeStatus(productTypeId, status);
+    }
+
     @ApiOperation("设备分类下拉框列表")
     @GetMapping("/type/select")
     public ResponseJson<List<ProductTypeListVo>> getProductTypeSelectList(@CurrentUser SysUser sysUser) {
@@ -292,12 +306,19 @@ public class AuthProductApi {
     @ApiOperation("审核设备分类")
     @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id;auditStatus:审核状态:0审核未通过,1审核通过,2待审核;invalidReason:审核不通过原因;auditBy:审核人用户id", required = true)
     @PostMapping("/type/audit")
-    public ResponseJson auditProductType(@RequestBody String params) {
+    public ResponseJson auditProductType(@CurrentUser SysUser sysUser, @RequestBody String params) {
+        if (null == sysUser) {
+            return ResponseJson.error("用户信息异常", null);
+        }
+        // 获取审核人用户id
+        Integer auditBy = sysUser.getId();
+        if (null == auditBy) {
+            return ResponseJson.error("审核人用户id不能为空", null);
+        }
         JSONObject paramsMap = JSONObject.parseObject(params);
         Integer productTypeId = paramsMap.getInteger("productTypeId");
         Integer auditStatus = paramsMap.getInteger("auditStatus");
         String invalidReason = paramsMap.getString("invalidReason");
-        Integer auditBy = paramsMap.getInteger("auditBy");
         if (productTypeId == null) {
             return ResponseJson.error("请输入商品id");
         }
@@ -307,15 +328,18 @@ public class AuthProductApi {
         if (auditStatus == 0 && StringUtils.isEmpty(invalidReason)) {
             return ResponseJson.error("请输入审核不通过的原因");
         }
-        if (auditBy == null) {
-            return ResponseJson.error("请输入审核人用户id");
-        }
         return authProductService.auditProductType(productTypeId, auditStatus, invalidReason, auditBy);
     }
 
-    @ApiOperation("更改查看标记")
+    @ApiOperation("更改设备查看标记")
     @PostMapping("/check/{id}")
     public ResponseJson checkAuthProduct(@PathVariable("id") Integer productId) {
         return authProductService.checkAuthProduct(productId);
     }
+
+    @ApiOperation("更改设备分类查看标记")
+    @PostMapping("/type/check/{id}")
+    public ResponseJson checkProductType(@PathVariable("id") Integer productTypeId) {
+        return authProductService.checkProductType(productTypeId);
+    }
 }

+ 20 - 11
src/main/java/com/caimei/controller/admin/auth/DoctorApi.java

@@ -47,16 +47,18 @@ public class DoctorApi {
             @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
     })
     @GetMapping("/list")
-    public ResponseJson<PageInfo<DoctorListVo>> getDoctorList(@CurrentUser SysUser sysUser, Integer listType, Integer doctorType, String doctorName, String certificateNo, Integer status, Integer auditStatus,
+    public ResponseJson<PageInfo<DoctorListVo>> getDoctorList(@CurrentUser SysUser sysUser, Integer authUserId, Integer listType, Integer doctorType, String doctorName, String certificateNo, Integer status, Integer auditStatus,
                                                               @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
-        if (null == sysUser) {
-            return ResponseJson.error("用户信息异常", null);
-        }
-        // 获取供应商用户id
-        Integer userIdentity = sysUser.getUserIdentity();
-        Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
-        if (null == authUserId) {
+        // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
+        if (null != sysUser && 1 != sysUser.getId()) {
+            // 获取供应商用户id
+            Integer userIdentity = sysUser.getUserIdentity();
+            authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+            if (null == authUserId) {
+                return ResponseJson.error("供应商用户id不能为空", null);
+            }
+        } else if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
         if (null == doctorType) {
@@ -114,6 +116,7 @@ public class DoctorApi {
         // 获取供应商用户id
         Integer userIdentity = sysUser.getUserIdentity();
         Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+        Integer createBy = (2 == userIdentity || 3 == userIdentity) ? sysUser.getId() : null;
         if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
@@ -125,7 +128,6 @@ public class DoctorApi {
         String certificateNo = paramsMap.getString("certificateNo");
         String clubName = paramsMap.getString("clubName");
         String doctorImage = paramsMap.getString("doctorImage");
-        Integer createBy = paramsMap.getInteger("createBy");
         List<String> bannerList = (List<String>) paramsMap.get("bannerList");
         List<String> tagList = (List<String>) paramsMap.get("tagList");
         List<Map<String,Object>> equipmentList = (List<Map<String,Object>>) paramsMap.get("equipmentList");
@@ -154,12 +156,19 @@ public class DoctorApi {
     @ApiOperation("审核医师")
     @ApiImplicitParam(name = "params", value = "doctorId:医师id;auditStatus:审核状态:0审核未通过,1审核通过,2待审核;invalidReason:审核不通过原因;auditBy:审核人用户id", required = true)
     @PostMapping("/audit")
-    public ResponseJson auditDoctor(@RequestBody String params) {
+    public ResponseJson auditDoctor(@CurrentUser SysUser sysUser, @RequestBody String params) {
+        if (null == sysUser) {
+            return ResponseJson.error("用户信息异常", null);
+        }
+        // 获取审核人用户id
+        Integer auditBy = sysUser.getId();
+        if (null == auditBy) {
+            return ResponseJson.error("审核人用户id不能为空", null);
+        }
         JSONObject paramsMap = JSONObject.parseObject(params);
         Integer doctorId = paramsMap.getInteger("doctorId");
         Integer auditStatus = paramsMap.getInteger("auditStatus");
         String invalidReason = paramsMap.getString("invalidReason");
-        Integer auditBy = paramsMap.getInteger("auditBy");
         return doctorService.auditDoctor(doctorId, auditStatus, invalidReason, auditBy);
     }
 

+ 11 - 1
src/main/java/com/caimei/controller/admin/auth/DownloadApi.java

@@ -47,6 +47,16 @@ public class DownloadApi {
         }
     }
 
+    @ApiOperation("下载机构导入模板")
+    @GetMapping("/auth/template")
+    public void downloadAuthTemplate(HttpServletRequest request, HttpServletResponse response){
+        try {
+            downloadService.downloadAuthTemplate(request, response);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
     @ApiOperation("一键下载机构授权牌/设备授权牌/机构二维码/设备二维码")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "authIds", required = false, value = "勾选中的机构id,以,隔开"),
@@ -54,7 +64,7 @@ public class DownloadApi {
     })
     @GetMapping("/shop/image")
     public void downloadImage(String authIds, Integer type, HttpServletRequest request, HttpServletResponse response) throws Exception {
-        if (com.aliyuncs.utils.StringUtils.isEmpty(authIds) || null == type) {
+        if (StringUtils.isEmpty(authIds) || null == type) {
             return;
         }
         downloadService.downloadShopImage(authIds, type, request, response);

+ 28 - 9
src/main/java/com/caimei/controller/admin/auth/ShopApi.java

@@ -95,16 +95,15 @@ public class ShopApi {
     @GetMapping("/form/data")
     public ResponseJson<ShopFormVo> getShopFormData(@CurrentUser SysUser sysUser, Integer authUserId) {
         // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
-        if (null == authUserId) {
-            if (null == sysUser) {
-                return ResponseJson.error("用户信息异常", null);
-            }
+        if (null != sysUser && 1 != sysUser.getId()) {
             // 获取供应商用户id
             Integer userIdentity = sysUser.getUserIdentity();
             authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
             if (null == authUserId) {
                 return ResponseJson.error("供应商用户id不能为空", null);
             }
+        } else if (null == authUserId) {
+            return ResponseJson.error("供应商用户id不能为空", null);
         }
         return shopService.getShopFormData(authUserId);
     }
@@ -162,6 +161,10 @@ public class ShopApi {
         if (StringUtils.isEmpty(logo)) {
             return ResponseJson.error("供应商logo不能为空");
         }
+        String prefix = (String) paramsMap.get("prefix");
+        if (StringUtils.isEmpty(prefix)) {
+            return ResponseJson.error("前缀不能为空");
+        }
         String qrCodeImage = paramsMap.getString("qrCodeImage");
         Integer wxAccountType = paramsMap.getInteger("wxAccountType");
         String appId = paramsMap.getString("appId");
@@ -177,6 +180,8 @@ public class ShopApi {
         shop.setCmShopId(cmShopId);
         // 供应商名称
         shop.setName(shopName);
+        // 前缀
+        shop.setPrefix(prefix);
         // 手机号
         shop.setMobile(mobile);
         // 联系人
@@ -267,7 +272,18 @@ public class ShopApi {
     @ApiOperation("品牌信息列表")
     @ApiImplicitParam(name = "authUserId", value = "供应商用户id", required = false)
     @GetMapping("/info/list")
-    public ResponseJson<List<ShopInfoVo>> getShopInfoList(Integer authUserId) {
+    public ResponseJson<List<ShopInfoVo>> getShopInfoList(@CurrentUser SysUser sysUser, Integer authUserId) {
+        // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
+        if (null != sysUser && 1 != sysUser.getId()) {
+            // 获取供应商用户id
+            Integer userIdentity = sysUser.getUserIdentity();
+            authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+            if (null == authUserId) {
+                return ResponseJson.error("供应商用户id不能为空", null);
+            }
+        } else if (null == authUserId) {
+            return ResponseJson.error("供应商用户id不能为空", null);
+        }
         return shopService.getShopInfoList(authUserId);
     }
 
@@ -337,8 +353,9 @@ public class ShopApi {
         if (null == sysUser) {
             return ResponseJson.error("用户信息异常", null);
         }
-        // 修改用户信息:供应商和子用户都可以修改个人信息,直接取id即可
-        Integer authUserId = sysUser.getId();
+        // 获取供应商用户id
+        Integer userIdentity = sysUser.getUserIdentity();
+        Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
         if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
@@ -422,9 +439,9 @@ public class ShopApi {
     }
 
     @ApiOperation("删除供应商品牌信息")
-    @ApiImplicitParam(name = "infoId", value = "品牌信息id", required = true)
+    @ApiImplicitParam(name = "params", value = "infoId:品牌信息id", required = true)
     @PostMapping("/info/delete")
-    public ResponseJson saveShopInfo(@CurrentUser SysUser sysUser, @RequestBody Integer infoId) {
+    public ResponseJson saveShopInfo(@CurrentUser SysUser sysUser, @RequestBody String params) {
         if (null == sysUser) {
             return ResponseJson.error("用户信息异常", null);
         }
@@ -434,6 +451,8 @@ public class ShopApi {
         if (null == authUserId) {
             return ResponseJson.error("供应商用户id不能为空", null);
         }
+        JSONObject parseObject = JSONObject.parseObject(params);
+        Integer infoId = parseObject.getInteger("infoId");
         return shopService.deleteShopInfo(authUserId, infoId);
     }
 

+ 1 - 1
src/main/java/com/caimei/controller/admin/data/ArticleApi.java

@@ -123,7 +123,7 @@ public class ArticleApi {
     @ApiOperation("更改排序值")
     @ApiImplicitParam(name = "params", required = true, value = "articleId:文章id;sort:排序值")
     @PostMapping("/sort/update")
-    public ResponseJson updateSort(@RequestBody String params ) {
+    public ResponseJson updateSort(@RequestBody String params) {
         JSONObject paramsMap = JSONObject.parseObject(params);
         Integer articleId = paramsMap.getInteger("articleId");
         Integer sort = paramsMap.getInteger("sort");

+ 9 - 1
src/main/java/com/caimei/controller/admin/sys/SysRoleApi.java

@@ -67,7 +67,15 @@ public class SysRoleApi {
      * 添加角色
      */
     @PostMapping("/create")
-    public ResponseJson<Void> addRole(@RequestBody SysRole sysRole) {
+    public ResponseJson<Void> addRole(@CurrentUser SysUser sysUser, @RequestBody SysRole sysRole) {
+        if (null == sysUser) {
+            return ResponseJson.error("用户信息异常", null);
+        }
+        // 获取供应商用户id
+        Integer userIdentity = sysUser.getUserIdentity();
+        Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+        sysRole.setAuthUserId(authUserId);
+        sysRole.setRoleType(1 == userIdentity ? 1 : 3);
         return sysRoleService.addRole(sysRole);
     }
 

+ 7 - 3
src/main/java/com/caimei/controller/admin/sys/SysUserApi.java

@@ -96,10 +96,14 @@ public class SysUserApi {
      * 添加管理员/供应商子用户
      */
     @PostMapping("/create")
-    public ResponseJson<Void> createUser(@RequestBody SysUser sysUser) {
-        if (null == sysUser.getUserIdentity()) {
-            return ResponseJson.error("用户身份不能为空", null);
+    public ResponseJson<Void> createUser(@CurrentUser SysUser currentUser, @RequestBody SysUser sysUser) {
+        if (null == currentUser) {
+            return ResponseJson.error("用户信息异常", null);
         }
+        Integer userIdentity = currentUser.getUserIdentity();
+        sysUser.setUserIdentity(1 == userIdentity ? 1 : 3);
+        sysUser.setParentId(1 == userIdentity ? 1 : 2 == userIdentity ? currentUser.getId() : currentUser.getParentId());
+        sysUser.setCreateBy(currentUser.getId());
         return sysUserService.createUser(sysUser);
     }
 

+ 10 - 9
src/main/java/com/caimei/controller/admin/vip/VipApi.java

@@ -113,15 +113,16 @@ public class VipApi {
                                                                    String payEndTime, String endBeginTime, String endEndTime,
                                                                    @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
                                                                    @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
-        // 管理员/供应商公用接口,只有管理员需要传authUserId
-        if (null == sysUser) {
-            return ResponseJson.error("用户信息异常", null);
-        }
-        // 获取供应商用户id
-        Integer userIdentity = sysUser.getUserIdentity();
-        Integer tempAuthUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
-        if (null != tempAuthUserId) {
-            authUserId = tempAuthUserId;
+        // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
+        if (null != sysUser && 1 != sysUser.getId()) {
+            // 获取供应商用户id
+            Integer userIdentity = sysUser.getUserIdentity();
+            authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
+            if (null == authUserId) {
+                return ResponseJson.error("供应商用户id不能为空", null);
+            }
+        } else if (null == authUserId) {
+            return ResponseJson.error("供应商用户id不能为空", null);
         }
         return vipService.vipHistoryList(authUserId, vipPackageId, vipStatus, payBeginTime, payEndTime, endBeginTime, endEndTime, pageNum, pageSize);
     }

+ 18 - 5
src/main/java/com/caimei/controller/wechat/WxAuthApi.java

@@ -79,7 +79,7 @@ public class WxAuthApi {
 
     @ApiOperation("明星机构列表")
     @ApiImplicitParam(name = "authUserId", required = false, value = "供应商用户id")
-    @GetMapping("/club/start/list")
+    @GetMapping("/club/star/list")
     public ResponseJson<List<WxClubListVo>> getStarClubList(Integer authUserId) {
         if (null == authUserId) {
             return ResponseJson.error("参数异常,供应商用户id不能为空", null);
@@ -136,10 +136,10 @@ public class WxAuthApi {
      * 获取授权商品回显数据
      */
     @ApiOperation("授权商品回显数据")
-    @ApiImplicitParam(name = "productId", required = true, value = "授权商品id")
+    @ApiImplicitParam(name = "relationId", required = true, value = "机构设备关联id")
     @GetMapping("/product/form/data")
-    public ResponseJson<ProductFormVo> getProductFormData(Integer productId) {
-        return authProductService.getProductFormData(productId);
+    public ResponseJson<ProductFormVo> getProductFormData(Integer relationId) {
+        return authProductService.getProductFormData(relationId);
     }
 
     /**
@@ -159,7 +159,7 @@ public class WxAuthApi {
      * @param productSaveDto {
      *                   productId              授权商品id
      *                   authId                 授权id
-     *                   info                   品牌信息id
+     *                   infoId                 品牌信息id
      *                   productTypeId          设备分类id
      *                   snCode                 商品SN码
      *                   productImage           商品图片
@@ -265,6 +265,19 @@ public class WxAuthApi {
         return authProductService.getAuthProductDetails(productId);
     }
 
+    @ApiOperation("关联设备获取设备信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "productId", required = false, value = "设备id"),
+            @ApiImplicitParam(name = "snCode", required = false, value = "sn码")
+    })
+    @GetMapping("/product/info")
+    public ResponseJson<ProductFormVo> getProductInfo(Integer productId, String snCode) {
+        if (null == productId && null == snCode) {
+            return ResponseJson.error("设备id和sn码不能同时为空", null);
+        }
+        return authProductService.getProductInfo(productId, snCode);
+    }
+
     @ApiOperation("已认证医师列表")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "authUserId", required = false, value = "供应商用户id"),

+ 1 - 1
src/main/java/com/caimei/mapper/cmMapper/AuthMapper.java

@@ -21,7 +21,7 @@ import java.util.List;
 @Mapper
 public interface AuthMapper {
 
-    List<AuthVo> getAuthList(@Param("listType") Integer listType, @Param("authUserId") Integer authUserId, @Param("authParty") String authParty, @Param("mobile") String mobile, @Param("status") Integer status, @Param("starFlag")  Integer starFlag, @Param("lowerAuditStatus") Integer lowerAuditStatus, @Param("shopAuditStatus") Integer shopAuditStatus, @Param("sendStatus") Integer sendStatus, @Param("auditStatus") Integer auditStatus);
+    List<AuthVo> getAuthList(@Param("listType") Integer listType, @Param("authUserId") Integer authUserId, @Param("authParty") String authParty, @Param("mobile") String mobile, @Param("status") Integer status, @Param("starFlag")  Integer starFlag, @Param("auditStatus") Integer auditStatus, @Param("lowerAuditStatus") Integer lowerAuditStatus, @Param("shopAuditStatus") Integer shopAuditStatus, @Param("sendStatus") Integer sendStatus);
 
     void updateAuthStatusByAuthId(@Param("authId") Integer authId, @Param("status") Integer status);
 

+ 2 - 0
src/main/java/com/caimei/mapper/cmMapper/AuthProductMapper.java

@@ -106,4 +106,6 @@ public interface AuthProductMapper {
     List<WxClubListVo> getProductClubList(Integer productId);
 
     void addScanCount(Integer productId);
+
+    void checkProductType(Integer productTypeId);
 }

+ 2 - 0
src/main/java/com/caimei/mapper/cmMapper/ShopMapper.java

@@ -88,4 +88,6 @@ public interface ShopMapper {
     void updateShopLogo(@Param("authUserId") Integer authUserId, @Param("logo") String logo);
 
     List<CmShopVo> getCmShopList();
+
+    Integer getUserIdByPrefix(String prefix);
 }

+ 6 - 2
src/main/java/com/caimei/mapper/cmMapper/SystemMapper.java

@@ -18,7 +18,7 @@ public interface SystemMapper {
     /**
      * 根据用户名称查找可登录用户
      */
-    SysUser findByUsername(@Param("username") String username, @Param("userIdentity") Integer userIdentity);
+    SysUser findByUsername(@Param("username") String username);
     /**
      * 根据用户Id查找可登录用户
      */
@@ -86,7 +86,7 @@ public interface SystemMapper {
     /**
      * 根据角色名称获取角色
      */
-    SysRole getRoleByRoleName(String roleName);
+    SysRole getRoleByRoleName(@Param("authUserId") Integer authUserId, @Param("roleName") String roleName);
     /**
      * 根据ID更新角色
      */
@@ -225,4 +225,8 @@ public interface SystemMapper {
      * 获取供应商菜单对应的角色id
      */
     Integer getShopRoleIdByMenuId(Integer menuId);
+
+    SysUser findByMobile(String mobile);
+
+    SysUser findByLoginAccount(String loginAccount);
 }

+ 4 - 0
src/main/java/com/caimei/model/po/SysRole.java

@@ -17,6 +17,10 @@ public class SysRole {
      * 角色ID
      */
     private Integer id;
+    /**
+     * 供应商用户id
+     */
+    private Integer authUserId;
     /**
      * 角色名称
      */

+ 4 - 0
src/main/java/com/caimei/model/po/SysUser.java

@@ -30,6 +30,10 @@ public class SysUser {
      * 用户名
      */
     private String username;
+    /**
+     * 登录账号
+     */
+    private String loginAccount;
     /**
      * 手机号
      */

+ 5 - 0
src/main/java/com/caimei/model/po/UserPo.java

@@ -25,6 +25,11 @@ public class UserPo {
      */
     private String name;
 
+    /**
+     * 前缀
+     */
+    private String prefix;
+
     /**
      * 手机号
      */

+ 5 - 0
src/main/java/com/caimei/model/vo/AuthVo.java

@@ -97,6 +97,11 @@ public class AuthVo {
      */
     private String invalidReason;
 
+    /**
+     * 供应商审核不通过原因
+     */
+    private String shopInvalidReason;
+
     /**
      * 供应商审核人
      */

+ 8 - 2
src/main/java/com/caimei/model/vo/ProductListVo.java

@@ -16,10 +16,11 @@ public class ProductListVo {
      */
     private Integer productId;
 
-    @ApiModelProperty("供应商用户id")
+    /**
+     * 供应商用户id
+     */
     private Integer authUserId;
 
-    @ApiModelProperty("商品名称")
     /**
      * 机构设备关联id
      */
@@ -75,6 +76,11 @@ public class ProductListVo {
      */
     private String invalidReason;
 
+    /**
+     * 供应商审核不通过原因
+     */
+    private String shopInvalidReason;
+
     /**
      * 供应商审核人
      */

+ 3 - 0
src/main/java/com/caimei/model/vo/ProductTypeListVo.java

@@ -40,4 +40,7 @@ public class ProductTypeListVo {
 
     @ApiModelProperty("审核不通过原因")
     private String invalidReason;
+
+    @ApiModelProperty("是否查看过:1是,0否")
+    private Integer checkFlag;
 }

+ 5 - 0
src/main/java/com/caimei/model/vo/ShopFormVo.java

@@ -35,6 +35,11 @@ public class ShopFormVo implements Serializable {
      */
     private String loginAccount;
 
+    /**
+     * 前缀
+     */
+    private String prefix;
+
     /**
      * 供应商类型
      */

+ 3 - 0
src/main/java/com/caimei/model/vo/ShopListVo.java

@@ -25,6 +25,9 @@ public class ShopListVo implements Serializable {
     @ApiModelProperty("登录账号")
     private String loginAccount;
 
+    @ApiModelProperty("供应商前缀")
+    private String prefix;
+
     @ApiModelProperty("供应商类型")
     private Integer shopType;
 

+ 5 - 5
src/main/java/com/caimei/model/vo/UserLoginVo.java

@@ -37,6 +37,11 @@ public class UserLoginVo implements Serializable {
      */
     @ApiModelProperty("登录账号")
     private String loginAccount;
+    /**
+     * 登录账号
+     */
+    @ApiModelProperty("前缀")
+    private String prefix;
     /**
      * 密码
      */
@@ -52,11 +57,6 @@ public class UserLoginVo implements Serializable {
      */
     @ApiModelProperty("供应商类型:1品牌方 2代理商")
     private Integer shopType;
-    /**
-     * 品牌信息id
-     */
-    @ApiModelProperty("品牌信息id")
-    private Integer infoId;
     /**
      * 用户身份: 1管理员 2供应商
      */

+ 3 - 0
src/main/java/com/caimei/model/vo/WxProductListVo.java

@@ -13,6 +13,9 @@ import java.util.List;
  */
 @Data
 public class WxProductListVo {
+    @ApiModelProperty("机构设备关联id")
+    private Integer relationId;
+
     @ApiModelProperty("商品id")
     private Integer productId;
 

+ 3 - 0
src/main/java/com/caimei/model/vo/WxShopVo.java

@@ -25,4 +25,7 @@ public class WxShopVo implements Serializable {
 
     @ApiModelProperty("logo")
     private String logo;
+
+    @ApiModelProperty("前缀")
+    private String prefix;
 }

+ 7 - 0
src/main/java/com/caimei/service/auth/AuthProductService.java

@@ -184,6 +184,13 @@ public interface AuthProductService {
      * @return
      */
     ResponseJson<List<String>> getSnCodeList(Integer authUserId, Integer authId);
+
+    /**
+     * 更改设备分类查看标记
+     * @param productTypeId
+     * @return
+     */
+    ResponseJson checkProductType(Integer productTypeId);
 }
 
 

+ 2 - 0
src/main/java/com/caimei/service/auth/DownloadService.java

@@ -38,4 +38,6 @@ public interface DownloadService {
     ResponseJson downloadAuthData(String authIds, HttpServletResponse response);
 
     ResponseJson downloadProductData(String authIds, HttpServletRequest request, HttpServletResponse response) throws IOException;
+
+    void downloadAuthTemplate(HttpServletRequest request, HttpServletResponse response) throws IOException;
 }

+ 19 - 7
src/main/java/com/caimei/service/auth/impl/AuthProductServiceImpl.java

@@ -282,19 +282,25 @@ public class AuthProductServiceImpl implements AuthProductService {
         // 发票图片
         product.setInvoiceImage(invoiceImage);
         // 供应商保存,直接上线;机构保存,需要供应商审核通过后才上线
-        if (null != dbProduct && 1 != dbProduct.getAuditStatus()) {
-            // 被驳回的数据,编辑变为待审核状态
-            product.setStatus(2);
-            product.setAuditStatus(2);
+        if (1 == authType) {
+            product.setShopAuditStatus(1 == source ? 1 : 2);
+            if (null != dbProduct && 1 != dbProduct.getAuditStatus()) {
+                // 被驳回的数据,编辑变为待审核状态
+                product.setStatus(2);
+                product.setAuditStatus(2);
+            } else {
+                product.setStatus(1 == source ? 1 : 2);
+                product.setAuditStatus(1 == source ? 1 : 2);
+            }
         } else {
-            product.setStatus(1 == source ? 1 : 2);
-            product.setAuditStatus(1 == source ? 1 : 2);
+            product.setStatus(1);
+            product.setAuditStatus(1);
+            product.setShopAuditStatus(1);
         }
         Integer adminUserId = authMapper.getAdminUserId();
         product.setAuditBy(adminUserId);
         product.setAuditTime(new Date());
         product.setCheckFlag(0);
-        product.setShopAuditStatus(1 == source ? 1 : 2);
         // 创建人id
         product.setCreateBy(createBy);
         // 创建来源
@@ -807,4 +813,10 @@ public class AuthProductServiceImpl implements AuthProductService {
         return ResponseJson.success(snCodeList);
     }
 
+    @Override
+    public ResponseJson checkProductType(Integer productTypeId) {
+        authProductMapper.checkProductType(productTypeId);
+        return ResponseJson.success();
+    }
+
 }

+ 5 - 4
src/main/java/com/caimei/service/auth/impl/AuthServiceImpl.java

@@ -218,7 +218,6 @@ public class AuthServiceImpl implements AuthService {
         if (!insertFlag) {
             dbAuth = authMapper.getAuthById(authId);
         }
-        Integer authUserId = auth.getAuthUserId();
         String authParty = auth.getAuthParty();
         if (StringUtils.isBlank(authParty)) {
             return ResponseJson.error("参数异常,请输入授权机构名称");
@@ -272,6 +271,10 @@ public class AuthServiceImpl implements AuthService {
         Integer adminUserId = authMapper.getAdminUserId();
         auth.setAuditBy(adminUserId);
         auth.setAuditTime(new Date());
+        if (1 == source) {
+            auth.setShopAuditBy(auth.getCreateBy());
+            auth.setShopAuditTime(new Date());
+        }
         auth.setDelFlag(0);
         auth.setCheckFlag(0);
         auth.setShopAuditStatus(1 == source ? 1 : 2);
@@ -434,9 +437,6 @@ public class AuthServiceImpl implements AuthService {
         if (auditStatus == 0 && StringUtils.isEmpty(invalidReason)) {
             return ResponseJson.error("请输入审核不通过的原因");
         }
-        if (auditBy == null) {
-            return ResponseJson.error("请输入审核人用户id");
-        }
         source = null == source ? 1 : source;
         Date auditTime = new Date();
         // 授权状态更新
@@ -679,6 +679,7 @@ public class AuthServiceImpl implements AuthService {
             // 保存授权机构
             authPo.setAuthUserId(authUserId);
             authPo.setCreateBy(createBy);
+            authPo.setCreateSource(1);
             authPo.setFirstClubType(5);
             // 导入数据
             ResponseJson result = saveAuth(authPo, null, true, 1);

+ 0 - 3
src/main/java/com/caimei/service/auth/impl/DoctorServiceImpl.java

@@ -206,9 +206,6 @@ public class DoctorServiceImpl implements DoctorService {
         if (auditStatus == 0 && StringUtils.isEmpty(invalidReason)) {
             return ResponseJson.error("请输入审核不通过的原因");
         }
-        if (auditBy == null) {
-            return ResponseJson.error("请输入审核人用户id");
-        }
         Date auditTime = new Date();
         // 医师状态更新
         Integer status = null;

+ 18 - 2
src/main/java/com/caimei/service/auth/impl/DownloadServiceImpl.java

@@ -201,7 +201,12 @@ public class DownloadServiceImpl implements DownloadService {
             List<ProductFormVo> productList = authProductMapper.getAuthProductList(authImage.getAuthId());
             productList.forEach(product->{
                 // 参数列表
-                List<ProductParamPo> paramList = authProductMapper.getParamsByProductId(product.getProductId());
+                List<ProductParamPo> paramList = new ArrayList<>();
+                if (null == product.getProductTypeId()) {
+                    paramList = authProductMapper.getParamsByProductId(product.getProductId());
+                } else {
+                    paramList = authProductMapper.getProductTypeParamList(product.getProductTypeId());
+                }
                 product.setParamList(paramList);
                 if (paramList.size() > maxParamNum[0]) {
                     maxParamNum[0] = paramList.size();
@@ -223,6 +228,13 @@ public class DownloadServiceImpl implements DownloadService {
         return null;
     }
 
+    @Override
+    public void downloadAuthTemplate(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        String ossName = "认证通机构导入模板.xlsx";
+        OSSUtils.downFile("authFile/", ossName, ossName);
+        download(request, response, "./" + ossName, ossName);
+    }
+
     private String createExcelZip(HashMap<AuthVo, List<ProductFormVo>> authMap) throws FileNotFoundException {
         String randomStr = UUID.randomUUID().toString();
         String filePath = "/mnt/newdatadrive/data/runtime/jar-instance/zplma/tempImage/";
@@ -374,7 +386,11 @@ public class DownloadServiceImpl implements DownloadService {
                 authData.add(authParty.getAuthCode());
                 SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
                 Date authDate = authParty.getAuthDate();
-                authData.add(format.format(authDate));
+                if (null != authDate) {
+                    authData.add(format.format(authDate));
+                } else {
+                    authData.add("");
+                }
                 authData.add(authParty.getEmpNum().toString());
                 authData.add(authParty.getRemarks());
                 for (int j = 0; j < authData.size(); j++) {

+ 10 - 2
src/main/java/com/caimei/service/auth/impl/ShopServiceImpl.java

@@ -137,6 +137,11 @@ public class ShopServiceImpl implements ShopService {
             if (null != userIdByShopName) {
                 return ResponseJson.error("该供应商名称已经存在,请重新输入", null);
             }
+            // 添加时验证前缀是否已被使用
+            Integer userIdByPrefix = shopMapper.getUserIdByPrefix(shop.getPrefix());
+            if (null != userIdByPrefix) {
+                return ResponseJson.error("该供应商前缀已经存在,请重新输入", null);
+            }
             // 添加时验证appId是否已被使用
             if (StringUtils.isNotEmpty(shop.getAppId()) && null != userIdByAppId) {
                 return ResponseJson.error("该appId已被使用,请重新输入", null);
@@ -146,6 +151,11 @@ public class ShopServiceImpl implements ShopService {
             if (null != userIdByMobile && !userIdByMobile.equals(shop.getAuthUserId())) {
                 return ResponseJson.error("该手机号已被使用,请重新输入", null);
             }
+            // 修改时验证前缀是否已被使用
+            Integer userIdByPrefix = shopMapper.getUserIdByPrefix(shop.getPrefix());
+            if (null != userIdByPrefix && !userIdByPrefix.equals(shop.getAuthUserId())) {
+                return ResponseJson.error("该供应商前缀已经存在,请重新输入", null);
+            }
             // 修改时验证新appId是否已被使用
             if (StringUtils.isNotEmpty(shop.getAppId()) && null != userIdByAppId && !userIdByAppId.equals(shop.getAuthUserId())) {
                 return ResponseJson.error("该appId已被使用,请重新输入", null);
@@ -422,8 +432,6 @@ public class ShopServiceImpl implements ShopService {
         // 判断被删除的品牌下是否还有未删除的商品,若存在,提示供应商需要删除后才能删除品牌
         Integer productCount = shopMapper.getProductCount(authUserId, infoId);
         if (null != productCount && productCount > 0) {
-            // 设置手动回滚事务
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return ResponseJson.error("对不起,该品牌已绑定设备认证,暂时无法删除");
         } else {
             // 删除品牌

+ 1 - 0
src/main/java/com/caimei/service/sys/impl/SysMenuServiceImpl.java

@@ -258,6 +258,7 @@ public class SysMenuServiceImpl implements SysMenuService {
             vipMenuRole.setRoleName(menu.getTitle() + "会员菜单角色");
             vipMenuRole.setRoleDesc(menu.getTitle() + "会员菜单角色");
             vipMenuRole.setMenuIds(menu.getId().toString());
+            vipMenuRole.setAuthUserId(1);
             vipMenuRole.setRoleType(2);
             Integer dbVipRoleId = systemMapper.getVipRoleIdByMenuId(menu.getId());
             vipMenuRole.setId(dbVipRoleId);

+ 4 - 3
src/main/java/com/caimei/service/sys/impl/SysRoleServiceImpl.java

@@ -67,7 +67,8 @@ public class SysRoleServiceImpl implements SysRoleService {
                 }
             }
             allMenuIdList.removeAll(removeMenuIdSet);
-            String menuIds = CommonUtil.idListToString(allMenuIdList, ",");
+//            String menuIds = CommonUtil.idListToString(allMenuIdList, ",");
+            String menuIds = CommonUtil.idListToString(roleMenuIdList, ",");
             // 根据角色ID获取(权限-菜单)Ids
             List<String> permissionIdList = systemMapper.getPermissionMenuIdsByRoleId(id);
             StringBuilder ids = new StringBuilder(menuIds);
@@ -124,8 +125,8 @@ public class SysRoleServiceImpl implements SysRoleService {
     @Override
     public ResponseJson<Void> addRole(SysRole sysRole) {
         if (StringUtils.hasLength(sysRole.getRoleName())) {
-            // 查询是否存在当前角色
-            SysRole dbRole  = systemMapper.getRoleByRoleName(sysRole.getRoleName());
+            // 查询用户下是否存在当前角色
+            SysRole dbRole = systemMapper.getRoleByRoleName(sysRole.getAuthUserId(), sysRole.getRoleName());
             if (null == dbRole) {
                 String menuIds = sysRole.getMenuIds();
                 // 保存角色

+ 24 - 5
src/main/java/com/caimei/service/sys/impl/SysUserServiceImpl.java

@@ -15,6 +15,7 @@ import com.caimei.utils.CommonUtil;
 import com.caimei.utils.Md5Util;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.github.pagehelper.util.StringUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -57,7 +58,7 @@ public class SysUserServiceImpl implements SysUserService {
     @Override
     public ResponseJson<SysUser> getInfoByUsername(String username) {
         if (StringUtils.hasLength(username)) {
-            SysUser sysUser = systemMapper.findByUsername(username, null);
+            SysUser sysUser = systemMapper.findByUsername(username);
             if (null != sysUser) {
                 List<Integer> roleIds = setUserRoleInfo(sysUser);
                 List<SysMenu> menus = null;
@@ -269,10 +270,24 @@ public class SysUserServiceImpl implements SysUserService {
     @Transactional(rollbackFor=Exception.class)
     @Override
     public ResponseJson<Void> createUser(SysUser sysUser) {
-        if (StringUtils.hasLength(sysUser.getUsername()) && StringUtils.hasLength(sysUser.getPassword())) {
+        if ((StringUtils.hasLength(sysUser.getUsername()) || StringUtils.hasLength(sysUser.getLoginAccount())) && StringUtils.hasLength(sysUser.getPassword())) {
             // 查询是否存在当前用户名的用户
-            SysUser dbUser = systemMapper.findByUsername(sysUser.getUsername(), sysUser.getUserIdentity());
-            if (null == dbUser) {
+            SysUser dbUserByName = null;
+            if (StringUtil.isNotEmpty(sysUser.getUsername())) {
+                dbUserByName = systemMapper.findByUsername(sysUser.getUsername());
+            }
+            // 查询是否存在当前登录账号的用户
+            SysUser dbUserByAccount = null;
+            if (StringUtil.isNotEmpty(sysUser.getLoginAccount())) {
+                dbUserByAccount = systemMapper.findByLoginAccount(sysUser.getLoginAccount());
+                sysUser.setUsername(sysUser.getLoginAccount());
+            }
+            // 查询是否存在当前手机号的用户
+            SysUser dbUserByMobile = null;
+            if (StringUtil.isNotEmpty(sysUser.getLoginAccount())) {
+                dbUserByMobile = systemMapper.findByMobile(sysUser.getMobile());
+            }
+            if (null == dbUserByName && null == dbUserByAccount && null == dbUserByMobile)  {
                 // 密码加密
                 String encodePassword = Md5Util.md5(sysUser.getPassword());
                 sysUser.setPassword(encodePassword);
@@ -283,8 +298,12 @@ public class SysUserServiceImpl implements SysUserService {
                 // 保存用户角色关系
                 saveRoleRelation(sysUser.getId(), roleIds);
                 return ResponseJson.success("添加用户成功", null);
-            } else {
+            } else if (null != dbUserByName){
                 return ResponseJson.error("用户名已存在", null);
+            } else if (null != dbUserByAccount){
+                return ResponseJson.error("登录账号已存在", null);
+            } else {
+                return ResponseJson.error("手机号已存在", null);
             }
         }
         return ResponseJson.error("用户名或密码不能为空", null);

+ 13 - 1
src/main/java/com/caimei/service/wechat/impl/RegisterServiceImpl.java

@@ -4,11 +4,13 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei.components.RedisService;
 import com.caimei.mapper.cmMapper.AuthMapper;
 import com.caimei.mapper.cmMapper.ClubMapper;
+import com.caimei.mapper.cmMapper.ShopMapper;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.dto.ProductSaveDto;
 import com.caimei.model.po.ClubUserPo;
 import com.caimei.model.po.CmBrandAuthPo;
 import com.caimei.model.vo.AuthFormVo;
+import com.caimei.model.vo.ShopFormVo;
 import com.caimei.model.vo.WxClubUserVo;
 import com.caimei.service.auth.AuthProductService;
 import com.caimei.service.auth.AuthService;
@@ -43,6 +45,8 @@ public class RegisterServiceImpl implements RegisterService {
     @Resource
     private AuthMapper authMapper;
     @Resource
+    private ShopMapper shopMapper;
+    @Resource
     private AuthService authService;
     @Resource
     private AuthProductService authProductService;
@@ -96,8 +100,16 @@ public class RegisterServiceImpl implements RegisterService {
         clubMapper.insertClubUser(clubUser);
         clubUserVo = clubMapper.getWxClubUser(mobile, null, authUserId, null, null);
         if (2 == registerType) {
+            // 获取供应商名称
+            ShopFormVo shop = shopMapper.getShopByUserId(authUserId);
+            String shopName = "";
+            if (null == shop) {
+                return ResponseJson.error("供应商不存在", null);
+            } else {
+                shopName = shop.getShopName();
+            }
             // 验证码注册,推送默认密码短信
-            String content = "您认证通登录密码为:rzt123456";
+            String content = "("+ shopName +")您认证通登录密码为:rzt123456,请勿泄露于他人。【采美网提供技术支持】";
             Boolean sendSms = SmsUtils.sendSms(11, mobile, content);
             if (!sendSms) {
                 log.info("机构用户验证码注册-密码发送失败,手机号:" + mobile);

+ 1 - 0
src/main/java/com/caimei/utils/SmsUtils.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;

+ 4 - 2
src/main/resources/mapper/AuthMapper.xml

@@ -115,6 +115,7 @@
     <select id="getAuthList" resultType="com.caimei.model.vo.AuthVo">
         select a.id as authId, a.authUserId, authParty, cbcu2.mobile, a.status, a.auditStatus, a.shopAuditStatus, a.createTime,
         if(a.createSource = 1,cu.name,cbcu1.mobile) as createBy,au.name as auditBy,a.auditTime,a.invalidReason,
+               ifnull(a.shopInvalidReason, a.invalidReason) as shopInvalidReason,
         a.sendStatus, ifnull(au1.name,au1.mobile) as shopAuditBy,a.shopAuditTime,
         ifnull(ap.waitAuditNum,0) as waitAuditNum,
         ifnull(bp.waitAuditNum,0) as shopWaitAuditNum,
@@ -132,8 +133,9 @@
         left join (select r.authId,count(*) as waitAuditNum from cm_brand_auth_product p
             left join cm_brand_product_relation r on p.id = r.productId
             where shopAuditStatus = 2 group by r.authId) bp on a.id = bp.authId
-        left join (select authId,count(*) as productNum from cm_brand_auth_product group by
-        authId) cp on a.id = cp.authId
+        left join (select r.authId,count(*) as productNum from cm_brand_auth_product p
+            left join cm_brand_product_relation r on p.id = r.productId group by r.authId) cp
+            on a.id = cp.authId
         where a.authUserId = #{authUserId} and a.delFlag = 0
         <if test="authParty != null and authParty != ''">
             and a.authParty like CONCAT('%',#{authParty},'%')

+ 11 - 6
src/main/resources/mapper/AuthProductMapper.xml

@@ -167,16 +167,19 @@
             authType  = #{authType}
         where id = #{relationId}
     </update>
+    <update id="checkProductType">
+        update cm_brand_product_type set checkFlag = 1 where id = #{productTypeId}
+    </update>
     <select id="getProductList" resultType="com.caimei.model.vo.ProductListVo">
         select r.id as relationId,p.id as productId,a.authUserId, if(p.productTypeId is null,p.name,t.name) as productName,
                snCode,p.status,p.auditStatus,p.shopAuditStatus, p.createTime,
                if(p.createSource = 1,cu.name,cbcu.mobile) as createBy,
-               au.name as auditBy,p.auditTime,p.invalidReason, ifnull(au1.name,au1.mobile) as shopAuditBy,
-        p.shopAuditTime, p.checkFlag, p.scanCount
+               au.name as auditBy,p.auditTime,p.invalidReason,ifnull(p.shopInvalidReason,p.invalidReason) as shopInvalidReason,
+               ifnull(au1.name,au1.mobile) as shopAuditBy, p.shopAuditTime, p.checkFlag, p.scanCount
         from cm_brand_auth_product p
         left join cm_brand_product_relation r on p.id = r.productId
+        left join cm_brand_auth a on r.authId = a.id
         left join cm_brand_product_type t on p.productTypeId = t.id and t.delFlag = 0
-        left join cm_brand_auth a on p.authId = a.id
         left join cm_brand_auth_user cu on p.createBy = cu.authUserId
         left join cm_brand_auth_user au on p.auditBy = au.authUserId
         left join cm_brand_auth_user au1 on p.shopAuditBy = au1.authUserId
@@ -223,6 +226,7 @@
     <select id="getProductFormData" resultType="com.caimei.model.vo.ProductFormVo">
         select p.`id`                                                      as productId,
                r.authId,
+               if(p.productTypeId is null, i1.id, i2.id)                   as infoId,
                if(p.productTypeId is null, i1.brandName, i2.brandName)     as brandName,
                p.productTypeId,
                if(p.productTypeId is null, p.name, t.name)                 as productName,
@@ -267,7 +271,7 @@
         from cm_brand_auth_product
     </select>
     <select id="getWxProductList" resultType="com.caimei.model.vo.WxProductListVo">
-        select DISTINCT p.id as productId,
+        select DISTINCT r.id as relationId, p.id as productId,
         if(p.productTypeId is null,p.name,t.name) as productName,
         p.snCode,
         if(p.productTypeId is null,p.image,t.image) as productImage,
@@ -295,7 +299,6 @@
                 </if>
             </if>
             <if test="listType == 2">
-                and p.productTypeId = #{productTypeId}
                 <if test="snCode != null and snCode != ''">
                     and p.snCode like concat('%',#{snCode},'%')
                 </if>
@@ -311,6 +314,7 @@
     </select>
     <select id="getAuthProductList" resultType="com.caimei.model.vo.ProductFormVo">
         select p.id                                                    as productId,
+               p.productTypeId,
                p.purchaseWay,
                if(p.productTypeId is null, p.name, t.name)             as productName,
                snCode,
@@ -375,7 +379,7 @@
     <select id="getProductTypeList" resultType="com.caimei.model.vo.ProductTypeListVo">
         select t.id as productTypeId,t.name,t.image,t.status,t.auditStatus,t.createTime,
         if(t.createSource = 1,cu.name,cbcu.mobile) as createBy,
-        au.name as auditBy,t.auditTime,t.invalidReason
+        au.name as auditBy,t.auditTime,t.invalidReason,t.checkFlag
         from cm_brand_product_type t
         left join cm_brand_auth_user cu on t.createBy = cu.authUserId
         left join cm_brand_auth_user au on t.auditBy = au.authUserId
@@ -464,6 +468,7 @@
     </select>
     <select id="getProductInfo" resultType="com.caimei.model.vo.ProductFormVo">
         select p.id as productId, p.productTypeId, p.snCode, if(p.productTypeId is null,p.name,t.name) as productName,
+        if(p.productTypeId is null ,p.image, t.image) as productImage, t.infoId,
         certificateImageType,certificateImage,purchaseWay,invoiceImage,p.auditStatus
         from cm_brand_auth_product p
         left join cm_brand_product_type t on p.productTypeId = t.id and t.delFlag = 0

+ 9 - 5
src/main/resources/mapper/ShopMapper.xml

@@ -2,9 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.mapper.cmMapper.ShopMapper">
     <insert id="insertShop"  keyColumn="authUserId" keyProperty="authUserId" useGeneratedKeys="true" parameterType="com.caimei.model.po.UserPo">
-        insert into cm_brand_auth_user (`name`, cmShopId, `mobile`, `password`, `linkMan`, `userIdentity`, `shopType`, `logo`, `qrCodeImage`, `wxAccountType`, `appId`, `appSecret`, `createTime`,
+        insert into cm_brand_auth_user (`name`, cmShopId, prefix, `mobile`, `password`, `linkMan`, `userIdentity`, `shopType`, `logo`, `qrCodeImage`, `wxAccountType`, `appId`, `appSecret`, `createTime`,
                                         `createBy`,`status`)
-        values (#{name}, #{cmShopId}, #{mobile}, #{password}, #{linkMan}, #{userIdentity}, #{shopType}, #{logo}, #{qrCodeImage}, #{wxAccountType}, #{appId}, #{appSecret}, #{createTime}, #{createBy}, #{status});
+        values (#{name}, #{cmShopId}, #{prefix}, #{mobile}, #{password}, #{linkMan}, #{userIdentity}, #{shopType}, #{logo}, #{qrCodeImage}, #{wxAccountType}, #{appId}, #{appSecret}, #{createTime}, #{createBy}, #{status});
     </insert>
     <insert id="insertShopInfo">
         insert into cm_brand_auth_shop_info (authUserId, brandName, brandLogo, producePlace, manufacturer)
@@ -19,6 +19,7 @@
         update cm_brand_auth_user
         set cmShopId        = #{cmShopId},
             name            = #{name},
+            prefix          = #{prefix},
             shopType        = #{shopType},
             `mobile`        = #{mobile},
             `linkMan`       = #{linkMan},
@@ -69,7 +70,7 @@
         delete from cm_brand_auth_shop_info where id = #{infoId}
     </delete>
     <select id="getShopList" resultType="com.caimei.model.vo.ShopListVo">
-        select u.authUserId,u.name,u.loginAccount,u.shopType,group_concat(s.brandName) as brandName,group_concat(s.id) as infoId,
+        select u.authUserId,u.name,u.loginAccount,u.prefix, u.shopType,group_concat(s.brandName) as brandName,group_concat(s.id) as infoId,
         u.mobile,u.linkMan,u.status as shopStatus,u.createTime,
         (select au.name from cm_brand_auth_user au where au.authUserId = u.createBy) as createBy,
         (ifnull(aw.authWaitNum,0)+ifnull(pw.productWaitNum,0)) as waitAuditNum,
@@ -179,7 +180,7 @@
         select count(*) from cm_brand_auth_file where md5Hex = #{md5Hex}
     </select>
     <select id="getShopByUserId" resultType="com.caimei.model.vo.ShopFormVo">
-        select u.authUserId, u.cmShopId, u.name as shopName, u.loginAccount, u.mobile, u.linkMan, u.status as shopStatus, u.shopType,
+        select u.authUserId, u.cmShopId, u.name as shopName, u.loginAccount, u.prefix, u.mobile, u.linkMan, u.status as shopStatus, u.shopType,
                u.wxAccountType, u.logo, u.qrCodeImage, u.appId, u.appSecret,
                if(avu.id is null, 3, (if(NOW() <![CDATA[<]]> avu.endTime, 1, 0))) as vipStatus
         from cm_brand_auth_user u
@@ -282,7 +283,7 @@
         where i.authUserId = #{authUserId}
     </select>
     <select id="getWxShopInfo" resultType="com.caimei.model.vo.WxShopVo">
-        select au.authUserId, au.appId, au.name as shopName, au.logo as logo
+        select au.authUserId, au.appId, au.name as shopName, au.logo as logo, au.prefix
         from cm_brand_auth_user au
         where au.authUserId = #{authUserId}
         and au.status = 1
@@ -299,5 +300,8 @@
         from shop
         where shopType in (1, 2) and status = 90
     </select>
+    <select id="getUserIdByPrefix" resultType="java.lang.Integer">
+        select authUserId from cm_brand_auth_user where prefix = #{prefix} and userIdentity = 2 limit 1
+    </select>
 
 </mapper>

+ 21 - 9
src/main/resources/mapper/SystemMapper.xml

@@ -73,7 +73,7 @@
             and role_type = 1
         </if>
         <if test="authUserId != null">
-            and role_type = 2 and authUserId = #{authUserId}
+            and role_type = 3 and authUserId = #{authUserId}
         </if>
     </select>
     <select id="getRole" resultType="com.caimei.model.po.SysRole">
@@ -83,10 +83,16 @@
     <select id="getRoleByRoleName" resultType="com.caimei.model.po.SysRole">
         SELECT  r.id, r.role_name AS roleName, r.role_desc AS roleDesc, r.create_time AS createTime, r.update_time AS updateTime, del_flag AS delFlag
         FROM auth_role r WHERE r.role_name = #{roleName}
+        <if test="authUserId != null">
+            and authUserId = #{authUserId}
+        </if>
+        <if test="authUserId == null">
+            and authUserId is null
+        </if>
     </select>
     <insert id="insertRole" keyProperty="id" keyColumn="id" useGeneratedKeys="true">
-        INSERT INTO auth_role(role_name, role_desc, role_type, create_time)
-        VALUES (#{roleName}, #{roleDesc}, #{roleType}, NOW())
+        INSERT INTO auth_role(authUserId, role_name, role_desc, role_type, create_time)
+        VALUES (#{authUserId}, #{roleName}, #{roleDesc}, #{roleType}, NOW())
     </insert>
     <select id="getMenuIdsByRoleId" resultType="java.lang.Integer">
         SELECT DISTINCT menu_id FROM auth_role_menu arm left join auth_menu m on arm.menu_id = m.id WHERE role_id = #{roleId} and m.id is not null
@@ -235,11 +241,11 @@
         limit 1
     </select>
     <select id="getUserList" resultType="com.caimei.model.po.SysUser">
-        SELECT u.authUserId as id, u.userIdentity, u.parentId, u.name as username, u.linkMan, u.mobile, u.createTime, u.status,u.createBy
+        SELECT u.authUserId as id, u.userIdentity, u.parentId, u.name as username, u.loginAccount, u.linkMan, u.mobile, u.createTime, u.status,u.createBy
         FROM cm_brand_auth_user u
         <where>
             <if test="authUserId != null">
-                and u.authUserId = #{authUserId}
+                and u.parentId = #{authUserId}
             </if>
             <if test="authUserId == null">
                 and u.userIdentity = 1
@@ -267,12 +273,12 @@
         select role_id from auth_role_user where user_id = #{authUserId}
     </select>
     <select id="getUser" resultType="com.caimei.model.po.SysUser">
-        select authUserId as id, userIdentity, parentId, name as username, mobile, linkMan, password,status
+        select authUserId as id, userIdentity, parentId, name as username, loginAccount, mobile, linkMan, password,status
         from cm_brand_auth_user
         where authUserId = #{id}
     </select>
     <select id="findByUsername" resultType="com.caimei.model.po.SysUser">
-        select authUserId as id from cm_brand_auth_user where name = #{username} and userIdentity = #{userIdentity}
+        select authUserId as id from cm_brand_auth_user where name = #{username} and userIdentity = 1
     </select>
     <select id="getMenuParentId" resultType="java.lang.Integer">
         select parent_id from auth_menu where id = #{id}
@@ -311,6 +317,12 @@
           and r.id is not null
         limit 1
     </select>
+    <select id="findByMobile" resultType="com.caimei.model.po.SysUser">
+        select authUserId as id from cm_brand_auth_user where mobile = #{mobile}
+    </select>
+    <select id="findByLoginAccount" resultType="com.caimei.model.po.SysUser">
+        select authUserId as id from cm_brand_auth_user where loginAccount = #{loginAccount}
+    </select>
     <update id="updatePermission">
         UPDATE auth_permission SET name=#{name}, title=#{title}, menu_id = #{menuId}
         WHERE id = #{id}
@@ -360,8 +372,8 @@
         VALUES (#{title}, #{name}, #{menuId})
     </insert>
     <insert id="insertUser" keyProperty="id" keyColumn="id" useGeneratedKeys="true" parameterType="com.caimei.model.po.SysUser">
-        insert into cm_brand_auth_user (name, mobile, password, linkMan, userIdentity, createTime, createBy,
+        insert into cm_brand_auth_user (parentId, name, loginAccount, mobile, password, linkMan, userIdentity, createTime, createBy,
                                         status)
-        values (#{username}, #{mobile}, #{password}, #{linkMan}, #{userIdentity}, NOW(), #{createBy}, 1)
+        values (#{parentId}, #{username}, #{loginAccount}, #{mobile}, #{password}, #{linkMan}, #{userIdentity}, NOW(), #{createBy}, 1)
     </insert>
 </mapper>

+ 17 - 14
src/main/resources/mapper/UserMapper.xml

@@ -11,20 +11,22 @@
         from cm_brand_auth_user
         where name = #{name}
           and status = 1
+          and userIdentity = 1
         limit 1
     </select>
     <select id="getShopUserByMobile" resultType="com.caimei.model.vo.UserLoginVo">
         select u.authUserId,
                u.name,
                u.loginAccount,
-               password,
-               userIdentity,
-               u.status as shopStatus,
-               shopType,
-               u.mobile,
-               null as infoId
+               if(prt.authUserId is not null,prt.prefix,u.prefix) as prefix,
+               u.password,
+               u.userIdentity,
+               if(prt.authUserId is not null,prt.status,u.status) as shopStatus,
+               if(prt.authUserId is not null,prt.shopType,u.shopType) as shopType,
+               u.mobile
         from cm_brand_auth_user u
-        where mobile = #{mobile} and u.status = 1
+                 left join cm_brand_auth_user prt on u.parentId = prt.authUserId
+        where u.mobile = #{mobile} and u.status = 1
         limit 1;
     </select>
     <select id="getPasswordByUserId" resultType="java.lang.String">
@@ -36,14 +38,15 @@
         select u.authUserId,
                u.name,
                u.loginAccount,
-               password,
-               userIdentity,
-               u.status as shopStatus,
-               shopType,
-               u.mobile,
-               null as infoId
+               if(prt.authUserId is not null,prt.prefix,u.prefix) as prefix,
+               u.password,
+               u.userIdentity,
+               if(prt.authUserId is not null,prt.status,u.status) as shopStatus,
+               if(prt.authUserId is not null,prt.shopType,u.shopType) as shopType,
+               u.mobile
         from cm_brand_auth_user u
-        where loginAccount = #{account} and u.status = 1
+        left join cm_brand_auth_user prt on u.parentId = prt.authUserId
+        where u.loginAccount = #{account} and u.status = 1
         limit 1;
     </select>
 </mapper>