提交 0d60aa1f authored 作者: 任建彩's avatar 任建彩

feat:自定义分类

1.resource
上级 9b713377
......@@ -23,4 +23,5 @@ public interface SystemAdminClient {
*/
@GetMapping(value = "/api/admin/system/admin/infoJson")
String infoJson(@RequestParam( "id") Integer id);
}
......@@ -17,6 +17,7 @@ import com.zrqx.provider.feign.olive.SystemAdminClient;
import com.zrqx.resource.exception.ResourceBizException;
import com.zrqx.resource.model.enums.DiyTypeStatusEnum;
import com.zrqx.resource.model.form.diytype.QueryDiyTypeForm;
import com.zrqx.resource.model.form.diytype.QueryDiyTypeNameForm;
import com.zrqx.resource.model.form.diytype.RelationForm;
import com.zrqx.resource.model.po.articlelibrary.ArticleLibraryDiyType;
import com.zrqx.resource.model.po.audiolibrary.AudioLibraryDiyType;
......@@ -81,6 +82,7 @@ public class DiyTypeController {
LambdaQueryWrapper<DiyType> diyTypeLambdaQueryWrapper = new LambdaQueryWrapper<>();
diyTypeLambdaQueryWrapper.eq(DiyType::getTypeName, entity.getTypeName());
diyTypeLambdaQueryWrapper.eq(DiyType::getParentId, entity.getParentId());
diyTypeLambdaQueryWrapper.eq(DiyType::getDepartmentCode, entity.getDepartmentCode());
if (service.getOne(diyTypeLambdaQueryWrapper) != null) {
throw new ResourceBizException("同级已存在" + entity.getTypeName());
}
......@@ -118,6 +120,7 @@ public class DiyTypeController {
SystemAdmin systemAdmin = mapper1.readValue(jsonString, SystemAdmin.class);
entity.setDepartmentId(systemAdmin.getDepartmentId());
entity.setDepartmentCode(systemAdmin.getDepartmentCode());
entity.setDepartmentName(systemAdmin.getDepartmentName());
} catch (JsonProcessingException e) {
e.printStackTrace();
}
......@@ -128,6 +131,7 @@ public class DiyTypeController {
LambdaQueryWrapper<DiyType> diyTypeLambdaQueryWrapper = new LambdaQueryWrapper<>();
diyTypeLambdaQueryWrapper.eq(DiyType::getTypeName, entity.getTypeName());
diyTypeLambdaQueryWrapper.eq(DiyType::getParentId, entity.getParentId());
diyTypeLambdaQueryWrapper.eq(DiyType::getDepartmentCode, entity.getDepartmentCode());
diyTypeLambdaQueryWrapper.ne(DiyType::getId, entity.getId());
if (service.getOne(diyTypeLambdaQueryWrapper) != null) {
throw new ResourceBizException("同级已存在" + entity.getTypeName());
......@@ -412,8 +416,8 @@ public class DiyTypeController {
@ApiOperation(value = "根据数据类型(一级分类名)查询自定义分类tree", notes = "查询列表")
@GetMapping(value = "/name/tree")
public CallBack<List<DiyTypeVO>> tree(String name,String code) {
if (StringUtils.isBlank(name)) {
public CallBack<List<DiyTypeVO>> tree(QueryDiyTypeNameForm form) {
if (StringUtils.isBlank(form.getName())) {
throw new ResourceBizException("参数不能为空!");
}
String departmentCode=null;
......@@ -440,7 +444,7 @@ public class DiyTypeController {
}
}
}else{
diyTypeLambdaQueryWrapper.or().eq(DiyType::getDepartmentCode,code);
diyTypeLambdaQueryWrapper.or().eq(DiyType::getDepartmentCode,form.getCode());
}
} catch (JsonProcessingException e) {
e.printStackTrace();
......@@ -451,7 +455,8 @@ public class DiyTypeController {
if(departmentCode!=null){
LambdaQueryWrapper<DiyType> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DiyType::getParentId, 0);
queryWrapper.eq(DiyType::getTypeName,name);
queryWrapper.eq(DiyType::getTypeName,form.getName());
queryWrapper.eq(DiyType::getDepartmentName,form.getDepartmentName());
DiyType type=service.getOne(queryWrapper);
list.add(type);
}
......@@ -464,7 +469,7 @@ public class DiyTypeController {
}
});
// 获取一级分类
List<DiyTypeVO> voList = Copy.copyList(list, DiyTypeVO.class, obj -> name.equals(obj.getTypeName()) && obj.getParentId() == 0);
List<DiyTypeVO> voList = Copy.copyList(list, DiyTypeVO.class, obj -> form.getName().equals(obj.getTypeName()) && obj.getParentId() == 0);
tree(list, voList);
voList.forEach(f -> f.getList().forEach(ff -> {
Integer resourceNum = service.selectResourceNum(ff.getCode());
......
......@@ -46,11 +46,11 @@ public class LabelController {
@ApiOperation(value = "分页查询标签", notes = "分页查询标签")
@GetMapping(value = "/page")
public CallBack<PageInfo<LabelListVO>> page(String code,PageParam pageParam) {
public CallBack<PageInfo<LabelListVO>> page(String departmentName,String code,PageParam pageParam) {
if (null != pageParam && StringUtils.isBlank(pageParam.getOrderBy())) {
pageParam.setOrderBy("createdTime desc");
}
return CallBack.success(service.page(code,pageParam));
return CallBack.success(service.page(departmentName,code,pageParam));
}
@ApiOperation(value = "根据数据类型查询标签", notes = "根据数据类型查询标签")
......
......@@ -14,21 +14,32 @@ import com.zrqx.resource.service.DiyTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.response.FacetField;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
@RestController("DiyTypeFrontendController")
@RequestMapping("/frontend/diytype")
@Api(tags = "自定义分类")
public class DiyTypeController {
Logger logger = LoggerFactory.getLogger(DiyType.class);
@Autowired
private DiyTypeService service;
@Resource
private SolrClient client;
@ApiOperation(value = "获取一级分类", notes = "获取一级分类")
@GetMapping(value = "/get/list")
......@@ -131,6 +142,7 @@ public class DiyTypeController {
LambdaQueryWrapper<DiyType> diyTypeLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
diyTypeLambdaQueryWrapper1.eq(DiyType::getParentId, dt.getId());
diyTypeLambdaQueryWrapper1.eq(DiyType::getStatus, DiyTypeStatusEnum.STATUS_1.getCode());
diyTypeLambdaQueryWrapper1.eq(DiyType::getDepartmentCode, "0");
PageHelper.orderBy("sort desc,createdTime desc");
List<DiyType> list = service.list(diyTypeLambdaQueryWrapper1);
List<FgDiyTypeVo> voList = Copy.copyList(list, FgDiyTypeVo.class);
......@@ -171,5 +183,52 @@ public class DiyTypeController {
});
return voList;
}
@ApiOperation("获取有数据的自定义分类")
@GetMapping("/get/diytype")
public CallBack<List<DiyTypeVO>> getDiytype(String term) {
CallBack<List<DiyTypeVO>> result = this.tree();
if(result == null || result.getData() == null || result.getData().size() == 0){
return null;
}
List<DiyTypeVO> oldVos = result.getData();
SolrQuery sq = new SolrQuery();
sq.setQuery("term : " + (term == null || term.equals("") ? "*" : term));
sq.setFacet(true);
sq.setFacetMinCount(1);
sq.setFacetLimit(-1);
sq.setFacetMissing(false);
sq.addFacetField("diytypeCode");
QueryResponse sr = new QueryResponse();
try {
sr = client.query(sq);
} catch (Exception e) {
logger.error("solr--获取有数据的自定义分类失败");
e.printStackTrace();
}
FacetField facet = sr.getFacetField("diytypeCode");
List<String> codes = facet.getValues().stream().map(FacetField.Count:: getName).collect(Collectors.toList());
// 保证一级分类始终显示(无论是否有数据)
oldVos.stream().forEach(oldVo -> {
if(oldVo.getParentId() == 0){
codes.add(oldVo.getCode());
}
});
List<DiyTypeVO> typeVOS = this.getQuantityDiyTypeTrees(getQuantityDiyTypeTrees(oldVos, codes), codes);
return CallBack.success(typeVOS);
}
private List<DiyTypeVO> getQuantityDiyTypeTrees(List<DiyTypeVO> oldVos, List<String> codes){
Iterator ite = oldVos.iterator();
while(ite.hasNext()){
DiyTypeVO oldVo = (DiyTypeVO)ite.next();
if(oldVo.getList() == null || oldVo.getList().size() == 0){
if(!codes.contains(oldVo.getCode())){
ite.remove();
}
} else {
List<DiyTypeVO> childVos = oldVo.getList();
getQuantityDiyTypeTrees(childVos, codes);
}
}
return oldVos;
}
}
......@@ -11,6 +11,7 @@ import com.zrqx.core.page.PageInfo;
import com.zrqx.core.page.PageParam;
import com.zrqx.core.response.CallBack;
import com.zrqx.provider.feign.file.FileClient;
import com.zrqx.resource.model.form.projectlibrary.QueryProjectForm;
import com.zrqx.resource.model.form.projectlibrary.QueryProjectModelResourceForm;
import com.zrqx.resource.model.form.projectlibrary.QueryRelatedProjectForm;
import com.zrqx.resource.model.po.audiolibrary.AudioLibrary;
......@@ -156,15 +157,18 @@ public class ProjectLibraryController {
}
@ApiOperation(value = "前台专题列表查询", notes = "查询")
@GetMapping(value = "/list")
public CallBack<PageInfo<ProjectLibraryListVO>> p2(String name, PageParam pageParam) {
public CallBack<PageInfo<ProjectLibraryListVO>> p2(QueryProjectForm form, PageParam pageParam) {
if (pageParam != null && StringUtils.isBlank(pageParam.getOrderBy())) {
pageParam.setOrderBy("sort desc, createdTime desc");
}
//只查询上线的专题
LambdaQueryWrapper<ProjectLibrary> projectLibraryLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectLibraryLambdaQueryWrapper.eq(ProjectLibrary::getStatus, StatusEnum.ENABLE.getCode());
if (StringUtils.isNotBlank(name)) {
projectLibraryLambdaQueryWrapper.like(ProjectLibrary::getName, name);
if (StringUtils.isNotBlank(form.getName())) {
projectLibraryLambdaQueryWrapper.like(ProjectLibrary::getName, form.getName());
}
if (StringUtils.isNotBlank(form.getType())) {
projectLibraryLambdaQueryWrapper.eq(ProjectLibrary::getType, form.getType());
}
PageHelper.startPage(pageParam);
List<ProjectLibrary> list = service.list(projectLibraryLambdaQueryWrapper);
......
......@@ -16,8 +16,10 @@ import com.zrqx.resource.exception.ResourceBizException;
import com.zrqx.resource.manage.ResourceManage;
import com.zrqx.resource.model.enums.DiyTypeStatusEnum;
import com.zrqx.resource.model.enums.PriceOptionEnum;
import com.zrqx.resource.model.form.FgResourceQuery;
import com.zrqx.resource.model.form.QueryResourceRelationForm;
import com.zrqx.resource.model.form.ResourceQueryForm;
import com.zrqx.resource.model.form.label.QueryLabelListForm;
import com.zrqx.resource.model.form.resource.QueryReadingProgressFrom;
import com.zrqx.resource.model.form.resource.QueryRelatedForm;
import com.zrqx.resource.model.form.resource.SaveReadingProgressFrom;
......@@ -40,15 +42,16 @@ import com.zrqx.resource.model.po.resourcerelation.ResourceRelation;
import com.zrqx.resource.model.po.searchHistory.SearchHistory;
import com.zrqx.resource.model.po.videolibrary.VideoLibrary;
import com.zrqx.resource.model.po.videolibrary.VideoLibraryDiyType;
import com.zrqx.resource.model.vo.ResorceTypeAndNumVO;
import com.zrqx.resource.model.vo.ResourceListInfoVO;
import com.zrqx.resource.model.vo.ResourceRelationVO;
import com.zrqx.resource.model.vo.ResultPage;
import com.zrqx.resource.model.vo.*;
import com.zrqx.resource.model.vo.authorlibrary.AboutListVO;
import com.zrqx.resource.model.vo.courselibrary.CourseLibraryVO;
import com.zrqx.resource.model.vo.courselibrary.CourseResourceVO;
import com.zrqx.resource.model.vo.ebook.EbookVO;
import com.zrqx.resource.model.vo.ebook.EpubReadingProgressVO;
import com.zrqx.resource.model.vo.label.FgLabelContentDiyTypeVO;
import com.zrqx.resource.model.vo.label.FgLabelInfoVO;
import com.zrqx.resource.model.vo.label.LabelContentDiyTypeVO;
import com.zrqx.resource.model.vo.label.LabelInfoVO;
import com.zrqx.resource.model.vo.marketing.PromotionInfoOneVO;
import com.zrqx.resource.service.*;
import com.zrqx.resource.service.impl.resource.ResourceContext;
......@@ -65,9 +68,13 @@ import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.FacetField;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
......@@ -85,6 +92,8 @@ import java.util.stream.Collectors;
@RequestMapping("/frontend/resource")
@Api(tags = "资源的公共接口")
public class ResourceLibraryController {
Logger logger = LoggerFactory.getLogger(ResourceLibraryController.class);
@Resource
private AudioLibraryService audioLibraryService;
@Resource
......@@ -141,6 +150,8 @@ public class ResourceLibraryController {
private ReadingProgressService readingProgressService;
@Resource
private ResourceManage resourceManage;
@Autowired
private LabelService labelService;
@ApiOperation(value = "搜索资源结果页", notes = "搜索资源结果页")
@GetMapping("/search/resource")
......@@ -169,14 +180,12 @@ public class ResourceLibraryController {
public CallBack<List<String>> completion(String name,Integer rows){
return CallBack.success(resourceManage.completion(name,rows));
}
@ApiOperation(value = "前台检索", notes = "检索")
@GetMapping("/search")
public CallBack<ResultPage> queryIndex(SearchForm form, PageParam pageParam) {
ResultPage result = solrList(form, pageParam);
return CallBack.success(result);
}
@ApiOperation(value = "前台APP检索", notes = "检索")
@GetMapping("/app/search")
public CallBack<ResultPage> queryIndexOfAPP(SearchForm form, PageParam pageParam) throws Exception {
......@@ -1010,7 +1019,7 @@ public class ResourceLibraryController {
List<String> codes = form.getLabelContentDiyTypeCode();
fqSq.append(" && ( ");
for (int i = 0; i < codes.size(); i++) {
fqSq.append(" labelContentDiyTypeCode:" + codes.get(i));
fqSq.append(" labelContentDiyTypeCode:" + codes.get(i)+ "* ");
if (i != codes.size() - 1) {
fqSq.append(" && ");
}
......@@ -1097,6 +1106,19 @@ public class ResourceLibraryController {
diyTypeList = diyTypeList.get(0).getChildren();
}
resultPage.setDiyTypeList(diyTypeList);
// 切面
sq.setFacet(true);
sq.setFacetMinCount(1);
sq.setFacetLimit(-1);
sq.setFacetMissing(false);
sq.addFacetField("labelContentDiyTypeCode");
FacetField labelCodeFacet = sr.getFacetField("labelContentDiyTypeCode");
List<LabelInfoVO> labelVos = null;
if(labelCodeFacet != null){
labelVos = getLabel(labelCodeFacet);
}
//form.getLabelContentDiyTypeCode() != null && !form.getLabelContentDiyTypeCode() != null ? null : labelVos;
resultPage.setLabelList(labelVos);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -1501,4 +1523,36 @@ public class ResourceLibraryController {
return respage;
}
/**
* 根据切面获取标签树
* @param
* @return
* @author lw
* @date: 2019年5月22日 下午5:18:53
*/
private List<LabelInfoVO> getLabel(FacetField diyTypeCodeFacet) {
QueryLabelListForm form= new QueryLabelListForm();
form.setResType("2");
List<LabelInfoVO> labelInfoVOS = labelService.queryLabelList(form);
if(labelInfoVOS == null || labelInfoVOS.size() == 0){
return null;
}
List<String> codes = diyTypeCodeFacet.getValues().stream().map(FacetField.Count:: getName).collect(Collectors.toList());
return getQuantityLabelTrees(getQuantityLabelTrees(labelInfoVOS, codes), codes);
}
private List<LabelInfoVO> getQuantityLabelTrees(List<LabelInfoVO> oldVos, List<String> codes){
Iterator ite = oldVos.iterator();
while(ite.hasNext()){
LabelInfoVO oldVo = (LabelInfoVO)ite.next();
if(oldVo.getLabelContent()== null || oldVo.getLabelContent().size() == 0){
if(!codes.contains(oldVo.getLabelContent().get(0).getCode())){
ite.remove();
}
} /*else {
List<FgLabelContentDiyTypeVO> childVos = oldVo.getLabelContent();
getQuantityLabelTrees(childVos, codes);
}*/
}
return oldVos;
}
}
......@@ -25,8 +25,9 @@ public interface LabelMapper extends BaseMapper<Label> {
+ "SELECT a.id, a.name, a.englishName , a.createdTime "
+ "FROM res_Label a where 1=1 "
+ "rlike(a.departmentCode,departmentCode)"
+ "eq(a.departmentName,departmentName)"
+ "</script>")
List<LabelListVO> queryAll(String departmentCode);
List<LabelListVO> queryAll(@Param("departmentName") String departmentName,@Param("departmentCode") String departmentCode);
/**
* 通过标签id删除标签
......@@ -73,8 +74,9 @@ public interface LabelMapper extends BaseMapper<Label> {
+ "WHERE 1=1 "
+ "<if test='" + MapperConstants.NOT_BLANK + "(name)' >"
+ "AND a.name = #{name} "
+ "limit 1 "
+ "</if>"
+ " eq (a.departmentCode,departmentCode)"
+ "limit 1 "
+ "</script>")
Label queryByName(@Param("name") String name);
......
package com.zrqx.resource.model.form;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.List;
import lombok.Data;
/**
* 资源查询条件
* @author lw
* @date 2019年4月16日上午9:21:26
*/
@Data
public class FgResourceQuery {
@ApiModelProperty("索引框")
private String term;
@ApiModelProperty("自定义分类")
private List<String> diytypeCodes;
@ApiModelProperty("标签")
private List<String> labelCodes;
@ApiModelProperty("类别(载体)")
private List<String> types;
@ApiModelProperty(value = "内容")
private String content;
@ApiModelProperty(value = "资源类型 1图书、4视频、5音频 ")
private String resourceType;
}
package com.zrqx.resource.model.form.diytype;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class QueryDiyTypeNameForm {
private String name;
private String code;
@ApiModelProperty(value = "部门")
private Integer departmentName;
}
package com.zrqx.resource.model.form.projectlibrary;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "QueryProjectForm", description = "相关专题")
public class QueryProjectForm {
@ApiModelProperty(value = "专题name")
private String name;
@ApiModelProperty("所属类型 1专题 2系列")
private String type;
}
......@@ -48,4 +48,6 @@ public class DiyType {
private Integer departmentId;
@ApiModelProperty(value = "部门")
private String departmentCode;
@ApiModelProperty(value = "部门")
private String departmentName;
}
......@@ -24,5 +24,7 @@ public class Label extends BasePO {
private Integer departmentId;
@ApiModelProperty(value = "部门")
private String departmentCode;
@ApiModelProperty(value = "部门")
private String departmentName;
}
......@@ -2,6 +2,7 @@ package com.zrqx.resource.model.vo;
import com.zrqx.provider.model.vo.resource.DiyTypeVO;
import com.zrqx.resource.model.vo.label.FgLabelInfoVO;
import com.zrqx.resource.model.vo.label.LabelInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -33,5 +34,5 @@ public class ResultPage {
@ApiModelProperty(value = "分类列表")
private List<DiyTypeVO> diyTypeList;
@ApiModelProperty(value = "标签列表")
private List<FgLabelInfoVO> labelList;
private List<LabelInfoVO> labelList;
}
......@@ -35,7 +35,8 @@ public class DiyTypeVO {
private Date createdTime;
@ApiModelProperty(value = "资源数")
private Integer resourceNum;
@ApiModelProperty(value = "部门")
private String departmentName;
private List<DiyTypeVO> children;
@ApiModelProperty(value = "子分类")
......
......@@ -19,4 +19,6 @@ public class LabelListVO {
private String dataType;
@ApiModelProperty(value = "创建时间")
private Date createdTime;
@ApiModelProperty(value = "部门")
private String departmentName;
}
......@@ -116,5 +116,4 @@ public interface DiyTypeService extends IService<DiyType> {
*/
String getNameById(Integer id);
}
......@@ -26,7 +26,7 @@ public interface LabelService extends IService<Label> {
boolean batchDelete(List<Integer> ids);
PageInfo<LabelListVO> page(String code,PageParam pageParam);
PageInfo<LabelListVO> page(String departmentName,String code,PageParam pageParam);
ImportLabelVO importLabelExcel(MultipartFile file, Integer labelId);
......
......@@ -309,6 +309,7 @@ public class EbookServiceImpl extends ServiceImpl<EbookMapper, Ebook> implements
relationAuthorService.saveBatch(baList);
}
//关联系列
if(StringUtils.isNotBlank(form.getProjectId())){
ProjectModelResource obj = new ProjectModelResource();
obj.setResourceType(GoodsTypeEnum.EBOOK.getCode());
obj.setResourceId(ebook.getId());
......@@ -316,6 +317,7 @@ public class EbookServiceImpl extends ServiceImpl<EbookMapper, Ebook> implements
obj.initAuditFields(tokenManager.getUserId(), new Date());
obj.setProjectId(form.getProjectId());
prMapper.insert(obj);
}
//更新索引
solrManage.asyncDeltaIndex();
return true;
......
......@@ -68,7 +68,7 @@ public class LabelServiceImpl extends ServiceImpl<LabelMapper, Label> implements
}
@Override
public PageInfo<LabelListVO> page(String code,PageParam pageParam) {
public PageInfo<LabelListVO> page(String departmentName,String code,PageParam pageParam) {
PageHelper.startPage(pageParam);
String departmentCode =null;
ObjectMapper mapper1 = new ObjectMapper();
......@@ -94,7 +94,7 @@ public class LabelServiceImpl extends ServiceImpl<LabelMapper, Label> implements
e.printStackTrace();
}
//查询标签列表
List<LabelListVO> list = labelMapper.queryAll(departmentCode);
List<LabelListVO> list = labelMapper.queryAll(departmentName,departmentCode);
list.forEach(i -> {
if (i != null) {
StringBuilder dataType = new StringBuilder();
......@@ -136,6 +136,7 @@ public class LabelServiceImpl extends ServiceImpl<LabelMapper, Label> implements
SystemAdmin systemAdmin = mapper1.readValue(jsonString, SystemAdmin.class);
entity.setDepartmentId(systemAdmin.getDepartmentId());
entity.setDepartmentCode(systemAdmin.getDepartmentCode());
entity.setDepartmentName(systemAdmin.getDepartmentName());
} catch (JsonProcessingException e) {
e.printStackTrace();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论