Explorar el Código

增加供应商时,生成对应的部门和用户

baolei hace 6 meses
padre
commit
3e08462c0c

+ 2 - 2
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/merchant/controller/MerchantController.java

@@ -114,7 +114,7 @@ public class MerchantController extends BaseController {
     @Log(title = "商户", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     @ResponseBody
-    public AjaxResult editSave(Merchant merchant) {
+    public AjaxResult editSave(MerchantVo merchant) {
         Merchant cond;
         List<Merchant> checkResult;
         cond = new Merchant();
@@ -128,7 +128,7 @@ public class MerchantController extends BaseController {
                 }
             }
         }
-        return toAjax(merchantService.updateMerchant(merchant));
+        return toAjax(merchantVoService.updateMerchantVo(merchant));
     }
 
     /**

+ 7 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/merchant/service/IMerchantVoService.java

@@ -18,4 +18,11 @@ public interface IMerchantVoService {
      */
     int insertMerchantVo(MerchantVo merchantVo);
 
+    /**
+     * 修改商户
+     *
+     * @param merchantVo 商户
+     * @return 结果
+     */
+    public int updateMerchantVo(MerchantVo merchantVo);
 }

+ 27 - 4
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/merchant/service/impl/MerchantVoServiceImpl.java

@@ -3,7 +3,6 @@ package com.xingxi.web.controller.master.merchant.service.impl;
 import com.xingxi.common.constant.Constants;
 import com.xingxi.common.core.domain.entity.SysDept;
 import com.xingxi.common.core.domain.entity.SysUser;
-import com.xingxi.common.core.text.Convert;
 import com.xingxi.common.enums.*;
 import com.xingxi.common.exception.BusinessException;
 import com.xingxi.common.utils.DateUtils;
@@ -11,18 +10,16 @@ import com.xingxi.common.utils.ShiroUtils;
 import com.xingxi.common.utils.StringUtils;
 import com.xingxi.framework.shiro.service.SysPasswordService;
 import com.xingxi.framework.web.service.ConfigService;
-import com.xingxi.master.merchant.domain.MerchantProd;
 import com.xingxi.system.domain.SysUserRole;
 import com.xingxi.system.mapper.SysDeptMapper;
 import com.xingxi.system.mapper.SysRoleMapper;
 import com.xingxi.system.mapper.SysUserMapper;
 import com.xingxi.system.mapper.SysUserRoleMapper;
-import com.xingxi.web.controller.master.merchant.domain.MerchantProdVo;
 import com.xingxi.web.controller.master.merchant.domain.MerchantVo;
-import com.xingxi.web.controller.master.merchant.mapper.MerchantProdVoMapper;
 import com.xingxi.web.controller.master.merchant.mapper.MerchantVoMapper;
 import com.xingxi.web.controller.master.merchant.service.IMerchantVoService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
@@ -127,6 +124,32 @@ public class MerchantVoServiceImpl implements IMerchantVoService {
         return rtn;
     }
 
