|  |  | 
 |  |  | package com.matrix.system.common.service.impl;
 | 
 |  |  | 
 | 
 |  |  | import com.matrix.core.constance.MatrixConstance;
 | 
 |  |  | import com.matrix.core.constance.SystemErrorCode;
 | 
 |  |  | import com.matrix.core.exception.GlobleException;
 | 
 |  |  | import com.matrix.core.pojo.PaginationVO;
 | 
 |  |  | import com.matrix.core.tools.ModelUtils;
 | 
 |  |  | import com.matrix.core.tools.StringUtils;
 | 
 |  |  | import com.matrix.core.tools.WebUtil;
 | 
 |  |  | import com.matrix.system.common.bean.*;
 | 
 |  |  | import com.matrix.system.common.dao.SysCompanyDao;
 | 
 |  |  | import com.matrix.system.common.dao.SysRoleDao;
 | 
 |  |  | import com.matrix.system.common.dao.SysRolePwoerFnDao;
 | 
 |  |  | import com.matrix.system.common.service.SysCompanyService;
 | 
 |  |  | import com.matrix.system.hive.bean.SysShopInfo;
 | 
 |  |  | import com.matrix.system.hive.bean.Warehouse;
 | 
 |  |  | import com.matrix.system.hive.dao.SysShopInfoDao;
 | 
 |  |  | import com.matrix.system.hive.dao.WarehouseDao;
 | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
 |  |  | import org.springframework.stereotype.Service;
 | 
 |  |  | import org.springframework.transaction.annotation.Transactional;
 | 
 |  |  | 
 | 
 |  |  | import java.util.ArrayList;
 | 
 |  |  | import java.util.List;
 | 
 |  |  | import java.util.Map;
 | 
 |  |  | 
 | 
 |  |  | /**
 | 
 |  |  |  * 公司管理
 | 
 |  |  |  *  | 
 |  |  |  * @author JIANGYOUYAO
 | 
 |  |  |  * @email 935090232@qq.com
 | 
 |  |  |  * @date Dec 11, 2017
 | 
 |  |  |  */
 | 
 |  |  | @Service
 | 
 |  |  | public class SysCompanyServiceImpl implements SysCompanyService {
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private SysCompanyDao sysCompanyDao;
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private SysRoleDao sysRoleDao;
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private SysRolePwoerFnDao rolePwoerFnDao;
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private SysShopInfoDao shopInfoDao;
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private InitCustomerDataDictionaryService initCustomerDataDictionaryService;
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private InitShoppingGoodsCategoryService initShoppingGoodsCategoryService;
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private InitRolePowerService initRolePowerService;
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private InitGoodsTypeService initGoodsTypeService;
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private InitShopProductCateService initShopProductCateService;
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private InitBusParameterSettingService initBusParameterSettingService;
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |     @Transactional
 | 
 |  |  |     @Override
 | 
 |  |  |     public int add(SysCompany sysCompany) {
 | 
 |  |  |         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
 | 
 |  |  |         sysCompany.setCreateBy(user.getSuName());
 | 
 |  |  |         sysCompany.setUpdateBy(user.getSuName());
 | 
 |  |  |         int i= sysCompanyDao.insert(sysCompany);
 | 
 |  |  |         SysShopInfo zbShop=    addZbShop(sysCompany);
 | 
 |  |  |         initCustomerDataDictionaryService.initCustomerDataDictionary(sysCompany);
 | 
 |  |  |         initShoppingGoodsCategoryService.initShoppingGoodsCategory(sysCompany,zbShop);
 | 
 |  |  |         initRolePowerService.initRolePower(sysCompany);
 | 
 |  |  |         initGoodsTypeService.initRolePower(sysCompany);
 | 
 |  |  |         initShopProductCateService.initShopProductCate(sysCompany);
 | 
 |  |  |         initBusParameterSettingService.initBusParameterSetting(sysCompany);
 | 
 |  |  |         initBusParameterSettingService.initBusParameterFenxiaoSetting(sysCompany);
 | 
 |  |  | 
 | 
 |  |  |         return i;
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |     @Autowired
 | 
 |  |  |     private WarehouseDao warehouseDao;
 | 
 |  |  |     /**
 | 
 |  |  |      * 为新公司创建一个总部
 | 
 |  |  |      * @param sysCompany
 | 
 |  |  |      */
 | 
 |  |  |     private SysShopInfo addZbShop(SysCompany sysCompany) {
 | 
 |  |  |         SysShopInfo zbShopInfo=new SysShopInfo();
 | 
 |  |  |         zbShopInfo.setShopType(SysShopInfo.SHOP_TYPE_ZONGBU);
 | 
 |  |  |         zbShopInfo.setShopName(sysCompany.getComName()+"(总部)");
 | 
 |  |  |         zbShopInfo.setCompanyId(sysCompany.getComId());
 | 
 |  |  |         zbShopInfo.setShopTel(sysCompany.getComTel());
 | 
 |  |  |         zbShopInfo.setShopShortName("总部");
 | 
 |  |  |         zbShopInfo.setIsOpenNet(SysShopInfo.CLOSE_NET);
 | 
 |  |  |         zbShopInfo.setShopNo(StringUtils.getRandomString(10));
 | 
 |  |  |         shopInfoDao.insert(zbShopInfo);
 | 
 |  |  | 
 | 
 |  |  |         //新增一个总部仓库
 | 
 |  |  |         Warehouse warehouse=new Warehouse();
 | 
 |  |  |         warehouse.setCompanyId(sysCompany.getComId());
 | 
 |  |  |         warehouse.setName("总部仓库");
 | 
 |  |  |         warehouse.setShopId(zbShopInfo.getId());
 | 
 |  |  |         warehouse.setSort("1");
 | 
 |  |  |         warehouseDao.insert(warehouse);
 | 
 |  |  |         return  zbShopInfo;
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Transactional(rollbackFor = Exception.class)
 | 
 |  |  |     @Override
 | 
 |  |  |     public int modifyByMap(SysCompany oldSysCompany, SysCompany newSysCompany) {
 | 
 |  |  |         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
 | 
 |  |  |         newSysCompany.setUpdateBy(user.getSuName());
 | 
 |  |  | 
 | 
 |  |  |         updatePower(newSysCompany);
 | 
 |  |  |         Map<String, Object> modifyMap = null;
 | 
 |  |  |         try {
 | 
 |  |  |             if (!ModelUtils.isModified(oldSysCompany, newSysCompany)) {
 | 
 |  |  |                 return MatrixConstance.DML_SUCCESSS;
 | 
 |  |  |             }
 | 
 |  |  | 
 | 
 |  |  |             modifyMap = ModelUtils.comparePojo2Map(oldSysCompany, newSysCompany);
 | 
 |  |  |         } catch (Exception e) {
 | 
 |  |  |             throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysCompany.getComName());
 | 
 |  |  |         }
 | 
 |  |  |         if (modifyMap.size() > 0) {
 | 
 |  |  |             modifyMap.put("comId", oldSysCompany.getComId());
 | 
 |  |  |             return sysCompanyDao.updateByMap(modifyMap);
 | 
 |  |  |         }
 | 
 |  |  |         return MatrixConstance.DML_SUCCESSS;
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     /**
 | 
 |  |  |      * 更新公司员工权限
 | 
 |  |  |      *  | 
 |  |  |      * @author JIANGYOUYAO
 | 
 |  |  |      * @email 935090232@qq.com
 | 
 |  |  |      * @date 2017年12月5日
 | 
 |  |  |      * @param newSysCompany
 | 
 |  |  |      */
 | 
 |  |  |     private void updatePower(SysCompany newSysCompany) {
 | 
 |  |  |         List<String> oldFunctions = null;
 | 
 |  |  |         String functions = sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions();
 | 
 |  |  |         if (functions == null || functions.equals("")) {
 | 
 |  |  |             oldFunctions = new ArrayList<>();
 | 
 |  |  |         } else {
 | 
 |  |  |             oldFunctions = StringUtils
 | 
 |  |  |                     .strToCollToString(sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(), ",");
 | 
 |  |  |         }
 | 
 |  |  |         List<String> newFunctions = new ArrayList<>();
 | 
 |  |  |         if (StringUtils.isNotBlank(newSysCompany.getComFunctions())) {
 | 
 |  |  |             newFunctions = StringUtils.strToCollToString(newSysCompany.getComFunctions(), ",");
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         for (String old : oldFunctions) {
 | 
 |  |  |             // 如果新权限中不包含这个老的功能,则要更新改企业下所有的角色权限
 | 
 |  |  |             if (!newFunctions.contains(old)) {
 | 
 |  |  |                 SysRole role = new SysRole();
 | 
 |  |  |                 role.setCompanyId(newSysCompany.getComId());
 | 
 |  |  |                 List<SysRole> roles = sysRoleDao.selectByModel(role);
 | 
 |  |  |                 // 获取该公司下所有的权限信息
 | 
 |  |  |                 List<SysRolePwoerFn> compalyRolePwoer = new ArrayList<>();
 | 
 |  |  |                 for (SysRole tempRole : roles) {
 | 
 |  |  |                     SysRolePwoerFn r = new SysRolePwoerFn();
 | 
 |  |  |                     r.setRoleId(tempRole.getRoleId());
 | 
 |  |  |                     compalyRolePwoer.addAll(rolePwoerFnDao.selectByModel(r));
 | 
 |  |  |                 }
 | 
 |  |  |                 // 记录要删除的id
 | 
 |  |  |                 List<String> delRolePwoer = new ArrayList<>();
 | 
 |  |  |                 for (SysRolePwoerFn rolePwoer : compalyRolePwoer) {
 | 
 |  |  |                     // 如果有一个老权限则删除这个权限
 | 
 |  |  |                     if (rolePwoer.getFnId() != null && rolePwoer.getFnId().equals(old)) {
 | 
 |  |  |                         delRolePwoer.add(rolePwoer.getRpfId()+"");
 | 
 |  |  |                     }
 | 
 |  |  |                 }
 | 
 |  |  |                 // 如果获取到了就删除
 | 
 |  |  |                 if (!delRolePwoer.isEmpty()) {
 | 
 |  |  |                     rolePwoerFnDao.deleteByIds(delRolePwoer);
 | 
 |  |  |                 }
 | 
 |  |  |             }
 | 
 |  |  |         }
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public int modifyByModel(SysCompany sysCompany) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.updateByModel(sysCompany);
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public int remove(List<String> list) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.deleteByIds(list);
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public int removeById(String comId) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.deleteById(Long.parseLong(comId));
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public int removeByModel(SysCompany sysCompany) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.deleteByModel(sysCompany);
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public List<SysCompany> findInPage(SysCompany sysCompany, PaginationVO pageVo) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.selectInPage(sysCompany, pageVo);
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public List<SysCompany> findByModel(SysCompany sysCompany) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.selectByModel(sysCompany);
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public int findTotal(SysCompany sysCompany) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.selectTotalRecord(sysCompany);
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @Override
 | 
 |  |  |     public SysCompany findById(String comId) {
 | 
 |  |  | 
 | 
 |  |  |         return sysCompanyDao.selectById(Long.parseLong(comId));
 | 
 |  |  | 
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | package com.matrix.system.common.service.impl; | 
 |  |  |  | 
 |  |  | import cn.hutool.crypto.SecureUtil; | 
 |  |  | import cn.hutool.json.JSONUtil; | 
 |  |  | import com.matrix.core.constance.MatrixConstance; | 
 |  |  | import com.matrix.core.constance.SystemErrorCode; | 
 |  |  | import com.matrix.core.exception.GlobleException; | 
 |  |  | import com.matrix.core.pojo.PaginationVO; | 
 |  |  | import com.matrix.core.tools.LogUtil; | 
 |  |  | import com.matrix.core.tools.ModelUtils; | 
 |  |  | import com.matrix.core.tools.StringUtils; | 
 |  |  | import com.matrix.core.tools.WebUtil; | 
 |  |  | import com.matrix.system.app.authority.AppAuthorityManager; | 
 |  |  | import com.matrix.system.common.authority.DefaultAuthorityManager; | 
 |  |  | import com.matrix.system.common.bean.SysCompany; | 
 |  |  | import com.matrix.system.common.bean.SysRole; | 
 |  |  | import com.matrix.system.common.bean.SysRolePwoerFn; | 
 |  |  | import com.matrix.system.common.bean.SysUsers; | 
 |  |  | import com.matrix.system.common.constance.AppConstance; | 
 |  |  | import com.matrix.system.common.dao.SysCompanyDao; | 
 |  |  | import com.matrix.system.common.dao.SysRoleDao; | 
 |  |  | import com.matrix.system.common.dao.SysRolePwoerFnDao; | 
 |  |  | import com.matrix.system.common.init.LocalCache; | 
 |  |  | import com.matrix.system.common.service.SysCompanyService; | 
 |  |  | import com.matrix.system.common.service.SysUsersService; | 
 |  |  | import com.matrix.system.hive.bean.SysShopInfo; | 
 |  |  | import com.matrix.system.hive.bean.Warehouse; | 
 |  |  | import com.matrix.system.hive.dao.SysShopInfoDao; | 
 |  |  | import com.matrix.system.hive.dao.WarehouseDao; | 
 |  |  | import com.matrix.system.hive.plugin.util.CollectionUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import java.util.*; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 公司管理 | 
 |  |  |  * | 
 |  |  |  * @author JIANGYOUYAO | 
 |  |  |  * @email 935090232@qq.com | 
 |  |  |  * @date Dec 11, 2017 | 
 |  |  |  */ | 
 |  |  | @Service | 
 |  |  | public class SysCompanyServiceImpl implements SysCompanyService { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysCompanyDao sysCompanyDao; | 
 |  |  |     @Autowired | 
 |  |  |     private SysRoleDao sysRoleDao; | 
 |  |  |     @Autowired | 
 |  |  |     private SysRolePwoerFnDao rolePwoerFnDao; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysShopInfoDao shopInfoDao; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InitCustomerDataDictionaryService initCustomerDataDictionaryService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InitShoppingGoodsCategoryService initShoppingGoodsCategoryService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InitRolePowerService initRolePowerService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InitGoodsTypeService initGoodsTypeService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InitShopProductCateService initShopProductCateService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InitBusParameterSettingService initBusParameterSettingService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     @Override | 
 |  |  |     public int add(SysCompany sysCompany) { | 
 |  |  |         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
 |  |  |         sysCompany.setCreateBy(user.getSuName()); | 
 |  |  |         sysCompany.setUpdateBy(user.getSuName()); | 
 |  |  |         int i = sysCompanyDao.insert(sysCompany); | 
 |  |  |         SysShopInfo zbShop = addZbShop(sysCompany); | 
 |  |  |         initCustomerDataDictionaryService.initCustomerDataDictionary(sysCompany); | 
 |  |  |         initShoppingGoodsCategoryService.initShoppingGoodsCategory(sysCompany, zbShop); | 
 |  |  |         initRolePowerService.initRolePower(sysCompany); | 
 |  |  |         initGoodsTypeService.initRolePower(sysCompany); | 
 |  |  |         initShopProductCateService.initShopProductCate(sysCompany); | 
 |  |  |         initBusParameterSettingService.initBusParameterSetting(sysCompany); | 
 |  |  |         initBusParameterSettingService.initBusParameterFenxiaoSetting(sysCompany); | 
 |  |  |  | 
 |  |  |         return i; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private WarehouseDao warehouseDao; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 为新公司创建一个总部 | 
 |  |  |      * | 
 |  |  |      * @param sysCompany | 
 |  |  |      */ | 
 |  |  |     private SysShopInfo addZbShop(SysCompany sysCompany) { | 
 |  |  |         SysShopInfo zbShopInfo = new SysShopInfo(); | 
 |  |  |         zbShopInfo.setShopType(SysShopInfo.SHOP_TYPE_ZONGBU); | 
 |  |  |         zbShopInfo.setShopName(sysCompany.getComName() + "(总部)"); | 
 |  |  |         zbShopInfo.setCompanyId(sysCompany.getComId()); | 
 |  |  |         zbShopInfo.setShopTel(sysCompany.getComTel()); | 
 |  |  |         zbShopInfo.setShopShortName("总部"); | 
 |  |  |         zbShopInfo.setIsOpenNet(SysShopInfo.CLOSE_NET); | 
 |  |  |         zbShopInfo.setShopNo(StringUtils.getRandomString(10)); | 
 |  |  |         shopInfoDao.insert(zbShopInfo); | 
 |  |  |  | 
 |  |  |         //新增一个总部仓库 | 
 |  |  |         Warehouse warehouse = new Warehouse(); | 
 |  |  |         warehouse.setCompanyId(sysCompany.getComId()); | 
 |  |  |         warehouse.setName("总部仓库"); | 
 |  |  |         warehouse.setShopId(zbShopInfo.getId()); | 
 |  |  |         warehouse.setSort("1"); | 
 |  |  |         warehouseDao.insert(warehouse); | 
 |  |  |         return zbShopInfo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  |     @Override | 
 |  |  |     public int modifyByMap(SysCompany oldSysCompany, SysCompany newSysCompany) { | 
 |  |  |         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
 |  |  |         newSysCompany.setUpdateBy(user.getSuName()); | 
 |  |  |  | 
 |  |  |         updatePower(newSysCompany); | 
 |  |  |         Map<String, Object> modifyMap = null; | 
 |  |  |         try { | 
 |  |  |             if (!ModelUtils.isModified(oldSysCompany, newSysCompany)) { | 
 |  |  |                 return MatrixConstance.DML_SUCCESSS; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             modifyMap = ModelUtils.comparePojo2Map(oldSysCompany, newSysCompany); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysCompany.getComName()); | 
 |  |  |         } | 
 |  |  |         if (modifyMap.size() > 0) { | 
 |  |  |             modifyMap.put("comId", oldSysCompany.getComId()); | 
 |  |  |             return sysCompanyDao.updateByMap(modifyMap); | 
 |  |  |         } | 
 |  |  |         return MatrixConstance.DML_SUCCESSS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 更新公司员工权限 | 
 |  |  |      * | 
 |  |  |      * @param newSysCompany | 
 |  |  |      * @author JIANGYOUYAO | 
 |  |  |      * @email 935090232@qq.com | 
 |  |  |      * @date 2017年12月5日 | 
 |  |  |      */ | 
 |  |  |     private void updatePower(SysCompany newSysCompany) { | 
 |  |  |         List<String> oldFunctions = null; | 
 |  |  |         String functions = sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(); | 
 |  |  |         if (functions == null || functions.equals("")) { | 
 |  |  |             oldFunctions = new ArrayList<>(); | 
 |  |  |         } else { | 
 |  |  |             oldFunctions = StringUtils | 
 |  |  |                     .strToCollToString(sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(), ","); | 
 |  |  |         } | 
 |  |  |         List<String> newFunctions = new ArrayList<>(); | 
 |  |  |         if (StringUtils.isNotBlank(newSysCompany.getComFunctions())) { | 
 |  |  |             newFunctions = StringUtils.strToCollToString(newSysCompany.getComFunctions(), ","); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Collections.sort(newFunctions); | 
 |  |  |         Collections.sort(oldFunctions); | 
 |  |  |         if (Objects.equals(JSONUtil.toJsonStr(newFunctions), JSONUtil.toJsonStr(oldFunctions))) { | 
 |  |  |             //没有更新的权限 | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         List<String> finalNewFunctions = newFunctions; | 
 |  |  |         List<String> deletedFn = oldFunctions.stream().map(old -> { | 
 |  |  |             if (finalNewFunctions.stream().noneMatch(newFn -> Objects.equals(newFn, old))) { | 
 |  |  |                 return old; | 
 |  |  |             } else { | 
 |  |  |                 return ""; | 
 |  |  |             } | 
 |  |  |         }).filter(item->StringUtils.isNotBlank(item)).collect(Collectors.toList()); | 
 |  |  |  | 
 |  |  |         if(CollectionUtils.isNotEmpty(deletedFn)){ | 
 |  |  |             rolePwoerFnDao.deleteByFns(newSysCompany.getComId(),deletedFn); | 
 |  |  |             //有更新权限清空缓存 | 
 |  |  |             SysUsers sysUsers = new SysUsers(); | 
 |  |  |             sysUsers.setCompanyId(newSysCompany.getComId()); | 
 |  |  |             sysUsers.setSuValid(AppConstance.RECORD_VALID); | 
 |  |  |             List<SysUsers> users = sysUsersService.findByModel(sysUsers); | 
 |  |  |             users.forEach(user -> { | 
 |  |  |                 String userKey = SecureUtil.md5(user.getSuId() + ""); | 
 |  |  |                 LocalCache.remove(DefaultAuthorityManager.USER_POWER_REDISKEY_PC + userKey); | 
 |  |  |                 LocalCache.remove(AppAuthorityManager.USER_POWER_REDISKEY_APP + userKey); | 
 |  |  |             }); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | /*        for (String old : oldFunctions) { | 
 |  |  |             // 如果新权限中不包含这个老的功能,则要更新改企业下所有的角色权限 | 
 |  |  |             if (!newFunctions.contains(old)) { | 
 |  |  |                 SysRole role = new SysRole(); | 
 |  |  |                 role.setCompanyId(newSysCompany.getComId()); | 
 |  |  |                 List<SysRole> roles = sysRoleDao.selectByModel(role); | 
 |  |  |                 // 获取该公司下所有的权限信息 | 
 |  |  |                 List<SysRolePwoerFn> compalyRolePwoer = new ArrayList<>(); | 
 |  |  |                 for (SysRole tempRole : roles) { | 
 |  |  |                     SysRolePwoerFn r = new SysRolePwoerFn(); | 
 |  |  |                     r.setRoleId(tempRole.getRoleId()); | 
 |  |  |                     compalyRolePwoer.addAll(rolePwoerFnDao.selectByModel(r)); | 
 |  |  |                 } | 
 |  |  |                 // 记录要删除的id | 
 |  |  |                 List<String> delRolePwoer = new ArrayList<>(); | 
 |  |  |                 for (SysRolePwoerFn rolePwoer : compalyRolePwoer) { | 
 |  |  |                     // 如果有一个老权限则删除这个权限 | 
 |  |  |                     if (rolePwoer.getFnId() != null && rolePwoer.getFnId().equals(old)) { | 
 |  |  |                         delRolePwoer.add(rolePwoer.getRpfId() + ""); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 // 如果获取到了就删除 | 
 |  |  |                 if (!delRolePwoer.isEmpty()) { | 
 |  |  |                     rolePwoerFnDao.deleteByIds(delRolePwoer); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }*/ | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     SysUsersService sysUsersService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public int modifyByModel(SysCompany sysCompany) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.updateByModel(sysCompany); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public int remove(List<String> list) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.deleteByIds(list); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public int removeById(String comId) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.deleteById(Long.parseLong(comId)); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public int removeByModel(SysCompany sysCompany) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.deleteByModel(sysCompany); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<SysCompany> findInPage(SysCompany sysCompany, PaginationVO pageVo) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.selectInPage(sysCompany, pageVo); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<SysCompany> findByModel(SysCompany sysCompany) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.selectByModel(sysCompany); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public int findTotal(SysCompany sysCompany) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.selectTotalRecord(sysCompany); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public SysCompany findById(String comId) { | 
 |  |  |  | 
 |  |  |         return sysCompanyDao.selectById(Long.parseLong(comId)); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |