Pārlūkot izejas kodu

代理商、店铺管理

pengcheng 1 mēnesi atpakaļ
vecāks
revīzija
798b0ee68a

+ 21 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/clock/EmployeeController.java

@@ -1,8 +1,11 @@
 package com.ruoyi.web.controller.clock;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.clock.domain.bo.EmployeeBo;
 import com.ruoyi.clock.domain.vo.EmployeeVo;
+import com.ruoyi.clock.domain.vo.ShopVo;
 import com.ruoyi.clock.service.IEmployeeService;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
@@ -50,7 +53,14 @@ public class EmployeeController extends BaseController {
     @SaCheckPermission("clock:employee:list")
     @GetMapping("/page")
     public TableDataInfo<EmployeeVo> page(@Validated(QueryGroup.class) EmployeeBo bo, PageQuery pageQuery) {
-        return iEmployeeService.queryPageList(bo, pageQuery);
+        TableDataInfo<EmployeeVo> employeeVoTableDataInfo = iEmployeeService.queryPageList(bo, pageQuery);
+        if (CollUtil.isNotEmpty(employeeVoTableDataInfo.getRows())){
+            employeeVoTableDataInfo.getRows().forEach(item -> {
+                item.loadAgentVo();
+                item.loadShopVo();
+            });
+        }
+        return employeeVoTableDataInfo;
     }
 
     /**
@@ -62,7 +72,12 @@ public class EmployeeController extends BaseController {
     public R<EmployeeVo> getInfo(@ApiParam("主键")
                                                   @NotNull(message = "主键不能为空")
                                                   @PathVariable("employeeId") Long employeeId) {
-        return R.ok(iEmployeeService.queryById(employeeId));
+        EmployeeVo employeeVo = iEmployeeService.queryById(employeeId);
+        if(ObjectUtil.isNotNull(employeeVo)){
+            employeeVo.loadAgentVo();
+            employeeVo.loadShopVo();
+        }
+        return R.ok();
     }
 
     /**
@@ -111,6 +126,10 @@ public class EmployeeController extends BaseController {
     @PostMapping("/export")
     public void export(@Validated EmployeeBo bo, HttpServletResponse response) {
         List<EmployeeVo> list = iEmployeeService.queryList(bo);
+        list.forEach(item -> {
+            item.loadAgentVo();
+            item.loadShopVo();
+        });
         ExcelUtil.exportExcel(list, "店员信息", EmployeeVo.class, response);
     }
 

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/domain/Employee.java

@@ -31,6 +31,10 @@ public class Employee extends BaseEntity {
      * 员工姓名
      */
     private String employeeName;
+    /**
+     * 代理商id
+     */
+    private Long agentId;
     /**
      * 店铺id
      */

+ 8 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/domain/bo/EmployeeBo.java

@@ -38,6 +38,13 @@ public class EmployeeBo extends BaseEntity {
     @NotBlank(message = "员工姓名不能为空", groups = { AddGroup.class, EditGroup.class })
     private String employeeName;
 
+    /**
+     * 代理商id
+     */
+    @ApiModelProperty(value = "代理商id", required = true)
+    @NotNull(message = "代理商id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long agentId;
+
     /**
      * 店铺id
      */
@@ -63,7 +70,7 @@ public class EmployeeBo extends BaseEntity {
      * 密码
      */
     @ApiModelProperty(value = "密码", required = true)
-    @NotBlank(message = "密码不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "密码不能为空", groups = { AddGroup.class, EditGroup.class })
     private String password;
 
 

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/domain/bo/ShopBo.java

@@ -49,7 +49,7 @@ public class ShopBo extends BaseEntity {
      * 地址
      */
     @ApiModelProperty(value = "地址", required = true)
-    @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
     private String address;
 
     /**

+ 53 - 2
ruoyi-system/src/main/java/com/ruoyi/clock/domain/vo/EmployeeVo.java

@@ -1,12 +1,20 @@
 package com.ruoyi.clock.domain.vo;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.clock.service.IAgentService;
+import com.ruoyi.clock.service.IShopService;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 
 
@@ -26,7 +34,6 @@ public class EmployeeVo {
     /**
      * 员工id
      */
-    @ExcelProperty(value = "员工id")
     @ApiModelProperty("员工id")
     private Long employeeId;
 
@@ -37,13 +44,29 @@ public class EmployeeVo {
     @ApiModelProperty("员工姓名")
     private String employeeName;
 
+    /**
+     * 代理商id
+     */
+    @ApiModelProperty("代理商id")
+    private Long agentId;
+
+    /**
+     * 代理商名称
+     */
+    @ExcelProperty(value = "代理商名称")
+    @ApiModelProperty("代理商名称")
+    private String agentName;
+
     /**
      * 店铺id
      */
-    @ExcelProperty(value = "店铺id")
     @ApiModelProperty("店铺id")
     private Long shopId;
 
+    @ExcelProperty(value = "店铺名称")
+    @ApiModelProperty("店铺名称")
+    private String shopName;
+
     /**
      * 手机号码
      */
@@ -66,5 +89,33 @@ public class EmployeeVo {
     @ApiModelProperty("密码")
     private String password;
 
+    @ApiModelProperty("代理商信息")
+    private AgentVo agent;
+
+    public AgentVo loadAgentVo(){
+        if (ObjectUtil.isNotNull(this.agentId)){
+            IAgentService agentService = SpringUtils.getBean("agentServiceImpl", IAgentService.class);
+            this.agent = agentService.queryById(this.agentId);
+            if (ObjectUtil.isNotNull(this.agent)){
+                this.agentName = agent.getAgentName();
+            }
+        }
+        return this.agent;
+    }
+
+    @ApiModelProperty("门店信息")
+    private ShopVo shop;
+
+    public ShopVo loadShopVo(){
+        if (ObjectUtil.isNotNull(this.shopId)){
+            IShopService shopService = SpringUtils.getBean("shopServiceImpl", IShopService.class);
+            this.shop = shopService.queryById(this.shopId);
+            if (ObjectUtil.isNotNull(this.shop)){
+                this.shopName = shop.getShopName();
+            }
+        }
+        return this.shop;
+    }
+
 
 }

+ 2 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/exception/EmployeeExceptionEnum.java

@@ -10,7 +10,8 @@ import java.util.Objects;
 public enum EmployeeExceptionEnum implements IIntegerEnum {
 
     // TODO 注意检查错误码,保证系统内唯一
-    Employee_IS_NOT_EXISTS(200001, "店员信息不存在"),
+    EMPLOYEE_IS_NOT_EXISTS(200001, "店员信息不存在"),
+    EMPLOYEE_PHONENUMBER_REPEAT(200002, "店员手机号不能重复"),
 
     ;
 

+ 20 - 5
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/EmployeeServiceImpl.java

@@ -1,8 +1,11 @@
 package com.ruoyi.clock.service.impl;
 
+import cn.dev33.satoken.secure.BCrypt;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.clock.domain.Shop;
 import com.ruoyi.clock.exception.EmployeeExceptionEnum;
+import com.ruoyi.clock.exception.ShopExceptionEnum;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -34,6 +37,7 @@ import java.util.Collection;
 public class EmployeeServiceImpl implements IEmployeeService {
 
     private final EmployeeMapper baseMapper;
+    public static final String password = "123456";
 
     /**
      * 查询店员信息分页
@@ -92,7 +96,7 @@ public class EmployeeServiceImpl implements IEmployeeService {
     public Employee loadById(Long employeeId, Boolean tw){
         Employee info = this.baseMapper.selectById(employeeId);
         if(ObjectUtil.isEmpty(info) && tw){
-            throw new ServiceException(EmployeeExceptionEnum.Employee_IS_NOT_EXISTS);
+            throw new ServiceException(EmployeeExceptionEnum.EMPLOYEE_IS_NOT_EXISTS);
         }
         return info;
     }
@@ -105,8 +109,9 @@ public class EmployeeServiceImpl implements IEmployeeService {
      */
     @Override
     public Boolean insertByBo(EmployeeBo bo) {
+        validEntityBeforeSave(bo);
         Employee add = BeanUtil.toBean(bo, Employee.class);
-        validEntityBeforeSave(add);
+        add.setPassword(BCrypt.hashpw(password));
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setEmployeeId(add.getEmployeeId());
@@ -122,21 +127,31 @@ public class EmployeeServiceImpl implements IEmployeeService {
      */
     @Override
     public Boolean updateByBo(EmployeeBo bo) {
+        validEntityBeforeSave(bo);
         Employee employee = baseMapper.selectById(bo.getEmployeeId());
         Employee update = BeanCopyUtils.copy(bo, employee);
-        validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
 
     /**
      * 保存前的数据校验
      *
-     * @param entity 实体类数据
+     * @param bo 实体类数据
      */
-    private void validEntityBeforeSave(Employee entity){
+    private void validEntityBeforeSave(EmployeeBo bo){
         //TODO 做一些数据校验,如唯一约束
+        Employee employee = getEmployeeByPhone(bo.getPhonenumber());
+        if(ObjectUtil.isNotNull(employee)&& !employee.getEmployeeId().equals(bo.getEmployeeId())){
+            throw new ServiceException(EmployeeExceptionEnum.EMPLOYEE_PHONENUMBER_REPEAT);
+        }
+    }
+
+    public Employee getEmployeeByPhone(String phonenumber) {
+        return baseMapper.selectOne(new LambdaQueryWrapper<Employee>().eq(Employee::getPhonenumber,phonenumber)
+            .last("limit 1"));
     }
 
+
     /**
      * 批量删除店员信息
      *