Merge branch 'fix_case_0511' into 'master'

Fix case 0511

See merge request !9
This commit is contained in:
449427055
2023-05-19 18:16:58 +08:00
4 changed files with 111 additions and 7 deletions

View File

@@ -332,7 +332,7 @@ public class CasesApi extends ApiBaseController {
if(StringUtil.isBlank(cases.getTitle())){ if(StringUtil.isBlank(cases.getTitle())){
return badRequest("标题不能为空"); return badRequest("标题不能为空");
} }
if(StringUtil.isBlank(cases.getOrgDomainParent())){ if(StringUtil.isBlank(cases.getOrgDomainParent()) && StringUtil.isBlank(cases.getOrgDomainParent2()) && StringUtil.isBlank(cases.getOrgDomainParent3())){
return badRequest("请选择组织领域"); return badRequest("请选择组织领域");
} }
if(cases.getMajorIds().isEmpty()){ if(cases.getMajorIds().isEmpty()){
@@ -364,7 +364,7 @@ public class CasesApi extends ApiBaseController {
if(StringUtil.isBlank(cases.getTitle())){ if(StringUtil.isBlank(cases.getTitle())){
return badRequest("标题不能为空"); return badRequest("标题不能为空");
} }
if(StringUtil.isBlank(cases.getOrgDomainParent())){ if(StringUtil.isBlank(cases.getOrgDomainParent()) && StringUtil.isBlank(cases.getOrgDomainParent2()) && StringUtil.isBlank(cases.getOrgDomainParent3())){
return badRequest("请选择组织领域"); return badRequest("请选择组织领域");
} }
if(cases.getMajorIds().isEmpty()){ if(cases.getMajorIds().isEmpty()){

View File

@@ -105,10 +105,18 @@ public class Cases extends BaseEntity {
@Column(name = "org_domain") @Column(name = "org_domain")
private String orgDomain; private String orgDomain;
/**组织领域一级 对应原数据 二级对应的关系上级的名称*/ /**组织领域一级 对应字典code*/
@Column(name = "org_domain_parent") @Column(name = "org_domain_parent")
private String orgDomainParent; private String orgDomainParent;
/**组织领域二级 对应字典code*/
@Column(name = "org_domain_parent2")
private String orgDomainParent2;
/**组织领域三级级 对应字典code*/
@Column(name = "org_domain_parent3")
private String orgDomainParent3;
/**专业分类,原数据 案例专业序列caseSpecialtySequence*/ /**专业分类,原数据 案例专业序列caseSpecialtySequence*/
@Column(name = "major_type") @Column(name = "major_type")
private String majorType; private String majorType;

View File

@@ -38,9 +38,8 @@ public class DictItem implements java.io.Serializable{
private Boolean deleted; private Boolean deleted;
/** /**
* 二级 * 二级 和三级
* */ * */
@Transient @Transient
private List<DictItem> list; private List<DictItem> list;
} }

View File

@@ -1,8 +1,12 @@
package com.xboe.module.dict.service.impl; package com.xboe.module.dict.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.constants.CacheName; import com.xboe.constants.CacheName;
import com.xboe.core.SysConstant;
import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.FieldFilters;
import com.xboe.core.utils.OkHttpUtil;
import com.xboe.module.course.entity.Course; import com.xboe.module.course.entity.Course;
import com.xboe.module.dict.dao.SysDictionaryDao; import com.xboe.module.dict.dao.SysDictionaryDao;
import com.xboe.module.dict.entity.DictItem; import com.xboe.module.dict.entity.DictItem;
@@ -16,7 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.springframework.transaction.annotation.Propagation.REQUIRED; import static org.springframework.transaction.annotation.Propagation.REQUIRED;
@@ -33,11 +37,104 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{
RedisTemplate redisTemplate; RedisTemplate redisTemplate;
//缓存配置 //缓存配置
@Cacheable(value = CacheName.DICT,key = "'" + CacheName.KEY_DICT + "'+#key", unless = "#result == null") //@Cacheable(value = CacheName.DICT,key = "'" + CacheName.KEY_DICT + "'+#key", unless = "#result == null")
@Override @Override
public List<DictItem> findByKey(String key) { public List<DictItem> findByKey(String key) {
if ("org_domain".equals(key)) {
return this.findCaseOrgFromDict();
}
return dao.findByKey(key); return dao.findByKey(key);
}
private List<DictItem> findCaseOrgFromDict() {
List<DictItem> items=new ArrayList<>();
try {
OkHttpUtil http = new OkHttpUtil();
//调用基础服务获取字典数据
String baseUrl= SysConstant.getConfigValue("xboe.old.base.url");
String infrasUrl = baseUrl + "/infrasApi/dict/allList?code=case_org";
String infrasRes = http.doGet(infrasUrl);
ObjectMapper mapper = new ObjectMapper();
JsonNode infrasNode = mapper.readTree(infrasRes);
int infrasResCode = infrasNode.get("code").asInt();
if (infrasResCode != 200) {
return items;
}
JsonNode dictItemsJson = infrasNode.get("data");
return this.formatDict(dictItemsJson);
} catch (Exception e) {
return items;
}
}
private List<DictItem> formatDict(JsonNode dictItemsJson) {
List<DictItem> items=new ArrayList<>();
Iterator<JsonNode> list=dictItemsJson.iterator();
while(list.hasNext()) {
JsonNode itemNode1 = list.next();
DictItem dict1=new DictItem();
dict1.setCode(itemNode1.get("code").asText());
dict1.setName(itemNode1.get("name").asText());
dict1.setFilter(itemNode1.get("code").asText());
dict1.setNorder(itemNode1.get("sort").asInt());
dict1.setDeletable(false);
dict1.setDeleted(false);
JsonNode children1 = itemNode1.get("children");
if (children1 == null || children1.isEmpty()) {
items.add(dict1);
continue;
}
Iterator<JsonNode> childrenList1 = children1.iterator();
while (childrenList1.hasNext()) {
JsonNode childrenNode1 = childrenList1.next();
DictItem dict2=new DictItem();
dict2.setCode(childrenNode1.get("code").asText());
dict2.setName(childrenNode1.get("name").asText());
dict2.setFilter(childrenNode1.get("code").asText());
dict2.setNorder(childrenNode1.get("sort").asInt());
dict2.setDeletable(false);
dict2.setDeleted(false);
JsonNode children2 = childrenNode1.get("children");
if (children2 == null || children2.isEmpty()) {
if (dict1.getList() == null || dict1.getList().isEmpty()) {
dict1.setList(new ArrayList<DictItem>());
dict1.getList().add(dict2);
} else {
dict1.getList().add(dict2);
}
continue;
}
Iterator<JsonNode> childrenList2 = children2.iterator();
while (childrenList2.hasNext()) {
JsonNode childrenNode2 = childrenList2.next();
DictItem dict3=new DictItem();
dict3.setCode(childrenNode2.get("code").asText());
dict3.setName(childrenNode2.get("name").asText());
dict3.setFilter(childrenNode2.get("code").asText());
dict3.setNorder(childrenNode2.get("sort").asInt());
dict3.setDeletable(false);
dict3.setDeleted(false);
if (dict2.getList() == null || dict2.getList().isEmpty()) {
dict2.setList(new ArrayList<DictItem>());
dict2.getList().add(dict3);
} else {
dict2.getList().add(dict3);
}
}
if (dict1.getList() == null || dict1.getList().isEmpty()) {
dict1.setList(new ArrayList<DictItem>());
dict1.getList().add(dict2);
} else {
dict1.getList().add(dict2);
}
}
items.add(dict1);
}
return items;
} }
@Override @Override