|
@@ -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;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|