From 80df72d80c9039adf1d95df0d01376189e56ccc0 Mon Sep 17 00:00:00 2001 From: clunt Date: Thu, 15 Sep 2022 15:32:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=90=E5=8D=95=E5=8A=A0=E4=BB=B7=EF=BC=8C?= =?UTF-8?q?=E7=BC=BA=E5=B0=91=E7=A1=AE=E5=AE=9A=E4=BB=98=E6=AC=BE=E6=97=B6?= =?UTF-8?q?=E7=94=9F=E6=88=90=E7=BB=86=E5=8D=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/order/OrderController.java | 2 +- .../order/OrderDetailController.java | 21 ++++- .../web/pojo/vo/OrderChangePriceRequest.java | 22 +++++ .../ghy/order/service/OrderDetailService.java | 12 +++ .../service/impl/OrderDetailServiceImpl.java | 37 ++++++++ .../payment/domain/FinancialChangeRecord.java | 94 +++++++++++++++++++ .../mapper/FinancialChangeRecordMapper.java | 60 ++++++++++++ .../service/FinancialChangeRecordService.java | 60 ++++++++++++ .../FinancialChangeRecordServiceImpl.java | 93 ++++++++++++++++++ .../financial/FinancialChangeRecordMapper.xml | 72 ++++++++++++++ 10 files changed, 469 insertions(+), 4 deletions(-) create mode 100644 ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderChangePriceRequest.java create mode 100644 ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java create mode 100644 ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java create mode 100644 ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java create mode 100644 ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java create mode 100644 ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 5470c535..ee0c9d27 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -202,7 +202,7 @@ public class OrderController extends BaseController { od.setOrderMasterCode(om.getCode()); od.setCustomerId(om.getCustomerId()); od.setOrderType(om.getOrderType()); - od.setOrderStatus(request.getWorkerId() == om.getWorkerId() ? OrderStatus.GOING.code() : OrderStatus.RECEIVE.code()); + od.setOrderStatus(request.getWorkerId().equals(om.getWorkerId()) ? OrderStatus.GOING.code() : OrderStatus.RECEIVE.code()); od.setWorkerId(request.getWorkerId()); od.setRevTime(om.getRevTime()); od.setExpectTimeStart(om.getExpectTimeStart()); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index f7802b0b..989c4767 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -34,6 +34,7 @@ import com.ghy.payment.service.FinancialDetailService; import com.ghy.payment.service.OrderFineRecordService; import com.ghy.system.domain.SysArea; import com.ghy.system.service.ISysAreaService; +import com.ghy.web.pojo.vo.OrderChangePriceRequest; import com.ghy.web.pojo.vo.OrderListResponse; import com.ghy.web.pojo.vo.OrderStandard; import com.ghy.worker.domain.Worker; @@ -49,6 +50,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.validation.Valid; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -145,7 +147,7 @@ public class OrderDetailController extends BaseController { GoodsImgs qryImgsObj = new GoodsImgs(); qryImgsObj.setRemark(request.getId().toString()); qryImgsObj.setImgType(ImgType.FINISH_IMG.getId()); - qryImgsObj.setGoodsId(0l); + qryImgsObj.setGoodsId(0L); List goodsImgs = goodsImgsService.qryGoodsImgs(qryImgsObj); finishImgList = goodsImgs.stream().map(GoodsImgs::getImgUrl).collect(Collectors.toList()); } @@ -404,7 +406,7 @@ public class OrderDetailController extends BaseController { OrderDetail orderDetail = orderDetailService.selectById(request.getOrderDetailId()); OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); if (orderDetail.getOrderStatus() != OrderStatus.SERVER.code() - || orderMaster.getPayStatus() != PayStatus.PAID.getCode()) { + || !orderMaster.getPayStatus().equals(PayStatus.PAID.getCode())) { return AjaxResult.error("未支付订单或非服务中订单,发起完单失败"); } @@ -412,7 +414,7 @@ public class OrderDetailController extends BaseController { List finishImgObjList = new ArrayList(); for (String imgUrl: request.getFinishImgList()) { GoodsImgs finishImgObj = new GoodsImgs(); - finishImgObj.setGoodsId(0l); + finishImgObj.setGoodsId(0L); finishImgObj.setImgType(ImgType.FINISH_IMG.getId()); finishImgObj.setImgUrl(imgUrl); finishImgObj.setRemark(String.valueOf(request.getOrderDetailId())); @@ -446,4 +448,17 @@ public class OrderDetailController extends BaseController { return AjaxResult.success(); } + + @PostMapping("/app/change/price") + @ResponseBody + public AjaxResult changePrice(@Valid @RequestBody OrderChangePriceRequest request){ + try { + return toAjax(orderDetailService.changePrice(request.getOrderDetailId(), request.getChangeMoney())); + }catch (Exception e){ + e.printStackTrace(); + logger.error(ExceptionUtil.getExceptionMessage(e)); + return AjaxResult.error("改价失败!"); + } + } + } diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderChangePriceRequest.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderChangePriceRequest.java new file mode 100644 index 00000000..63e1226c --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderChangePriceRequest.java @@ -0,0 +1,22 @@ +package com.ghy.web.pojo.vo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 改价请求实体 + * @author clunt + */ +@Data +public class OrderChangePriceRequest implements Serializable { + + @NotNull + private Long orderDetailId; + + @NotNull + private BigDecimal changeMoney; + +} diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java index 26f01974..613bdad2 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java @@ -3,6 +3,7 @@ package com.ghy.order.service; import com.ghy.order.domain.OrderDetail; import com.huifu.adapay.core.exception.BaseAdaPayException; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -115,4 +116,15 @@ public interface OrderDetailService { * @return 数量 */ Long countOrderDetailList(OrderDetail orderDetail); + + /** + * 子单改价接口 + * @param orderDetailId 子单id + * @param changeMoney 改价金额 + * @return 成功/失败 + */ + int changePrice(Long orderDetailId, BigDecimal changeMoney); + + int sureChange(Long financialChangeRecordId); + } diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index fec18416..a2452ec8 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -10,6 +10,7 @@ import com.ghy.common.core.text.Convert; import com.ghy.common.enums.AdapayOrderType; import com.ghy.common.enums.OrderStatus; import com.ghy.common.enums.PayStatus; +import com.ghy.common.exception.base.BaseException; import com.ghy.common.utils.AdapayUtils; import com.ghy.order.domain.OrderDetail; import com.ghy.order.domain.OrderMaster; @@ -17,9 +18,11 @@ import com.ghy.order.mapper.OrderDetailMapper; import com.ghy.order.mapper.OrderMasterMapper; import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderMasterService; +import com.ghy.payment.domain.FinancialChangeRecord; import com.ghy.payment.domain.FinancialDetail; import com.ghy.payment.domain.FinancialMaster; import com.ghy.payment.service.AdapayService; +import com.ghy.payment.service.FinancialChangeRecordService; import com.ghy.payment.service.FinancialDetailService; import com.ghy.payment.service.FinancialMasterService; import com.huifu.adapay.core.exception.BaseAdaPayException; @@ -70,6 +73,8 @@ public class OrderDetailServiceImpl implements OrderDetailService { private FinancialMasterService financialMasterService; @Resource private FinancialDetailService financialDetailService; + @Resource + private FinancialChangeRecordService financialChangeRecordService; @Override public int insertOrderDetail(OrderDetail orderDetail) { @@ -353,4 +358,36 @@ public class OrderDetailServiceImpl implements OrderDetailService { public Long countOrderDetailList(OrderDetail orderDetail) { return orderDetailMapper.countOrderDetailList(orderDetail); } + + @Override + public int changePrice(Long orderDetailId, BigDecimal changeMoney) { + OrderDetail orderDetail = orderDetailMapper.selectById(orderDetailId); + if(orderDetail==null){ + throw new BaseException("子单不存在!"); + } + FinancialChangeRecord param = new FinancialChangeRecord(); + param.setPayStatus(0L); + param.setOrderDetailId(orderDetailId); + List list = financialChangeRecordService.selectFinancialChangeRecordList(param); + FinancialChangeRecord financialChangeRecord; + if(list.size() > 0){ + // 修改现有 + financialChangeRecord = list.get(0); + financialChangeRecord.setChangeMoney(changeMoney); + return financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord); + }else { + // 创建改单记录 + financialChangeRecord = new FinancialChangeRecord(); + financialChangeRecord.setOrderDetailId(orderDetailId); + financialChangeRecord.setChangeMoney(changeMoney); + financialChangeRecord.setStatus(0L); + financialChangeRecord.setPayStatus(0L); + return financialChangeRecordService.insertFinancialChangeRecord(financialChangeRecord); + } + } + + @Override + public int sureChange(Long financialChangeRecordId) { + return 0; + } } diff --git a/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java b/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java new file mode 100644 index 00000000..fa00655f --- /dev/null +++ b/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java @@ -0,0 +1,94 @@ +package com.ghy.payment.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ghy.common.annotation.Excel; +import com.ghy.common.core.domain.BaseEntity; + +/** + * 改价记录对象 financial_change_record + * + * @author clunt + * @date 2022-09-15 + */ +public class FinancialChangeRecord extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private String id; + + /** 改价子单 */ + @Excel(name = "改价子单") + private Long orderDetailId; + + /** 改价金额 */ + @Excel(name = "改价金额") + private BigDecimal changeMoney; + + /** 状态0.待审核 1.审核通过 2.审核拒绝 */ + @Excel(name = "状态0.待审核 1.审核通过 2.审核拒绝") + private Long status; + + /** 0 待支付 1.已支付 */ + @Excel(name = "0 待支付 1.已支付") + private Long payStatus; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setOrderDetailId(Long orderDetailId) + { + this.orderDetailId = orderDetailId; + } + + public Long getOrderDetailId() + { + return orderDetailId; + } + public void setChangeMoney(BigDecimal changeMoney) + { + this.changeMoney = changeMoney; + } + + public BigDecimal getChangeMoney() + { + return changeMoney; + } + public void setStatus(Long status) + { + this.status = status; + } + + public Long getStatus() + { + return status; + } + public void setPayStatus(Long payStatus) + { + this.payStatus = payStatus; + } + + public Long getPayStatus() + { + return payStatus; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("orderDetailId", getOrderDetailId()) + .append("changeMoney", getChangeMoney()) + .append("status", getStatus()) + .append("payStatus", getPayStatus()) + .toString(); + } +} diff --git a/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java b/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java new file mode 100644 index 00000000..2872a46f --- /dev/null +++ b/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java @@ -0,0 +1,60 @@ +package com.ghy.payment.mapper; + +import com.ghy.payment.domain.FinancialChangeRecord; + +import java.util.List; + +/** + * @author clunt + */ +public interface FinancialChangeRecordMapper { + + /** + * 查询改价记录 + * + * @param id 改价记录主键 + * @return 改价记录 + */ + public FinancialChangeRecord selectFinancialChangeRecordById(String id); + + /** + * 查询改价记录列表 + * + * @param financialChangeRecord 改价记录 + * @return 改价记录集合 + */ + public List selectFinancialChangeRecordList(FinancialChangeRecord financialChangeRecord); + + /** + * 新增改价记录 + * + * @param financialChangeRecord 改价记录 + * @return 结果 + */ + public int insertFinancialChangeRecord(FinancialChangeRecord financialChangeRecord); + + /** + * 修改改价记录 + * + * @param financialChangeRecord 改价记录 + * @return 结果 + */ + public int updateFinancialChangeRecord(FinancialChangeRecord financialChangeRecord); + + /** + * 删除改价记录 + * + * @param id 改价记录主键 + * @return 结果 + */ + public int deleteFinancialChangeRecordById(String id); + + /** + * 批量删除改价记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteFinancialChangeRecordByIds(String[] ids); + +} diff --git a/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java b/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java new file mode 100644 index 00000000..9f03e153 --- /dev/null +++ b/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java @@ -0,0 +1,60 @@ +package com.ghy.payment.service; + +import com.ghy.payment.domain.FinancialChangeRecord; + +import java.util.List; + +/** + * @author clunt + */ +public interface FinancialChangeRecordService { + + /** + * 查询改价记录 + * + * @param id 改价记录主键 + * @return 改价记录 + */ + public FinancialChangeRecord selectFinancialChangeRecordById(String id); + + /** + * 查询改价记录列表 + * + * @param financialChangeRecord 改价记录 + * @return 改价记录集合 + */ + public List selectFinancialChangeRecordList(FinancialChangeRecord financialChangeRecord); + + /** + * 新增改价记录 + * + * @param financialChangeRecord 改价记录 + * @return 结果 + */ + public int insertFinancialChangeRecord(FinancialChangeRecord financialChangeRecord); + + /** + * 修改改价记录 + * + * @param financialChangeRecord 改价记录 + * @return 结果 + */ + public int updateFinancialChangeRecord(FinancialChangeRecord financialChangeRecord); + + /** + * 批量删除改价记录 + * + * @param ids 需要删除的改价记录主键集合 + * @return 结果 + */ + public int deleteFinancialChangeRecordByIds(String ids); + + /** + * 删除改价记录信息 + * + * @param id 改价记录主键 + * @return 结果 + */ + public int deleteFinancialChangeRecordById(String id); + +} diff --git a/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java b/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java new file mode 100644 index 00000000..e4e5525e --- /dev/null +++ b/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java @@ -0,0 +1,93 @@ +package com.ghy.payment.service.impl; + +import com.ghy.common.core.text.Convert; +import com.ghy.payment.domain.FinancialChangeRecord; +import com.ghy.payment.mapper.FinancialChangeRecordMapper; +import com.ghy.payment.service.FinancialChangeRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author clunt + */ +@Service +public class FinancialChangeRecordServiceImpl implements FinancialChangeRecordService { + + @Autowired + private FinancialChangeRecordMapper financialChangeRecordMapper; + + /** + * 查询改价记录 + * + * @param id 改价记录主键 + * @return 改价记录 + */ + @Override + public FinancialChangeRecord selectFinancialChangeRecordById(String id) + { + return financialChangeRecordMapper.selectFinancialChangeRecordById(id); + } + + /** + * 查询改价记录列表 + * + * @param financialChangeRecord 改价记录 + * @return 改价记录 + */ + @Override + public List selectFinancialChangeRecordList(FinancialChangeRecord financialChangeRecord) + { + return financialChangeRecordMapper.selectFinancialChangeRecordList(financialChangeRecord); + } + + /** + * 新增改价记录 + * + * @param financialChangeRecord 改价记录 + * @return 结果 + */ + @Override + public int insertFinancialChangeRecord(FinancialChangeRecord financialChangeRecord) + { + return financialChangeRecordMapper.insertFinancialChangeRecord(financialChangeRecord); + } + + /** + * 修改改价记录 + * + * @param financialChangeRecord 改价记录 + * @return 结果 + */ + @Override + public int updateFinancialChangeRecord(FinancialChangeRecord financialChangeRecord) + { + return financialChangeRecordMapper.updateFinancialChangeRecord(financialChangeRecord); + } + + /** + * 批量删除改价记录 + * + * @param ids 需要删除的改价记录主键 + * @return 结果 + */ + @Override + public int deleteFinancialChangeRecordByIds(String ids) + { + return financialChangeRecordMapper.deleteFinancialChangeRecordByIds(Convert.toStrArray(ids)); + } + + /** + * 删除改价记录信息 + * + * @param id 改价记录主键 + * @return 结果 + */ + @Override + public int deleteFinancialChangeRecordById(String id) + { + return financialChangeRecordMapper.deleteFinancialChangeRecordById(id); + } + +} diff --git a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml new file mode 100644 index 00000000..74fefe95 --- /dev/null +++ b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + select id, order_detail_id, change_money, status, pay_status from financial_change_record + + + + + + + + insert into financial_change_record + + order_detail_id, + change_money, + status, + pay_status, + + + #{orderDetailId}, + #{changeMoney}, + #{status}, + #{payStatus}, + + + + + update financial_change_record + + order_detail_id = #{orderDetailId}, + change_money = #{changeMoney}, + status = #{status}, + pay_status = #{payStatus}, + + where id = #{id} + + + + delete from financial_change_record where id = #{id} + + + + delete from financial_change_record where id in + + #{id} + + + + \ No newline at end of file