+
+    /**
+     * 修改商户
+     *
+     * @param merchantVo 商户
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateMerchantVo(MerchantVo merchantVo) {
+        int ret = 0;
+        SysDept newDept = new SysDept();
+        newDept.setDeptId(merchantVo.getMercId());
+        newDept.setDeptName(merchantVo.getMercName());
+        newDept.setLeader(merchantVo.getContact());
+        newDept.setPhone(merchantVo.getMobile());
+        newDept.setEmail(merchantVo.getMail());
+        newDept.setUpdateTime(merchantVo.getUpdateTime());
+        newDept.setUpdateUser(merchantVo.getUpdateUser());
+        ret = deptMapper.updateDept(newDept);
+
+        ret = ret + merchantVoMapper.updateMerchant(merchantVo);
+
+        return ret;
+    }
+
     /**
      * 新增用户角色信息
      *

+ 9 - 4
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/vendor/controller/VendorController.java

@@ -10,6 +10,8 @@ import com.xingxi.common.exception.BusinessException;
 import com.xingxi.common.utils.poi.ExcelUtil;
 import com.xingxi.master.vendor.domain.Vendor;
 import com.xingxi.master.vendor.service.IVendorService;
+import com.xingxi.web.controller.master.vendor.domain.VendorVo;
+import com.xingxi.web.controller.master.vendor.service.IVendorVoService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -32,6 +34,9 @@ public class VendorController extends BaseController {
     @Resource
     private IVendorService vendorService;
 
+    @Resource
+    private IVendorVoService vendorVoService;
+
     @RequiresPermissions("master:vendor:view")
     @GetMapping()
     public String vendor() {
@@ -78,7 +83,7 @@ public class VendorController extends BaseController {
     @Log(title = "供应商", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     @ResponseBody
-    public AjaxResult addSave(Vendor vendor) {
+    public AjaxResult addSave(VendorVo vendor) {
         Vendor cond = new Vendor();
         cond.setVendorName(vendor.getVendorName());
         cond.setDelFlag(EDelFlag.NO.getVal());
@@ -86,7 +91,7 @@ public class VendorController extends BaseController {
         if (checkResult.size() > 0) {
             throw new BusinessException("已添加过的供应商!");
         }
-        return toAjax(vendorService.insertVendor(vendor));
+        return toAjax(vendorVoService.insertVendorVo(vendor));
     }
 
     /**
@@ -107,7 +112,7 @@ public class VendorController extends BaseController {
     @Log(title = "供应商", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     @ResponseBody
-    public AjaxResult editSave(Vendor vendor) {
+    public AjaxResult editSave(VendorVo vendor) {
         Vendor cond = new Vendor();
         cond.setVendorName(vendor.getVendorName());
         cond.setDelFlag(EDelFlag.NO.getVal());
@@ -115,7 +120,7 @@ public class VendorController extends BaseController {
         if (checkResult.size() > 0) {
             throw new BusinessException("已添加过的供应商!");
         }
-        return toAjax(vendorService.updateVendor(vendor));
+        return toAjax(vendorVoService.updateVendorVo(vendor));
     }
 
     /**

+ 21 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/vendor/domain/VendorVo.java

@@ -0,0 +1,21 @@
+package com.xingxi.web.controller.master.vendor.domain;
+
+import com.xingxi.master.vendor.domain.Vendor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 店铺对象 MerchantVo
+ *
+ * @author xingxi
+ * @date 2025-05-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class VendorVo extends Vendor {
+    private static final long serialVersionUID = 1L;
+
+
+}

+ 30 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/vendor/service/IVendorVoService.java

@@ -0,0 +1,30 @@
+package com.xingxi.web.controller.master.vendor.service;
+
+import com.xingxi.web.controller.master.vendor.domain.VendorVo;
+
+/**
+ * 供应商VoService接口
+ * 
+ * @author biandan
+ * @date 2022-02-23
+ */
+public interface IVendorVoService
+{
+
+    /**
+     * 新增供应商
+     *
+     * @param vendorVo 供应商
+     * @return 结果
+     */
+    public int insertVendorVo(VendorVo vendorVo);
+
+    /**
+     * 修改供应商
+     *
+     * @param vendorVo 供应商
+     * @return 结果
+     */
+    public int updateVendorVo(VendorVo vendorVo);
+
+}

+ 185 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/vendor/service/impl/VendorVoServiceImpl.java

@@ -0,0 +1,185 @@
+package com.xingxi.web.controller.master.vendor.service.impl;
+
+import com.xingxi.common.constant.Constants;
+import com.xingxi.common.core.domain.entity.SysDept;
+import com.xingxi.common.core.domain.entity.SysUser;
+import com.xingxi.common.enums.*;
+import com.xingxi.common.exception.BusinessException;
+import com.xingxi.common.utils.ShiroUtils;
+import com.xingxi.common.utils.StringUtils;
+import com.xingxi.framework.shiro.service.SysPasswordService;
+import com.xingxi.framework.web.service.ConfigService;
+import com.xingxi.master.vendor.mapper.VendorMapper;
+import com.xingxi.system.domain.SysUserRole;
+import com.xingxi.system.mapper.SysDeptMapper;
+import com.xingxi.system.mapper.SysRoleMapper;
+import com.xingxi.system.mapper.SysUserMapper;
+import com.xingxi.system.mapper.SysUserRoleMapper;
+import com.xingxi.web.controller.master.vendor.domain.VendorVo;
+import com.xingxi.web.controller.master.vendor.service.IVendorVoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 供应商Service业务层处理
+ * 
+ * @author biandan
+ * @date 2022-02-23
+ */
+@Service
+public class VendorVoServiceImpl implements IVendorVoService
+{
+    @Autowired
+    private SysDeptMapper deptMapper;
+    @Autowired
+    private VendorMapper vendorMapper;
+    @Resource
+    private SysUserMapper sysUserMapper;
+    @Resource
+    private SysRoleMapper sysRoleMapper;
+    @Resource
+    private SysUserRoleMapper userRoleMapper;
+    @Resource
+    private SysPasswordService passwordService;
+    @Resource
+    private ConfigService configService;
+
+    /**
+     * 新增供应商
+     *
+     * @param vendorVo 供应商
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int insertVendorVo(VendorVo vendorVo) {
+
+        int ret = 0;
+
+        SysDept sysDept = new SysDept();
+
+        sysDept.setParentId(Constants.PLATFORM_ID);
+        sysDept.setDeptName(vendorVo.getVendorName());
+        sysDept.setDeptType(EDeptType.VENDOR.getVal());
+        sysDept.setOrderNum(999);
+        sysDept.setStatus(EYesNo.NO.getVal());
+        sysDept.setLeader(vendorVo.getContact());
+        sysDept.setPhone(vendorVo.getMobile());
+        sysDept.setEmail(vendorVo.getMail());
+        sysDept.setDelFlag(EDelFlag.NO.getVal());
+        sysDept.setCreateTime(vendorVo.getCreateTime());
+        sysDept.setCreateUser(vendorVo.getCreateUser());
+        sysDept.setUpdateTime(vendorVo.getUpdateTime());
+        sysDept.setUpdateUser(vendorVo.getUpdateUser());
+        SysDept info = deptMapper.selectDeptById(sysDept.getParentId());
+        sysDept.setAncestors(info.getAncestors() + "," + sysDept.getParentId());
+
+        ret = deptMapper.insertDept(sysDept);
+
+        vendorVo.setVendorId(sysDept.getDeptId());
+
+//        Vendor vdr = new Vendor();
+//        BeanUtils.copyProperties(vendorVo,vdr);
+        ret = ret +  vendorMapper.insertVendor(vendorVo);
+
+        // 创建登录用户
+        // 校验手机号是否已经作为登录名存在
+        if (sysUserMapper.selectUserByPhoneNumber(vendorVo.getMobile()) != null) {
+            throw new BusinessException("手机号已在平台注册过,请更换手机号!");
+        }
+        SysUser loginUser = new SysUser();
+        loginUser.setDelFlag(EDelFlag.NO.getVal());
+        loginUser.setDeptId(sysDept.getDeptId());
+        loginUser.setLoginName(vendorVo.getMobile());
+        loginUser.setUserName(vendorVo.getVendorName());
+        loginUser.setUserType(EUserType.ORDINARY.getVal());
+        loginUser.setEmail(vendorVo.getMail());
+        // 性别未知
+        loginUser.setSex("2");
+        loginUser.setPhonenumber(vendorVo.getMobile());
+        loginUser.setSalt(ShiroUtils.randomSalt());
+        loginUser.setPassword(passwordService.encryptPassword(loginUser.getLoginName(),
+                configService.getKey(EConfigKeys.USER_INIT_PWD.getVal()), loginUser.getSalt()));
+        loginUser.setStatus(UserStatus.OK.getCode());
+        loginUser.setCreateUser(vendorVo.getCreateUser());
+        loginUser.setCreateTime(vendorVo.getCreateTime());
+        loginUser.setUpdateUser(vendorVo.getUpdateUser());
+        loginUser.setUpdateTime(vendorVo.getUpdateTime());
+        Long[] roleIds = new Long[1];
+        roleIds[0] = sysRoleMapper.checkRoleKeyUnique(ERoleKey.VENDOR.getCode()).getRoleId();
+        loginUser.setRoleIds(roleIds);
+        // 新增用户信息
+        int userRows = sysUserMapper.insertUser(loginUser);
+        if (userRows < 1) {
+            throw new BusinessException("用户信息更新失败!");
+        } else {
+            ret += userRows;
+        }
+        // 新增用户与角色管理
+        int roleRows = insertUserRole(loginUser.getUserId(), loginUser.getRoleIds());
+        if (roleRows < 1) {
+            throw new BusinessException("用户权限更新失败!");
+        } else {
+            ret += roleRows;
+        }
+        return ret;
+    }
+
+
+    /**
+     * 修改供应商
+     *
+     * @param vendorVo 供应商
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateVendorVo(VendorVo vendorVo) {
+
+        int ret = 0;
+
+        SysDept sysDept = new SysDept();
+        sysDept.setDeptId(vendorVo.getVendorId());
+        sysDept.setDeptName(vendorVo.getVendorName());
+        sysDept.setLeader(vendorVo.getContact());
+        sysDept.setPhone(vendorVo.getMobile());
+        sysDept.setEmail(vendorVo.getMail());
+        sysDept.setUpdateTime(vendorVo.getUpdateTime());
+        sysDept.setUpdateUser(vendorVo.getUpdateUser());
+
+        ret = deptMapper.updateDept(sysDept);
+
+        ret = ret +  vendorMapper.updateVendor(vendorVo);
+
+        return ret;
+    }
+
+    /**
+     * 新增用户角色信息
+     *
+     * @param userId  用户ID
+     * @param roleIds 角色组
+     */
+    private int insertUserRole(Long userId, Long[] roleIds) {
+        int ret = 0;
+        if (StringUtils.isNotNull(roleIds)) {
+            // 新增用户与角色管理
+            List<SysUserRole> list = new ArrayList<>();
+            for (Long roleId : roleIds) {
+                SysUserRole ur = new SysUserRole();
+                ur.setUserId(userId);
+                ur.setRoleId(roleId);
+                list.add(ur);
+            }
+            if (list.size() > 0) {
+                ret = userRoleMapper.batchUserRole(list);
+            }
+        }
+        return ret;
+    }
+}