com.yqjr.modules.user.service.UserService Maven / Gradle / Ivy
package com.yqjr.modules.user.service;
import com.yqjr.framework.base.BaseService;
import com.yqjr.framework.component.esb.IReplyParser;
import com.yqjr.framework.component.esb.Reply;
import com.yqjr.framework.component.esb.WebServiceClient;
import com.yqjr.framework.datatype.BizzException;
import com.yqjr.framework.utils.MD5Utils;
import com.yqjr.framework.utils.StringUtils;
import com.yqjr.framework.utils.UserUtils;
import com.yqjr.modules.role.model.RoleModel;
import com.yqjr.modules.role.service.RoleService;
import com.yqjr.modules.user.condition.UserCondition;
import com.yqjr.modules.user.dao.UserDao;
import com.yqjr.modules.user.entity.User;
import com.yqjr.modules.user.model.TransModel;
import com.yqjr.modules.user.model.UserModel;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class UserService extends BaseService {
@Autowired
private RoleService roleService;
/**
* Description: 获取用户及角色信息
* Create By: admin
* Create Date: 2017年6月27日 下午4:16:39
*
* @return
*/
public UserModel getUserModel(UserModel userModel) {
if (userModel.getId() != null) {
userModel = id(userModel.getId());
userModel.setOldLoginName(userModel.getLoginName());
List roleList = roleService.findListByUser(userModel);
userModel.setRoleList(roleList);
List roleIdList = new ArrayList();
for (RoleModel role : roleList) {
roleIdList.add(String.valueOf(role.getId()));
}
userModel.setRoleIdList(roleIdList);
}
return userModel;
}
/**
* Description: 用户插入\更新业务处理
* Create By: Wanglei
* Create Date: 2017年6月7日 下午1:32:48
*
* @param userModel UserModel
*/
@Transactional
public void saveUser(UserModel userModel) {
// db opt
// ws call dto userModel - > dto
// db opt
// ws call OSB-c000 replyCode !=0
// 拼装页面角色CheckBox
if (CollectionUtils.isNotEmpty(userModel.getRoleIdList())) {
List roleList = new ArrayList();
for (String roleId : userModel.getRoleIdList()) {
RoleModel role = new RoleModel();
role.setId(Long.valueOf(roleId));
roleList.add(role);
}
userModel.setRoleList(roleList);
} else {
throw new BizzException("保存用户'" + userModel.getLoginName() + "'失败,未设置角色");
}
// 如果新密码为空,则不更换密码
if (StringUtils.isNotBlank(userModel.getNewPassword())) {
userModel.setPassword(MD5Utils.encode(userModel.getNewPassword()));
}
if (userModel.getId() == null
&& !"true".equals(checkUnique(userModel.getOldLoginName(), userModel.getLoginName(), userModel))) {
throw new BizzException("保存用户'" + userModel.getLoginName() + "'失败,登录名已存在");
}
// 新增用户
if (userModel.getId() == null) {
userModel.setId(super.save(userModel));
}
// 更新用户
else {
update(userModel);
}
// 维护用户角色关系
User user = toEntity(userModel, User.class);
if (userModel.getId() != null) {
dao.deleteUserRole(user);
}
dao.insertUserRole(user, userModel.getRoleList());
// 清除当前用户缓存
if (userModel.getLoginName().equals(UserUtils.getUser().getLoginName())) {
// UserUtils.clearCache();
}
}
}