| | |
| | | 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)); |
| | | |
| | | } |
| | | |
| | | |
| | | } |