diff --git a/pom.xml b/pom.xml index 6605663..7804504 100644 --- a/pom.xml +++ b/pom.xml @@ -9,8 +9,8 @@ com.lodop - dome - 0.0.1-SNAPSHOT + XJ-Lodop + 1.0 lodop-dome Demo project for Spring Boot diff --git a/src/main/java/com/lodop/dome/Controller/LodopController.java b/src/main/java/com/lodop/dome/Controller/LodopController.java index 1a92f8d..7421364 100644 --- a/src/main/java/com/lodop/dome/Controller/LodopController.java +++ b/src/main/java/com/lodop/dome/Controller/LodopController.java @@ -1,10 +1,10 @@ package com.lodop.dome.Controller; -import com.lodop.dome.common.utils.R; +import com.lodop.dome.common.util.R; import com.lodop.dome.data.ClodopAssemblyDetailData; import com.lodop.dome.data.ClodopTemplateHeaderData; -import com.lodop.dome.seriver.ClodopAssemblyService; -import com.lodop.dome.seriver.ClodopTemplateService; +import com.lodop.dome.service.ClodopAssemblyService; +import com.lodop.dome.service.ClodopTemplateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -12,13 +12,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; -import java.util.Map; /** * @author ZuoWen * @version 1.0.0 * @ClassName LodopController.java - * @Description TODO + * @Description * @createTime 2022年03月16日 */ @RestController diff --git a/src/main/java/com/lodop/dome/common/exception/XJException.java b/src/main/java/com/lodop/dome/common/exception/XJException.java new file mode 100644 index 0000000..b4147e8 --- /dev/null +++ b/src/main/java/com/lodop/dome/common/exception/XJException.java @@ -0,0 +1,55 @@ + + +package com.lodop.dome.common.exception; + +/** + * 自定义异常 + * + * + */ +public class XJException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private String msg; + private int code = 500; + + public XJException(String msg) { + super(msg); + this.msg = msg; + } + + public XJException(String msg, Throwable e) { + super(msg, e); + this.msg = msg; + } + + public XJException(String msg, int code) { + super(msg); + this.msg = msg; + this.code = code; + } + + public XJException(String msg, int code, Throwable e) { + super(msg, e); + this.msg = msg; + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + +} diff --git a/src/main/java/com/lodop/dome/common/exception/XJExceptionHandler.java b/src/main/java/com/lodop/dome/common/exception/XJExceptionHandler.java new file mode 100644 index 0000000..1d9443d --- /dev/null +++ b/src/main/java/com/lodop/dome/common/exception/XJExceptionHandler.java @@ -0,0 +1,60 @@ + + +package com.lodop.dome.common.exception; + +import com.lodop.dome.common.util.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.NoHandlerFoundException; + +/** + * 异常处理器 + * + * + */ +@RestControllerAdvice +public class XJExceptionHandler { + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 处理自定义异常 + */ + @ExceptionHandler(XJException.class) + public R handleRRException(XJException e){ + R r = new R(); + r.put("code", e.getCode()); + r.put("msg", e.getMessage()); + e.printStackTrace(); + return r; + } + + @ExceptionHandler(NoHandlerFoundException.class) + public R handlerNoFoundException(Exception e) { + //logger.error(e.getMessage(), e); + e.printStackTrace(); + return R.error(404, "路径不存在,请检查路径是否正确"); + } + + @ExceptionHandler(DuplicateKeyException.class) + public R handleDuplicateKeyException(DuplicateKeyException e){ + //logger.error(e.getMessage(), e); + String message = ""; + if(e.getMessage().indexOf("sys_user")>-1){ + message = "用户名不允许重复!"; + }else { + message = "数据库存已在该记录!"; + } + return R.error(message); + } + + + @ExceptionHandler(Exception.class) + public R handleException(Exception e){ + //logger.error(e.getMessage(), e); + e.printStackTrace(); + return R.error(e.getMessage()); + } +} diff --git a/src/main/java/com/lodop/dome/common/utils/R.java b/src/main/java/com/lodop/dome/common/util/R.java similarity index 96% rename from src/main/java/com/lodop/dome/common/utils/R.java rename to src/main/java/com/lodop/dome/common/util/R.java index ad89342..499c620 100644 --- a/src/main/java/com/lodop/dome/common/utils/R.java +++ b/src/main/java/com/lodop/dome/common/util/R.java @@ -1,6 +1,6 @@ -package com.lodop.dome.common.utils; +package com.lodop.dome.common.util; import org.apache.http.HttpStatus; diff --git a/src/main/java/com/lodop/dome/seriver/ClodopAssemblyService.java b/src/main/java/com/lodop/dome/service/ClodopAssemblyService.java similarity index 96% rename from src/main/java/com/lodop/dome/seriver/ClodopAssemblyService.java rename to src/main/java/com/lodop/dome/service/ClodopAssemblyService.java index 9244e54..633eda1 100644 --- a/src/main/java/com/lodop/dome/seriver/ClodopAssemblyService.java +++ b/src/main/java/com/lodop/dome/service/ClodopAssemblyService.java @@ -1,6 +1,6 @@ -package com.lodop.dome.seriver; +package com.lodop.dome.service; -import com.lodop.dome.common.utils.R; +import com.lodop.dome.common.util.R; import com.lodop.dome.data.ClodopAssemblyDetailData; import com.lodop.dome.data.ClodopAssemblyHeaderData; diff --git a/src/main/java/com/lodop/dome/seriver/ClodopTemplateService.java b/src/main/java/com/lodop/dome/service/ClodopTemplateService.java similarity index 94% rename from src/main/java/com/lodop/dome/seriver/ClodopTemplateService.java rename to src/main/java/com/lodop/dome/service/ClodopTemplateService.java index 45142b0..6ebdbe3 100644 --- a/src/main/java/com/lodop/dome/seriver/ClodopTemplateService.java +++ b/src/main/java/com/lodop/dome/service/ClodopTemplateService.java @@ -1,10 +1,9 @@ -package com.lodop.dome.seriver; +package com.lodop.dome.service; -import com.lodop.dome.common.utils.R; +import com.lodop.dome.common.util.R; import com.lodop.dome.data.ClodopTemplateHeaderData; import java.util.List; -import java.util.Map; /** * @author ZuoWen diff --git a/src/main/java/com/lodop/dome/seriver/impl/ClodopAssemblyServiceImpl.java b/src/main/java/com/lodop/dome/service/impl/ClodopAssemblyServiceImpl.java similarity index 97% rename from src/main/java/com/lodop/dome/seriver/impl/ClodopAssemblyServiceImpl.java rename to src/main/java/com/lodop/dome/service/impl/ClodopAssemblyServiceImpl.java index deb983f..b9925f4 100644 --- a/src/main/java/com/lodop/dome/seriver/impl/ClodopAssemblyServiceImpl.java +++ b/src/main/java/com/lodop/dome/service/impl/ClodopAssemblyServiceImpl.java @@ -1,7 +1,7 @@ -package com.lodop.dome.seriver.impl; +package com.lodop.dome.service.impl; import com.alibaba.fastjson.JSON; -import com.lodop.dome.common.utils.R; +import com.lodop.dome.common.util.R; import com.lodop.dome.dao.ClodopAssemblyDetailMapper; import com.lodop.dome.dao.ClodopAssemblyHeaderMapper; import com.lodop.dome.dao.ClodopBarCodeMapper; @@ -10,7 +10,7 @@ import com.lodop.dome.data.ClodopAssemblyDetailData; import com.lodop.dome.data.ClodopAssemblyHeaderData; import com.lodop.dome.data.ClodopBarCodeData; import com.lodop.dome.data.ClodopColumnsAttrData; -import com.lodop.dome.seriver.ClodopAssemblyService; +import com.lodop.dome.service.ClodopAssemblyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/lodop/dome/seriver/impl/ClodopTemplateServiceImpl.java b/src/main/java/com/lodop/dome/service/impl/ClodopTemplateServiceImpl.java similarity index 55% rename from src/main/java/com/lodop/dome/seriver/impl/ClodopTemplateServiceImpl.java rename to src/main/java/com/lodop/dome/service/impl/ClodopTemplateServiceImpl.java index 8c9b375..4bf9e6b 100644 --- a/src/main/java/com/lodop/dome/seriver/impl/ClodopTemplateServiceImpl.java +++ b/src/main/java/com/lodop/dome/service/impl/ClodopTemplateServiceImpl.java @@ -1,18 +1,16 @@ -package com.lodop.dome.seriver.impl; +package com.lodop.dome.service.impl; -import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; -import com.lodop.dome.common.utils.R; +import com.lodop.dome.common.util.R; import com.lodop.dome.dao.*; import com.lodop.dome.data.*; -import com.lodop.dome.seriver.ClodopTemplateService; +import com.lodop.dome.service.ClodopTemplateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** @@ -44,22 +42,14 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { // 查询模板主记录信息 List templateHeaderList = clodopTemplateHeaderMapper.selectGetList(record); // 循环遍历主记录 取明细记录 - for (ClodopTemplateHeaderData templateHeaderData: templateHeaderList) { + for (ClodopTemplateHeaderData templateHeaderData : templateHeaderList) { ClodopTemplateDetailData queryTemplateDetail = new ClodopTemplateDetailData(); queryTemplateDetail.setSupplierId(templateHeaderData.getId()); List templateDetailList = clodopTemplateDetailMapper.getTemplateDetailList(queryTemplateDetail); // 根据明细记录 取样式信息 - for (ClodopTemplateDetailData templateDetailData: templateDetailList) { -// 判断是否为文本或二维码 - if(templateDetailData.getType().equals("braid-txt") || templateDetailData.getType().equals("bar-code")){ -// 获取文本或二维码样式 - ClodopStyleData queryStyleData = new ClodopStyleData(); - queryStyleData.setSupplierId(templateDetailData.getId()); - ClodopStyleData clodopStyleData = clodopStyleMapper.selectByPrimaryKey(queryStyleData); -// 将样式保存到明细记录中 - templateDetailData.setStyle(clodopStyleData); -// 判断是否为table - }else if(templateDetailData.getType().equals("braid-table")){ + for (ClodopTemplateDetailData templateDetailData : templateDetailList) { + // 判断是否为table + if (templateDetailData.getType().equals("braid-table")) { // 根据明细记录id 获取table 参数信息 ClodopTableColumnsData queryColumns = new ClodopTableColumnsData(); queryColumns.setSupplierId(templateDetailData.getId()); @@ -68,7 +58,7 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { templateDetailData.setColumns(resultTableColumnsList); // 获取字段信息 List selectColList = new ArrayList<>(); - for (ClodopTableColumnsData tableColumnsData: resultTableColumnsList) { + for (ClodopTableColumnsData tableColumnsData : resultTableColumnsList) { selectColList.add(tableColumnsData.getName()); } templateDetailData.setSelectCol(selectColList); @@ -90,6 +80,15 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { queryStyle.setSite(templateDetailData.getSite()); ClodopStyleData clodopStyleData = clodopStyleMapper.selectByPrimaryKey(queryStyle); templateDetailData.setStyle(clodopStyleData); + // 判断是否为文本或二维码 + }else{ +// 获取文本或二维码样式 + ClodopStyleData queryStyleData = new ClodopStyleData(); + queryStyleData.setSupplierId(templateDetailData.getId()); + ClodopStyleData clodopStyleData = clodopStyleMapper.selectByPrimaryKey(queryStyleData); +// 将样式保存到明细记录中 + templateDetailData.setStyle(clodopStyleData); + } } templateHeaderData.setTempItems(templateDetailList); @@ -101,7 +100,7 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { @Override public R saveClodopTemplate(ClodopTemplateHeaderData record) { clodopTemplateHeaderMapper.insertSelective(record); - return R.ok().put("msg","操作成功!"); + return R.ok().put("msg", "操作成功!"); } @Override @@ -115,14 +114,14 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { List templateDetailList = clodopTemplateDetailMapper.getTemplateDetailList(queryTemplateDetail); // 删除明细记录 clodopTemplateDetailMapper.deleteTemplateDetail(queryTemplateDetail); - for (ClodopTemplateDetailData templateDetailData: templateDetailList) { + for (ClodopTemplateDetailData templateDetailData : templateDetailList) { // 删除样式信息 ClodopStyleData queryStyle = new ClodopStyleData(); queryStyle.setSupplierId(templateDetailData.getId()); queryStyle.setSite(templateDetailData.getSite()); clodopStyleMapper.deleteByPrimaryKey(queryStyle); // 判断是否为table - if(templateDetailData.getType().equals("braid-table")){ + if (templateDetailData.getType().equals("braid-table")) { // 删除字段信息 ClodopTableColumnsData queryColumns = new ClodopTableColumnsData(); queryColumns.setSupplierId(templateDetailData.getId()); @@ -140,16 +139,16 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { clodopTableValueMapper.deleteByPrimaryKey(queryTableValue); } } - return R.ok().put("msg","操作成功!"); + return R.ok().put("msg", "操作成功!"); } @Override @Transactional public R saveClodopTemplateHeaders(ClodopTemplateHeaderData record) { // 判断为模板保存 还是复制新增 - if(record.getInsertFlag() != null && record.getInsertFlag()){ + if (record.getInsertFlag() != null && record.getInsertFlag()) { clodopTemplateHeaderMapper.insertSelective(record); - }else { + } else { clodopTemplateHeaderMapper.updateByPrimaryKeySelective(record); ClodopTemplateDetailData delTemplateDetail = new ClodopTemplateDetailData(); delTemplateDetail.setSupplierId(record.getId()); @@ -158,58 +157,98 @@ public class ClodopTemplateServiceImpl implements ClodopTemplateService { // 获取新增明细信息 List result = record.getTempItems(); // 根据类型新增记录信息 - for (ClodopTemplateDetailData tempItemDetail: result) { - if(tempItemDetail.getType().equals("braid-txt") || tempItemDetail.getType().equals("bar-code")){ -// 新增明细信息 - tempItemDetail.setDefaultValue(tempItemDetail.getDefaultValue()); - tempItemDetail.setSupplierId(record.getId()); - clodopTemplateDetailMapper.insertSelective(tempItemDetail); - int supplierId = tempItemDetail.getId(); -// 新增样式信息 - ClodopStyleData style = tempItemDetail.getStyle(); - style.setSupplierId(supplierId); - clodopStyleMapper.insertSelective(style); -// 判断是否为table - }else if(tempItemDetail.getType().equals("braid-table")){ -// 设置列名及属性 -// 获取table 字段名及值 - List columns = tempItemDetail.getColumns(); -// 获取table 列信息 - List columnsAttrList = tempItemDetail.getColumnsAttr(); -// 字段名 -// List selectColList = tempItemDetail.getSelectCol(); -// 获取默认值信息 - Object defaultValue = tempItemDetail.getDefaultValue(); - // 新增明细记录信息 - tempItemDetail.setDefaultValue(""); - tempItemDetail.setSupplierId(record.getId()); - clodopTemplateDetailMapper.insertSelective(tempItemDetail); - int supplierId = tempItemDetail.getId(); -// 新增table 参数名及字段 - for (ClodopTableColumnsData column : columns) { - column.setSupplierId(supplierId); - clodopTableColumnsMapper.insertSelective(column); - } -// 新增table 列信息 -// for (ClodopColumnsAttrData clodopColumnsAttrData : columnsAttrList) { -// clodopColumnsAttrData.setSupplierId(supplierId); -// clodopColumnsAttrMapper.insertSelective(clodopColumnsAttrData); -// } -// 新增默认值信息 - if (defaultValue instanceof ArrayList) { - for (Object o : (List) defaultValue) { - ObjectMapper objectMapper = new ObjectMapper(); - ClodopTableValueData tableValueData = objectMapper.convertValue(o, ClodopTableValueData.class); - tableValueData.setAssemblyId(supplierId); - clodopTableValueMapper.insertSelective(tableValueData); + for (ClodopTemplateDetailData tempItemDetail : result) { + switch (tempItemDetail.getType()) { + case "braid-table": + //获取table 字段名及值 + List columns = tempItemDetail.getColumns(); + //获取table 列信息 + List columnsAttrList = tempItemDetail.getColumnsAttr(); + //获取默认值信息 + Object defaultValue = tempItemDetail.getDefaultValue(); + // 新增明细记录信息 + tempItemDetail.setDefaultValue(""); + tempItemDetail.setSupplierId(record.getId()); + clodopTemplateDetailMapper.insertSelective(tempItemDetail); + int supplierId = tempItemDetail.getId(); + //新增table 参数名及字段 + for (ClodopTableColumnsData column : columns) { + column.setSupplierId(supplierId); + clodopTableColumnsMapper.insertSelective(column); } - } -// 新增table样式信息 - ClodopStyleData style = tempItemDetail.getStyle(); - style.setSupplierId(supplierId); - clodopStyleMapper.insertSelective(style); + //新增默认值信息 + if (defaultValue instanceof ArrayList) { + for (Object o : (List) defaultValue) { + ObjectMapper objectMapper = new ObjectMapper(); + ClodopTableValueData tableValueData = objectMapper.convertValue(o, ClodopTableValueData.class); + tableValueData.setAssemblyId(supplierId); + clodopTableValueMapper.insertSelective(tableValueData); + } + } + //新增table样式信息 + ClodopStyleData style = tempItemDetail.getStyle(); + style.setSupplierId(supplierId); + clodopStyleMapper.insertSelective(style); + break; + default: + //新增明细信息 + tempItemDetail.setDefaultValue(tempItemDetail.getDefaultValue()); + tempItemDetail.setSupplierId(record.getId()); + clodopTemplateDetailMapper.insertSelective(tempItemDetail); + int supplierIdD = tempItemDetail.getId(); + // 新增样式信息 + ClodopStyleData styleD = tempItemDetail.getStyle(); + styleD.setSupplierId(supplierIdD); + clodopStyleMapper.insertSelective(styleD); + } +// if (tempItemDetail.getType().equals("braid-txt") || tempItemDetail.getType().equals("bar-code")) { +// //新增明细信息 +// tempItemDetail.setDefaultValue(tempItemDetail.getDefaultValue()); +// tempItemDetail.setSupplierId(record.getId()); +// clodopTemplateDetailMapper.insertSelective(tempItemDetail); +// int supplierId = tempItemDetail.getId(); +// // 新增样式信息 +// ClodopStyleData style = tempItemDetail.getStyle(); +// style.setSupplierId(supplierId); +// clodopStyleMapper.insertSelective(style); +// // 判断是否为table +// } else +// if (tempItemDetail.getType().equals("braid-table")) { +// // 设置列名及属性 +// // 获取table 字段名及值 +// List columns = tempItemDetail.getColumns(); +// // 获取table 列信息 +// List columnsAttrList = tempItemDetail.getColumnsAttr(); +// // 字段名 +// // 获取默认值信息 +// Object defaultValue = tempItemDetail.getDefaultValue(); +// // 新增明细记录信息 +// tempItemDetail.setDefaultValue(""); +// tempItemDetail.setSupplierId(record.getId()); +// clodopTemplateDetailMapper.insertSelective(tempItemDetail); +// int supplierId = tempItemDetail.getId(); +// // 新增table 参数名及字段 +// for (ClodopTableColumnsData column : columns) { +// column.setSupplierId(supplierId); +// clodopTableColumnsMapper.insertSelective(column); +// } +// +// // 新增默认值信息 +// if (defaultValue instanceof ArrayList) { +// for (Object o : (List) defaultValue) { +// ObjectMapper objectMapper = new ObjectMapper(); +// ClodopTableValueData tableValueData = objectMapper.convertValue(o, ClodopTableValueData.class); +// tableValueData.setAssemblyId(supplierId); +// clodopTableValueMapper.insertSelective(tableValueData); +// } +// } +// // 新增table样式信息 +// ClodopStyleData style = tempItemDetail.getStyle(); +// style.setSupplierId(supplierId); +// clodopStyleMapper.insertSelective(style); +// } } - return R.ok().put("msg" ,"操作成功!"); + return R.ok().put("msg", "操作成功!"); } }