Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
87baa15f7b
|
|
@ -7,6 +7,8 @@ import com.ghy.common.adapay.model.Event;
|
||||||
import com.ghy.common.adapay.model.PayReverseCallback;
|
import com.ghy.common.adapay.model.PayReverseCallback;
|
||||||
import com.ghy.order.service.OrderDetailService;
|
import com.ghy.order.service.OrderDetailService;
|
||||||
import com.ghy.order.service.OrderMasterService;
|
import com.ghy.order.service.OrderMasterService;
|
||||||
|
import com.ghy.payment.domain.ReverseRecord;
|
||||||
|
import com.ghy.payment.mapper.ReverseRecordMapper;
|
||||||
import com.ghy.payment.service.CallBackService;
|
import com.ghy.payment.service.CallBackService;
|
||||||
import com.ghy.payment.service.FinancialChangeRecordService;
|
import com.ghy.payment.service.FinancialChangeRecordService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -24,6 +26,7 @@ public class PayReverseCallbackService implements CallBackService {
|
||||||
|
|
||||||
private OrderMasterService orderMasterService;
|
private OrderMasterService orderMasterService;
|
||||||
private OrderDetailService orderDetailService;
|
private OrderDetailService orderDetailService;
|
||||||
|
private ReverseRecordMapper reverseRecordMapper;
|
||||||
private FinancialChangeRecordService financialChangeRecordService;
|
private FinancialChangeRecordService financialChangeRecordService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -55,7 +58,7 @@ public class PayReverseCallbackService implements CallBackService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(JSONObject response) {
|
public void onResponse(JSONObject response) {
|
||||||
|
reverseRecordMapper.insert(JSONObject.toJavaObject(response, ReverseRecord.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -72,4 +75,9 @@ public class PayReverseCallbackService implements CallBackService {
|
||||||
public void setFinancialChangeRecordService(FinancialChangeRecordService financialChangeRecordService) {
|
public void setFinancialChangeRecordService(FinancialChangeRecordService financialChangeRecordService) {
|
||||||
this.financialChangeRecordService = financialChangeRecordService;
|
this.financialChangeRecordService = financialChangeRecordService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public void setReverseRecordMapper(ReverseRecordMapper reverseRecordMapper) {
|
||||||
|
this.reverseRecordMapper = reverseRecordMapper;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@ package com.ghy.callback;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ghy.common.adapay.model.Event;
|
import com.ghy.common.adapay.model.Event;
|
||||||
import com.ghy.payment.service.CallBackService;
|
import com.ghy.payment.service.CallBackService;
|
||||||
import org.slf4j.Logger;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -12,19 +11,18 @@ import org.springframework.stereotype.Service;
|
||||||
*
|
*
|
||||||
* @author HH 2022/5/30
|
* @author HH 2022/5/30
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Service("refundCallbackService")
|
@Service("refundCallbackService")
|
||||||
public class RefundCallbackService implements CallBackService {
|
public class RefundCallbackService implements CallBackService {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(RefundCallbackService.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallback(Event event) {
|
public void onCallback(Event event) {
|
||||||
logger.debug("退款 callback: {}", event.toString());
|
log.debug("退款 callback: {}", event.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(JSONObject response) {
|
public void onResponse(JSONObject response) {
|
||||||
logger.debug("退款 Response: {}", response.toString());
|
log.debug("退款 Response: {}", response.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
package com.ghy.web.controller.order;
|
package com.ghy.web.controller.order;
|
||||||
|
|
||||||
import java.util.List;
|
import com.ghy.common.annotation.Log;
|
||||||
import java.util.stream.Collectors;
|
import com.ghy.common.core.controller.BaseController;
|
||||||
|
import com.ghy.common.core.domain.AjaxResult;
|
||||||
|
import com.ghy.common.core.page.TableDataInfo;
|
||||||
|
import com.ghy.common.enums.BusinessType;
|
||||||
|
import com.ghy.common.utils.poi.ExcelUtil;
|
||||||
|
import com.ghy.order.domain.AfterServiceRecord;
|
||||||
|
import com.ghy.order.service.IAfterServiceRecordService;
|
||||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import com.ghy.common.annotation.Log;
|
|
||||||
import com.ghy.common.enums.BusinessType;
|
import java.util.List;
|
||||||
import com.ghy.order.domain.AfterServiceRecord;
|
import java.util.stream.Collectors;
|
||||||
import com.ghy.order.service.IAfterServiceRecordService;
|
|
||||||
import com.ghy.common.core.controller.BaseController;
|
|
||||||
import com.ghy.common.core.domain.AjaxResult;
|
|
||||||
import com.ghy.common.utils.poi.ExcelUtil;
|
|
||||||
import com.ghy.common.core.page.TableDataInfo;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 售后记录Controller
|
* 售后记录Controller
|
||||||
|
|
@ -26,8 +26,7 @@ import com.ghy.common.core.page.TableDataInfo;
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/worker/record")
|
@RequestMapping("/worker/record")
|
||||||
public class AfterServiceRecordController extends BaseController
|
public class AfterServiceRecordController extends BaseController {
|
||||||
{
|
|
||||||
private String prefix = "worker/record";
|
private String prefix = "worker/record";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -35,14 +34,13 @@ public class AfterServiceRecordController extends BaseController
|
||||||
|
|
||||||
@RequiresPermissions("worker:record:view")
|
@RequiresPermissions("worker:record:view")
|
||||||
@GetMapping()
|
@GetMapping()
|
||||||
public String record()
|
public String record() {
|
||||||
{
|
|
||||||
return prefix + "/record";
|
return prefix + "/record";
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/all/list")
|
@PostMapping("/all/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public TableDataInfo allList(AfterServiceRecord afterServiceRecord){
|
public TableDataInfo allList(AfterServiceRecord afterServiceRecord) {
|
||||||
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||||
List<Long> orderDetailIds = list.stream().map(AfterServiceRecord::getOrderDetailId).collect(Collectors.toList());
|
List<Long> orderDetailIds = list.stream().map(AfterServiceRecord::getOrderDetailId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
@ -57,8 +55,7 @@ public class AfterServiceRecordController extends BaseController
|
||||||
@RequiresPermissions("worker:record:list")
|
@RequiresPermissions("worker:record:list")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public TableDataInfo list(AfterServiceRecord afterServiceRecord)
|
public TableDataInfo list(AfterServiceRecord afterServiceRecord) {
|
||||||
{
|
|
||||||
startPage();
|
startPage();
|
||||||
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
|
|
@ -69,8 +66,7 @@ public class AfterServiceRecordController extends BaseController
|
||||||
*/
|
*/
|
||||||
@PostMapping("/app/list")
|
@PostMapping("/app/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public TableDataInfo appList(@RequestBody AfterServiceRecord afterServiceRecord)
|
public TableDataInfo appList(@RequestBody AfterServiceRecord afterServiceRecord) {
|
||||||
{
|
|
||||||
startPage();
|
startPage();
|
||||||
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
|
|
@ -84,8 +80,7 @@ public class AfterServiceRecordController extends BaseController
|
||||||
@Log(title = "售后记录", businessType = BusinessType.EXPORT)
|
@Log(title = "售后记录", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult export(AfterServiceRecord afterServiceRecord)
|
public AjaxResult export(AfterServiceRecord afterServiceRecord) {
|
||||||
{
|
|
||||||
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||||
ExcelUtil<AfterServiceRecord> util = new ExcelUtil<AfterServiceRecord>(AfterServiceRecord.class);
|
ExcelUtil<AfterServiceRecord> util = new ExcelUtil<AfterServiceRecord>(AfterServiceRecord.class);
|
||||||
return util.exportExcel(list, "售后记录数据");
|
return util.exportExcel(list, "售后记录数据");
|
||||||
|
|
@ -95,8 +90,7 @@ public class AfterServiceRecordController extends BaseController
|
||||||
* 新增售后记录
|
* 新增售后记录
|
||||||
*/
|
*/
|
||||||
@GetMapping("/add")
|
@GetMapping("/add")
|
||||||
public String add()
|
public String add() {
|
||||||
{
|
|
||||||
return prefix + "/add";
|
return prefix + "/add";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,8 +100,8 @@ public class AfterServiceRecordController extends BaseController
|
||||||
@Log(title = "售后记录", businessType = BusinessType.INSERT)
|
@Log(title = "售后记录", businessType = BusinessType.INSERT)
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult addSave(@RequestBody AfterServiceRecord afterServiceRecord)
|
public AjaxResult addSave(@RequestBody AfterServiceRecord afterServiceRecord) {
|
||||||
{
|
logger.info("新增售后记录:{}", afterServiceRecord);
|
||||||
return toAjax(afterServiceRecordService.insertAfterServiceRecord(afterServiceRecord));
|
return toAjax(afterServiceRecordService.insertAfterServiceRecord(afterServiceRecord));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,8 +110,7 @@ public class AfterServiceRecordController extends BaseController
|
||||||
*/
|
*/
|
||||||
@RequiresPermissions("worker:record:edit")
|
@RequiresPermissions("worker:record:edit")
|
||||||
@GetMapping("/edit/{id}")
|
@GetMapping("/edit/{id}")
|
||||||
public String edit(@PathVariable("id") String id, ModelMap mmap)
|
public String edit(@PathVariable("id") String id, ModelMap mmap) {
|
||||||
{
|
|
||||||
AfterServiceRecord afterServiceRecord = afterServiceRecordService.selectAfterServiceRecordById(id);
|
AfterServiceRecord afterServiceRecord = afterServiceRecordService.selectAfterServiceRecordById(id);
|
||||||
mmap.put("afterServiceRecord", afterServiceRecord);
|
mmap.put("afterServiceRecord", afterServiceRecord);
|
||||||
return prefix + "/edit";
|
return prefix + "/edit";
|
||||||
|
|
@ -129,8 +122,8 @@ public class AfterServiceRecordController extends BaseController
|
||||||
@Log(title = "售后记录", businessType = BusinessType.UPDATE)
|
@Log(title = "售后记录", businessType = BusinessType.UPDATE)
|
||||||
@PostMapping("/edit")
|
@PostMapping("/edit")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult editSave(@RequestBody AfterServiceRecord afterServiceRecord)
|
public AjaxResult editSave(@RequestBody AfterServiceRecord afterServiceRecord) {
|
||||||
{
|
logger.info("修改售后记录:{}", afterServiceRecord);
|
||||||
try {
|
try {
|
||||||
return toAjax(afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord));
|
return toAjax(afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord));
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
|
|
@ -144,10 +137,9 @@ public class AfterServiceRecordController extends BaseController
|
||||||
*/
|
*/
|
||||||
// @RequiresPermissions("worker:record:remove")
|
// @RequiresPermissions("worker:record:remove")
|
||||||
@Log(title = "售后记录", businessType = BusinessType.DELETE)
|
@Log(title = "售后记录", businessType = BusinessType.DELETE)
|
||||||
@PostMapping( "/remove")
|
@PostMapping("/remove")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult remove(String ids)
|
public AjaxResult remove(String ids) {
|
||||||
{
|
|
||||||
return toAjax(afterServiceRecordService.deleteAfterServiceRecordByIds(ids));
|
return toAjax(afterServiceRecordService.deleteAfterServiceRecordByIds(ids));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
@ -303,32 +302,16 @@ public class OrderController extends BaseController {
|
||||||
// 接单师傅
|
// 接单师傅
|
||||||
Worker acceptWorker = workerService.selectById(request.getWorkerId());
|
Worker acceptWorker = workerService.selectById(request.getWorkerId());
|
||||||
Assert.notNull(acceptWorker, "查询接单师傅信息失败");
|
Assert.notNull(acceptWorker, "查询接单师傅信息失败");
|
||||||
om.setAllSelfAssigned(0);
|
|
||||||
// 校验接单师傅和派单师傅是不是同一个Team
|
// 校验接单师傅和派单师傅是不是同一个Team
|
||||||
if (!om.getWorkerId().equals(request.getWorkerId())) {
|
if (om.getWorkerId().equals(request.getWorkerId())) {
|
||||||
fm.setServerMoney(fm.getServerMoney().subtract(request.getTotalPay()));
|
// 自己接单 子单金额=0
|
||||||
|
request.setTotalPay(BigDecimal.ZERO);
|
||||||
|
} else {
|
||||||
|
Assert.isTrue(fm.getServerMoney().compareTo(request.getTotalPay()) < 0, "派单金额不能大于订单总金额");
|
||||||
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
|
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
|
||||||
Assert.isTrue(checkInTeam, "接单师傅不在本团队");
|
Assert.isTrue(checkInTeam, "接单师傅不在本团队");
|
||||||
} else {
|
|
||||||
// 自己接单 -- 计算剩余金额
|
|
||||||
om.setAllSelfAssigned(1);
|
|
||||||
BigDecimal realPay = fm.getPayMoney();
|
|
||||||
for (FinancialDetail financialDetail : financialDetailService.selectByFinancialMasterId(fm.getId())) {
|
|
||||||
if (FinancialDetailType.ORDER_FEE.getCode().equals(financialDetail.getFinancialDetailType())) {
|
|
||||||
om.setAllSelfAssigned(0);
|
|
||||||
om.setOrderStatus(OrderStatus.GOING.code());
|
|
||||||
}
|
}
|
||||||
realPay = realPay.subtract(financialDetail.getPayMoney());
|
|
||||||
}
|
|
||||||
request.setTotalPay(realPay);
|
|
||||||
fm.setServerMoney(BigDecimal.ZERO);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否全部派完
|
|
||||||
if (orderMasterService.isAllAssign(om.getId())) {
|
|
||||||
om.setHasDispatchedAll(1);
|
|
||||||
}
|
|
||||||
orderMasterService.updateOrderMaster(om);
|
|
||||||
|
|
||||||
// 创建子订单
|
// 创建子订单
|
||||||
OrderDetail od = new OrderDetail();
|
OrderDetail od = new OrderDetail();
|
||||||
|
|
@ -343,7 +326,6 @@ public class OrderController extends BaseController {
|
||||||
od.setRevTime(om.getRevTime());
|
od.setRevTime(om.getRevTime());
|
||||||
od.setExpectTimeStart(om.getExpectTimeStart());
|
od.setExpectTimeStart(om.getExpectTimeStart());
|
||||||
od.setExpectTimeEnd(om.getExpectTimeEnd());
|
od.setExpectTimeEnd(om.getExpectTimeEnd());
|
||||||
// od.setRemark(om.getRemark());
|
|
||||||
orderDetailService.insertOrderDetail(od);
|
orderDetailService.insertOrderDetail(od);
|
||||||
|
|
||||||
// 批量生成订单商品
|
// 批量生成订单商品
|
||||||
|
|
@ -359,28 +341,55 @@ public class OrderController extends BaseController {
|
||||||
orderGoodsService.insertOrderGoods(orderGoods);
|
orderGoodsService.insertOrderGoods(orderGoods);
|
||||||
});
|
});
|
||||||
|
|
||||||
Assert.isTrue(BigDecimal.ZERO.compareTo(request.getTotalPay()) < 0, "订单计算出错 请联系管理员");
|
|
||||||
//为接单师傅生成子财务单
|
//为接单师傅生成子财务单
|
||||||
FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(),
|
FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(),
|
||||||
fm.getCode(), od.getId(), od.getCode(), request.getTotalPay(), FinancialDetailType.ORDER_FEE.getCode(), acceptWorker.getWorkerId(),
|
fm.getCode(), od.getId(), od.getCode(), request.getTotalPay(), FinancialDetailType.ORDER_FEE.getCode(), acceptWorker.getWorkerId(),
|
||||||
fm.getPayType(), fm.getPayStatus(), fm.getPayTime());
|
fm.getPayType(), fm.getPayStatus(), fm.getPayTime());
|
||||||
financialDetailService.insertFinancialDetail(fd);
|
financialDetailService.insertFinancialDetail(fd);
|
||||||
|
|
||||||
// 更新财务主单金额
|
if (!BigDecimal.ZERO.equals(request.getTotalPay())) {
|
||||||
financialMasterService.updateFinancialMaster(fm);
|
// 更新财务主单服务金额
|
||||||
|
FinancialMaster fm2up = new FinancialMaster();
|
||||||
|
fm2up.setId(fm.getId());
|
||||||
|
fm2up.setServerMoney(fm.getServerMoney().subtract(request.getTotalPay()));
|
||||||
|
financialMasterService.updateFinancialMaster(fm2up);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存订单操作记录
|
||||||
OrderBehavior orderBehavior = new OrderBehavior().setOrderMasterId(om.getId()).setOrderMasterCode(om.getCode())
|
OrderBehavior orderBehavior = new OrderBehavior().setOrderMasterId(om.getId()).setOrderMasterCode(om.getCode())
|
||||||
.setWorkerId(assignWorker.getWorkerId()).setWorkerName(assignWorker.getName()).setBehavior(OrderBehaviorEnum.ASSIGN_ORDER);
|
.setWorkerId(assignWorker.getWorkerId()).setWorkerName(assignWorker.getName()).setBehavior(OrderBehaviorEnum.ASSIGN_ORDER);
|
||||||
orderBehaviorService.insert(orderBehavior);
|
orderBehaviorService.insert(orderBehavior);
|
||||||
|
|
||||||
|
// 更新主订单
|
||||||
|
OrderMaster om2up = new OrderMaster();
|
||||||
|
// 判断是否全部派完
|
||||||
|
if (orderMasterService.isAllAssign(om.getId())) {
|
||||||
|
om2up.setId(om.getId());
|
||||||
|
Set<Long> workIds = orderDetailService.selectByOrderMasterId(om.getId()).stream().map(OrderDetail::getWorkerId).collect(Collectors.toSet());
|
||||||
|
if (workIds.size() == 1 && workIds.contains(om.getWorkerId())) {
|
||||||
|
// 派完单 并且只有自己接单
|
||||||
|
om2up.setHasDispatchedAll(1);
|
||||||
|
om2up.setOrderStatus(OrderStatus.GOING.code());
|
||||||
|
} else {
|
||||||
|
// 派完单 但是有其他师傅接单
|
||||||
|
om2up.setHasDispatchedAll(0);
|
||||||
|
om2up.setOrderStatus(OrderStatus.RECEIVE.code());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 未派完单
|
||||||
|
om2up.setHasDispatchedAll(0);
|
||||||
|
}
|
||||||
|
orderMasterService.updateOrderMaster(om2up);
|
||||||
|
|
||||||
// 通知师傅新订单
|
// 通知师傅新订单
|
||||||
try {
|
try {
|
||||||
Map<String,Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("thing1", "新订单通知");
|
params.put("thing1", "新订单通知");
|
||||||
params.put("thing5", "收到师傅派单,请及时处理!");
|
params.put("thing5", "收到师傅派单,请及时处理!");
|
||||||
wxMsgService.sendWxMsg(acceptWorker.getOpenId(), WxMsgEnum.ORDER_PLAN, params);
|
wxMsgService.sendWxMsg(acceptWorker.getOpenId(), WxMsgEnum.ORDER_PLAN, params);
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
logger.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
@ -465,13 +474,13 @@ public class OrderController extends BaseController {
|
||||||
}
|
}
|
||||||
// 通知师傅新订单
|
// 通知师傅新订单
|
||||||
try {
|
try {
|
||||||
Map<String,Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("character_string22", orderMaster.getCode());
|
params.put("character_string22", orderMaster.getCode());
|
||||||
params.put("thing19",customer.getName());
|
params.put("thing19", customer.getName());
|
||||||
params.put("time1", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date()));
|
params.put("time1", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date()));
|
||||||
params.put("thing5", "有新订单,请及时处理!");
|
params.put("thing5", "有新订单,请及时处理!");
|
||||||
wxMsgService.sendWxMsg(worker.getOpenId(), WxMsgEnum.NEW_ORDER, params);
|
wxMsgService.sendWxMsg(worker.getOpenId(), WxMsgEnum.NEW_ORDER, params);
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return AjaxResult.success(orderMaster);
|
return AjaxResult.success(orderMaster);
|
||||||
|
|
@ -678,14 +687,14 @@ public class OrderController extends BaseController {
|
||||||
// 统计待确认单量
|
// 统计待确认单量
|
||||||
orderDetail.setOrderStatus(null);
|
orderDetail.setOrderStatus(null);
|
||||||
orderDetail.setWorkFinishTimeExisted(true);
|
orderDetail.setWorkFinishTimeExisted(true);
|
||||||
orderDetail.setDrawCashStatusList(new ArrayList<Integer>(){{
|
orderDetail.setDrawCashStatusList(new ArrayList<Integer>() {{
|
||||||
add(0);
|
add(0);
|
||||||
add(1);
|
add(1);
|
||||||
}});
|
}});
|
||||||
response.setWaitSureOrderNum(orderDetailService.countOrderDetailList(orderDetail));
|
response.setWaitSureOrderNum(orderDetailService.countOrderDetailList(orderDetail));
|
||||||
// 统计已完成子单量
|
// 统计已完成子单量
|
||||||
orderDetail.setOrderStatus(OrderStatus.FINISH.code());
|
orderDetail.setOrderStatus(OrderStatus.FINISH.code());
|
||||||
orderDetail.setDrawCashStatusList(new ArrayList<Integer>(){{
|
orderDetail.setDrawCashStatusList(new ArrayList<Integer>() {{
|
||||||
add(2);
|
add(2);
|
||||||
}});
|
}});
|
||||||
response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail));
|
response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail));
|
||||||
|
|
|
||||||
|
|
@ -723,6 +723,7 @@ public class OrderDetailController extends BaseController {
|
||||||
@PostMapping("/finish")
|
@PostMapping("/finish")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult finish(Long orderDetailId) {
|
public AjaxResult finish(Long orderDetailId) {
|
||||||
|
logger.info("消费者确认完成子订单,orderDetailId={}", orderDetailId);
|
||||||
try {
|
try {
|
||||||
orderDetailService.finish(orderDetailId);
|
orderDetailService.finish(orderDetailId);
|
||||||
} catch (BaseAdaPayException e) {
|
} catch (BaseAdaPayException e) {
|
||||||
|
|
@ -740,6 +741,7 @@ public class OrderDetailController extends BaseController {
|
||||||
@PostMapping("/cancel")
|
@PostMapping("/cancel")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult applyForCancel(Long orderDetailId) throws BaseAdaPayException {
|
public AjaxResult applyForCancel(Long orderDetailId) throws BaseAdaPayException {
|
||||||
|
logger.info("消费者申请取消子订单,orderDetailId={}", orderDetailId);
|
||||||
orderDetailService.applyForCancel(orderDetailId);
|
orderDetailService.applyForCancel(orderDetailId);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
@ -753,6 +755,7 @@ public class OrderDetailController extends BaseController {
|
||||||
@PostMapping("/cancel/agree")
|
@PostMapping("/cancel/agree")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult cancelAgree(Long orderDetailId, Integer agree) throws BaseAdaPayException {
|
public AjaxResult cancelAgree(Long orderDetailId, Integer agree) throws BaseAdaPayException {
|
||||||
|
logger.info("师傅审核取消子订单申请,orderDetailId={},agree={}", orderDetailId, agree);
|
||||||
orderDetailService.cancelAgree(orderDetailId, agree);
|
orderDetailService.cancelAgree(orderDetailId, agree);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
@ -765,7 +768,8 @@ public class OrderDetailController extends BaseController {
|
||||||
@PostMapping("/app/applyFinishOrder")
|
@PostMapping("/app/applyFinishOrder")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public AjaxResult applyFinishOrder(@RequestBody OrderProcessRequest request) throws Exception {
|
public AjaxResult applyFinishOrder(@RequestBody OrderProcessRequest request) {
|
||||||
|
logger.info("师傅发起完单,orderDetailId={}", request.getOrderDetailId());
|
||||||
// 判断工单状态是否为服务中以及是否已支付
|
// 判断工单状态是否为服务中以及是否已支付
|
||||||
OrderDetail orderDetail = orderDetailService.selectById(request.getOrderDetailId());
|
OrderDetail orderDetail = orderDetailService.selectById(request.getOrderDetailId());
|
||||||
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
||||||
|
|
|
||||||
|
|
@ -734,8 +734,8 @@ public class OrderMasterController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("/cancel")
|
@PostMapping("/cancel")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult cancel(Long orderMasterId) throws BaseAdaPayException {
|
public AjaxResult applyForCancel(Long orderMasterId) throws BaseAdaPayException {
|
||||||
// 校验
|
logger.info("消费者申请取消主订单,orderMasterId={}", orderMasterId);
|
||||||
List<OrderDetail> orderDetails = orderDetailService.selectByOrderMasterId(orderMasterId);
|
List<OrderDetail> orderDetails = orderDetailService.selectByOrderMasterId(orderMasterId);
|
||||||
for (OrderDetail detail : orderDetails) {
|
for (OrderDetail detail : orderDetails) {
|
||||||
if (detail.getOrderStatus() == 6 || detail.getOrderStatus() == 0 || detail.getOrderStatus() == 1) {
|
if (detail.getOrderStatus() == 6 || detail.getOrderStatus() == 0 || detail.getOrderStatus() == 1) {
|
||||||
|
|
@ -757,6 +757,7 @@ public class OrderMasterController extends BaseController {
|
||||||
@PostMapping("/cancel/agree")
|
@PostMapping("/cancel/agree")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult cancelAgree(Long orderMasterId, Integer agree) {
|
public AjaxResult cancelAgree(Long orderMasterId, Integer agree) {
|
||||||
|
logger.info("师傅审核取消主订单申请,orderMasterId={}, agree={}", orderMasterId, agree);
|
||||||
orderMasterService.cancelAgree(orderMasterId, agree);
|
orderMasterService.cancelAgree(orderMasterId, agree);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
|
||||||
<!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
|
<!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
|
||||||
<setting name="defaultExecutorType" value="SIMPLE" />
|
<setting name="defaultExecutorType" value="SIMPLE" />
|
||||||
<!-- 指定 MyBatis 所用日志的具体实现 -->
|
<!-- 指定 MyBatis 所用日志的具体实现 -->
|
||||||
<setting name="logImpl" value="SLF4J" />
|
<setting name="logImpl" value="org.apache.ibatis.logging.nologging.NoLoggingImpl" />
|
||||||
<!-- 使用驼峰命名法转换字段 -->
|
<!-- 使用驼峰命名法转换字段 -->
|
||||||
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
|
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
|
||||||
</settings>
|
</settings>
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class PayReverseCallback {
|
||||||
private String confirmedAmt;
|
private String confirmedAmt;
|
||||||
@JSONField(name = "refunded_amt")
|
@JSONField(name = "refunded_amt")
|
||||||
private String refundedAmt;
|
private String refundedAmt;
|
||||||
@JSONField(name = "createdTime")
|
@JSONField(name = "created_time")
|
||||||
private String created_time;
|
private String created_time;
|
||||||
@JSONField(name = "succeed_time")
|
@JSONField(name = "succeed_time")
|
||||||
private String succeedTime;
|
private String succeedTime;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,9 @@ package com.ghy.order.domain;
|
||||||
|
|
||||||
import com.ghy.common.annotation.Excel;
|
import com.ghy.common.annotation.Excel;
|
||||||
import com.ghy.common.core.domain.BaseEntity;
|
import com.ghy.common.core.domain.BaseEntity;
|
||||||
|
import com.ghy.common.enums.OrderStatus;
|
||||||
|
import com.ghy.common.enums.PayStatus;
|
||||||
|
import com.ghy.common.enums.PayTypeEnum;
|
||||||
import com.ghy.goods.domain.Goods;
|
import com.ghy.goods.domain.Goods;
|
||||||
import com.ghy.worker.domain.Worker;
|
import com.ghy.worker.domain.Worker;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -46,6 +49,9 @@ public class OrderDetail extends BaseEntity {
|
||||||
@Excel(name = "订单类型", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "订单类型", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer orderType;
|
private Integer orderType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see OrderStatus
|
||||||
|
*/
|
||||||
@Excel(name = "订单状态", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "订单状态", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer orderStatus;
|
private Integer orderStatus;
|
||||||
|
|
||||||
|
|
@ -118,9 +124,15 @@ public class OrderDetail extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
private Date arrivalTime;
|
private Date arrivalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see PayTypeEnum
|
||||||
|
*/
|
||||||
@Excel(name = "付款类型", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "付款类型", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payType;
|
private Integer payType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see PayStatus
|
||||||
|
*/
|
||||||
@Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payStatus;
|
private Integer payStatus;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ package com.ghy.order.domain;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.ghy.common.annotation.Excel;
|
import com.ghy.common.annotation.Excel;
|
||||||
import com.ghy.common.core.domain.BaseEntity;
|
import com.ghy.common.core.domain.BaseEntity;
|
||||||
|
import com.ghy.common.enums.OrderStatus;
|
||||||
|
import com.ghy.common.enums.PayStatus;
|
||||||
|
import com.ghy.common.enums.PayTypeEnum;
|
||||||
import com.ghy.payment.domain.FinancialMaster;
|
import com.ghy.payment.domain.FinancialMaster;
|
||||||
import com.ghy.worker.domain.Worker;
|
import com.ghy.worker.domain.Worker;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -39,12 +42,21 @@ public class OrderMaster extends BaseEntity {
|
||||||
@Excel(name = "订单类型", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "订单类型", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer orderType;
|
private Integer orderType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see OrderStatus
|
||||||
|
*/
|
||||||
@Excel(name = "订单状态", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "订单状态", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer orderStatus;
|
private Integer orderStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see PayTypeEnum
|
||||||
|
*/
|
||||||
@Excel(name = "付款类型", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "付款类型", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payType;
|
private Integer payType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see PayStatus
|
||||||
|
*/
|
||||||
@Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC)
|
@Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payStatus;
|
private Integer payStatus;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
}
|
}
|
||||||
if (refundMoney.compareTo(financialDetail.getPayMoney()) < 0) {
|
if (refundMoney.compareTo(financialDetail.getPayMoney()) < 0) {
|
||||||
// 申请退款金额 < 子单金额
|
// 申请退款金额 < 子单金额
|
||||||
financialDetail.setPayMoney(financialDetail.getPayMoney().subtract(afterServiceRecord.getAgreedRefund()));
|
financialDetail.setPayMoney(financialDetail.getPayMoney().subtract(refundMoney));
|
||||||
financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney));
|
financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney));
|
||||||
// 更新主/子财务单金额
|
// 更新主/子财务单金额
|
||||||
financialMasterService.updateFinancialMaster(financialMaster);
|
financialMasterService.updateFinancialMaster(financialMaster);
|
||||||
|
|
@ -153,6 +153,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
} else {
|
} else {
|
||||||
// 子单全额退款 直接走取消流程
|
// 子单全额退款 直接走取消流程
|
||||||
orderDetailService.cancelAgree(orderDetail.getId(), 1);
|
orderDetailService.cancelAgree(orderDetail.getId(), 1);
|
||||||
|
param.setOriginalRefund(financialDetail.getPayMoney());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
param.setUpdateTime(new Date());
|
param.setUpdateTime(new Date());
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import com.ghy.payment.service.FinancialChangeRecordService;
|
||||||
import com.ghy.payment.service.FinancialDetailService;
|
import com.ghy.payment.service.FinancialDetailService;
|
||||||
import com.ghy.payment.service.FinancialMasterService;
|
import com.ghy.payment.service.FinancialMasterService;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
@ -35,7 +36,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -216,22 +216,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
OrderDetail orderDetail = selectById(orderDetailId);
|
OrderDetail orderDetail = selectById(orderDetailId);
|
||||||
Assert.notNull(orderDetail, "找不到对应的子订单");
|
Assert.notNull(orderDetail, "找不到对应的子订单");
|
||||||
|
|
||||||
// 查询出所有的子订单 如果除了这个子订单以外 没有其它未取消的订单 就走主订单取消流程
|
|
||||||
List<OrderDetail> orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
|
||||||
boolean allCancel = true;
|
|
||||||
for (OrderDetail od : orderDetails) {
|
|
||||||
if (!od.getId().equals(orderDetailId)) {
|
|
||||||
if (!od.getOrderStatus().equals(OrderStatus.CANCEL.code())) {
|
|
||||||
allCancel = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (allCancel) {
|
|
||||||
logger.info("主订单[id={}]下所有的子订单都被取消 直接进入主订单取消流程", orderDetail.getOrderMasterId());
|
|
||||||
orderMasterService.applyForCancel(orderDetail.getOrderMasterId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (orderDetail.getOrderStatus()) {
|
switch (orderDetail.getOrderStatus()) {
|
||||||
case 0:
|
case 0:
|
||||||
case 1: // 待接单和待排期状态可直接取消
|
case 1: // 待接单和待排期状态可直接取消
|
||||||
|
|
@ -239,12 +223,15 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
break;
|
break;
|
||||||
case 2: // 待上门状态需要师傅同意才能取消
|
case 2: // 待上门状态需要师傅同意才能取消
|
||||||
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.GOING_CANCEL.code());
|
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.GOING_CANCEL.code());
|
||||||
|
logger.info("Set OrderDetail[{}].orderStatus = {}", orderDetailId, OrderStatus.GOING_CANCEL.code());
|
||||||
break;
|
break;
|
||||||
case 3: // 服务中状态需要师傅同意才能取消
|
case 3: // 服务中状态需要师傅同意才能取消
|
||||||
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.SERVER_CANCEL.code());
|
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.SERVER_CANCEL.code());
|
||||||
|
logger.info("Set OrderDetail[{}].orderStatus = {}", orderDetailId, OrderStatus.SERVER_CANCEL.code());
|
||||||
break;
|
break;
|
||||||
case 4: // 待确认状态需要师傅同意才能取消
|
case 4: // 待确认状态需要师傅同意才能取消
|
||||||
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.FINISH_CHECK_CANCEL.code());
|
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.FINISH_CHECK_CANCEL.code());
|
||||||
|
logger.info("Set OrderDetail[{}].orderStatus = {}", orderDetailId, OrderStatus.FINISH_CHECK_CANCEL.code());
|
||||||
break;
|
break;
|
||||||
default: // 其他状态不可取消
|
default: // 其他状态不可取消
|
||||||
throw new IllegalArgumentException("这个子订单不能取消了");
|
throw new IllegalArgumentException("这个子订单不能取消了");
|
||||||
|
|
@ -260,29 +247,33 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
public void cancel(long orderDetailId) throws BaseAdaPayException {
|
public void cancel(long orderDetailId) throws BaseAdaPayException {
|
||||||
OrderDetail orderDetail = selectById(orderDetailId);
|
OrderDetail orderDetail = selectById(orderDetailId);
|
||||||
Assert.notNull(orderDetail, "找不到对应的子订单");
|
Assert.notNull(orderDetail, "找不到对应的子订单");
|
||||||
|
if (OrderStatus.FINISH.code() == orderDetail.getOrderStatus() || OrderStatus.CANCEL.code() == orderDetail.getOrderStatus()) {
|
||||||
|
logger.info("子订单[id={}]状态不正确,orderStatus={}", orderDetailId, orderDetail.getOrderStatus());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 更新子订单状态
|
||||||
|
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.CANCEL.code());
|
||||||
|
logger.info("Set OrderDetail[{}].orderStatus = {}", orderDetailId, OrderStatus.CANCEL.code());
|
||||||
// 查询出所有的子订单 就走主订单取消流程
|
// 查询出所有的子订单 就走主订单取消流程
|
||||||
List<OrderDetail> orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
List<OrderDetail> orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
||||||
|
// 发起退款
|
||||||
|
refund(orderDetail);
|
||||||
|
|
||||||
// 如果除了这个子订单以外 没有其它未取消的订单
|
// 如果除了这个子订单以外 没有其它未取消的订单
|
||||||
boolean allCancel = true;
|
boolean allCancel = true;
|
||||||
for (OrderDetail od : orderDetails) {
|
for (OrderDetail od : orderDetails) {
|
||||||
if (!od.getId().equals(orderDetailId)) {
|
|
||||||
if (!od.getOrderStatus().equals(OrderStatus.CANCEL.code())) {
|
if (!od.getOrderStatus().equals(OrderStatus.CANCEL.code())) {
|
||||||
allCancel = false;
|
allCancel = false;
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 判断主单是否全部派单
|
// 判断主单是否全部派单
|
||||||
boolean allAssign = orderMasterService.isAllAssign(orderDetail.getOrderMasterId());
|
boolean allAssign = orderMasterService.isAllAssign(orderDetail.getOrderMasterId());
|
||||||
// 如果主单已经全部派单 并且 其它订单都已经取消
|
// 如果主单已经全部派单 并且 所有单都已经取消
|
||||||
if (allAssign && allCancel) {
|
if (allAssign && allCancel) {
|
||||||
logger.info("主订单[id={}]下所有的子订单都被取消 直接进入主订单取消流程", orderDetail.getOrderMasterId());
|
logger.info("主订单[id={}]下所有的子订单都被取消 直接进入主订单取消流程", orderDetail.getOrderMasterId());
|
||||||
orderMasterService.cancelAgree(orderDetail.getOrderMasterId(), 1);
|
orderMasterService.cancelAgree(orderDetail.getOrderMasterId(), 1);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.CANCEL.code());
|
|
||||||
// 发起退款
|
|
||||||
refund(orderDetail);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -414,15 +405,18 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
if (payment == null) {
|
if (payment == null) {
|
||||||
throw new BaseException("找不到支付记录");
|
throw new BaseException("找不到支付记录");
|
||||||
}
|
}
|
||||||
List<FinancialDetail> financialDetails = financialDetailService.selectListByOrderDetailId(orderDetailId);
|
|
||||||
if (CollectionUtils.isEmpty(financialDetails)) {
|
|
||||||
throw new BaseException("找不到子财务单");
|
|
||||||
}
|
|
||||||
// 子订单对应的子财务单只有一条 直接取出
|
// 子订单对应的子财务单只有一条 直接取出
|
||||||
FinancialDetail financialDetail = financialDetails.get(0);
|
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(orderDetailId);
|
||||||
|
if (financialDetail == null) {
|
||||||
|
throw new BaseException("FinancialDetail is null!!!");
|
||||||
|
}
|
||||||
if (financialDetail.getPayStatus() != 1) {
|
if (financialDetail.getPayStatus() != 1) {
|
||||||
throw new BaseException("订单不是“已支付”状态");
|
throw new BaseException("订单不是“已支付”状态");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 修改子订单状态为完成
|
||||||
|
updateStatus(orderDetailId, OrderStatus.FINISH.code());
|
||||||
|
|
||||||
Long financialMasterId = financialDetail.getFinancialMasterId();
|
Long financialMasterId = financialDetail.getFinancialMasterId();
|
||||||
// 找到 type=平台抽成 的子财务单 用来承担手续费
|
// 找到 type=平台抽成 的子财务单 用来承担手续费
|
||||||
List<FinancialDetail> details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, FinancialDetailType.PLATFORM_FEE.getCode());
|
List<FinancialDetail> details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, FinancialDetailType.PLATFORM_FEE.getCode());
|
||||||
|
|
@ -446,10 +440,13 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// --------------------- 改价单分账部分 start ---------------------
|
// --------------------- 改价单分账部分 start ---------------------
|
||||||
// 查询子订单的加价记录
|
// 查询子订单的加价记录
|
||||||
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(String.valueOf(orderDetailId));
|
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(String.valueOf(orderDetailId));
|
||||||
if (!CollectionUtils.isEmpty(financialChangeRecords)) {
|
if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
|
||||||
ArrayList<DivMember> divMembers = new ArrayList<>();
|
|
||||||
// 改价记录只会有一条 直接取出
|
// 改价记录只会有一条 直接取出
|
||||||
FinancialChangeRecord fcRecord = financialChangeRecords.get(0);
|
FinancialChangeRecord fcRecord = financialChangeRecords.get(0);
|
||||||
|
boolean paid = PayStatus.PAID.getCode().equals(fcRecord.getPayStatus());
|
||||||
|
boolean payedAdd = PayStatus.PAYED_ADD.getCode().equals(fcRecord.getPayStatus());
|
||||||
|
if (paid || payedAdd) {
|
||||||
|
ArrayList<DivMember> divMembers = new ArrayList<>();
|
||||||
addPrice = fcRecord.getChangeMoney();
|
addPrice = fcRecord.getChangeMoney();
|
||||||
// 待提现金额里加入改价单金额
|
// 待提现金额里加入改价单金额
|
||||||
dtx = dtx.add(fcRecord.getChangeMoney());
|
dtx = dtx.add(fcRecord.getChangeMoney());
|
||||||
|
|
@ -495,6 +492,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
} else {
|
} else {
|
||||||
addPrice = BigDecimal.ZERO;
|
addPrice = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
addPrice = BigDecimal.ZERO;
|
||||||
|
}
|
||||||
// --------------------- 改价单分账部分 end ---------------------
|
// --------------------- 改价单分账部分 end ---------------------
|
||||||
|
|
||||||
// --------------------- 子财务单分账部分 start ---------------------
|
// --------------------- 子财务单分账部分 start ---------------------
|
||||||
|
|
@ -579,7 +579,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// 修改订单状态
|
// 修改订单状态
|
||||||
OrderDetail odUpdate = new OrderDetail();
|
OrderDetail odUpdate = new OrderDetail();
|
||||||
odUpdate.setId(orderDetailId);
|
odUpdate.setId(orderDetailId);
|
||||||
odUpdate.setOrderStatus(OrderStatus.FINISH.code());
|
|
||||||
odUpdate.setDrawCashTime(new Date());
|
odUpdate.setDrawCashTime(new Date());
|
||||||
odUpdate.setDrawCashStatus(1);
|
odUpdate.setDrawCashStatus(1);
|
||||||
// 保存提现ID 用于同步Adapay提现状态
|
// 保存提现ID 用于同步Adapay提现状态
|
||||||
|
|
|
||||||
|
|
@ -182,10 +182,14 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
// 确认支付总金额
|
// 确认支付总金额
|
||||||
BigDecimal confirmAmt = BigDecimal.ZERO;
|
BigDecimal confirmAmt = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
// 大师傅/店铺提成=订单总金额 - 上门师傅结单金额 - 平台提成 - 订单超时罚金 - 分销金额 - 退款金额 - 订单加价
|
||||||
|
BigDecimal bigWorkerAmt = financialMaster.getPayMoney();
|
||||||
|
|
||||||
// key:memberId(分账账户ID) value:分账金额
|
// key:memberId(分账账户ID) value:分账金额
|
||||||
HashMap<String, BigDecimal> memberMap = new HashMap<>();
|
HashMap<String, BigDecimal> memberMap = new HashMap<>();
|
||||||
|
|
||||||
for (FinancialDetail financialDetail : financialDetails) {
|
for (FinancialDetail financialDetail : financialDetails) {
|
||||||
|
bigWorkerAmt = bigWorkerAmt.subtract(financialDetail.getPayMoney());
|
||||||
String memberId;
|
String memberId;
|
||||||
switch (financialDetail.getFinancialDetailType()) {
|
switch (financialDetail.getFinancialDetailType()) {
|
||||||
case 0:
|
case 0:
|
||||||
|
|
@ -193,9 +197,7 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
// 大师傅/店铺提成
|
// 大师傅/店铺提成
|
||||||
memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), orderMaster.getDeptId());
|
// 没有大师傅/店铺提成了 不再考虑这个case 2023/04/17
|
||||||
memberMap.merge(memberId, financialDetail.getPayMoney(), BigDecimal::add);
|
|
||||||
confirmAmt = confirmAmt.add(financialDetail.getPayMoney());
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// 平台提成 并且是手续费承担方
|
// 平台提成 并且是手续费承担方
|
||||||
|
|
@ -225,6 +227,14 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<FinancialChangeRecord> fcrList = financialChangeRecordService.selectByMasterId(orderMasterId);
|
||||||
|
for (FinancialChangeRecord fcr : fcrList) {
|
||||||
|
if (PayStatus.PAID.getCode().equals(fcr.getPayStatus()) || PayStatus.PAYED_ADD.getCode().equals(fcr.getPayStatus())) {
|
||||||
|
confirmAmt = confirmAmt.subtract(fcr.getChangeMoney());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memberMap.put(AdapayUtils.getWorkerMemberId(orderMaster.getWorkerId(), orderMaster.getDeptId()), bigWorkerAmt);
|
||||||
|
|
||||||
// 分账账户
|
// 分账账户
|
||||||
ArrayList<DivMember> divMembers = new ArrayList<>();
|
ArrayList<DivMember> divMembers = new ArrayList<>();
|
||||||
for (Map.Entry<String, BigDecimal> entry : memberMap.entrySet()) {
|
for (Map.Entry<String, BigDecimal> entry : memberMap.entrySet()) {
|
||||||
|
|
@ -322,6 +332,10 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
Assert.notNull(orderMaster, "找不到对应的订单");
|
Assert.notNull(orderMaster, "找不到对应的订单");
|
||||||
if (Integer.valueOf(1).equals(agree)) {
|
if (Integer.valueOf(1).equals(agree)) {
|
||||||
// 师傅同意取消订单
|
// 师傅同意取消订单
|
||||||
|
if (OrderStatus.FINISH.code() == orderMaster.getOrderStatus() || OrderStatus.CANCEL.code() == orderMaster.getOrderStatus()) {
|
||||||
|
logger.info("订单[id={}]状态不正确,orderStatus={}", orderMasterId, orderMaster.getOrderStatus());
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 把主订单状态设置为已取消
|
// 把主订单状态设置为已取消
|
||||||
updateStatus(orderMasterId, OrderStatus.CANCEL.code());
|
updateStatus(orderMasterId, OrderStatus.CANCEL.code());
|
||||||
// 把所有子订单状态设置为已取消
|
// 把所有子订单状态设置为已取消
|
||||||
|
|
@ -447,7 +461,7 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
List<OrderGoods> masterGoods = orderGoodsService.selectByOrderMasterId(orderMasterId);
|
List<OrderGoods> masterGoods = orderGoodsService.selectByOrderMasterId(orderMasterId);
|
||||||
for (OrderGoods orderGoods : masterGoods) {
|
for (OrderGoods orderGoods : masterGoods) {
|
||||||
// 是否有未派完的子单
|
// 是否有未派完的子单
|
||||||
if(!orderGoods.getGoodsNum().equals(orderGoods.getServerGoodsNum())){
|
if (!orderGoods.getGoodsNum().equals(orderGoods.getServerGoodsNum())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.ghy.payment.domain;
|
||||||
import com.ghy.common.annotation.Excel;
|
import com.ghy.common.annotation.Excel;
|
||||||
import com.ghy.common.core.domain.BaseEntity;
|
import com.ghy.common.core.domain.BaseEntity;
|
||||||
import com.ghy.common.enums.FinancialDetailType;
|
import com.ghy.common.enums.FinancialDetailType;
|
||||||
|
import com.ghy.common.enums.PayStatus;
|
||||||
|
import com.ghy.common.enums.PayTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
@ -72,10 +74,16 @@ public class FinancialDetail extends BaseEntity {
|
||||||
@Excel(name = "Adapay撤销支付或退款ID", cellType = Excel.ColumnType.STRING)
|
@Excel(name = "Adapay撤销支付或退款ID", cellType = Excel.ColumnType.STRING)
|
||||||
private String reverseId;
|
private String reverseId;
|
||||||
|
|
||||||
@Excel(name = "支付方式,微信/支付宝/线下", cellType = Excel.ColumnType.NUMERIC)
|
/**
|
||||||
|
* @see PayTypeEnum
|
||||||
|
*/
|
||||||
|
@Excel(name = "支付方式", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payType;
|
private Integer payType;
|
||||||
|
|
||||||
@Excel(name = "支付状态, 0未付款/1已付款/2已取消/3已退款", cellType = Excel.ColumnType.NUMERIC)
|
/**
|
||||||
|
* @see PayStatus
|
||||||
|
*/
|
||||||
|
@Excel(name = "支付状态", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payStatus;
|
private Integer payStatus;
|
||||||
|
|
||||||
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
|
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.ghy.payment.domain;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.ghy.common.annotation.Excel;
|
import com.ghy.common.annotation.Excel;
|
||||||
import com.ghy.common.core.domain.BaseEntity;
|
import com.ghy.common.core.domain.BaseEntity;
|
||||||
|
import com.ghy.common.enums.PayStatus;
|
||||||
|
import com.ghy.common.enums.PayTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -45,10 +47,16 @@ public class FinancialMaster extends BaseEntity {
|
||||||
@Excel(name = "服务金额", cellType = Excel.ColumnType.STRING)
|
@Excel(name = "服务金额", cellType = Excel.ColumnType.STRING)
|
||||||
private BigDecimal serverMoney;
|
private BigDecimal serverMoney;
|
||||||
|
|
||||||
@Excel(name = "支付方式,微信/支付宝/线下", cellType = Excel.ColumnType.NUMERIC)
|
/**
|
||||||
|
* @see PayTypeEnum
|
||||||
|
*/
|
||||||
|
@Excel(name = "支付方式", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payType;
|
private Integer payType;
|
||||||
|
|
||||||
@Excel(name = "支付状态, 未付款/已付款", cellType = Excel.ColumnType.NUMERIC)
|
/**
|
||||||
|
* @see PayStatus
|
||||||
|
*/
|
||||||
|
@Excel(name = "支付状态", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Integer payStatus;
|
private Integer payStatus;
|
||||||
|
|
||||||
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
|
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.ghy.payment.domain;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退款记录
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ReverseRecord {
|
||||||
|
private String id;
|
||||||
|
private Long deptId;
|
||||||
|
private String status;
|
||||||
|
@JSONField(name = "order_no")
|
||||||
|
private String orderNo;
|
||||||
|
@JSONField(name = "payment_id")
|
||||||
|
private String paymentId;
|
||||||
|
/**
|
||||||
|
* 本次撤销金额
|
||||||
|
*/
|
||||||
|
@JSONField(name = "reverse_amt")
|
||||||
|
private String reverseAmt;
|
||||||
|
/**
|
||||||
|
* 原支付对象已撤销金额,包括已撤销完成金额和撤销处理中的金额
|
||||||
|
*/
|
||||||
|
@JSONField(name = "reversed_amt")
|
||||||
|
private String reversedAmt;
|
||||||
|
/**
|
||||||
|
* 当前支付对象已确认金额
|
||||||
|
*/
|
||||||
|
@JSONField(name = "confirmed_amt")
|
||||||
|
private String confirmedAmt;
|
||||||
|
/**
|
||||||
|
* 当前支付确认对象已退款金额,包括已退款完成金额和退款处理中的金额
|
||||||
|
*/
|
||||||
|
@JSONField(name = "refunded_amt")
|
||||||
|
private String refundedAmt;
|
||||||
|
@JSONField(name = "error_code")
|
||||||
|
private String errorCode;
|
||||||
|
@JSONField(name = "error_msg")
|
||||||
|
private String errorMsg;
|
||||||
|
@JSONField(name = "error_type")
|
||||||
|
private String errorType;
|
||||||
|
@JSONField(name = "created_time")
|
||||||
|
private String createdTime;
|
||||||
|
private Date createTime;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.ghy.payment.mapper;
|
||||||
|
|
||||||
|
import com.ghy.payment.domain.ReverseRecord;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退款记录Mapper
|
||||||
|
*
|
||||||
|
* @author HH
|
||||||
|
* @date 2023/4/18
|
||||||
|
*/
|
||||||
|
public interface ReverseRecordMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全字段insert
|
||||||
|
*
|
||||||
|
* @param record 退款记录
|
||||||
|
* @return Affected rows
|
||||||
|
*/
|
||||||
|
int insert(ReverseRecord record);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全字段update
|
||||||
|
*
|
||||||
|
* @param record 退款记录
|
||||||
|
* @return Affected rows
|
||||||
|
*/
|
||||||
|
int update(ReverseRecord record);
|
||||||
|
}
|
||||||
|
|
@ -543,6 +543,7 @@ public class AdapayService {
|
||||||
reverseParams.put("notify_url", adapayProperties.getNotifyUrl());
|
reverseParams.put("notify_url", adapayProperties.getNotifyUrl());
|
||||||
reverseParams.put("order_no", type.code + System.currentTimeMillis());
|
reverseParams.put("order_no", type.code + System.currentTimeMillis());
|
||||||
JSONObject response = (JSONObject) PaymentReverse.create(reverseParams, deptId.toString());
|
JSONObject response = (JSONObject) PaymentReverse.create(reverseParams, deptId.toString());
|
||||||
|
response.put("deptId", deptId);
|
||||||
executor.execute(() -> payReverseCallbackService.onResponse(response));
|
executor.execute(() -> payReverseCallbackService.onResponse(response));
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,9 @@ public interface FinancialChangeRecordService {
|
||||||
int updatePayStatus(Long id, Integer payStatus);
|
int updatePayStatus(Long id, Integer payStatus);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加价单发起全额退款
|
* 加价单发起全额退款<br>
|
||||||
|
* 修改支付状态为 PayStatus.REFUNDING<br>
|
||||||
|
* 但不修改财务单的金额<br>
|
||||||
*
|
*
|
||||||
* @param deptId 公司ID
|
* @param deptId 公司ID
|
||||||
* @param fcr 加价单
|
* @param fcr 加价单
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,7 @@
|
||||||
<if test="payTime != null">pay_time = #{payTime},</if>
|
<if test="payTime != null">pay_time = #{payTime},</if>
|
||||||
<if test="payMoney != null">pay_money = #{payMoney},</if>
|
<if test="payMoney != null">pay_money = #{payMoney},</if>
|
||||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||||
|
<if test="reverseId != null and reverseId != ''">reverse_id = #{reverseId},</if>
|
||||||
update_time = SYSDATE()
|
update_time = SYSDATE()
|
||||||
</set>
|
</set>
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ghy.payment.mapper.ReverseRecordMapper">
|
||||||
|
|
||||||
|
<resultMap id="ColumnsMap" type="com.ghy.payment.domain.ReverseRecord">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="deptId" column="dept_id"/>
|
||||||
|
<result property="status" column="status"/>
|
||||||
|
<result property="orderNo" column="order_no"/>
|
||||||
|
<result property="paymentId" column="payment_id"/>
|
||||||
|
<result property="reverseAmt" column="reverse_amt"/>
|
||||||
|
<result property="reversedAmt" column="reversed_amt"/>
|
||||||
|
<result property="confirmedAmt" column="confirmed_amt"/>
|
||||||
|
<result property="refundedAmt" column="refunded_amt"/>
|
||||||
|
<result property="errorCode" column="error_code"/>
|
||||||
|
<result property="errorMsg" column="error_msg"/>
|
||||||
|
<result property="errorType" column="error_type"/>
|
||||||
|
<result property="createdTime" column="created_time"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="select_columns">
|
||||||
|
SELECT id, status, order_no, payment_id, reverse_amt, reversed_amt, confirmed_amt, refunded_amt,
|
||||||
|
error_code, error_msg, error_type, created_time, create_time, dept_id
|
||||||
|
FROM reverse_record
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<insert id="insert" parameterType="com.ghy.payment.domain.ReverseRecord">
|
||||||
|
INSERT INTO reverse_record(id, status, order_no, payment_id, reverse_amt, reversed_amt, confirmed_amt, refunded_amt,
|
||||||
|
error_code, error_msg, error_type, created_time, dept_id)
|
||||||
|
VALUES (#{id}, #{status}, #{orderNo}, #{paymentId}, #{reverseAmt}, #{reversedAmt}, #{confirmedAmt},
|
||||||
|
#{refundedAmt}, #{errorCode}, #{errorMsg}, #{errorType}, #{createdTime}, #{deptId})
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="update" parameterType="com.ghy.payment.domain.ReverseRecord">
|
||||||
|
UPDATE reverse_record
|
||||||
|
SET status = #{status}, order_no = #{orderNo}, payment_id = #{paymentId},
|
||||||
|
reverse_amt = #{reverseAmt}, reversed_amt = #{reversedAmt},
|
||||||
|
confirmed_amt = #{confirmedAmt}, refunded_amt = #{refundedAmt},
|
||||||
|
error_code = #{errorCode}, error_msg = #{errorMsg}, error_type = #{errorType},
|
||||||
|
created_time = #{createdTime}, dept_id = #{deptId}
|
||||||
|
WHERE id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue