|
@@ -1,23 +1,101 @@
|
|
|
package com.keao.edu.user.service.impl;
|
|
|
|
|
|
|
|
|
+import com.keao.edu.auth.api.entity.SysUser;
|
|
|
import com.keao.edu.common.dal.BaseDAO;
|
|
|
+import com.keao.edu.common.exception.BizException;
|
|
|
import com.keao.edu.common.service.impl.BaseServiceImpl;
|
|
|
+import com.keao.edu.im.api.client.ImFeignService;
|
|
|
+import com.keao.edu.im.api.entity.ImResult;
|
|
|
+import com.keao.edu.im.api.entity.ImUserModel;
|
|
|
import com.keao.edu.user.dao.AgencyDao;
|
|
|
+import com.keao.edu.user.dao.SysUserDao;
|
|
|
import com.keao.edu.user.entity.Agency;
|
|
|
+import com.keao.edu.user.entity.Employee;
|
|
|
import com.keao.edu.user.service.AgencyService;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@Service
|
|
|
public class AgencyServiceImpl extends BaseServiceImpl<Integer, Agency> implements AgencyService {
|
|
|
|
|
|
@Autowired
|
|
|
private AgencyDao agencyDao;
|
|
|
+ @Autowired
|
|
|
+ private ImFeignService imFeignService;
|
|
|
+ @Autowired
|
|
|
+ private SysUserDao sysUserDao;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, Agency> getDAO() {
|
|
|
return agencyDao;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void add(Agency agency) {
|
|
|
+ SysUser sysUser = agency.getSysUser();
|
|
|
+ SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
|
|
|
+ if(user != null && user.getId() != null){
|
|
|
+ Agency agency1 = agencyDao.get(user.getId());
|
|
|
+ if(agency1 == null){
|
|
|
+ if(StringUtils.isEmpty(user.getPassword())){
|
|
|
+ sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
|
|
|
+ }
|
|
|
+ agency.setId(user.getId());
|
|
|
+ agencyDao.insert(agency);
|
|
|
+ //新增用户角色
|
|
|
+ sysUserDao.batchAddEmployeeRole(user.getId(),sysUser.getRoles());
|
|
|
+ user.setUserType(user.getUserType() + ",AGENCY");
|
|
|
+ user.setRealName(agency.getName());
|
|
|
+ user.setPhone(agency.getContactPhone());
|
|
|
+ sysUserDao.update(user);
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ throw new BizException("用户已存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
|
|
|
+ sysUser.setUserType("AGENCY");
|
|
|
+ sysUser.setRealName(agency.getName());
|
|
|
+ sysUser.setPhone(agency.getContactPhone());
|
|
|
+ sysUserDao.insert(sysUser);
|
|
|
+
|
|
|
+ agency.setId(sysUser.getId());
|
|
|
+ agencyDao.insert(agency);
|
|
|
+ //新增用户角色
|
|
|
+ sysUserDao.delEmployeeRole(sysUser.getId());
|
|
|
+ sysUserDao.batchAddEmployeeRole(sysUser.getId(),sysUser.getRoles());
|
|
|
+ ImResult imResult = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getRealName(),null));
|
|
|
+ user.setImToken(imResult.getToken());
|
|
|
+ sysUserDao.update(sysUser);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void updateAgency(Agency agency) {
|
|
|
+ SysUser sysUser = agency.getSysUser();
|
|
|
+ if(null == agencyDao.get(sysUser.getId())){
|
|
|
+ throw new BizException("代理商信息不存在");
|
|
|
+ }
|
|
|
+ agency.setId(sysUser.getId());
|
|
|
+ if(StringUtils.isNotEmpty(sysUser.getPhone())){
|
|
|
+ SysUser queryByPhone = sysUserDao.queryByPhone(sysUser.getPhone());
|
|
|
+ if(queryByPhone != null && !sysUser.getId().equals(queryByPhone.getId())){
|
|
|
+ throw new BizException("手机号已存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysUser.setRealName(agency.getName());
|
|
|
+ sysUser.setPhone(agency.getContactPhone());
|
|
|
+ agencyDao.update(agency);
|
|
|
+ //删除当前用户角色
|
|
|
+ sysUserDao.delEmployeeRole(sysUser.getId());
|
|
|
+ //新增用户角色
|
|
|
+ sysUserDao.batchAddEmployeeRole(sysUser.getId(),sysUser.getRoles());
|
|
|
+ sysUserDao.update(sysUser);
|
|
|
+ imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName(),sysUser.getAvatar()));
|
|
|
+ }
|
|
|
}
|