Commit fdfd8551 by guojuxing

商户规则添加平台默认规则

parent 97d182a0
......@@ -413,38 +413,41 @@ public class ConfigRuleApiServiceImpl implements ConfigRuleApiService {
public ServiceResponse<List<RuleClassifyListDTO>> listRuleClassifyByAppCode(String appCode, Integer enterpriseId) {
TabConfigRule record = configRuleService.getByAppCode(appCode);
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "该应用未配置");
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "该应用未配置规则列表");
}
//先查询商户规则
TabConfigRuleEnterpriseRel ruleRel = configRuleEnterpriseService.getByEnterpriseId(enterpriseId);
Integer enterpriseRuleId = null;
//商户规则ID
Integer enterpriseRuleId;
if (ruleRel != null) {
enterpriseRuleId = ruleRel.getEnterpriseRuleId();
}
if (enterpriseRuleId == null) {
return ServiceResponse.success(EntityUtil.changeEntityListNew(RuleClassifyListDTO.class,
configRuleService.listAll(record.getRuleId())));
} else {
ServiceResponse<List<RuleListDTO>> ruleListResult = getRuleTree(null, enterpriseRuleId);
if (ruleListResult.isSuccess()) {
List<RuleListDTO> ruleList = ruleListResult.getResult();
if (CollectionUtils.isNotEmpty(ruleList)) {
for (RuleListDTO ruleListDTO : ruleList) {
if (ruleListDTO.getAppCode().equals(appCode)) {
//勾选中的列表
List<RuleClassifyListDTO> temp = ruleListDTO.getRuleClassifyList();
List<RuleClassifyListDTO> select = new ArrayList<>();
if (CollectionUtils.isNotEmpty(temp)) {
for (RuleClassifyListDTO dto : temp) {
if (dto.getSelect()) {
//场景重置
dto.setRuleClassifySceneList(null);
select.add(dto);
}
//查询
TabConfigRuleEnterpriseRel defaultRule = configRuleEnterpriseService.getByEnterpriseId(-1);
if (defaultRule == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "未配置平台默认规则");
}
enterpriseRuleId = defaultRule.getEnterpriseRuleId();
}
ServiceResponse<List<RuleListDTO>> ruleListResult = getRuleTree(null, enterpriseRuleId);
if (ruleListResult.isSuccess()) {
List<RuleListDTO> ruleList = ruleListResult.getResult();
if (CollectionUtils.isNotEmpty(ruleList)) {
for (RuleListDTO ruleListDTO : ruleList) {
if (ruleListDTO.getAppCode().equals(appCode)) {
//勾选中的列表
List<RuleClassifyListDTO> temp = ruleListDTO.getRuleClassifyList();
List<RuleClassifyListDTO> select = new ArrayList<>();
if (CollectionUtils.isNotEmpty(temp)) {
for (RuleClassifyListDTO dto : temp) {
if (dto.getSelect()) {
//场景重置
dto.setRuleClassifySceneList(null);
select.add(dto);
}
}
return ServiceResponse.success(select);
}
return ServiceResponse.success(select);
}
}
}
......@@ -461,44 +464,46 @@ public class ConfigRuleApiServiceImpl implements ConfigRuleApiService {
}
//先查询商户规则
TabConfigRuleEnterpriseRel ruleRel = configRuleEnterpriseService.getByEnterpriseId(enterpriseId);
Integer enterpriseRuleId = null;
Integer enterpriseRuleId;
if (ruleRel != null) {
enterpriseRuleId = ruleRel.getEnterpriseRuleId();
}
if (enterpriseRuleId == null) {
return ServiceResponse.success(EntityUtil.changeEntityListNew(RuleClassifySceneListDTO.class,
configRuleService.listAll(ruleClassifyId)));
} else {
//查询分类下的商户配置的场景,如果没有勾选,则没有数据
ServiceResponse<List<RuleListDTO>> ruleListResult = getRuleTree(null, enterpriseRuleId);
if (ruleListResult.isSuccess()) {
List<RuleListDTO> ruleList = ruleListResult.getResult();
if (CollectionUtils.isNotEmpty(ruleList)) {
for (RuleListDTO ruleListDTO : ruleList) {
//有的规则是复制建立的,没有应用code
if (StringUtils.isBlank(ruleListDTO.getAppCode())) {
continue;
}
if (ruleListDTO.getAppCode().equals(appCode)) {
List<RuleClassifyListDTO> classifyList = ruleListDTO.getRuleClassifyList();
if (CollectionUtils.isNotEmpty(classifyList)) {
for (RuleClassifyListDTO classifyListDTO : classifyList) {
if (classifyListDTO.getRuleId().intValue() == ruleClassifyId.intValue()) {
if (!classifyListDTO.getSelect()) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "分类ID错误,商户规则未配置该分类");
}
//勾选中的,即配置可用的
List<RuleClassifySceneListDTO> temp = classifyListDTO.getRuleClassifySceneList();
List<RuleClassifySceneListDTO> select = new ArrayList<>();
if (CollectionUtils.isNotEmpty(temp)) {
for (RuleClassifySceneListDTO dto : temp) {
if (dto.getSelect()) {
select.add(dto);
}
//查询
TabConfigRuleEnterpriseRel defaultRule = configRuleEnterpriseService.getByEnterpriseId(-1);
if (defaultRule == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "未配置平台默认规则");
}
enterpriseRuleId = defaultRule.getEnterpriseRuleId();
}
//查询分类下的商户配置的场景,如果没有勾选,则没有数据
ServiceResponse<List<RuleListDTO>> ruleListResult = getRuleTree(null, enterpriseRuleId);
if (ruleListResult.isSuccess()) {
List<RuleListDTO> ruleList = ruleListResult.getResult();
if (CollectionUtils.isNotEmpty(ruleList)) {
for (RuleListDTO ruleListDTO : ruleList) {
//有的规则是复制建立的,没有应用code
if (StringUtils.isBlank(ruleListDTO.getAppCode())) {
continue;
}
if (ruleListDTO.getAppCode().equals(appCode)) {
List<RuleClassifyListDTO> classifyList = ruleListDTO.getRuleClassifyList();
if (CollectionUtils.isNotEmpty(classifyList)) {
for (RuleClassifyListDTO classifyListDTO : classifyList) {
if (classifyListDTO.getRuleId().intValue() == ruleClassifyId.intValue()) {
if (!classifyListDTO.getSelect()) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "分类ID错误,商户规则未配置该分类");
}
//勾选中的,即配置可用的
List<RuleClassifySceneListDTO> temp = classifyListDTO.getRuleClassifySceneList();
List<RuleClassifySceneListDTO> select = new ArrayList<>();
if (CollectionUtils.isNotEmpty(temp)) {
for (RuleClassifySceneListDTO dto : temp) {
if (dto.getSelect()) {
select.add(dto);
}
}
return ServiceResponse.success(select);
}
return ServiceResponse.success(select);
}
}
}
......
......@@ -33,6 +33,7 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
@Override
public ServiceResponse<Integer> save(RuleEnterpriseDTO dto) {
Integer enterpriseRuleId = dto.getEnterpriseRuleId();
if (enterpriseRuleId != null) {
TabConfigRuleEnterprise record = configRuleEnterpriseService.getByEnterpriseRuleId(enterpriseRuleId);
if (record == null) {
......@@ -45,12 +46,28 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
return ServiceResponse.failure(valid.getCode(), valid.getMessage());
}
//验证并获取商户ID列表
ServiceResponse<List<Integer>> enterpriseIdListResult = getEnterpriseIdList(dto);
boolean isDefaultRule = "-1".equals(dto.getEnterpriseIds());
List<Integer> enterpriseIdList;
if (enterpriseIdListResult.isSuccess()) {
enterpriseIdList = enterpriseIdListResult.getResult();
if (!isDefaultRule) {
//如果不是平台默认规则,则需要进行商户的校验
ServiceResponse<List<Integer>> enterpriseIdListResult = getEnterpriseIdList(dto);
if (enterpriseIdListResult.isSuccess()) {
enterpriseIdList = enterpriseIdListResult.getResult();
} else {
return ServiceResponse.failure(enterpriseIdListResult.getCode(), enterpriseIdListResult.getMessage());
}
} else {
return ServiceResponse.failure(enterpriseIdListResult.getCode(), enterpriseIdListResult.getMessage());
if (enterpriseRuleId == null) {
//新增的情况
TabConfigRuleEnterpriseRel defaultRule = configRuleEnterpriseService.getByEnterpriseId(-1);
if (defaultRule != null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "平台默认规则重复配置");
}
}
//全部商户
dto.setEnterpriseType(2);
enterpriseIdList = Arrays.asList(-1);
}
//验证并获取规则树数据
......@@ -107,6 +124,10 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "规则ID错误,无记录");
}
TabConfigRuleEnterpriseRel defaultRule = configRuleEnterpriseService.getByEnterpriseId(-1);
if (defaultRule != null && defaultRule.getEnterpriseRuleId().intValue() == enterpriseRuleId) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "平台默认规则不允许删除");
}
configRuleEnterpriseService.update(record.setStatus(0));
//解绑
configRuleEnterpriseService.deleteByEnterpriseRuleId(enterpriseRuleId);
......@@ -116,6 +137,10 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
@Override
public ServiceResponse<String> removeEnterprise(Integer enterpriseId) {
if (enterpriseId == -1) {
//防止把平台规则商户记录删除
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "规则ID错误,非法操作");
}
List<Integer> enterpriseIdList = new ArrayList<>(1);
enterpriseIdList.add(enterpriseId);
configRuleEnterpriseService.deleteByEnterpriseIdList(enterpriseIdList);
......@@ -126,6 +151,21 @@ public class ConfigRuleEnterpriseApiServiceImpl implements ConfigRuleEnterpriseA
public ServiceResponse<Page<RuleEnterpriseDTO>> listRule(String search, Integer pageNum, Integer pageSize) {
com.github.pagehelper.Page page = configRuleEnterpriseService.listRule(search, pageNum, pageSize);
Page<RuleEnterpriseDTO> resultPage = PageHelperUtils.changePageHelperToCurrentPage(page);
//
if (pageNum != null && pageNum == 1) {
//添加默认平台规则
TabConfigRuleEnterpriseRel defaultRule = configRuleEnterpriseService.getByEnterpriseId(-1);
if (defaultRule != null) {
List<RuleEnterpriseDTO> resultList = resultPage.getResult();
TabConfigRuleEnterprise record = configRuleEnterpriseService
.getByEnterpriseRuleId(defaultRule.getEnterpriseRuleId());
if (CollectionUtils.isNotEmpty(resultList)) {
resultList.add(0, new RuleEnterpriseDTO().setEnterpriseRuleId(defaultRule.getEnterpriseRuleId())
.setRuleName(record.getRuleName()).setEnterpriseId(-1));
resultPage.setResult(resultList);
}
}
}
return ServiceResponse.success(resultPage);
}
......
......@@ -122,6 +122,7 @@
</if>
where t1.status = 1
and t2.status = 1
and t2.enterprise_id != -1
<if test="search != null and search != '' ">
and ( t1.rule_name like concat('%', #{search}, '%')
or t3.enterprise_name like concat('%', #{search}, '%')
......@@ -137,6 +138,7 @@
left join tab_enterprise t2 on t1.enterprise_id = t2.enterprise_id
where t1.status = 1
and t2.status = 1
and t1.enterprise_id != -1
and t1.enterprise_rule_id = #{enterpriseRuleId}
<if test="search != null and search != '' ">
and ( t2.enterprise_name like concat('%', #{search}, '%')
......
......@@ -130,10 +130,12 @@
<update id="deleteByEnterpriseIdList">
update tab_config_rule_enterprise_rel set status = 0
where status = 1
and enterprise_id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="list != null and list.size() > 0">
and enterprise_id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</update>
<select id="listEnterprise" resultMap="BaseResultMap">
......
......@@ -20,6 +20,11 @@ public class EnterpriseRuleVO implements Serializable{
*/
private Integer enterpriseRuleId;
/**
* 企业主键
*/
private Integer enterpriseId;
public Integer getCountEnterpriseId() {
return countEnterpriseId;
}
......@@ -46,4 +51,12 @@ public class EnterpriseRuleVO implements Serializable{
this.enterpriseRuleId = enterpriseRuleId;
return this;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment