ソースを参照

租户类型接口追加、修改

zdm 6 年 前
コミット
110b163c54

+ 3 - 1
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -56,6 +56,8 @@ public class BaseRequestMapping {
     */
    public static class SaasTypeDict extends Basic {
        public static final String PREFIX  = "/saas_type_dict";
        public static final String STATUS  = "/status";
        public static final String FIND_ALL_EXIST_CHECKED  = "/findAllExistChecked";
    }
    /**
@ -66,7 +68,7 @@ public class BaseRequestMapping {
        public static final String STATUS  = "/status";
        public static final String IS_NAME_EXIST  = "/isNameExist";
        public static final String FIND_ALL  = "/findAll";
        public static final String FIND_ALL_EXIST_CHECKED  = "/findAllExistChecked";
    }
    /**

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/SaasTypeModuleVO.java

@ -37,7 +37,7 @@ public class SaasTypeModuleVO extends UuidIdentityVOWithOperator {
	@ApiModelProperty(value = "逻辑删除标志1正常,0删除", example = "1")
	private Integer del ;
	@ApiModelProperty(value = "是否选中(0-表示未选,1-表示已选)", example = "1")
	private Integer isCheck ;
	private Integer isCheck =1;
	@ApiModelProperty(value = "子集", example = "子集")
	private List<SaasTypeModuleVO> children = new ArrayList<>();

+ 7 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/module/SaasTypeModuleDao.java

@ -6,6 +6,8 @@ import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import javax.transaction.Transactional;
/**
 * Entity - 租户类型模块
 * Created by yeshijie on 2018/10/11.
@ -18,4 +20,9 @@ public interface SaasTypeModuleDao extends PagingAndSortingRepository<SaasTypeMo
    @Modifying
    @Query("delete from SaasTypeModuleDO p where p.moduleId=?1 ")
    void deleteByModuleId(String moduleId);
    @Modifying
    @Transactional
    @Query("delete from SaasTypeModuleDO p where p.saasTypeId=?1 ")
    void deleteBySaasTypeId(String saasTypeId);
}

+ 1 - 43
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleEndpoint.java

@ -2,10 +2,8 @@ package com.yihu.jw.base.endpoint.module;
import com.yihu.jw.base.contant.CommonContant;
import com.yihu.jw.base.service.module.ModuleService;
import com.yihu.jw.base.service.saas.SaasDefaultModuleFunctionService;
import com.yihu.jw.base.util.ErrorCodeUtil;
import com.yihu.jw.entity.base.module.ModuleDO;
import com.yihu.jw.entity.base.saas.SaasDefaultModuleFunctionDO;
import com.yihu.jw.exception.code.BaseErrorCode;
import com.yihu.jw.restmodel.base.module.ModuleVO;
import com.yihu.jw.restmodel.web.Envelop;
@ -38,8 +36,6 @@ public class ModuleEndpoint extends EnvelopRestEndpoint {
    private ModuleService moduleService;
    @Autowired
    private ErrorCodeUtil errorCodeUtil;
    @Autowired
    private SaasDefaultModuleFunctionService saasDefaultModuleFunctionService;
    @PostMapping(value = BaseRequestMapping.Module.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
@ -154,44 +150,6 @@ public class ModuleEndpoint extends EnvelopRestEndpoint {
        return success(moduleVOs);
    }
    @GetMapping(value = BaseRequestMapping.Module.FIND_ALL_EXIST_CHECKED)
    @ApiOperation(value = "获取已关联租户类型模块列表")
    public ListEnvelop<ModuleVO> findAllExistChecked (
            @ApiParam(name = "saasTypeDictId", value = "租户类型id")
            @RequestParam(value = "saasTypeDictId", required = false) String saasTypeDictId) throws Exception {
        //根据租户类型获取关联的模块
        List<SaasDefaultModuleFunctionDO> saasDefaultModuleFunctionDOList = saasDefaultModuleFunctionService.findByField("saasType", saasTypeDictId);
        Set<String> moduleIdSet=new HashSet<>();
        for(SaasDefaultModuleFunctionDO saasDefaultModuleFunctionDO:saasDefaultModuleFunctionDOList){
            moduleIdSet.add(saasDefaultModuleFunctionDO.getModuleId());
        }
        //获取生效中的模块
        String filters = "status=1";
        List<ModuleDO> modules = moduleService.search(null, filters, null);
        List<ModuleVO> moduleVOs = convertToModels(modules,new ArrayList<>(modules.size()),ModuleVO.class);
        moduleVOs = moduleVOs.stream()
                .filter(module -> {
                    if(CommonContant.IS_MUST.equals(module.getIsMust())){
                        //是否选中(0-表示未选,1-表示已选)
                        module.setIsCheck(1);
                    }else {
                        module.setIsCheck(0);
                    }
                    if(moduleIdSet.contains(module.getId())){
                        //是否选中(0-表示未选,1-表示已选)
                        module.setIsCheck(1);
                    }
                    return true;
                }).collect(Collectors.toList());
        Map<String,List<ModuleVO>> map = moduleVOs.stream().collect(Collectors.groupingBy(ModuleVO::getParentId));
        moduleVOs.forEach(module->{
            List<ModuleVO> tmp = map.get(module.getId());
            module.setChildren(tmp);
        });
        moduleVOs = moduleVOs.stream()
                .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentId()))
                .collect(Collectors.toList());
        return success(moduleVOs);
    }
}

+ 76 - 43
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasTypeDictEndpoint.java

@ -1,19 +1,19 @@
package com.yihu.jw.base.endpoint.saas;
import com.yihu.jw.base.contant.CommonContant;
import com.yihu.jw.base.dao.module.SaasTypeModuleDao;
import com.yihu.jw.base.service.module.ModuleService;
import com.yihu.jw.base.service.module.SaasTypeModuleService;
import com.yihu.jw.base.service.saas.SaasTypeDictService;
import com.yihu.jw.base.service.user.UserService;
import com.yihu.jw.entity.base.module.ModuleDO;
import com.yihu.jw.entity.base.saas.SaasDO;
import com.yihu.jw.entity.base.saas.SaasDefaultModuleFunctionDO;
import com.yihu.jw.entity.base.module.SaasTypeModuleDO;
import com.yihu.jw.entity.base.saas.SaasTypeDictDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.restmodel.base.module.ModuleVO;
import com.yihu.jw.restmodel.base.saas.SaasDefaultModuleFunctionVO;
import com.yihu.jw.restmodel.base.module.SaasTypeModuleVO;
import com.yihu.jw.restmodel.base.saas.SaasTypeDictVO;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.base.saas.SaasVO;
import com.yihu.jw.restmodel.web.*;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.restmodel.web.status.EnvelopStatus;
@ -41,11 +41,9 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private SaasTypeDictService saasTypeDictService;
    @Autowired
    private SaasDefaultModuleFunctionService saasDefaultModuleFunctionService;
    @Autowired
    private ModuleService moduleService;
//    @Autowired
//    private SaasDefaultModuleFunctionService saasDefaultModuleFunctionService;
    @Autowired
    private SaasTypeModuleService saasTypeModuleService;
    @PostMapping(value = BaseRequestMapping.SaasTypeDict.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
@ -80,7 +78,7 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
            return failed("租户类型名称重复!", ObjEnvelop.class);
        }
        //删除关联的模块
//        saasDefaultModuleFunctionService.deleteBySaasType(saasTypeDictDO.getCode());
        saasTypeModuleService.deleteBySaasTypeId(saasTypeDictDO.getId());
        saasTypeDictDO = saasTypeDictService.save(saasTypeDictDO, saasTypeDefaultModuleIds);
        return success("更新成功!", saasTypeDictDO, SaasTypeDictVO.class);
    }
@ -125,53 +123,88 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseRequestMapping.SaasTypeDict.FINDBYID)
    @ApiOperation(value = "根据id获取单个租户类型")
    @ApiOperation(value = "根据id获取单个租户类型+(右边树:已关联的模块)")
    public MixEnvelop<SaasTypeDictDO, List<ModuleVO>> findById(
            @ApiParam(name = "saasTypeDictId", value = "租户类型id")
            @RequestParam(value = "saasTypeDictId", required = true) String saasTypeDictId) throws Exception {
        MixEnvelop envelop=new MixEnvelop();
        MixEnvelop envelop = new MixEnvelop();
        //获取租户类型
        SaasTypeDictDO saasTypeDictDO = saasTypeDictService.findById(saasTypeDictId);
        envelop.setObj(saasTypeDictDO);
        if(null!=saasTypeDictDO){
        if (null != saasTypeDictDO) {
            //根据租户类型获取关联的模块(右边树)
            List<SaasDefaultModuleFunctionDO> saasDefaultModuleFunctionDOList = saasDefaultModuleFunctionService.findByField("saasType", saasTypeDictDO.getCode());
            Set<String> moduleIdSet=new HashSet<>();
            for(SaasDefaultModuleFunctionDO saasDefaultModuleFunctionDO:saasDefaultModuleFunctionDOList){
                moduleIdSet.add(saasDefaultModuleFunctionDO.getModuleId());
            }
            //获取生效中的模块
            String filters = "status=1";
            List<ModuleDO> modules = moduleService.search(null, filters, null);
            List<ModuleVO> moduleVOs = convertToModels(modules,new ArrayList<>(modules.size()),ModuleVO.class);
            moduleVOs = moduleVOs.stream()
                    .filter(module -> {
                        if(CommonContant.IS_MUST.equals(module.getIsMust())){
                            //是否选中(0-表示未选,1-表示已选)
                            module.setIsCheck(1);
                        }else {
                            module.setIsCheck(0);
                        }
                        if(moduleIdSet.contains(module.getId())){
                            //是否选中(0-表示未选,1-表示已选)
                            module.setIsCheck(1);
                        }
                        return true;
                    }).collect(Collectors.toList());
            Map<String,List<ModuleVO>> map = moduleVOs.stream().collect(Collectors.groupingBy(ModuleVO::getParentId));
            moduleVOs.forEach(module->{
                List<ModuleVO> tmp = map.get(module.getId());
            String fis = "status=1;saasTypeId=" + saasTypeDictId;
            List<SaasTypeModuleDO> saasTypeModuleDOList = saasTypeModuleService.search(fis);
            //获取租户类型关联的生效中的模块
            List<SaasTypeModuleVO> saasTypeModuleVOS = convertToModels(saasTypeModuleDOList, new ArrayList<>(saasTypeModuleDOList.size()), SaasTypeModuleVO.class);
            Map<String, List<SaasTypeModuleVO>> map = saasTypeModuleVOS.stream().collect(Collectors.groupingBy(SaasTypeModuleVO::getParentModuleId));
            saasTypeModuleVOS.forEach(module -> {
                List<SaasTypeModuleVO> tmp = map.get(module.getModuleId());
                module.setChildren(tmp);
            });
            moduleVOs = moduleVOs.stream()
                    .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentId()))
            saasTypeModuleVOS = saasTypeModuleVOS.stream()
                    .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentModuleId()))
                    .collect(Collectors.toList());
            envelop.setDetailModelList(moduleVOs);
            envelop.setDetailModelList(saasTypeModuleVOS);
        }
        envelop.setStatus(EnvelopStatus.success.code);
        envelop.setMessage("success");
        return envelop;
    }
    @GetMapping(value = BaseRequestMapping.SaasTypeDict.FIND_ALL_EXIST_CHECKED)
    @ApiOperation(value = "获取租户类型-模块列表(左边树:全部模块,已关联和必选为选中状态)")
    public ListEnvelop<ModuleVO> findAllExistChecked(
            @ApiParam(name = "saasTypeDictId", value = "租户类型id")
            @RequestParam(value = "saasTypeDictId", required = false) String saasTypeDictId) throws Exception {
        //根据租户类型获取关联的模块
        String fis = "status=1;saasTypeId=" + saasTypeDictId;
        List<SaasTypeModuleDO> saasTypeModuleDOList = saasTypeModuleService.search(fis);
        Set<String> moduleIdSet = new HashSet<>();
        for (SaasTypeModuleDO saasTypeModuleDO : saasTypeModuleDOList) {
            moduleIdSet.add(saasTypeModuleDO.getModuleId());
        }
        //获取生效中的模块
        String filters = "status=1";
        List<ModuleDO> modules = moduleService.search(filters);
        List<ModuleVO> moduleVOs = convertToModels(modules, new ArrayList<>(modules.size()), ModuleVO.class);
        moduleVOs = moduleVOs.stream()
                .filter(module -> {
                    if (CommonContant.IS_MUST.equals(module.getIsMust())) {
                        //是否选中(0-表示未选,1-表示已选)
                        module.setIsCheck(1);
                    } else {
                        module.setIsCheck(0);
                    }
                    if (moduleIdSet.contains(module.getId())) {
                        //是否选中(0-表示未选,1-表示已选)
                        module.setIsCheck(1);
                    }
                    return true;
                }).collect(Collectors.toList());
        Map<String, List<ModuleVO>> map = moduleVOs.stream().collect(Collectors.groupingBy(ModuleVO::getParentId));
        moduleVOs.forEach(module -> {
            List<ModuleVO> tmp = map.get(module.getId());
            module.setChildren(tmp);
        });
        moduleVOs = moduleVOs.stream()
                .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentId()))
                .collect(Collectors.toList());
        return success(moduleVOs);
    }
    @PostMapping(value = BaseRequestMapping.SaasTypeDict.STATUS)
    @ApiOperation(value = "生效/失效")
    public Envelop status(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = " 失效-invalid,生效- effective", required = true)
            @RequestParam(value = "status") SaasTypeDictDO.Status status) {
        SaasTypeDictDO saasTypeDictDO = saasTypeDictService.findById(id);
        saasTypeDictDO.setStatus(status);
        saasTypeDictService.save(saasTypeDictDO);
        return success("修改成功");
    }
}

+ 6 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/module/SaasTypeModuleService.java

@ -3,6 +3,7 @@ package com.yihu.jw.base.service.module;
import com.yihu.jw.base.dao.module.SaasTypeModuleDao;
import com.yihu.jw.entity.base.module.SaasTypeModuleDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -11,6 +12,10 @@ import org.springframework.stereotype.Service;
 */
@Service
public class SaasTypeModuleService extends BaseJpaService<SaasTypeModuleDO, SaasTypeModuleDao> {
    @Autowired
    private SaasTypeModuleDao saasTypeModuleDao;
    public void deleteBySaasTypeId(String saasTypeId) {
        saasTypeModuleDao.deleteBySaasTypeId(saasTypeId);
    }
}

+ 33 - 33
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasTypeDictService.java

@ -1,11 +1,13 @@
package com.yihu.jw.base.service.saas;
import com.yihu.jw.base.dao.function.FunctionDao;
import com.yihu.jw.base.dao.module.ModuleDao;
import com.yihu.jw.base.dao.module.SaasTypeModuleDao;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.saas.SaasTypeDictDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.base.dao.user.UserRoleDao;
import com.yihu.jw.entity.base.module.ModuleDO;
import com.yihu.jw.entity.base.module.SaasTypeModuleDO;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.saas.SaasTypeDictDO;
import com.yihu.jw.entity.base.user.UserDO;
@ -33,47 +35,44 @@ public class SaasTypeDictService extends BaseJpaService<SaasTypeDictDO, SaasType
    private SaasTypeDictDao saasTypeDictDao;
    @Autowired
    private ModuleDao moduleDao;
    @Autowired
    private SaasTypeModuleDao saasTypeModuleDao;
    public SaasTypeDictDO save(SaasTypeDictDO saasTypeDictDO, String saasTypeDefaultModuleIds) {
        //初始化租户信息
        Integer code ;
    public SaasTypeDictDO save(SaasTypeDictDO saasTypeDictDO, String saasTypeModuleIds) {
        String saasTypeId;
        if (StringUtils.isEmpty(saasTypeDictDO.getId())) {
            //新增
            code = getNextSaasTypeDictCode();
            saasTypeDictDO.setCode(code);
            saasTypeDictDO.setCode(getNextSaasTypeDictCode());
            saasTypeId = getCode();
        } else {
            //编辑
            code = saasTypeDictDO.getCode();
            saasTypeId = saasTypeDictDO.getId();
        }
        //根据moduleId获取模块
//        String[] ids = saasTypeDefaultModuleIds.split(",");
//        SaasDefaultModuleFunctionDO saasDefaultModuleFunctionDO;
//        List<SaasDefaultModuleFunctionDO> saasDefaultModuleDOS = new ArrayList<>();
//        for (String id : ids) {
//            List<FunctionDO> functionDOList = functionDao.findFunctionDOSByModuleId(id);
//            //模块关联接口
//            if (null != functionDOList && functionDOList.size() > 0) {
//                functionDOList.forEach(item -> {
//                    SaasDefaultModuleFunctionDO saDeModuleFunctionDO = new SaasDefaultModuleFunctionDO();
//                    saDeModuleFunctionDO.setSaasType(code);
//                    saDeModuleFunctionDO.setModuleId(id);
//                    saDeModuleFunctionDO.setFunctionId(item.getId());
//                    saasDefaultModuleDOS.add(saDeModuleFunctionDO);
//                });
//            } else {
//                //模块未关联接口
//                saasDefaultModuleFunctionDO = new SaasDefaultModuleFunctionDO();
//                saasDefaultModuleFunctionDO.setSaasType(code);
//                saasDefaultModuleFunctionDO.setModuleId(id);
//                saasDefaultModuleDOS.add(saasDefaultModuleFunctionDO);
//            }
//            //初始化租户默认模块
//            saasDefaultModuleFunctionDao.save(saasDefaultModuleDOS);
//        }
        String[] ids = saasTypeModuleIds.split(",");
        SaasTypeModuleDO saasTypeModuleDO;
        List<SaasTypeModuleDO> saasDefaultModuleDOS = new ArrayList<>();
        for (String id : ids) {
            ModuleDO moduleDO = moduleDao.findOne(id);
            saasTypeModuleDO = new SaasTypeModuleDO();
            saasTypeModuleDO.setModuleId(id);
            saasTypeModuleDO.setName(moduleDO.getName());
            saasTypeModuleDO.setParentModuleId(moduleDO.getParentId());
            saasTypeModuleDO.setType(moduleDO.getType());
            saasTypeModuleDO.setStatus(moduleDO.getStatus());
            saasTypeModuleDO.setIsEnd(moduleDO.getIsEnd());
            saasTypeModuleDO.setIsMust(moduleDO.getIsMust());
            saasTypeModuleDO.setUrl(moduleDO.getUrl());
            saasTypeModuleDO.setRemark(moduleDO.getRemark());
            saasTypeModuleDO.setSaasTypeId(saasTypeId);
            saasDefaultModuleDOS.add(saasTypeModuleDO);
        }
        //初始化租户默认模块
        saasTypeModuleDao.save(saasDefaultModuleDOS);
        //保存数据
//        saasTypeDictDO = saasTypeDictDao.save(saasTypeDictDO);
        return new SaasTypeDictDO();
        SaasTypeDictDO saasTypeDictDO1 = saasTypeDictDao.save(saasTypeDictDO);
        return saasTypeDictDO1;
    }
    /**
@ -104,4 +103,5 @@ public class SaasTypeDictService extends BaseJpaService<SaasTypeDictDO, SaasType
    public SaasTypeDictDO findById(String id) {
        return saasTypeDictDao.findById(id);
    }
}

+ 1 - 1
svr/svr-base/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: svr-base-dm
    name: svr-base
  cloud:
    config:
      failFast: true