Browse Source

新增给saas配置模块
和给模块配置功能

chenweida 8 years ago
parent
commit
cf01d649af

+ 1 - 0
common/common-mysql/src/main/java/com/yihu/jw/mysql/query/BaseJpaService.java

@ -42,6 +42,7 @@ public class BaseJpaService<T, R> {
    @PersistenceContext
    @PersistenceContext
    protected EntityManager entityManager;
    protected EntityManager entityManager;
    public BaseJpaService(){
    public BaseJpaService(){
        Type genType = getClass().getGenericSuperclass();
        Type genType = getClass().getGenericSuperclass();
        if ((genType instanceof ParameterizedType)) {
        if ((genType instanceof ParameterizedType)) {

+ 7 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/BaseContants.java

@ -14,6 +14,8 @@ public class BaseContants {
        public static final String message_success_find="function find success";
        public static final String message_success_find="function find success";
        public static final String message_success_find_functions="functions find success";
        public static final String message_success_find_functions="functions find success";
        public static final String message_success_delete="function delete success";
        public static final String message_success_delete="function delete success";
        public static final String message_success_assign_function=" assign function create success";
        public static final String message_success_find_functions_module="moduleFunctions find success";
        public static final String message_fail_name_exist="function name exist";
        public static final String message_fail_name_exist="function name exist";
@ -29,6 +31,8 @@ public class BaseContants {
        public static final String api_delete="delete";
        public static final String api_delete="delete";
        public static final String api_getByCode="getByCode";
        public static final String api_getByCode="getByCode";
        public static final String api_getFunctions="getFunctions";
        public static final String api_getFunctions="getFunctions";
        public static final String api_assignFunction="assignFunction";
        public static final String api_getModuleFunctions="api_getModuleFunctions";
        public static final String api_getFunctionsNoPage="getFunctionsNoPage";
        public static final String api_getFunctionsNoPage="getFunctionsNoPage";
    }
    }
@ -40,6 +44,7 @@ public class BaseContants {
        public static final String message_success_find="Module find success";
        public static final String message_success_find="Module find success";
        public static final String message_success_find_Modules="Module find success";
        public static final String message_success_find_Modules="Module find success";
        public static final String message_success_delete="Module delete success";
        public static final String message_success_delete="Module delete success";
        public static final String message_success_assign_module=" assign Module create success";
        public static final String message_fail_name_exist=" name exist";
        public static final String message_fail_name_exist=" name exist";
@ -57,6 +62,8 @@ public class BaseContants {
        public static final String api_getByCode="getByCode";
        public static final String api_getByCode="getByCode";
        public static final String api_getModules="getModules";
        public static final String api_getModules="getModules";
        public static final String api_getModulesNoPage="getModulesNoPage";
        public static final String api_getModulesNoPage="getModulesNoPage";
        public static final String api_assignModule="assignModule";
        public static final String api_getSaasModules="api_getSaasModules";
    }
    }

+ 27 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/controller/FunctionController.java

@ -125,4 +125,31 @@ public class FunctionController extends EnvelopRestController {
        List<MFunction> mFunctions = convertToModels(list, new ArrayList<>(list.size()), MFunction.class, fields);
        List<MFunction> mFunctions = convertToModels(list, new ArrayList<>(list.size()), MFunction.class, fields);
        return Envelop.getSuccessList(BaseContants.Function.message_success_find_functions,mFunctions);
        return Envelop.getSuccessList(BaseContants.Function.message_success_find_functions,mFunctions);
    }
    }
    @PutMapping(value = BaseContants.Function.api_assignFunction, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "给对应的模块分配功能")
    public Envelop assignModule(
            @ApiParam(name = "module_code", value = "module_code", defaultValue = "")
            @RequestParam String moduleCode,
            @ApiParam(name = "functionCodes", value = "功能的code,可以传多个,逗号分割", defaultValue = "")
            @RequestParam String functionCodes) {
        try {
            functionService.assignFunction(moduleCode,functionCodes);
            return Envelop.getSuccess(BaseContants.Function.message_success_assign_function);
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @GetMapping(value = BaseContants.Function.api_getModuleFunctions, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "查询saas的模块")
    public Envelop getModuleFunctions(
            @ApiParam(name = "saas_code", value = "saas_code", defaultValue = "")
            @RequestParam String saasCode) {
        try {
            return Envelop.getSuccess(BaseContants.Function.message_success_find_functions_module,functionService.getModuleFunctions(saasCode));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
}
}

+ 29 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/controller/ModuleController.java

@ -1,6 +1,7 @@
package com.yihu.jw.base.controller;
package com.yihu.jw.base.controller;
import com.yihu.jw.base.model.Module;
import com.yihu.jw.base.model.Module;
import com.yihu.jw.base.model.SaasModule;
import com.yihu.jw.base.service.ModuleService;
import com.yihu.jw.base.service.ModuleService;
import com.yihu.jw.base.service.ModuleService;
import com.yihu.jw.base.service.ModuleService;
import com.yihu.jw.restmodel.base.BaseContants;
import com.yihu.jw.restmodel.base.BaseContants;
@ -126,4 +127,32 @@ public class ModuleController extends EnvelopRestController {
        List<MModule> mModules = convertToModels(list, new ArrayList<>(list.size()), MModule.class, fields);
        List<MModule> mModules = convertToModels(list, new ArrayList<>(list.size()), MModule.class, fields);
        return Envelop.getSuccessList(BaseContants.Module.message_success_find_Modules,mModules);
        return Envelop.getSuccessList(BaseContants.Module.message_success_find_Modules,mModules);
    }
    }
    @PutMapping(value = BaseContants.Module.api_assignModule, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "分配模块", notes = "给对应的saas分配模块")
    public Envelop assignModule(
            @ApiParam(name = "saas_code", value = "saas_code", defaultValue = "")
            @RequestParam String saasCode,
            @ApiParam(name = "moduleCodes", value = "模块的code,可以传多个,逗号分割", defaultValue = "")
            @RequestParam String moduleCodes) {
        try {
            moduleService.assignModule(saasCode,moduleCodes);
            return Envelop.getSuccess(BaseContants.Module.message_success_assign_module);
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
    @GetMapping(value = BaseContants.Module.api_getSaasModules, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "查询saas的模块", notes = "查询saas已经分配的模块")
    public Envelop getSaasModules(
            @ApiParam(name = "saas_code", value = "saas_code", defaultValue = "")
            @RequestParam String saasCode) {
        try {
            return Envelop.getSuccess(BaseContants.Module.message_success_assign_module,moduleService.getSaasModules(saasCode));
        } catch (ApiException e) {
            return Envelop.getError(e.getMessage(), e.getErrorCode());
        }
    }
}
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/ModuleFunctionDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.base.dao;
import com.yihu.jw.base.model.ModuleFunction;
import com.yihu.jw.base.model.SaasModule;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/5/22.
 */
public interface ModuleFunctionDao extends PagingAndSortingRepository<ModuleFunction, Long>, JpaSpecificationExecutor<ModuleFunction> {
    @Modifying
    @Query("delete from ModuleFunction es where es.moduleId = ?1")
    int deleteByModuleCode(String moduleCode);
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/SaasModuleDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.base.dao;
import com.yihu.jw.base.model.Saas;
import com.yihu.jw.base.model.SaasModule;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/5/22.
 */
public interface SaasModuleDao extends PagingAndSortingRepository<SaasModule, Long>, JpaSpecificationExecutor<SaasModule> {
    @Modifying
    @Query("delete from SaasModule es where es.saasId = ?1")
    int deleteBySaasCode(String saasCode);
}

+ 34 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/FunctionService.java

@ -1,16 +1,25 @@
package com.yihu.jw.base.service;
package com.yihu.jw.base.service;
import com.yihu.jw.base.dao.FunctionDao;
import com.yihu.jw.base.dao.FunctionDao;
import com.yihu.jw.base.dao.ModuleFunctionDao;
import com.yihu.jw.base.model.Function;
import com.yihu.jw.base.model.Function;
import com.yihu.jw.base.model.ModuleFunction;
import com.yihu.jw.base.model.SaasModule;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.restmodel.base.BaseContants;
import com.yihu.jw.restmodel.base.BaseContants;
import com.yihu.jw.restmodel.base.MFunction;
import com.yihu.jw.restmodel.base.MModule;
import com.yihu.jw.restmodel.common.CommonContants;
import com.yihu.jw.restmodel.common.CommonContants;
import com.yihu.jw.restmodel.exception.ApiException;
import com.yihu.jw.restmodel.exception.ApiException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
/**
 * Created by chenweida on 2017/5/19.
 * Created by chenweida on 2017/5/19.
 */
 */
@ -18,6 +27,10 @@ import org.springframework.util.StringUtils;
public class FunctionService extends BaseJpaService<Function, FunctionDao> {
public class FunctionService extends BaseJpaService<Function, FunctionDao> {
    @Autowired
    @Autowired
    private FunctionDao functionDao;
    private FunctionDao functionDao;
    @Autowired
    private ModuleFunctionDao moduleFunctionDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Transactional
    @Transactional
    public Function createFunction(Function function) throws ApiException {
    public Function createFunction(Function function) throws ApiException {
@ -68,4 +81,25 @@ public class FunctionService extends BaseJpaService<Function, FunctionDao> {
        }
        }
        function.setStatus(-1);
        function.setStatus(-1);
    }
    }
    @Transactional
    public void assignFunction(String moduleCode, String functionCodes) {
        //先删除原来已经分配好的功能
        moduleFunctionDao.deleteByModuleCode(moduleCode);
        //分配新的功能
        String [] functionCodeArr=functionCodes.split(",");
        List<ModuleFunction> saasModuleList=new ArrayList<>();
        for(String functionCode:functionCodeArr){
            ModuleFunction saasModule=new ModuleFunction();
            saasModule.setModuleId(moduleCode);
            saasModule.setFunctionId(functionCode);
            saasModuleList.add(saasModule);
        }
        moduleFunctionDao.save(saasModuleList);
    }
    public List<MFunction> getModuleFunctions(String saasCode) {
        String sql=" select m.code,m.parent_code,m.name from base_function f,base_module_function mf where f.code=mf.function_id and f.status=0 and mf.module_id=?";
        return jdbcTemplate.queryForList(sql,MFunction.class,saasCode);
    }
}
}

+ 33 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/ModuleService.java

@ -2,17 +2,24 @@ package com.yihu.jw.base.service;
import com.yihu.jw.base.dao.ModuleDao;
import com.yihu.jw.base.dao.ModuleDao;
import com.yihu.jw.base.dao.ModuleDao;
import com.yihu.jw.base.dao.ModuleDao;
import com.yihu.jw.base.dao.SaasModuleDao;
import com.yihu.jw.base.model.Module;
import com.yihu.jw.base.model.Module;
import com.yihu.jw.base.model.Module;
import com.yihu.jw.base.model.Module;
import com.yihu.jw.base.model.SaasModule;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.restmodel.base.BaseContants;
import com.yihu.jw.restmodel.base.BaseContants;
import com.yihu.jw.restmodel.base.MModule;
import com.yihu.jw.restmodel.common.CommonContants;
import com.yihu.jw.restmodel.common.CommonContants;
import com.yihu.jw.restmodel.exception.ApiException;
import com.yihu.jw.restmodel.exception.ApiException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
/**
 * Created by chenweida on 2017/5/19.
 * Created by chenweida on 2017/5/19.
 */
 */
@ -20,6 +27,11 @@ import org.springframework.util.StringUtils;
public class ModuleService extends BaseJpaService<Module, ModuleDao> {
public class ModuleService extends BaseJpaService<Module, ModuleDao> {
    @Autowired
    @Autowired
    private ModuleDao moduleDao;
    private ModuleDao moduleDao;
    @Autowired
    private SaasModuleDao saasModuleDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Transactional
    @Transactional
    public Module createModule(Module module) throws ApiException {
    public Module createModule(Module module) throws ApiException {
@ -73,4 +85,25 @@ public class ModuleService extends BaseJpaService<Module, ModuleDao> {
        }
        }
        module.setStatus(-1);
        module.setStatus(-1);
    }
    }
    @Transactional
    public void assignModule(String saasCode, String moduleCodes) {
        //先删除原来已经分配好的模块
        saasModuleDao.deleteBySaasCode(saasCode);
        //分配新的模块
        String [] moduleCodeArr=moduleCodes.split(",");
        List<SaasModule> saasModuleList=new ArrayList<>();
        for(String moduleCode:moduleCodeArr){
            SaasModule saasModule=new SaasModule();
            saasModule.setModuleId(moduleCode);
            saasModule.setSaasId(saasCode);
            saasModuleList.add(saasModule);
        }
        saasModuleDao.save(saasModuleList);
    }
    public List<MModule> getSaasModules(String saasCode) {
        String sql=" select m.code,m.parent_code,m.name from base_module m,base_saas_module sm where m.code=sm.module_id and m.status=0 and sm.saas_id=?";
       return jdbcTemplate.queryForList(sql,MModule.class,saasCode);
    }
}
}