| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- package com.goafanti.ambSystem.service.Impl;
- import com.goafanti.ambSystem.bo.AmbAll;
- import com.goafanti.ambSystem.bo.InputAmb;
- import com.goafanti.ambSystem.bo.OutAmb;
- import com.goafanti.ambSystem.service.AmbService;
- import com.goafanti.common.dao.*;
- import com.goafanti.common.error.BusinessException;
- import com.goafanti.common.model.Admin;
- import com.goafanti.common.model.AmbSystem;
- import com.goafanti.common.utils.StringUtils;
- import com.goafanti.core.mybatis.BaseMybatisDao;
- import com.goafanti.core.mybatis.page.Pagination;
- import com.goafanti.core.shiro.token.TokenManager;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.util.*;
- @Service
- public class AmbServiceImpl extends BaseMybatisDao<AmbSystemMapper> implements AmbService {
- @Value(value = "${amb.maxLvl}")
- private Integer maxLvl=null;
- @Autowired
- private AmbSystemMapper ambSystemMapper;
- @Autowired
- private AdminMapper adminMapper;
- @Autowired
- private AmbInvestLogMapper ambInvestLogMapper;
- @Autowired
- private AmbInvestMapper ambInvestMapper;
- @Autowired
- private RoleMapper roleMapper;
- @Override
- public int addAmb(InputAmb in) {
- getParentParam(in);
- in.setStatus("0");
- in.setCreateBy(TokenManager.getAdminId());
- in.setCreateTime(new Date());
- ambSystemMapper.insertSelective(in);
- updateAmbRole(in.getLeader());
- return 1;
- }
- public void getParentParam(InputAmb in){
- AmbSystem parentAmb = ambSystemMapper.selectByPrimaryKey(in.getParentId());
- in.setLvl(parentAmb.getLvl()+1);
- if (in.getLvl()>maxLvl)throw new BusinessException(String.format("层级最多添加%s层,如需添加更多请联系管理员。",maxLvl));
- in.setAncestors(parentAmb.getAncestors()+","+parentAmb.getId());
- in.setAncestorsNames(getAncestorsNames(in.getAncestors()));
- }
- @Override
- public int updateAmb(InputAmb in) {
- AmbSystem use = ambSystemMapper.selectByPrimaryKey(in.getId());
- int i=0;
- //0为执行计算巴名称,1为已执行,无需再执行
- if (in.getParentId()!=null&&in.getParentId()!=use.getParentId()){
- getParentParam(in);
- i=updateAncestorsNames(in,use.getName(),i);
- }
- if (in.getName()!=null&&!in.getName().equals(use.getName())){
- i=updateAncestorsNames(in,use.getName(),i);
- }
- in.setUpdateBy(TokenManager.getAdminId());
- in.setUpdateTime(new Date());
- ambSystemMapper.updateByPrimaryKeySelective(in);
- if (!in.getLeader().equals(use.getLeader()))pushAdminAmbRole(in,use);
- return 1;
- }
- /**
- * 设置巴主巴角色
- * @param in
- */
- private void pushAdminAmbRole(InputAmb in,AmbSystem use) {
- //如果是修改,处理原负责人
- if (in.getId()!=null){
- if (use !=null &&use.getLeader()!=null){
- updateAmbRole(use.getLeader());
- }
- }
- updateAmbRole(in.getLeader());
- }
- /**
- *
- * @param leader
- */
- private void updateAmbRole(String leader) {
- StringBuffer str=new StringBuffer();
- List<AmbSystem> list=selectByLeader(leader);
- Admin a =new Admin();
- for (AmbSystem ambSystem : list) {
- if (ambSystem.getLvl()==5||ambSystem.getLvl()==6){
- a.setAmbManage(1);
- }
- str.append(ambSystem.getLvl()).append(",");
- }
- a.setId(leader);
- if (StringUtils.isNotBlank(str)) a.setAmbRole(str.substring(0,str.length()-1));
- adminMapper.updateByPrimaryKeySelective(a);
- }
- private List<AmbSystem> selectByLeader(String leader) {
- AmbSystem a =new AmbSystem();
- a.setLeader(leader);
- return ambSystemMapper.selectByParameter(a);
- }
- private List<AmbSystem> selectByParentId(Long parentId) {
- AmbSystem a =new AmbSystem();
- a.setParentId(parentId);
- return ambSystemMapper.selectByParameter(a);
- }
- private int updateAncestorsNames(InputAmb in,String useName,Integer i) {
- if (i>0)return i;
- return ambSystemMapper.updateAncestorsNames(in.getId(),in.getName(),useName);
- }
- @Override
- public Pagination<OutAmb> selectAmb(InputAmb in) {
- HashMap<String, Object> param = new HashMap<>();
- param.put("name",in.getName());
- param.put("lvl",in.getLvl());
- param.put("leader",in.getLeader());
- param.put("ancestors",in.getAncestors());
- return (Pagination<OutAmb>) findPage("selectAmbSystemList","selectAmbSystemCount",param,in.getPageNo(),in.getPageSize());
- }
- @Override
- public List<?> selectAll() {
- List<AmbAll> list = ambSystemMapper.getAncestorsList(null);
- List<AmbAll> all=new ArrayList<>();
- for (AmbAll a : list) {
- if (a.getLvl()==0){
- pushLvl(a,list);
- all.add(a);
- }
- }
- return all;
- }
- @Override
- public int deleteAmb(InputAmb in) {
- return ambSystemMapper.deleteByPrimaryKey(in.getId());
- }
- @Override
- public int checkAmb(InputAmb in,Integer type) {
- if (type==0){
- int i = ambSystemMapper.selectByName(in.getName());
- if (i>0)return -1;
- }else if (type==2){
- List<AmbSystem> ambSystems = selectByParentId(in.getId());
- if (!ambSystems.isEmpty())return -1;
- }
- return 0;
- }
- @Override
- public Object detailsAmb(InputAmb in) {
- return ambSystemMapper.selectDtailsAmb(in.getId());
- }
- private void pushLvl(AmbAll a , List<AmbAll> list) {
- if (a.getLvl()<7){
- List<AmbAll> all=new ArrayList<>();
- for (AmbAll as : list) {
- if (as.getParentId().equals(a.getId())){
- pushLvl(as,list);
- all.add(as);
- }
- }
- a.setList(all);
- }
- }
- private String getAncestorsNames(String ancestors) {
- String[] split = ancestors.split(",");
- List<String> list = Arrays.asList(split);
- List<AmbAll> ancestorsList = ambSystemMapper.getAncestorsList(list);
- StringBuffer sb=new StringBuffer();
- for (AmbAll ambSystem : ancestorsList) {
- for (String s : list) {
- //第一层无需装配
- if (!ambSystem.getId().toString().equals("1")){
- if (ambSystem.getId().toString().equals(s)){
- sb=sb.append(ambSystem.getName()).append(",");
- break;
- }
- }
- }
- }
- String str="";
- if (sb.length()>1)str=sb.substring(0,sb.length()-1);
- return str;
- }
- @Override
- public Object getMyambDtails() {
- List<AmbSystem> ambSystems = ambSystemMapper.selectByParameter(new AmbSystem(TokenManager.getAdminId()));
- return ambSystems;
- }
- }
|