提交 ba49f4b6 authored 作者: malei's avatar malei

feat(bg.resource): 升级fastjson版本,修改实体书导入逻辑

上级 6b40e9c8
......@@ -2,6 +2,7 @@ package com.zrqx.bg.resource.manage.diytype;
import com.zrqx.bg.resource.mapper.diytype.DiyTypeMapper;
import com.zrqx.bg.resource.mapper.diytype.GoodsDiyTypeRelationMapper;
import com.zrqx.core.enums.resource.goods.GoodsTypeEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.model.resource.diytype.DiyType;
import com.zrqx.core.model.resource.diytype.GoodsDiyTypeRelation;
......@@ -203,9 +204,84 @@ public class DiyTypeManage {
* @Author: zzg
* @Date: 2020/12/21 16:12
*/
public boolean saveDiyTypes(List<String> goodsIds, String diyTypes){
goodsIds.forEach(id -> {
//public boolean saveDiyTypes(List<String> goodsIds, String type, String diyTypes){
// goodsIds.forEach(id -> {
//
// GoodsDiyTypeRelation record = new GoodsDiyTypeRelation();
// record.setGoodsid(id);
// List<GoodsDiyTypeRelation> list = goodsDiyTypeRelationMapper.select(record);
// if(list != null && list.size() > 0){
// goodsDiyTypeRelationMapper.delete(record);
// }
//
// if (StringUtils.isEmpty(diyTypes)) {
// //技工教育教材分类标签,因为前端查询写的是固定值243,所以使用固定值
// if (GoodsTypeEnum.JGJY.getCode().equals(type)) {
// DiyType diyType = new DiyType();
// diyType.setId(243);
// diyType.setCode("01");
// this.saveGoodsDiyTypeRelation(diyType, id);
// }
//
// //职业培训教材
// if (GoodsTypeEnum.ZYPX.getCode().equals(type)) {
// DiyType diyType = new DiyType();
// diyType.setId(288);
// diyType.setCode("02");
// this.saveGoodsDiyTypeRelation(diyType, id);
// }
//
// //职业能力提升
// if (GoodsTypeEnum.ZYNL.getCode().equals(type)) {
// DiyType diyType = new DiyType();
// diyType.setId(10384);
// diyType.setCode("04");
// this.saveGoodsDiyTypeRelation(diyType, id);
// }
//
// //
// if (GoodsTypeEnum.JCK.getCode().equals(type) || GoodsTypeEnum.XTCK.getCode().equals(type)) {
// DiyType diyType = new DiyType();
// diyType.setId(432);
// diyType.setCode("03");
// this.saveGoodsDiyTypeRelation(diyType, id);
// }
//
// } else {
// //标签不为空,根据内容解析标签
// String[] types = diyTypes.split("-");
// List<String> vList = Stream.of(types).collect(Collectors.toList());
// String str = vList.get(vList.size() - 1);//获取集合中的最后一个元素
// DiyType diyType = new DiyType();
// diyType.setShowName(str);
// List<DiyType> voList = diyTypeMapper.select(diyType);
// if(1 == voList.size()){ //如果集合长度为1,则说明数据库中对应的自定义分类只有一个,直接进行绑定即可
// this.saveGoodsDiyTypeRelation(voList.get(0), id);
// }else{ //集合长度大于1 说明数据库中的自定义分类有重复,需要根据它的上级分类去确定唯一值
// for (int i = 0; i < voList.size(); i++) {
// String sb = this.getDiyTypes(voList.get(i).getId(),new StringBuffer());
// if(sb.equals(diyTypes)){//判断导入的自定义分类跟拼接的自定义分类相同的话,进行绑定
// this.saveGoodsDiyTypeRelation(voList.get(i), id);
// break;
// }
// }
// }
// }
// });
// return true;
//}
/**
* 功能描述: <br>
* 〈〉保存图书与自定义分类的关系
* @Param: [goodsIds, diyTypeIds]
* @Return: boolean
* @Author: zzg
* @Date: 2020/12/21 16:12
*/
public boolean saveDiyTypes(List<String> goodsIds, String type, String diyTypes){
goodsIds.forEach(id -> {
//清除原有自定义分类
GoodsDiyTypeRelation record = new GoodsDiyTypeRelation();
record.setGoodsid(id);
List<GoodsDiyTypeRelation> list = goodsDiyTypeRelationMapper.select(record);
......@@ -214,35 +290,73 @@ public class DiyTypeManage {
}
if (StringUtils.isEmpty(diyTypes)) {
//技工教育教材分类标签,因为前端查询写的是固定值243,所以使用固定值
DiyType diyType = new DiyType();
diyType.setId(243);
diyType.setCode("01");
this.saveGoodsDiyTypeRelation(diyType, id);
this.saveGoodsDiyTypeRelation(buildDiyType(GoodsTypeEnum.getEnumByCode(type)), id);
} else {
//标签不为空,根据内容解析标签
//标签不为空,根据内容解析标签,若自定义标签解析失败或与系统内自定义标签不匹配则保存默认自定义分类
String[] types = diyTypes.split("-");
List<String> vList = Stream.of(types).collect(Collectors.toList());
String str = vList.get(vList.size() - 1);//获取集合中的最后一个元素
DiyType diyType = new DiyType();
diyType.setShowName(str);
List<DiyType> voList = diyTypeMapper.select(diyType);
if(1 == voList.size()){ //如果集合长度为1,则说明数据库中对应的自定义分类只有一个,直接进行绑定即可
this.saveGoodsDiyTypeRelation(voList.get(0), id);
}else{ //集合长度大于1 说明数据库中的自定义分类有重复,需要根据它的上级分类去确定唯一值
for (int i = 0; i < voList.size(); i++) {
String sb = this.getDiyTypes(voList.get(i).getId(),new StringBuffer());
if(sb.equals(diyTypes)){//判断导入的自定义分类跟拼接的自定义分类相同的话,进行绑定
this.saveGoodsDiyTypeRelation(voList.get(i), id);
break;
if (voList != null && voList.size()> 0) {
//如果集合长度为1,则说明数据库中对应的自定义分类只有一个,直接进行绑定即可
if(1 == voList.size()){
this.saveGoodsDiyTypeRelation(voList.get(0), id);
}else{
//集合长度大于1 说明数据库中的自定义分类有重复,需要根据它的上级分类去确定唯一值
//是否与系统内自定义分类匹配
boolean flag = true;
for (int i = 0; i < voList.size(); i++) {
String sb = this.getDiyTypes(voList.get(i).getId(),new StringBuffer());
if(sb.equals(diyTypes)){//判断导入的自定义分类跟拼接的自定义分类相同的话,进行绑定
this.saveGoodsDiyTypeRelation(voList.get(i), id);
flag = false;
break;
}
}
if (flag) {
//最终未匹配自定义分类
this.saveGoodsDiyTypeRelation(buildDiyType(GoodsTypeEnum.getEnumByCode(type)), id);
}
}
} else {
this.saveGoodsDiyTypeRelation(buildDiyType(GoodsTypeEnum.getEnumByCode(type)), id);
}
}
});
return true;
}
private DiyType buildDiyType(GoodsTypeEnum type) {
DiyType diyType = new DiyType();
//技工教育教材分类标签,因为前端查询写的是固定值243,所以使用固定值
switch (type) {
case JGJY:
diyType.setId(243);
diyType.setCode("01");
break;
case ZYPX:
diyType.setId(288);
diyType.setCode("02");
break;
case ZYNL:
diyType.setId(10384);
diyType.setCode("04");
break;
case JCK: case XTCK:
diyType.setId(432);
diyType.setCode("03");
break;
default:
throw new BaseException("导入分类不存在");
}
return diyType;
}
public String getDiyTypes(Integer diyTypeId, StringBuffer sb){
......
......@@ -570,6 +570,8 @@ public class PhyResourceServiceImpl extends BaseModelServiceImpl<PhyResource, St
// 结果集
ImportPhyResourceResultVo result = new ImportPhyResourceResultVo();
List<ImportPhyResourceExcelVo> error = new ArrayList<ImportPhyResourceExcelVo>();
List<String> goodsIds = new ArrayList<>();
List<Integer> lables = formatLable(type);
// 解析Excel文件
try {
importPhyResourceExcelVos = ExcelUtil.importExcel(file.getInputStream(),
......@@ -598,6 +600,9 @@ public class PhyResourceServiceImpl extends BaseModelServiceImpl<PhyResource, St
"否".equals(phy.getCountryStatus()) ? "0" : "1");
phy.setCreateTime(new Date());
this.updateByPrimaryKey(phy);
goodsIds.add(phy.getId());
diyTypeManage.saveDiyTypes(goodsIds, type, importPhyResourceExcelVo.getDiyTypes());
labelManage.updateLabels(goodsIds, lables);
}
return;
}
......@@ -618,12 +623,9 @@ public class PhyResourceServiceImpl extends BaseModelServiceImpl<PhyResource, St
phyResource.setType(type);
try {
this.insertSelective(phyResource);
List<String> goodsIds = new ArrayList<String>();
List<Integer> diyTypeIds = new ArrayList<Integer>();
goodsIds.add(phyResource.getId());
diyTypeIds.add(Integer.parseInt(diytypeId));
diyTypeManage.saveDiyTypes(goodsIds, importPhyResourceExcelVo.getDiyTypes());
List<Integer> lables = formatLable(type);
diyTypeManage.saveDiyTypes(goodsIds, type, importPhyResourceExcelVo.getDiyTypes());
labelManage.updateLabels(goodsIds, lables);
} catch (Exception e) {
log.error("excel导入异常" + e.getMessage() + phyResource);
......
......@@ -22,7 +22,7 @@
<swagger2.version>2.7.0</swagger2.version>
<druid.version>1.0.19</druid.version>
<mybatis.version>1.3.1</mybatis.version>
<fastJson.version>1.2.49</fastJson.version>
<fastJson.version>1.2.83</fastJson.version>
<baishi.version>1.0.0</baishi.version>
<codingapi.txlcn.version>5.0.0.beta</codingapi.txlcn.version>
</properties>
......
......@@ -2,12 +2,14 @@ package com.zrqx.core.enums.resource.goods;
import com.zrqx.core.enums.interfaces.EnumsInterface;
import java.util.Arrays;
import java.util.HashMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 商品分类枚举
*
* @author lpf
* @date 2018年7月11日上午10:48:39
*/
......@@ -17,123 +19,153 @@ import java.util.stream.Stream;
* 实体商品起始位1-
* 电子商品起始位2-
* 套餐起始位 3-
*
* @author lpf
* @date 2018年7月11日上午10:48:39
*/
public enum GoodsTypeEnum implements EnumsInterface<String>{
/** 技工教育教材 */
JGJY(GoodsTypeStartEnum.ENTITY.getCode()+ 1, "技工教育教材"),
/** 职业培训教材 */
ZYPX(GoodsTypeStartEnum.ENTITY.getCode() + 2, "职业培训教材"),
/** 教参库 */
JCK(GoodsTypeStartEnum.ENTITY.getCode() + 3, "教参库"),
/** 习题册库 */
XTCK(GoodsTypeStartEnum.ENTITY.getCode() + 4, "习题册库"),
/** 职业能力提升 */
ZYNL(GoodsTypeStartEnum.ENTITY.getCode() + 5, "职业能立提升教材"),
/** pdf */
PDF(GoodsTypeStartEnum.ELECTRONIC.getCode() + 1, "章节试读"),
/** ppt */
PPT(GoodsTypeStartEnum.ELECTRONIC.getCode() + 2, "电子课件"),
/** 视频库 */
VIDEO(GoodsTypeStartEnum.ELECTRONIC.getCode() + 3, "素材"),
/** 音频库 */
AUDIO(GoodsTypeStartEnum.ELECTRONIC.getCode() + 4, "试卷"),
/** 图形/图像库 */
IMAGE(GoodsTypeStartEnum.ELECTRONIC.getCode() + 5, "电子书"),
/** 文本库 */
TEXT(GoodsTypeStartEnum.ELECTRONIC.getCode() + 6, "电子教案"),
/** 微课 视频 */
VIDEO_SMALL(GoodsTypeStartEnum.ELECTRONIC.getCode() + 7, "微课视频库"),
public enum GoodsTypeEnum implements EnumsInterface<String> {
/**
* 技工教育教材
*/
JGJY(GoodsTypeStartEnum.ENTITY.getCode() + 1, "技工教育教材"),
/**
* 职业培训教材
*/
ZYPX(GoodsTypeStartEnum.ENTITY.getCode() + 2, "职业培训教材"),
/**
* 教参库
*/
JCK(GoodsTypeStartEnum.ENTITY.getCode() + 3, "教参库"),
/**
* 习题册库
*/
XTCK(GoodsTypeStartEnum.ENTITY.getCode() + 4, "习题册库"),
/**
* 职业能力提升
*/
ZYNL(GoodsTypeStartEnum.ENTITY.getCode() + 5, "职业能立提升教材"),
/**
* pdf
*/
PDF(GoodsTypeStartEnum.ELECTRONIC.getCode() + 1, "章节试读"),
/**
* ppt
*/
PPT(GoodsTypeStartEnum.ELECTRONIC.getCode() + 2, "电子课件"),
/**
* 视频库
*/
VIDEO(GoodsTypeStartEnum.ELECTRONIC.getCode() + 3, "素材"),
/**
* 音频库
*/
AUDIO(GoodsTypeStartEnum.ELECTRONIC.getCode() + 4, "试卷"),
/**
* 图形/图像库
*/
IMAGE(GoodsTypeStartEnum.ELECTRONIC.getCode() + 5, "电子书"),
/**
* 文本库
*/
TEXT(GoodsTypeStartEnum.ELECTRONIC.getCode() + 6, "电子教案"),
/**
* 微课 视频
*/
VIDEO_SMALL(GoodsTypeStartEnum.ELECTRONIC.getCode() + 7, "微课视频库"),
// /** 网页课件 */
// COURSEWARE(GoodsTypeStartEnum.ELECTRONIC.getCode() + 8, "网页课件库"),
/** 动画库 */
VIDEO_ANIMATION(GoodsTypeStartEnum.ELECTRONIC.getCode() + 9, "资料"),
/**
* 动画库
*/
VIDEO_ANIMATION(GoodsTypeStartEnum.ELECTRONIC.getCode() + 9, "资料"),
// /** 虚拟仿真库 */
// VIRTUAL_REALITY(GoodsTypeStartEnum.ELECTRONIC.getCode() + 10, "虚拟仿真库"),
// /** 富媒体库 */
// RICH_MEDIA(GoodsTypeStartEnum.ELECTRONIC.getCode() + 11, "富媒体库"),
/** 其他库 */
OTHER(GoodsTypeStartEnum.ELECTRONIC.getCode() + 12, "参考答案");
private final String code;
private final String name;
private static final HashMap<String,String> MAP = new HashMap<String,String>();
static {
stream().forEach(e -> {
MAP.put(e.code, e.name);
});
}
private GoodsTypeEnum(String code, String name) {
this.code = code;
this.name = name;
}
/**
*
* @return
* @author lpf
* @date: 2019年3月18日 下午5:05:16
*/
public static Stream<GoodsTypeEnum> stream(){
return Stream.of(values());
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
public static HashMap<String, String> getMap() {
return MAP;
}
/**
* 获取关联资源类型map
* @param sign
* @return
* @author lw
* @date: 2019年4月28日 下午2:07:12
*/
public static HashMap<String, String> getRelationResourceTypeMap(Integer sign) {
if(sign == 1){
HashMap<String, String> result = (HashMap<String, String>) MAP.entrySet().stream()
.filter(map -> !(JGJY.code.equals(map.getKey()) || ZYPX.code.equals(map.getKey())))
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
return result;
} else if(sign == 2){
HashMap<String, String> result = (HashMap<String, String>) MAP.entrySet().stream()
.filter(map -> !(JGJY.code.equals(map.getKey()) || ZYPX.code.equals(map.getKey()) || JCK.code.equals(map.getKey())))
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
return result;
} else {
HashMap<String, String> result = (HashMap<String, String>) MAP.entrySet().stream()
.filter(map -> !(JGJY.code.equals(map.getKey()) || ZYPX.code.equals(map.getKey()) || XTCK.code.equals(map.getKey())))
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
return result;
}
}
/**
* 通过ID获取中文名称
* @param code
* @return
*/
public static String getName(String code) {
return stream().filter(e -> e.code.equals(code)).findFirst().map(e -> e.name).orElse(null);
}
/**
* 其他库
*/
OTHER(GoodsTypeStartEnum.ELECTRONIC.getCode() + 12, "参考答案");
private final String code;
private final String name;
private static final HashMap<String, String> MAP = new HashMap<String, String>();
static {
stream().forEach(e -> {
MAP.put(e.code, e.name);
});
}
private GoodsTypeEnum(String code, String name) {
this.code = code;
this.name = name;
}
/**
* @return
* @author lpf
* @date: 2019年3月18日 下午5:05:16
*/
public static Stream<GoodsTypeEnum> stream() {
return Stream.of(values());
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
public static HashMap<String, String> getMap() {
return MAP;
}
/**
* 获取关联资源类型map
*
* @param sign
* @return
* @author lw
* @date: 2019年4月28日 下午2:07:12
*/
public static HashMap<String, String> getRelationResourceTypeMap(Integer sign) {
if (sign == 1) {
HashMap<String, String> result = (HashMap<String, String>) MAP.entrySet().stream().filter(map -> !(JGJY.code.equals(map.getKey()) || ZYPX.code.equals(map.getKey()))).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
return result;
} else if (sign == 2) {
HashMap<String, String> result = (HashMap<String, String>) MAP.entrySet().stream().filter(map -> !(JGJY.code.equals(map.getKey()) || ZYPX.code.equals(map.getKey()) || JCK.code.equals(map.getKey()))).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
return result;
} else {
HashMap<String, String> result = (HashMap<String, String>) MAP.entrySet().stream().filter(map -> !(JGJY.code.equals(map.getKey()) || ZYPX.code.equals(map.getKey()) || XTCK.code.equals(map.getKey()))).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
return result;
}
}
/**
* 通过ID获取中文名称
*
* @param code
* @return
*/
public static String getName(String code) {
return stream().filter(e -> e.code.equals(code)).findFirst().map(e -> e.name).orElse(null);
}
public static GoodsTypeEnum getEnumByCode(String code) {
return Arrays.stream(values())
.filter(e -> e.code.equals(code))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Ebook Status " + code + " is not exist"));
}
}
......@@ -232,7 +232,7 @@ public class ResourceServiceImpl extends BaseModelServiceImpl<PhyResource, Strin
// 高级搜索
.append(StringUtils.isEmpty(query.getAuthor()) ? "" : " AND ( author : " + query.getAuthor() + ")")
.append(StringUtils.isEmpty(query.getPublisher()) ? "" : " AND ( publisher : " + query.getPublisher() + "* ) ")
.append(StringUtils.isEmpty(query.getName()) ? "" : " AND ( name : " + query.getName() + ")")
.append(StringUtils.isEmpty(query.getName()) ? "" : " AND ( name : *" + query.getName() + "* )")
.append(StringUtils.isEmpty(query.getIsbn()) ? "" : " AND ( isbn : " + query.getIsbn() + "* ) ")
.append(StringUtils.isEmpty(query.getBookSeries()) ? "" : " AND ( bookSeries : " + query.getBookSeries() + ")")
.append(StringUtils.isEmpty(query.getRevision()) ? "" : " AND ( revision : " + query.getRevision() + "* ) ")
......
......@@ -143,7 +143,7 @@
<showWarnings>false</showWarnings>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
<bootclasspath>${JAVA_HOME}/jre/lib/rt.jar${path.separator}${JAVA_HOME}/jre/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论