问题知识库开发。

This commit is contained in:
wangzhijiang
2022-08-05 10:32:45 +08:00
parent af80cd1c45
commit eabce4d783
9 changed files with 198 additions and 7 deletions
@@ -1,9 +1,13 @@
package com.jero.modules.problemKnowledgeBase.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
@@ -35,7 +39,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class CountryCardManageReleaseDetailEOController extends JeroController<CountryCardManageReleaseDetailEO, ICountryCardManageReleaseDetailEOService> {
@Autowired
private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
/**
* 分页列表查询
*
@@ -167,4 +171,25 @@ public class CountryCardManageReleaseDetailEOController extends JeroController<C
return super.importExcel(request, response, CountryCardManageReleaseDetailEO.class);
}
/**
* 批量编辑
*
* @param json
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-批量编辑")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-批量编辑", notes="问题知识库-country_card-管理发布明细表-批量编辑")
@PostMapping(value = "/editBatch")
public Result<?> editBatch(@RequestBody JSONObject json) {
JSONArray countryCardManageReleaseDetailEOList = json.getJSONArray("countryCardManageReleaseDetailEOList");
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = new ArrayList<>();
CountryCardManageReleaseDetailEO releaseDetailEO = null;
for (Object releaseDetail : countryCardManageReleaseDetailEOList) {
releaseDetailEO = JSONObject.parseObject(JSONObject.toJSONString(releaseDetail),CountryCardManageReleaseDetailEO.class);
releaseDetailEOList.add(releaseDetailEO);
}
this.countryCardManageReleaseDetailEOService.updateBatchById(releaseDetailEOList);
return Result.OK("编辑成功!");
}
}
@@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class CountryCardManageReleaseEOController extends JeroController<CountryCardManageReleaseEO, ICountryCardManageReleaseEOService> {
@Autowired
private ICountryCardManageReleaseEOService countryCardManageReleaseEOService;
/**
* 分页列表查询
*
@@ -51,10 +51,13 @@ public class CountryCardManageReleaseEOController extends JeroController<Country
public Result<?> queryPageList(CountryCardManageReleaseEO countryCardManageReleaseEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) {
QueryWrapper<CountryCardManageReleaseEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<CountryCardManageReleaseEO> page = new Page<CountryCardManageReleaseEO>(pageNo, pageSize);
IPage<CountryCardManageReleaseEO> pageList = countryCardManageReleaseEOService.page(page, queryWrapper);
this.countryCardManageReleaseEOService.disposeData(pageList.getRecords(),cut);
return Result.OK(pageList);
}
@@ -3,7 +3,10 @@ package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -71,4 +74,12 @@ public class CountryCardManageReleaseEO implements Serializable {
@ApiModelProperty(value = "发布状态")
private java.lang.String releaseStatus;
/**发布状态展示字段**/
@TableField(exist = false)
private String releaseStatus_dictText;
/**问题知识库-country_card-管理发布明细数组**/
@TableField(exist = false)
private List<CountryCardManageReleaseDetailEO> countryCardManageReleaseDetailEOList;
}
@@ -35,12 +35,12 @@ public enum LableTypeEnum {
public static String getTextByValue(String value,String cut) {
LableTypeEnum[] values = values();
for (LableTypeEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
for (LableTypeEnum lableTypeEnum : values) {
if (lableTypeEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return taskStatusEnum.cnName;
return lableTypeEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return taskStatusEnum.enName;
return lableTypeEnum.enName;
}
}
}
@@ -0,0 +1,47 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 发布状态枚举类
*/
public enum ReleaseStatusEnum {
HAVE_RELEASED("已发布","Have released","have released"),
DRAFT("草稿","Draft","draft"),
;
String cnName;
String enName;
String value;
private ReleaseStatusEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
ReleaseStatusEnum[] values = values();
for (ReleaseStatusEnum releaseStatusEnum : values) {
if (releaseStatusEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return releaseStatusEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return releaseStatusEnum.enName;
}
}
}
return null;
}
}
@@ -58,4 +58,11 @@ public interface ICountryCardManageReleaseEOService extends IService<CountryCard
* @return
*/
List<CountryCardManageReleaseEO> queryList();
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<CountryCardManageReleaseEO> datas, String cut);
}
@@ -67,4 +67,10 @@ public interface ICountryCardTempEOService extends IService<CountryCardTempEO> {
* @param cut
*/
void disposeData(List<CountryCardTempEO> datas, String cut);
/**
* 设置排序号
* @param countryCardTempEO
*/
void setOrderNum(CountryCardTempEO countryCardTempEO);
}
@@ -1,11 +1,21 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.enums.ReleaseStatusEnum;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -20,6 +30,9 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCardManageReleaseEOMapper, CountryCardManageReleaseEO> implements ICountryCardManageReleaseEOService {
@Autowired
private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
/**
* 保存
*
@@ -31,7 +44,15 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
Date now = new Date();
countryCardManageReleaseEO.setCreateTime(now);
countryCardManageReleaseEO.setUpdateTime(now);
countryCardManageReleaseEO.setReleaseStatus(ReleaseStatusEnum.DRAFT.getValue());
save(countryCardManageReleaseEO);
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = countryCardManageReleaseEO.getCountryCardManageReleaseDetailEOList();
if(CollectionUtils.isNotEmpty(releaseDetailEOList)){
releaseDetailEOList.forEach(releaseDetailEO -> {
releaseDetailEO.setCountryCardManageReleaseId(countryCardManageReleaseEO.getId());
});
this.countryCardManageReleaseDetailEOService.saveBatch(releaseDetailEOList);
}
}
/**
@@ -89,4 +110,33 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
public List<CountryCardManageReleaseEO> queryList() {
return list();
}
@Override
public void disposeData(List<CountryCardManageReleaseEO> datas, String cut) {
if (CollectionUtils.isNotEmpty(datas)) {
List<String> CountryCardManageReleaseEOId = datas.stream().map(CountryCardManageReleaseEO::getId).collect(Collectors.toList());
//查询出来管理发布列表中数据的明细信息
QueryWrapper<CountryCardManageReleaseDetailEO> releaseDetailEOQueryWrapper = new QueryWrapper<>();
releaseDetailEOQueryWrapper.lambda().in(CountryCardManageReleaseDetailEO::getCountryCardManageReleaseId,CountryCardManageReleaseEOId);
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = this.countryCardManageReleaseDetailEOService.list(releaseDetailEOQueryWrapper);
datas.forEach(data -> {
if (StringUtils.isNotEmpty(data.getReleaseStatus())) {
data.setReleaseStatus_dictText(ReleaseStatusEnum.getTextByValue(data.getReleaseStatus(),cut));
}
if(CollectionUtils.isNotEmpty(releaseDetailEOList)){
List<CountryCardManageReleaseDetailEO> collect = releaseDetailEOList.stream().filter(releaseDetailEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),releaseDetailEO.getCountryCardManageReleaseId())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
data.setCountryCardManageReleaseDetailEOList(collect);
}
});
}
}
}
@@ -13,7 +13,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
@@ -45,6 +44,7 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
*/
@Override
public void add(CountryCardTempEO countryCardTempEO) {
this.setOrderNum(countryCardTempEO);
Date now = new Date();
countryCardTempEO.setCreateTime(now);
countryCardTempEO.setUpdateTime(now);
@@ -63,6 +63,7 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
*/
@Override
public void editById(CountryCardTempEO countryCardTempEO) {
this.setOrderNum(countryCardTempEO);
Date now = new Date();
countryCardTempEO.setUpdateTime(now);
saveOrUpdate(countryCardTempEO);
@@ -142,4 +143,45 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
});
}
}
@Override
public void setOrderNum(CountryCardTempEO countryCardTempEO){
Integer inputOrderNum = countryCardTempEO.getOrderNum();
if(inputOrderNum != null) {
QueryWrapper<CountryCardTempEO> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("order_num");
List<CountryCardTempEO> countryCardTempEOList = this.list(queryWrapper);
Integer orderNumData = countryCardTempEOList.stream().filter(e -> e.getId().equals(countryCardTempEO.getId()))
.map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0);
queryWrapper.eq("order_num", inputOrderNum);
Integer orderNumCount = this.baseMapper.selectCount(queryWrapper);
//有重复展示顺序的,后面的号全+1
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {
//设置排序
QueryWrapper<CountryCardTempEO> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("order_num", inputOrderNum)
.orderByAsc("order_num");
List<CountryCardTempEO> geOrderNumList = this.list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的
for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) {
break;
} else if(i+1 >= geOrderNumList.size()){
break;
}else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList());
break;
}
}
geOrderNumList.stream().forEach(e -> e.setOrderNum(e.getOrderNum() + 1));
saveOrUpdateBatch(geOrderNumList);
}
}
}
}