|
@@ -0,0 +1,123 @@
|
|
|
+package com.rongwei.bscommon.sys.service.impl;
|
|
|
+
|
|
|
+import com.rongwei.bscommon.sys.dao.ZhcxSubcontractorUserDao;
|
|
|
+import com.rongwei.bscommon.sys.service.ZhcxSubcontractorUserService;
|
|
|
+import com.rongwei.bsentity.vo.SubcontractorUserVo;
|
|
|
+import com.rongwei.bsentity.vo.SubContractorBySysUserVo;
|
|
|
+import com.rongwei.commonservice.service.RedisService;
|
|
|
+import com.rongwei.rwadmincommon.system.domain.SysUserDo;
|
|
|
+import com.rongwei.rwadmincommon.system.domain.SysUserRoleDo;
|
|
|
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
|
+import com.rongwei.rwcommon.base.BaseServiceImpl;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.context.request.RequestContextHolder;
|
|
|
+import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author zhuang
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service("zhcxSubcontractorUserService")
|
|
|
+public class ZhcxSubcontractorUserServiceImpl extends BaseServiceImpl<ZhcxSubcontractorUserDao, SysUserDo> implements ZhcxSubcontractorUserService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RedisService redisService;
|
|
|
+ @Autowired
|
|
|
+ private ZhcxSubcontractorUserDao zhcxSubcontractorUserDao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void batchSaveList(SubcontractorUserVo subcontractorUserVo) {
|
|
|
+ List<SubContractorBySysUserVo> list = subcontractorUserVo.getUserList();
|
|
|
+ String roleid = subcontractorUserVo.getRoleid();
|
|
|
+ for(SubContractorBySysUserVo userVo : list){
|
|
|
+ String opertionType = "insert";
|
|
|
+ if(StringUtils.isBlank(userVo.getPassword())){
|
|
|
+ opertionType = "update";
|
|
|
+ }
|
|
|
+ SysUserVo currUser = null;
|
|
|
+ ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
|
+ HttpServletRequest request = attributes.getRequest();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ if (StringUtils.isNotEmpty(token)) {
|
|
|
+ currUser = redisService.getLoginUser(token);
|
|
|
+ }
|
|
|
+ if ("insert".equals(opertionType)) {
|
|
|
+ if (StringUtils.isBlank(userVo.getTenantid())){
|
|
|
+ userVo.setTenantid(currUser.getTenantid());
|
|
|
+ }
|
|
|
+ String secPas = SecurityUtil.getSaltMd5AndSha(userVo.getPassword(), userVo.getId());
|
|
|
+ userVo.setPassword(secPas);
|
|
|
+ }
|
|
|
+ R r = this.saveOrUpdate(userVo,currUser,roleid);
|
|
|
+ SysUserDo user = this.getById(userVo.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R saveOrUpdate(SubContractorBySysUserVo sysUser, SysUserVo currUser, String roleid) {
|
|
|
+ log.info("sysUser:" + sysUser);
|
|
|
+
|
|
|
+ // 1.保存用户信息
|
|
|
+ String id = sysUser.getId();
|
|
|
+ SysUserDo sysUserDo = this.getById(id);
|
|
|
+ if (sysUserDo == null)
|
|
|
+ {
|
|
|
+ zhcxSubcontractorUserDao.insert(sysUser);
|
|
|
+ log.info("新增用户信息");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ zhcxSubcontractorUserDao.updateById(sysUser);
|
|
|
+ log.info("更新用户信息");
|
|
|
+ }
|
|
|
+ // 2.保存用户组织结构
|
|
|
+ //this.saveUserOrg(sysUser);
|
|
|
+
|
|
|
+ // 3.保存用户角色
|
|
|
+ this.saveUserRole(sysUser,currUser,roleid);
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存用户角色
|
|
|
+ *
|
|
|
+ * @param sysUser
|
|
|
+ * @param roleid
|
|
|
+ */
|
|
|
+ private void saveUserRole(SubContractorBySysUserVo sysUser, SysUserVo currUser, String roleid) {
|
|
|
+ // 先删除用户原有的角色
|
|
|
+ String userId = sysUser.getId();
|
|
|
+ Map<String, Object> params = new HashMap<>(5);
|
|
|
+ params.put("userid", userId);
|
|
|
+ zhcxSubcontractorUserDao.deleteUserRole(params);
|
|
|
+ SysUserRoleDo sysUserRoleDo = new SysUserRoleDo();
|
|
|
+ sysUserRoleDo.setUserid(userId);
|
|
|
+ if (StringUtils.isBlank(sysUser.getRoleid())) {
|
|
|
+ sysUserRoleDo.setRoleid(roleid);
|
|
|
+ }else{
|
|
|
+ sysUserRoleDo.setRoleid(sysUser.getRoleid());
|
|
|
+ }
|
|
|
+ sysUserRoleDo.setId(SecurityUtil.getUUID());
|
|
|
+ if (StringUtils.isBlank(sysUser.getPassword())) {
|
|
|
+ sysUserRoleDo.setCreatedate(new Date());
|
|
|
+ sysUserRoleDo.setCreateuserid(currUser.getId());
|
|
|
+ sysUserRoleDo.setCreateusername(currUser.getName());
|
|
|
+ }
|
|
|
+ sysUserRoleDo.setModifydate(new Date());
|
|
|
+ sysUserRoleDo.setModifyuserid(currUser.getId());
|
|
|
+ sysUserRoleDo.setModifyusername(currUser.getName());
|
|
|
+ zhcxSubcontractorUserDao.insertUserRole(sysUserRoleDo);
|
|
|
+ }
|
|
|
+}
|