From dc5fbc4c6e7e44d6ea248bcdd7c2616909a497de Mon Sep 17 00:00:00 2001 From: qiaohui <924337501@qq.com> Date: Mon, 9 Sep 2024 23:41:40 +0800 Subject: [PATCH] =?UTF-8?q?14.=E7=BB=99=E5=BC=80=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=85=B3=E8=81=94=E8=A1=A8--?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=B0=E5=BD=95=E8=A1=A8=EF=BC=8C=E5=AD=98?= =?UTF-8?q?=E4=B8=A4=E6=9D=A1=E6=95=B0=E6=8D=AE=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=89=8D=E5=92=8C=E4=BF=AE=E6=94=B9=E5=90=8E=E7=9A=84=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E8=AE=B0=E5=BD=95=E4=BF=AE=E6=94=B9=E4=BA=BA?= =?UTF-8?q?=E5=A7=93=E5=90=8D=EF=BC=8Cid=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LogisticsOrderController.java | 32 +++++++ .../logisticsorder/entity/LogisticsOrder.java | 32 +++++++ .../entity/LogisticsOrderChangeLog.java | 39 ++++++++ .../mapper/LogisticsOrderMapper.java | 19 ++++ .../service/LogisticsOrderService.java | 19 ++++ .../impl/LogisticsOrderServiceImpl.java | 42 +++++++++ .../core/logisticsorder/vo/CompareField.java | 18 ++++ .../logisticsorder/vo/CompareObjectUtils.java | 89 +++++++++++++++++++ .../core/logisticsorder/vo/DiffAttr.java | 47 ++++++++++ .../vo/LogisticsOrderChangeLogVo.java | 32 +++++++ .../resources/mapper/LogisticsOrderMapper.xml | 13 +++ 11 files changed, 382 insertions(+) create mode 100644 hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrderChangeLog.java create mode 100644 hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareField.java create mode 100644 hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareObjectUtils.java create mode 100644 hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/DiffAttr.java create mode 100644 hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/LogisticsOrderChangeLogVo.java diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java index f2a8cd46..4f1d3617 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java @@ -5,10 +5,13 @@ import cc.hiver.core.common.utils.ResultUtil; import cc.hiver.core.common.vo.Result; import cc.hiver.core.logisticsaddressbook.service.LogisticsAddressBookService; import cc.hiver.core.logisticsorder.entity.LogisticsOrder; +import cc.hiver.core.logisticsorder.entity.LogisticsOrderChangeLog; import cc.hiver.core.logisticsorder.service.LogisticsOrderService; +import cc.hiver.core.logisticsorder.vo.LogisticsOrderChangeLogVo; import cc.hiver.core.logisticsorder.vo.LogisticsOrderQueryVo; import cc.hiver.core.utils.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.gson.Gson; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -18,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.Date; +import java.util.List; /** * 物流订单控制器 @@ -78,8 +82,23 @@ public class LogisticsOrderController { if (StringUtils.isEmpty(logisticsOrder.getId())) { return ResultUtil.error("订单id不能为空!"); } + //先查询出旧的数据 + LogisticsOrder oldLogisticsOrder = logisticsOrderService.getById(logisticsOrder.getId()); final boolean b = logisticsOrderService.saveOrUpdate(logisticsOrder); if (b) { + //如果更新成功,把修改记录保存一下 + Gson gson = new Gson(); + LogisticsOrderChangeLog logisticsOrderChangeLog = new LogisticsOrderChangeLog(); + logisticsOrderChangeLog.setOldData(gson.toJson(oldLogisticsOrder)); + logisticsOrderChangeLog.setNewData(gson.toJson(logisticsOrder)); + logisticsOrderChangeLog.setOrderId(logisticsOrder.getId()); + logisticsOrderChangeLog.setCreateBy(logisticsOrder.getCreateBy()); + logisticsOrderChangeLog.setCreateByName(logisticsOrder.getCreateByName()); + logisticsOrderChangeLog.setCreateTime(new Date()); + int status = logisticsOrderService.saveLogisticsOrderChangeLog(logisticsOrderChangeLog); + if(status == 0){ + return ResultUtil.error("保存修改记录失败!"); + } return ResultUtil.success("保存成功!"); } else { return ResultUtil.error("保存失败!"); @@ -122,4 +141,17 @@ public class LogisticsOrderController { final IPage result = logisticsOrderService.getLogisticsOrderPageList(logisticsOrderQueryVo); return new ResultUtil>().setData(result); } + + + /** + * 查询订单的修改记录 + * @param + * @return + */ + @RequestMapping(value = "/getLogisticsOrderChangeLog", method = RequestMethod.GET) + @ApiOperation(value = "查询物流订单修改记录") + public Result> getLogisticsOrderChangeLog(String orderId) { + + return new ResultUtil>().setData(logisticsOrderService.getLogisticsOrderChangeLog(orderId)); + } } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java index 86944bf9..aada0b17 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java @@ -1,6 +1,7 @@ package cc.hiver.core.logisticsorder.entity; import cc.hiver.core.base.HiverBaseEntity; +import cc.hiver.core.logisticsorder.vo.CompareField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -23,96 +24,127 @@ public class LogisticsOrder extends HiverBaseEntity { private static final long serialVersionUID = 1L; + @CompareField(name = "操作人姓名") @ApiModelProperty(value = "操作人姓名") private String createByName; + @CompareField(name = "物流公司id") @ApiModelProperty(value = "物流公司id") private String companyId; + @CompareField(name = "物流公司名称") @ApiModelProperty(value = "物流公司名称") private String companyName; + @CompareField(name = "线路id") @ApiModelProperty(value = "线路id") private String circuitId; + @CompareField(name = "线路名称") @ApiModelProperty(value = "线路名称") private String circuitName; + @CompareField(name = "发货人名称") @ApiModelProperty(value = "发货人名称") private String shipperName; + @CompareField(name = "发货人联系方式") @ApiModelProperty(value = "发货人联系方式") private String shipperMobile; + @CompareField(name = "发货地址") @ApiModelProperty(value = "发货地址") private String shipperAddress; + @CompareField(name = "收货人名称") @ApiModelProperty(value = "收货人名称") private String receiverName; + @CompareField(name = "收货人联系方式") @ApiModelProperty(value = "收货人联系方式") private String receiverMobile; + @CompareField(name = "收货地址") @ApiModelProperty(value = "收货地址") private String receiverAddress; + @CompareField(name = "出发站id") @ApiModelProperty(value = "出发站id") private String goStationId; + @CompareField(name = "出发站名称") @ApiModelProperty(value = "出发站名称") private String goStationName; + @CompareField(name = "到达站id") @ApiModelProperty(value = "到达站id") private String arrivalStationId; + @CompareField(name = "到达站名称") @ApiModelProperty(value = "到达站名称") private String arrivalStationName; + @CompareField(name = "货物类型") @ApiModelProperty(value = "重量") private BigDecimal weight; + @CompareField(name = "件数") @ApiModelProperty(value = "件数") private Integer count; + @CompareField(name = "体积") @ApiModelProperty(value = "运费") private BigDecimal freight; + @CompareField(name = "保费") @ApiModelProperty(value = "保费") private BigDecimal premium; + @CompareField(name = "中转费") @ApiModelProperty(value = "中转费") private BigDecimal transitFee; + @CompareField(name = "小费") @ApiModelProperty(value = "小费") private BigDecimal tips; + @CompareField(name = "结算方式") @ApiModelProperty(value = "结算方式(0:现金、1:月付、2:提付)") private String methodOfSettlement; + @CompareField(name = "工本费") @ApiModelProperty(value = "工本费") private BigDecimal cost; + @CompareField(name = "总费用") @ApiModelProperty(value = "总费用") private BigDecimal allCost; + @CompareField(name = "票号") @ApiModelProperty(value = "票号") private String orderNumber; + @CompareField(name = "物体名称") @ApiModelProperty(value = "物体名称") private String objectName; + @CompareField(name = "备注") @ApiModelProperty(value = "备注") private String remark; + @CompareField(name = "收货站人id") @ApiModelProperty(value = "收货站人id") private String receivingUserId; + @CompareField(name = "收货站人姓名") @ApiModelProperty(value = "收货站人姓名") private String receivingUserName; + @CompareField(name = "图片路径") @ApiModelProperty(value = "图片路径") private String imagePath; + @CompareField(name = "代收货款") @ApiModelProperty(value = "代收货款") private String paymentForGoods; diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrderChangeLog.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrderChangeLog.java new file mode 100644 index 00000000..9611e7af --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrderChangeLog.java @@ -0,0 +1,39 @@ +package cc.hiver.core.logisticsorder.entity; + +import cc.hiver.core.base.HiverBaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * 物流中转实体 + * + * @author 王富康 + * @date 2024/8/24 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@ApiModel(value = "物流订单修改记录表") +@TableName(value = "t_logistics_order_change_log", autoResultMap = true) +public class LogisticsOrderChangeLog extends HiverBaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "订单ID") + private String orderId; + + @ApiModelProperty(value = "修改前数据") + private String oldData; + + @ApiModelProperty(value = "修改后数据") + private String newData; + + @ApiModelProperty(value = "修改人姓名") + private String createByName; + + +} diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/mapper/LogisticsOrderMapper.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/mapper/LogisticsOrderMapper.java index 385c7ca9..d5b49dd9 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/mapper/LogisticsOrderMapper.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/mapper/LogisticsOrderMapper.java @@ -1,12 +1,15 @@ package cc.hiver.core.logisticsorder.mapper; import cc.hiver.core.logisticsorder.entity.LogisticsOrder; +import cc.hiver.core.logisticsorder.entity.LogisticsOrderChangeLog; import cc.hiver.core.logisticsorder.vo.LogisticsOrderQueryVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface LogisticsOrderMapper extends BaseMapper { /** @@ -19,4 +22,20 @@ public interface LogisticsOrderMapper extends BaseMapper { * @date 2024/8/24 */ IPage getLogisticsOrderPageList(Page page, @Param("queryParams") LogisticsOrderQueryVo logisticsOrderQueryVo); + + + /** + * + * @param logisticsOrderChangeLog + * @return int + */ + int saveLogisticsOrderChangeLog(LogisticsOrderChangeLog logisticsOrderChangeLog); + + + /** + * 查询物流订单修改记录 + * @param orderId + * @return int + */ + List getLogisticsOrderChangeLog(@Param("orderId") String orderId); } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/LogisticsOrderService.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/LogisticsOrderService.java index a36ee315..75c96ae3 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/LogisticsOrderService.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/LogisticsOrderService.java @@ -1,10 +1,14 @@ package cc.hiver.core.logisticsorder.service; import cc.hiver.core.logisticsorder.entity.LogisticsOrder; +import cc.hiver.core.logisticsorder.entity.LogisticsOrderChangeLog; +import cc.hiver.core.logisticsorder.vo.LogisticsOrderChangeLogVo; import cc.hiver.core.logisticsorder.vo.LogisticsOrderQueryVo; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + public interface LogisticsOrderService extends IService { /** @@ -23,4 +27,19 @@ public interface LogisticsOrderService extends IService { */ LogisticsOrder getLogisticsOrderByCompanyId(LogisticsOrder logisticsOrder); + + /** + * 保存物流订单修改记录 + * @param logisticsOrderChangeLog + * @return int + */ + int saveLogisticsOrderChangeLog(LogisticsOrderChangeLog logisticsOrderChangeLog); + + + /** + * 查询物流订单修改记录 + * @param orderId + * @return int + */ + List getLogisticsOrderChangeLog(String orderId); } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java index 99b2d450..4210d4c4 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java @@ -1,19 +1,27 @@ package cc.hiver.core.logisticsorder.service.impl; import cc.hiver.core.logisticsorder.entity.LogisticsOrder; +import cc.hiver.core.logisticsorder.entity.LogisticsOrderChangeLog; import cc.hiver.core.logisticsorder.mapper.LogisticsOrderMapper; import cc.hiver.core.logisticsorder.service.LogisticsOrderService; +import cc.hiver.core.logisticsorder.vo.CompareObjectUtils; +import cc.hiver.core.logisticsorder.vo.DiffAttr; +import cc.hiver.core.logisticsorder.vo.LogisticsOrderChangeLogVo; import cc.hiver.core.logisticsorder.vo.LogisticsOrderQueryVo; import cc.hiver.core.utils.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.gson.Gson; 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.Date; +import java.util.List; @Service public class LogisticsOrderServiceImpl extends ServiceImpl implements LogisticsOrderService { @@ -55,4 +63,38 @@ public class LogisticsOrderServiceImpl extends ServiceImpl getLogisticsOrderChangeLog(String orderId){ + List list = logisticsOrderMapper.getLogisticsOrderChangeLog(orderId); + List logisticsOrderChangeLogVoList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(list)){ + Gson gson = new Gson(); + for (LogisticsOrderChangeLog logisticsOrderChangeLog : list){ + LogisticsOrderChangeLogVo logisticsOrderChangeLogVo = new LogisticsOrderChangeLogVo(); + LogisticsOrder oldData = gson.fromJson(logisticsOrderChangeLog.getOldData(), LogisticsOrder.class); + LogisticsOrder newData = gson.fromJson(logisticsOrderChangeLog.getNewData(), LogisticsOrder.class); + CompareObjectUtils compareObjectUtils = new CompareObjectUtils<>(); + List diffAttrs = compareObjectUtils.CompareObjWithAnnotation(oldData, newData); + logisticsOrderChangeLogVo.setOrderId(oldData.getId()); + logisticsOrderChangeLogVo.setCreateBy(logisticsOrderChangeLog.getCreateBy()); + logisticsOrderChangeLogVo.setCreateByName(logisticsOrderChangeLog.getCreateByName()); + logisticsOrderChangeLogVo.setCreateTime(logisticsOrderChangeLog.getCreateTime()); + logisticsOrderChangeLogVo.setDiffAttrList(diffAttrs); + logisticsOrderChangeLogVoList.add(logisticsOrderChangeLogVo); + } + } + return logisticsOrderChangeLogVoList; + } } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareField.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareField.java new file mode 100644 index 00000000..4277a0ac --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareField.java @@ -0,0 +1,18 @@ +package cc.hiver.core.logisticsorder.vo; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 对比属性 + * + * @author qiaohui + * @createTime 2024-09-09 22:49:15 + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface CompareField { + String name() default ""; +} diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareObjectUtils.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareObjectUtils.java new file mode 100644 index 00000000..ea101978 --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/CompareObjectUtils.java @@ -0,0 +1,89 @@ +package cc.hiver.core.logisticsorder.vo; + +import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * 比较对象的不同属性值 + * + * @author qiaohui + * @createTime 2024-09-09 22:49:26 + */ +public class CompareObjectUtils { + + public List CompareObjWithAnnotation(Object oldBean, Object newBean) { + + List attrList = new ArrayList<>(); + + T pojo1 = (T) oldBean; + T pojo2 = (T) newBean; + + try { + Class clazz = pojo1.getClass(); + Field[] fields = pojo1.getClass().getDeclaredFields(); + for (Field field : fields) { + boolean hasAnnotion = field.isAnnotationPresent(CompareField.class); + if (!hasAnnotion) { + continue; + } + PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz); + Method getMethod = pd.getReadMethod(); + + Object o1 = getMethod.invoke(pojo1); + Object o2 = getMethod.invoke(pojo2); + if (Objects.isNull(o1) && Objects.isNull(o2)) { + continue; + } + + String oldVal = Objects.nonNull(o1) ? o1.toString() : ""; + String newVal = Objects.nonNull(o2) ? o2.toString() : ""; + + if(isBigDecimal(oldVal) && isBigDecimal(newVal)){ + if(new BigDecimal(oldVal).compareTo(new BigDecimal(newVal)) == 0){ + continue; + } + } + + if (oldVal.equals(newVal)) { + continue; + } + CompareField compareField = field.getAnnotation(CompareField.class); + DiffAttr diffAttr = new DiffAttr(compareField.name(), oldVal, newVal); + attrList.add(diffAttr); + } + } catch (Exception e) { + attrList = null; + } finally { + return attrList; + } + } + + public static boolean isBigDecimal(String str){ + if(str==null || str.trim().length() == 0){ + return false; + } + char[] chars = str.toCharArray(); + int sz = chars.length; + int i = (chars[0] == '-') ? 1 : 0; + if(i == sz) return false; + + if(chars[i] == '.') return false;//除了负号,第一位不能为'小数点' + + boolean radixPoint = false; + for(; i < sz; i++){ + if(chars[i] == '.'){ + if(radixPoint) return false; + radixPoint = true; + }else if(!(chars[i] >= '0' && chars[i] <= '9')){ + return false; + } + } + return true; + } + +} diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/DiffAttr.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/DiffAttr.java new file mode 100644 index 00000000..0af1499d --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/DiffAttr.java @@ -0,0 +1,47 @@ +package cc.hiver.core.logisticsorder.vo; + +import java.io.Serializable; + +/** + * + * @author qiaohui + * @createTime 2024-09-09 22:50:45 + */ +public class DiffAttr implements Serializable { + private String name; + private String oldVal; + private String newVal; + + public DiffAttr() { + } + + public DiffAttr(String name, String oldVal, String newVal) { + this.name = name; + this.oldVal = oldVal; + this.newVal = newVal; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getOldVal() { + return oldVal; + } + + public void setOldVal(String oldVal) { + this.oldVal = oldVal; + } + + public String getNewVal() { + return newVal; + } + + public void setNewVal(String newVal) { + this.newVal = newVal; + } +} diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/LogisticsOrderChangeLogVo.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/LogisticsOrderChangeLogVo.java new file mode 100644 index 00000000..c8bf4d6b --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/vo/LogisticsOrderChangeLogVo.java @@ -0,0 +1,32 @@ +package cc.hiver.core.logisticsorder.vo; + +import cc.hiver.core.base.HiverBaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 返回给前端修改记录 + * + * @author qiaohui + * @date 2024-09-09 22:55:25 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class LogisticsOrderChangeLogVo extends HiverBaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "订单ID") + private String orderId; + + @ApiModelProperty(value = "修改人姓名") + private String createByName; + + @ApiModelProperty(value = "修改内容") + private List diffAttrList; +} diff --git a/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml b/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml index 8b55c911..14c3ab43 100644 --- a/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml +++ b/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml @@ -137,4 +137,17 @@ ORDER BY create_time desc + + + + + insert into t_logistics_order_change_log(id, order_id, old_data, new_data, create_by, create_by_name, create_time) + values (#{id,jdbcType=VARCHAR}, #{orderId,jdbcType=VARCHAR}, #{oldData,jdbcType=VARCHAR}, #{newData,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, + #{createByName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}); + + + + \ No newline at end of file