嗨森逛服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hai-server/hai-service/src/main/java/com/hai/service/impl/HighTyAgentServiceImpl.java

182 lines
6.7 KiB

package com.hai.service.impl;
import com.hai.common.exception.ErrorCode;
import com.hai.common.exception.ErrorHelp;
import com.hai.common.exception.SysCode;
import com.hai.common.utils.MD5Util;
import com.hai.dao.HighTyAgentMapper;
import com.hai.entity.HighTyAgent;
import com.hai.entity.HighTyAgentExample;
import com.hai.entity.SecUser;
import com.hai.enum_type.UserObjectTypeEnum;
import com.hai.service.HighTyAgentService;
import com.hai.service.SecUserService;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service("highTyAgentService")
public class HighTyAgentServiceImpl implements HighTyAgentService {
@Resource
private HighTyAgentMapper tyAgentMapper;
@Resource
private SecUserService secUserService;
@Override
public void editTyAgent(HighTyAgent tyAgent) {
if (tyAgent.getId() == null) {
tyAgent.setStatus(1);
tyAgent.setCreateTime(new Date());
tyAgent.setUpdateTime(new Date());
tyAgentMapper.insert(tyAgent);
// 生成key
Long key = 1000000 + tyAgent.getId();
tyAgent.setAgentKey(key.toString());
tyAgentMapper.updateByPrimaryKey(tyAgent);
} else {
tyAgent.setUpdateTime(new Date());
tyAgentMapper.updateByPrimaryKey(tyAgent);
}
}
@Override
@Transactional(rollbackFor=Exception.class,propagation= Propagation.REQUIRES_NEW)
public void addAgent(HighTyAgent tyAgent) throws Exception {
if (secUserService.findByPhone(tyAgent.getAgentPhone()) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "手机号已存在,请更换");
}
editTyAgent(tyAgent);
SecUser secUser = new SecUser();
secUser.setUserName(tyAgent.getAgentName());
secUser.setLoginName(tyAgent.getAgentPhone());
secUser.setPassword(MD5Util.encode("123456".getBytes()));
secUser.setAdminFlag(1);
secUser.setStatus(1);
secUser.setRoleId(7L);
secUser.setObjectType(UserObjectTypeEnum.type6.getType());
secUser.setObjectId(tyAgent.getId());
secUser.setCreateTime(new Date());
secUser.setUpdateTime(new Date());
secUserService.addUser(secUser);
}
@Override
public void updateAgent(HighTyAgent tyAgent) {
// 查询账户
SecUser account = secUserService.getMainAccount(UserObjectTypeEnum.type6.getType(), tyAgent.getId());
if (account == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到账户信息");
}
if (!account.getLoginName().equals(tyAgent.getAgentPhone())) {
if (secUserService.findByPhone(tyAgent.getAgentPhone()) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "手机号已存在,请更换");
}
account.setLoginName(tyAgent.getAgentPhone());
}
editTyAgent(tyAgent);
account.setUserName(tyAgent.getAgentName());
secUserService.updateUser(account);
}
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW)
public void delAgent(String key) {
HighTyAgent agent = getDetailByKey(key);
if (agent == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到代理商");
}
agent.setStatus(0);
editTyAgent(agent);
// 查询代理商账户
SecUser account = secUserService.getMainAccount(UserObjectTypeEnum.type6.getType(), agent.getId());
if (account == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到代理商账户信息");
}
account.setStatus(0);
secUserService.updateUser(account);
}
@Override
public void agentPwdReset(String key) {
try {
// 查询代理商
HighTyAgent tyAgent = getDetailByKey(key);
if (tyAgent == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到代理商信息");
}
// 查询代理商账户
SecUser account = secUserService.getMainAccount(UserObjectTypeEnum.type6.getType(), tyAgent.getId());
if (account == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到代理商账户信息");
}
account.setPassword(MD5Util.encode("123456".getBytes()));
account.setUpdateTime(new Date());
secUserService.updateUser(account);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public HighTyAgent getDetailById(Long agentId) {
return tyAgentMapper.selectByPrimaryKey(agentId);
}
@Override
public HighTyAgent getDetailByKey(String key) {
HighTyAgentExample example = new HighTyAgentExample();
example.createCriteria().andAgentKeyEqualTo(key).andStatusNotEqualTo(0);
List<HighTyAgent> list = tyAgentMapper.selectByExample(example);
if (list.size() > 0) {
return list.get(0);
}
return null;
}
@Override
public List<HighTyAgent> getAgentList(Map<String, Object> param) {
HighTyAgentExample example = new HighTyAgentExample();
HighTyAgentExample.Criteria criteria = example.createCriteria().andStatusNotEqualTo(0);
if (MapUtils.getLong(param, "orgId") != null) {
criteria.andOrgIdEqualTo(MapUtils.getLong(param, "orgId"));
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "agentKey"))) {
criteria.andAgentKeyLike("%" + MapUtils.getString(param, "agentKey") + "%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "agentName"))) {
criteria.andAgentNameLike("%" + MapUtils.getString(param, "agentName") + "%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "agentUser"))) {
criteria.andAgentUserEqualTo("%" + MapUtils.getString(param, "agentUser") + "%");
}
if (StringUtils.isNotBlank(MapUtils.getString(param, "agentPhone"))) {
criteria.andAgentPhoneLike("%" + MapUtils.getString(param, "agentPhone") + "%");
}
example.setOrderByClause("create_time desc");
return tyAgentMapper.selectByExample(example);
}
}