生成财务主单和财务子单

This commit is contained in:
HH 2022-05-24 22:26:26 +08:00
parent d9de7f85f5
commit f459d3fc9c
21 changed files with 426 additions and 164 deletions

View File

@ -14,6 +14,7 @@ import com.ghy.order.request.AppOrderRequest;
import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderDetailService;
import com.ghy.order.service.OrderGoodsService; import com.ghy.order.service.OrderGoodsService;
import com.ghy.order.service.OrderMasterService; import com.ghy.order.service.OrderMasterService;
import com.ghy.payment.domain.FinancialDetail;
import com.ghy.payment.domain.FinancialMaster; import com.ghy.payment.domain.FinancialMaster;
import com.ghy.payment.service.FinancialDetailService; import com.ghy.payment.service.FinancialDetailService;
import com.ghy.payment.service.FinancialMasterService; import com.ghy.payment.service.FinancialMasterService;
@ -37,6 +38,10 @@ import java.util.stream.Collectors;
@RequestMapping("/order") @RequestMapping("/order")
public class OrderController extends BaseController { public class OrderController extends BaseController {
private static final BigDecimal PERCENT1 = BigDecimal.valueOf(0.01);
private static final BigDecimal PERCENT2 = BigDecimal.valueOf(0.02);
private static final BigDecimal PERCENT7 = BigDecimal.valueOf(0.07);
@Autowired @Autowired
private CustomerService customerService; private CustomerService customerService;
@ -79,8 +84,13 @@ public class OrderController extends BaseController {
Set<Long> goodsIds = appGoodsList.stream().map(AppGoodsRequest::getGoodsId).collect(Collectors.toSet()); Set<Long> goodsIds = appGoodsList.stream().map(AppGoodsRequest::getGoodsId).collect(Collectors.toSet());
// 所有商品 // 所有商品
List<Goods> goodsList = goodsService.selectByIds(goodsIds); List<Goods> goodsList = goodsService.selectByIds(goodsIds);
// 商户ID
Long deptId = goodsList.get(0).getDeptId();
Assert.notNull(deptId, "deptId is null!");
// 生成主单 // 生成主单
OrderMaster orderMaster = new OrderMaster(); OrderMaster orderMaster = new OrderMaster();
orderMaster.setDeptId(deptId);
orderMaster.setCode(orderMasterService.createOrderCode()); orderMaster.setCode(orderMasterService.createOrderCode());
orderMaster.setOrderType(1); orderMaster.setOrderType(1);
orderMaster.setOrderStatus(0); orderMaster.setOrderStatus(0);
@ -88,17 +98,23 @@ public class OrderController extends BaseController {
orderMaster.setPayStatus(0); orderMaster.setPayStatus(0);
orderMaster.setCreateTime(new Date()); orderMaster.setCreateTime(new Date());
orderMasterService.insertOrderMaster(orderMaster); orderMasterService.insertOrderMaster(orderMaster);
Assert.notNull(orderMaster.getId(), "OrderMaster ID is null!"); Assert.notNull(orderMaster.getId(), "OrderMaster.id is null!");
// TODO 优惠金额不知道咋算 暂时先给0
BigDecimal discountMoney = BigDecimal.ZERO;
BigDecimal payMoney = totalPay.subtract(discountMoney);
// 当实付金额payType<=0时 使payType=BigDecimal.ZERO
payMoney = BigDecimal.ZERO.max(payMoney);
// 生成财务主单 // 生成财务主单
FinancialMaster financialMaster = new FinancialMaster(orderMaster.getId(), orderMaster.getCode(), FinancialMaster financialMaster = new FinancialMaster(financialMasterService.createCode(), deptId,
// TODO 优惠金额不知道咋算 暂时先给0 orderMaster.getId(), orderMaster.getCode(), totalPay, discountMoney, payMoney);
totalPay, BigDecimal.ZERO, totalPay);
financialMasterService.insertFinancialMaster(financialMaster); financialMasterService.insertFinancialMaster(financialMaster);
Assert.notNull(financialMaster.getId(), "FinancialMaster.id is null!");
//TODO 生成细单 //生成财务子单
createFinancialDetail(deptId, customer, payMoney, financialMaster);
//TODO 生成财务细单(含分销等.)
// 生成商品订单 // 生成商品订单
Map<Long, Goods> goodsMap = goodsList.stream().filter(Objects::nonNull) Map<Long, Goods> goodsMap = goodsList.stream().filter(Objects::nonNull)
@ -113,4 +129,52 @@ public class OrderController extends BaseController {
return AjaxResult.success(orderMaster); return AjaxResult.success(orderMaster);
} }
/**
* 生成财务子单
*
* @param deptId 商户ID
* @param customer 消费者
* @param payMoney 实付金额
* @param financialMaster 财务主单
*/
private void createFinancialDetail(Long deptId, Customer customer, BigDecimal payMoney, FinancialMaster financialMaster) {
// 是否为0元购 是的话下面就不用多级分销了
if (BigDecimal.ZERO.equals(payMoney)) {
return;
}
// 公司抽成比例 初始10%
BigDecimal companyRatio = BigDecimal.valueOf(0.1);
// 上级分销人的 customerId
Long customerPlaceId = customer.getCustomerPlace();
if (customerPlaceId != null) {
// 子财务单的实付金额
BigDecimal fdPayMoney = payMoney.multiply(PERCENT7);
// 生成上级分销的子财务单
FinancialDetail financialDetail = new FinancialDetail(financialDetailService.createCode(), deptId,
financialMaster.getId(), fdPayMoney, 2, customerPlaceId);
financialDetailService.insertFinancialDetail(financialDetail);
companyRatio = companyRatio.subtract(PERCENT7);
}
// 祖级分销人 customerId
Long parentCustomerPlaceId = customer.getParentCustomerPlace();
if (parentCustomerPlaceId != null) {
// 子财务单的实付金额
BigDecimal fdPayMoney = payMoney.multiply(PERCENT2);
// 生成祖级分销的子财务单
FinancialDetail financialDetail = new FinancialDetail(financialDetailService.createCode(), deptId,
financialMaster.getId(), fdPayMoney, 2, parentCustomerPlaceId);
financialDetailService.insertFinancialDetail(financialDetail);
companyRatio = companyRatio.subtract(PERCENT2);
}
// 平台抽成子财务单的实付金额
BigDecimal fdPayMoney = payMoney.multiply(companyRatio);
// 生成平台抽成的子财务单
FinancialDetail financialDetail = new FinancialDetail(financialDetailService.createCode(), deptId,
financialMaster.getId(), fdPayMoney, 2, parentCustomerPlaceId);
financialDetailService.insertFinancialDetail(financialDetail);
}
} }

View File

@ -1,9 +1,12 @@
package com.ghy.web.core; package com.ghy.web.core;
import com.ghy.common.adapay.callback.PayCallback; import com.ghy.common.adapay.callback.PayCallback;
import com.ghy.common.adapay.model.AdapayStatusEnum;
import com.ghy.common.adapay.model.PayReply; import com.ghy.common.adapay.model.PayReply;
import com.ghy.order.service.OrderDetailService;
import com.ghy.order.service.OrderMasterService; import com.ghy.order.service.OrderMasterService;
import com.ghy.payment.service.FinancialMasterService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -15,20 +18,24 @@ import javax.annotation.Resource;
@Configuration @Configuration
public class AfterPay { public class AfterPay {
private static final Logger logger = LoggerFactory.getLogger(AfterPay.class);
@Resource @Resource
OrderMasterService orderMasterService; FinancialMasterService financialMasterService;
@Resource
OrderDetailService orderDetailService;
@Bean @Bean
public PayCallback payCallback() { public PayCallback payCallback() {
return new PayCallback() { return new PayCallback() {
@Override @Override
public void onReply(PayReply reply) { public void onReply(PayReply reply) {
reply.getStatus(); if (AdapayStatusEnum.succeeded.code.equals(reply.getStatus())) {
// TODO 修改 OrderMaster 订单状态 // TODO 保存支付结果到 adapay_callback_log
// TODO 修改 OrderDetail 订单状态
// TODO 保存支付结果到MySQL // 修改财务单状态为支付成功
financialMasterService.paySucceeded(reply.getOrderNo(), reply.getPayChannel());
} else {
logger.warn("支付失败:{}", reply);
}
} }
}; };
} }

View File

@ -0,0 +1,51 @@
package com.ghy.common.adapay;
/**
* 支付渠道 https://docs.adapay.tech/api/appendix.html#id2
*
* @author HH 2022/5/23
*/
public interface PayChannel {
/**
* 支付宝 App 支付
*/
String ALIPAY = "alipay";
/**
* 支付宝正扫
*/
String ALIPAY_QR = "alipay_qr";
/**
* 支付宝 H5 支付
*/
String ALIPAY_WAP = "alipay_wap";
/**
* 支付宝小程序支付
*/
String ALIPAY_LITE = "alipay_lite";
/**
* 支付宝生活号支付
*/
String ALIPAY_PUB = "alipay_pub";
/**
* 支付宝反扫
*/
String ALIPAY_SCAN = "alipay_scan";
/**
* 这个不是支付渠道
*/
String WX = "wx";
/**
* 微信公众号支付
*/
String WX_PUB = "wx_pub";
/**
* 微信小程序支付
*/
String WX_LITE = "wx_lite";
/**
* 微信反扫
*/
String WX_SCAN = "wx_scan";
}

View File

@ -1,15 +1,22 @@
package com.ghy.common.adapay; package com.ghy.common.adapay;
/** /**
* 支付渠道 * 支付渠道 https://docs.adapay.tech/api/appendix.html#id2
* *
* @author HH 2022/3/25 * @author HH 2022/3/25
*/ */
public enum PayChannelEnum { public enum PayChannelEnum {
ALIPAY_QR("alipay_qr", "支付宝正扫"), ALIPAY(PayChannel.ALIPAY, "支付宝App支付"),
WX_LITE("wx_lite", "微信小程序"), ALIPAY_QR(PayChannel.ALIPAY_QR, "支付宝正扫"),
WX_PUB("wx_pub", "微信公众号"); ALIPAY_WAP(PayChannel.ALIPAY_WAP, "支付宝H5支付"),
ALIPAY_LITE(PayChannel.ALIPAY_LITE, "支付宝小程序支付"),
ALIPAY_PUB(PayChannel.ALIPAY_PUB, "支付宝生活号支付"),
ALIPAY_SCAN(PayChannel.ALIPAY_SCAN, "支付宝反扫"),
WX_PUB(PayChannel.WX_PUB, "微信公众号"),
WX_LITE(PayChannel.WX_LITE, "微信小程序"),
WX_SCAN(PayChannel.WX_SCAN, "微信反扫");
private final String code; private final String code;
private final String description; private final String description;

View File

@ -11,8 +11,8 @@ public enum AdapayStatusEnum {
succeeded("succeeded", "成功"), succeeded("succeeded", "成功"),
failed("failed", "失败"); failed("failed", "失败");
public String code; public final String code;
public String description; public final String description;
AdapayStatusEnum(String code, String description) { AdapayStatusEnum(String code, String description) {
this.code = code; this.code = code;

View File

@ -4,6 +4,8 @@ import com.ghy.common.annotation.Excel;
import com.ghy.common.core.domain.BaseEntity; import com.ghy.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* @author clunt * @author clunt
* 细单表(转派后产生的订单) * 细单表(转派后产生的订单)
@ -20,7 +22,7 @@ public class OrderDetail extends BaseEntity {
private String code; private String code;
@Excel(name = "主单id", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "主单id", cellType = Excel.ColumnType.NUMERIC)
private Integer orderMasterId; private Long orderMasterId;
@Excel(name = "主单编码", cellType = Excel.ColumnType.STRING) @Excel(name = "主单编码", cellType = Excel.ColumnType.STRING)
private String orderMasterCode; private String orderMasterCode;
@ -37,17 +39,14 @@ public class OrderDetail extends BaseEntity {
@Excel(name = "接单师傅id", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "接单师傅id", cellType = Excel.ColumnType.NUMERIC)
private Integer workerId; private Integer workerId;
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
private String payTime;
@Excel(name = "接单时间", cellType = Excel.ColumnType.STRING) @Excel(name = "接单时间", cellType = Excel.ColumnType.STRING)
private String revTime; private Date revTime;
@Excel(name = "服务开始时间/上门时间", cellType = Excel.ColumnType.STRING) @Excel(name = "服务开始时间/上门时间", cellType = Excel.ColumnType.STRING)
private String workBeginTime; private Date workBeginTime;
@Excel(name = "服务完成时间", cellType = Excel.ColumnType.STRING) @Excel(name = "服务完成时间", cellType = Excel.ColumnType.STRING)
private String workFinishTime; private Date workFinishTime;
} }

View File

@ -34,7 +34,7 @@ public class OrderGoods extends BaseEntity {
@Excel(name = "已服务数量", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "已服务数量", cellType = Excel.ColumnType.NUMERIC)
private Integer serverGoodsNum; private Integer serverGoodsNum;
/** 创建时间 */ @Excel(name = "完成时间", cellType = Excel.ColumnType.NUMERIC)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date finishTime; private Date finishTime;

View File

@ -4,6 +4,8 @@ import com.ghy.common.annotation.Excel;
import com.ghy.common.core.domain.BaseEntity; import com.ghy.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* @author clunt * @author clunt
* 主单表(对应付款订单) * 主单表(对应付款订单)
@ -41,9 +43,9 @@ public class OrderMaster extends BaseEntity {
private Integer workerId; private Integer workerId;
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING) @Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
private String payTime; private Date payTime;
@Excel(name = "接单时间", cellType = Excel.ColumnType.STRING) @Excel(name = "接单时间", cellType = Excel.ColumnType.STRING)
private String revTime; private Date revTime;
} }

View File

@ -25,14 +25,14 @@ public class OrderMasterServiceImpl implements OrderMasterService {
@Resource @Resource
private OrderMasterMapper orderMasterMapper; private OrderMasterMapper orderMasterMapper;
AtomicLong index = new AtomicLong(1L); private static final AtomicLong INDEX = new AtomicLong(1L);
private final static ThreadLocal<SimpleDateFormat> dateFormat = ThreadLocal.withInitial(()->new SimpleDateFormat("yyyyMMddHHmmss")); private final static ThreadLocal<SimpleDateFormat> dateFormat = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyyMMddHHmmss"));
@Override @Override
public String createOrderCode() { public String createOrderCode() {
index.compareAndSet(9999L, 1L); INDEX.compareAndSet(9999L, 1L);
return "om" + dateFormat.get().format(new Date()) + index.getAndIncrement(); return "om" + dateFormat.get().format(new Date()) + INDEX.getAndIncrement();
} }
@Override @Override

View File

@ -13,7 +13,6 @@
<result property="orderType" column="order_type"/> <result property="orderType" column="order_type"/>
<result property="orderStatus" column="order_status"/> <result property="orderStatus" column="order_status"/>
<result property="workerId" column="worker_id"/> <result property="workerId" column="worker_id"/>
<result property="payTime" column="pay_time"/>
<result property="revTime" column="rev_time"/> <result property="revTime" column="rev_time"/>
<result property="workBeginTime" column="work_begin_time"/> <result property="workBeginTime" column="work_begin_time"/>
<result property="workFinishTime" column="work_finish_time"/> <result property="workFinishTime" column="work_finish_time"/>
@ -27,12 +26,12 @@
<sql id="selectOrderDetail"> <sql id="selectOrderDetail">
SELECT id, SELECT id,
code, code,
order_master_id,
order_master_code, order_master_code,
customer_id, customer_id,
order_type, order_type,
order_status, order_status,
worker_id, worker_id,
pay_time,
rev_time, rev_time,
work_begin_time, work_begin_time,
work_finish_time, work_finish_time,
@ -51,10 +50,10 @@
<if test="customerId != null and customerId != 0"> <if test="customerId != null and customerId != 0">
AND customer_id = #{customerId} AND customer_id = #{customerId}
</if> </if>
<if test="orderType != null and orderType != 0"> <if test="orderType != null">
AND order_type = #{orderType} AND order_type = #{orderType}
</if> </if>
<if test="orderStatus != null and orderStatus != 0"> <if test="orderStatus != null">
AND order_status = #{orderStatus} AND order_status = #{orderStatus}
</if> </if>
<if test="orderMasterCode != null and orderMasterCode != 0"> <if test="orderMasterCode != null and orderMasterCode != 0">
@ -67,12 +66,7 @@
</select> </select>
<select id="selectById" parameterType="long" resultMap="OrderDetailResult"> <select id="selectById" parameterType="long" resultMap="OrderDetailResult">
<include refid="selectOrderDetail"/> <include refid="selectOrderDetail"/> WHERE id = #{orderDetailId}
<where>
<if test="orderDetailId != null and orderDetailId != 0">
AND id = #{orderDetailId}
</if>
</where>
</select> </select>
<delete id="deleteOrderDetailByIds" parameterType="Long"> <delete id="deleteOrderDetailByIds" parameterType="Long">
@ -86,16 +80,15 @@
UPDATE order_detail UPDATE order_detail
<set> <set>
<if test="code != null and code != ''">code = #{code},</if> <if test="code != null and code != ''">code = #{code},</if>
<if test="orderMasterId != null and orderMasterId != ''">order_master_id = #{orderMasterId},</if> <if test="orderMasterId != null and orderMasterId != 0">order_master_id = #{orderMasterId},</if>
<if test="orderMasterCode != null and orderMasterCode != ''">order_master_code = #{orderMasterCode},</if> <if test="orderMasterCode != null and orderMasterCode != ''">order_master_code = #{orderMasterCode},</if>
<if test="customerId != null and customerId != ''">customer_id = #{customerId},</if> <if test="customerId != null and customerId != 0">customer_id = #{customerId},</if>
<if test="orderType != null and orderType != ''">order_type = #{orderType},</if> <if test="orderType != null">order_type = #{orderType},</if>
<if test="orderStatus != null and orderStatus != ''">order_status = #{orderStatus},</if> <if test="orderStatus != null">order_status = #{orderStatus},</if>
<if test="workerId != null and workerId != ''">worker_id = #{workerId},</if> <if test="workerId != null and workerId != 0">worker_id = #{workerId},</if>
<if test="payTime != null and payTime != ''">pay_time = #{payTime},</if> <if test="revTime != null">rev_time = #{revTime},</if>
<if test="revTime != null and revTime != ''">rev_time = #{revTime},</if> <if test="workBeginTime != null">work_begin_time = #{workBeginTime},</if>
<if test="workBeginTime != null and workBeginTime != ''">work_begin_time = #{workBeginTime},</if> <if test="workFinishTime != null">work_finish_time = #{workFinishTime},</if>
<if test="workFinishTime != null and workFinishTime != ''">work_finish_time = #{workFinishTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
@ -104,31 +97,29 @@
<insert id="insertOrderDetail" parameterType="com.ghy.order.domain.OrderDetail" useGeneratedKeys="true" keyProperty="id"> <insert id="insertOrderDetail" parameterType="com.ghy.order.domain.OrderDetail" useGeneratedKeys="true" keyProperty="id">
INSERT INTO order_detail( INSERT INTO order_detail(
<if test="code != null and code != 0">code,</if> <if test="code != null and code != ''">code,</if>
<if test="orderMasterId != null and orderMasterId != ''">order_master_id,</if> <if test="orderMasterId != null and orderMasterId != 0">order_master_id,</if>
<if test="orderMasterCode != null and orderMasterCode != ''">order_master_code,</if> <if test="orderMasterCode != null and orderMasterCode != ''">order_master_code,</if>
<if test="customerId != null and customerId != ''">customer_id,</if> <if test="customerId != null and customerId != 0">customer_id,</if>
<if test="orderType != null and orderType != ''">order_type,</if> <if test="orderType != null">order_type,</if>
<if test="orderStatus != null and orderStatus != ''">order_status,</if> <if test="orderStatus != null">order_status,</if>
<if test="workerId != null and workerId != ''">worker_id,</if> <if test="workerId != null and workerId != 0">worker_id,</if>
<if test="payTime != null and payTime != ''">pay_time,</if> <if test="revTime != null">rev_time,</if>
<if test="revTime != null and revTime != ''">rev_time,</if> <if test="workBeginTime != null">work_begin_time,</if>
<if test="workBeginTime != null and workBeginTime != ''">work_begin_time,</if> <if test="workFinishTime != null">work_finish_time,</if>
<if test="workFinishTime != null and workFinishTime != ''">work_finish_time,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
)VALUES( )VALUES(
<if test="code != null and code != 0">#{code},</if> <if test="code != null and code != ''">#{code},</if>
<if test="orderMasterId != null and orderMasterId != ''">o#{orderMasterId},</if> <if test="orderMasterId != null and orderMasterId != 0">o#{orderMasterId},</if>
<if test="orderMasterCode != null and orderMasterCode != ''">#{orderMasterCode},</if> <if test="orderMasterCode != null and orderMasterCode != ''">#{orderMasterCode},</if>
<if test="customerId != null and customerId != ''">#{customerId},</if> <if test="customerId != null and customerId != 0">#{customerId},</if>
<if test="orderType != null and orderType != ''">#{orderType},</if> <if test="orderType != null">#{orderType},</if>
<if test="orderStatus != null and orderStatus != ''">#{orderStatus},</if> <if test="orderStatus != null">#{orderStatus},</if>
<if test="workerId != null and workerId != ''">#{workerId},</if> <if test="workerId != null and workerId != 0">#{workerId},</if>
<if test="payTime != null and payTime != ''">#{payTime},</if> <if test="revTime != null">#{revTime},</if>
<if test="revTime != null and revTime != ''">#{revTime},</if> <if test="workBeginTime != null">#{workBeginTime},</if>
<if test="workBeginTime != null and workBeginTime != ''">#{workBeginTime},</if> <if test="workFinishTime != null">#{workFinishTime},</if>
<if test="workFinishTime != null and workFinishTime != ''">#{workFinishTime},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
SYSDATE() SYSDATE()
) )

View File

@ -20,19 +20,20 @@
</resultMap> </resultMap>
<sql id="selectOrderGoods"> <sql id="selectOrderGoods">
SELECT order_goods_id, order_id, goods_name, goods_num, server_goods_num, finish_time, create_by, create_time, remark SELECT order_goods_id, order_id, goods_id, goods_name, goods_num, server_goods_num,
finish_time, create_by, create_time, update_by, update_time, remark
FROM order_goods FROM order_goods
</sql> </sql>
<update id="updateOrderGoods" parameterType="com.ghy.order.domain.OrderGoods"> <update id="updateOrderGoods" parameterType="com.ghy.order.domain.OrderGoods">
UPDATE order_goods UPDATE order_goods
<set> <set>
<if test="orderId != null and orderId != ''">order_id = #{orderId},</if> <if test="orderId != null and orderId != 0">order_id = #{orderId},</if>
<if test="goodsId != null and goodsId != ''">goods_id = #{goodsId},</if> <if test="goodsId != null and goodsId != 0">goods_id = #{goodsId},</if>
<if test="goodsName != null and goodsName != ''">goods_name = #{goodsName},</if> <if test="goodsName != null and goodsName != ''">goods_name = #{goodsName},</if>
<if test="goodsNum != null and goodsNum != ''">goods_num = #{goodsNum},</if> <if test="goodsNum != null">goods_num = #{goodsNum},</if>
<if test="serverGoodsNum != null and serverGoodsNum != ''">server_goods_num = #{serverGoodsNum},</if> <if test="serverGoodsNum != null">server_goods_num = #{serverGoodsNum},</if>
<if test="finishTime != null and finishTime != ''">finish_time = #{finishTime},</if> <if test="finishTime != null">finish_time = #{finishTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
@ -42,21 +43,21 @@
<insert id="insertOrderGoods" parameterType="com.ghy.order.domain.OrderGoods" useGeneratedKeys="true" <insert id="insertOrderGoods" parameterType="com.ghy.order.domain.OrderGoods" useGeneratedKeys="true"
keyProperty="id"> keyProperty="id">
INSERT INTO order_goods( INSERT INTO order_goods(
<if test="orderId != null and orderId != ''">order_id,</if> <if test="orderId != null and orderId != 0">order_id,</if>
<if test="goodsId != null and goodsId != ''">goods_id,</if> <if test="goodsId != null and goodsId != 0">goods_id,</if>
<if test="goodsName != null and goodsName != ''">goods_name,</if> <if test="goodsName != null and goodsName != ''">goods_name,</if>
<if test="goodsNum != null and goodsNum != ''">goods_num,</if> <if test="goodsNum != null">goods_num,</if>
<if test="serverGoodsNum != null and serverGoodsNum != ''">server_goods_num,</if> <if test="serverGoodsNum != null">server_goods_num,</if>
<if test="finishTime != null and finishTime != ''">finish_time,</if> <if test="finishTime != null">finish_time,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
)VALUES( )VALUES(
<if test="orderId != null and orderId != ''">#{orderId},</if> <if test="orderId != null and orderId != 0">#{orderId},</if>
<if test="goodsId != null and goodsId != ''">#{goodsId},</if> <if test="goodsId != null and goodsId != 0">#{goodsId},</if>
<if test="goodsName != null and goodsName != ''">#{goodsName},</if> <if test="goodsName != null and goodsName != ''">#{goodsName},</if>
<if test="goodsNum != null and goodsNum != ''">#{goodsNum},</if> <if test="goodsNum != null">#{goodsNum},</if>
<if test="serverGoodsNum != null and serverGoodsNum != ''">#{serverGoodsNum},</if> <if test="serverGoodsNum != null">#{serverGoodsNum},</if>
<if test="finishTime != null and finishTime != ''">#{finishTime},</if> <if test="finishTime != null">#{finishTime},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
SYSDATE() SYSDATE()
) )
@ -65,14 +66,14 @@
<select id="selectOrderGoodsList" parameterType="com.ghy.order.domain.OrderGoods" resultMap="OrderGoodsResult"> <select id="selectOrderGoodsList" parameterType="com.ghy.order.domain.OrderGoods" resultMap="OrderGoodsResult">
<include refid="selectOrderGoods"/> <include refid="selectOrderGoods"/>
<where> <where>
<if test="orderId != null and orderId != ''"> <if test="orderId != null and orderId != 0">
AND order_id LIKE concat('%', #{orderId}, '%') AND order_id = #{orderId}
</if> </if>
<if test="goodsId != null and goodsId != 0"> <if test="goodsId != null and goodsId != 0">
AND goods_id = #{goodsId} AND goods_id = #{goodsId}
</if> </if>
<if test="goodsName != null and goodsName != 0"> <if test="goodsName != null and goodsName != ''">
AND goods_name = #{goodsName} AND goods_name LIKE concat('%', #{goodsName}, '%')
</if> </if>
</where> </where>
</select> </select>
@ -87,7 +88,7 @@
</select> </select>
<delete id="deleteOrderGoodsByIds" parameterType="Long"> <delete id="deleteOrderGoodsByIds" parameterType="Long">
DELETE FROM order_goods WHERE id IN DELETE FROM order_goods WHERE order_goods_id IN
<foreach collection="array" item="orderGoodsId" open="(" separator="," close=")"> <foreach collection="array" item="orderGoodsId" open="(" separator="," close=")">
#{orderGoodsId} #{orderGoodsId}
</foreach> </foreach>

View File

@ -6,6 +6,7 @@
<resultMap id="OrderMasterResult" type="com.ghy.order.domain.OrderMaster"> <resultMap id="OrderMasterResult" type="com.ghy.order.domain.OrderMaster">
<id property="id" column="id"/> <id property="id" column="id"/>
<result property="deptId" column="dept_id"/>
<result property="code" column="code"/> <result property="code" column="code"/>
<result property="customerId" column="customer_id"/> <result property="customerId" column="customer_id"/>
<result property="orderType" column="order_type"/> <result property="orderType" column="order_type"/>
@ -24,6 +25,7 @@
<sql id="selectOrderMaster"> <sql id="selectOrderMaster">
SELECT id, SELECT id,
dept_id,
code, code,
customer_id, customer_id,
order_type, order_type,
@ -42,22 +44,25 @@
<select id="selectOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultMap="OrderMasterResult"> <select id="selectOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultMap="OrderMasterResult">
<include refid="selectOrderMaster"/> <include refid="selectOrderMaster"/>
<where> <where>
<if test="deptId != null and deptId != 0">
AND dept_id = #{deptId}
</if>
<if test="code != null and code != ''"> <if test="code != null and code != ''">
AND code LIKE concat('%', #{code}, '%') AND `code` LIKE concat('%', #{code}, '%')
</if> </if>
<if test="customerId != null and customerId != 0"> <if test="customerId != null and customerId != 0">
AND customer_id = #{customerId} AND customer_id = #{customerId}
</if> </if>
<if test="orderType != null and orderType != 0"> <if test="orderType != null">
AND order_type = #{orderType} AND order_type = #{orderType}
</if> </if>
<if test="orderStatus != null and orderStatus != 0"> <if test="orderStatus != null">
AND order_status = #{orderStatus} AND order_status = #{orderStatus}
</if> </if>
<if test="payType != null and payType != 0"> <if test="payType != null">
AND pay_type = #{payType} AND pay_type = #{payType}
</if> </if>
<if test="payStatus != null and payStatus != 0"> <if test="payStatus != null">
AND pay_status = #{payStatus} AND pay_status = #{payStatus}
</if> </if>
<if test="workerId != null and workerId != 0"> <if test="workerId != null and workerId != 0">
@ -86,14 +91,14 @@
UPDATE order_master UPDATE order_master
<set> <set>
<if test="code != null and code != ''">code = #{code},</if> <if test="code != null and code != ''">code = #{code},</if>
<if test="customerId != null and customerId != ''">customer_id = #{customerId},</if> <if test="customerId != null and customerId != 0">customer_id = #{customerId},</if>
<if test="orderType != null and orderType != ''">order_type = #{orderType},</if> <if test="orderType != null">order_type = #{orderType},</if>
<if test="orderStatus != null and orderStatus != ''">order_status = #{orderStatus},</if> <if test="orderStatus != null">order_status = #{orderStatus},</if>
<if test="payType != null and payType != ''">pay_type = #{payType},</if> <if test="payType != null">pay_type = #{payType},</if>
<if test="payStatus != null and payStatus != ''">pay_status = #{payStatus},</if> <if test="payStatus != null">pay_status = #{payStatus},</if>
<if test="workerId != null and workerId != ''">worker_id = #{workerId},</if> <if test="workerId != null and workerId != 0">worker_id = #{workerId},</if>
<if test="payTime != null and payTime != ''">pay_time = #{payTime},</if> <if test="payTime != null">pay_time = #{payTime},</if>
<if test="revTime != null and revTime != ''">rev_time = #{revTime},</if> <if test="revTime != null">rev_time = #{revTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
@ -102,27 +107,29 @@
<insert id="insertOrderMaster" parameterType="com.ghy.order.domain.OrderMaster" useGeneratedKeys="true" keyProperty="id"> <insert id="insertOrderMaster" parameterType="com.ghy.order.domain.OrderMaster" useGeneratedKeys="true" keyProperty="id">
INSERT INTO order_master( INSERT INTO order_master(
<if test="code != null ">code,</if> <if test="deptId != null and deptId != 0">dept_id,</if>
<if test="customerId != null and customerId != ''">customer_id,</if> <if test="code != null and code != ''">code,</if>
<if test="orderType != null and orderType != ''">order_type,</if> <if test="customerId != null and customerId != 0">customer_id,</if>
<if test="orderStatus != null and orderStatus != ''">order_status,</if> <if test="orderType != null">order_type,</if>
<if test="payType != null and payType != ''">pay_type,</if> <if test="orderStatus != null">order_status,</if>
<if test="payStatus != null and payStatus != ''">pay_status,</if> <if test="payType != null">pay_type,</if>
<if test="workerId != null and workerId != ''">worker_id,</if> <if test="payStatus != null">pay_status,</if>
<if test="payTime != null and payTime != ''">pay_time,</if> <if test="workerId != null and workerId != 0">worker_id,</if>
<if test="revTime != null and revTime != ''">rev_time,</if> <if test="payTime != null">pay_time,</if>
<if test="revTime != null">rev_time,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
)VALUES( )VALUES(
<if test="deptId != null and deptId != 0">#{deptId},</if>
<if test="code != null">#{code},</if> <if test="code != null">#{code},</if>
<if test="customerId != null and customerId != ''">#{customerId},</if> <if test="customerId != null and customerId != 0">#{customerId},</if>
<if test="orderType != null and orderType != ''">#{orderType},</if> <if test="orderType != null">#{orderType},</if>
<if test="orderStatus != null and orderStatus != ''">#{orderStatus},</if> <if test="orderStatus != null">#{orderStatus},</if>
<if test="payType != null and payType != ''">#{payType},</if> <if test="payType != null">#{payType},</if>
<if test="payStatus != null and payStatus != ''">#{payStatus},</if> <if test="payStatus != null">#{payStatus},</if>
<if test="workerId != null and workerId != ''">#{workerId},</if> <if test="workerId != null and workerId != 0">#{workerId},</if>
<if test="payTime != null and payTime != ''">#{payTime},</if> <if test="payTime != null">#{payTime},</if>
<if test="revTime != null and revTime != ''">#{revTime},</if> <if test="revTime != null">#{revTime},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
SYSDATE() SYSDATE()
) )

View File

@ -18,14 +18,20 @@ public class FinancialDetail extends BaseEntity {
@Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC)
private Long id; private Long id;
@Excel(name = "编码") @Excel(name = "商户ID", cellType = Excel.ColumnType.NUMERIC)
private Long deptId;
@Excel(name = "编码", cellType = Excel.ColumnType.STRING)
private String code; private String code;
@Excel(name = "子订单序号", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "主财务单ID", cellType = Excel.ColumnType.NUMERIC)
private Long orderMasterId; private Long financialMasterId;
@Excel(name = "子订单编码", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "子订单ID", cellType = Excel.ColumnType.NUMERIC)
private String orderMasterCode; private Long orderDetailId;
@Excel(name = "子订单编码", cellType = Excel.ColumnType.STRING)
private String orderDetailCode;
@Excel(name = "子单总金额", cellType = Excel.ColumnType.STRING) @Excel(name = "子单总金额", cellType = Excel.ColumnType.STRING)
private BigDecimal totalMoney; private BigDecimal totalMoney;
@ -39,6 +45,15 @@ public class FinancialDetail extends BaseEntity {
@Excel(name = "财务子单类型,师傅转派/多级分销/平台抽成", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "财务子单类型,师傅转派/多级分销/平台抽成", cellType = Excel.ColumnType.NUMERIC)
private Integer financialDetailType; private Integer financialDetailType;
/**
* 收款人ID
* 当财务子单类型是师傅转派时 收款人ID是师傅或徒弟的workerId
* 当财务子单类型是多级分销时 收款人ID是分销者的customerId
* 当财务子单类型是平台抽成 无需填写收款人ID
*/
@Excel(name = "收款人ID", cellType = Excel.ColumnType.NUMERIC)
private Long payeeId;
@Excel(name = "支付方式,微信/支付宝/线下", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "支付方式,微信/支付宝/线下", cellType = Excel.ColumnType.NUMERIC)
private Integer payType; private Integer payType;
@ -48,4 +63,14 @@ public class FinancialDetail extends BaseEntity {
@Excel(name = "付款时间", cellType = Excel.ColumnType.STRING) @Excel(name = "付款时间", cellType = Excel.ColumnType.STRING)
private String payTime; private String payTime;
public FinancialDetail() {
}
public FinancialDetail(String code, Long deptId, Long financialMasterId, BigDecimal payMoney, Integer financialDetailType, Long payeeId) {
this.code = code;
this.financialMasterId = financialMasterId;
this.payMoney = payMoney;
this.financialDetailType = financialDetailType;
this.payeeId = payeeId;
}
} }

View File

@ -20,6 +20,12 @@ public class FinancialMaster extends BaseEntity {
@Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC)
private Long id; private Long id;
@Excel(name = "商户ID", cellType = Excel.ColumnType.NUMERIC)
private Long deptId;
@Excel(name = "编码", cellType = Excel.ColumnType.STRING)
private String code;
@Excel(name = "主订单序号", cellType = Excel.ColumnType.NUMERIC) @Excel(name = "主订单序号", cellType = Excel.ColumnType.NUMERIC)
private Long orderMasterId; private Long orderMasterId;
@ -48,7 +54,8 @@ public class FinancialMaster extends BaseEntity {
public FinancialMaster() { public FinancialMaster() {
} }
public FinancialMaster(Long orderMasterId, String orderMasterCode, BigDecimal totalMoney, BigDecimal discountMoney, BigDecimal payMoney) { public FinancialMaster(String code, Long deptId, Long orderMasterId, String orderMasterCode, BigDecimal totalMoney, BigDecimal discountMoney, BigDecimal payMoney) {
this.code = code;
this.orderMasterId = orderMasterId; this.orderMasterId = orderMasterId;
this.orderMasterCode = orderMasterCode; this.orderMasterCode = orderMasterCode;
this.totalMoney = totalMoney; this.totalMoney = totalMoney;

View File

@ -43,4 +43,11 @@ public interface FinancialMasterMapper {
*/ */
int deleteFinancialMasterByIds(Long[] financialMasterIds); int deleteFinancialMasterByIds(Long[] financialMasterIds);
/**
* 支付成功
*
* @param orderNo 订单号
* @param payType 支付渠道
*/
void paySucceeded(String orderNo, int payType);
} }

View File

@ -49,4 +49,10 @@ public interface FinancialDetailService {
* @return 校验结果 1存在 0不存在 * @return 校验结果 1存在 0不存在
*/ */
String checkFinancialDetailCodeUnique(FinancialDetail financialDetail); String checkFinancialDetailCodeUnique(FinancialDetail financialDetail);
/**
* 生成子财务单ID
*/
String createCode();
} }

View File

@ -42,4 +42,16 @@ public interface FinancialMasterService {
*/ */
int deleteFinancialMasterByIds(String ids); int deleteFinancialMasterByIds(String ids);
/**
* 支付成功
*
* @param orderNo 订单号
* @param payChannel 支付渠道
*/
void paySucceeded(String orderNo, String payChannel);
/**
* 创建主财务单CODE
*/
String createCode();
} }

View File

@ -8,11 +8,26 @@ import com.ghy.payment.service.FinancialDetailService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
import static java.time.temporal.ChronoField.*;
import static java.time.temporal.ChronoField.SECOND_OF_MINUTE;
@Service @Service
public class FinancialDetailServiceImpl implements FinancialDetailService { public class FinancialDetailServiceImpl implements FinancialDetailService {
private static final AtomicLong INDEX = new AtomicLong(1L);
public static final DateTimeFormatter MINI_FORMATTER = new DateTimeFormatterBuilder()
.appendValue(YEAR, 4).appendValue(MONTH_OF_YEAR, 2)
.appendValue(DAY_OF_MONTH, 2).appendValue(HOUR_OF_DAY, 2)
.appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).toFormatter();
@Resource @Resource
private FinancialDetailMapper financialDetailMapper; private FinancialDetailMapper financialDetailMapper;
@ -51,4 +66,11 @@ public class FinancialDetailServiceImpl implements FinancialDetailService {
} }
return UserConstants.FINANCIAL_CODE_UNIQUE; return UserConstants.FINANCIAL_CODE_UNIQUE;
} }
@Override
public String createCode() {
INDEX.compareAndSet(9999L, 1L);
LocalDateTime now = LocalDateTime.now();
return "fd" + now.format(MINI_FORMATTER) + INDEX.getAndIncrement();
}
} }

View File

@ -4,10 +4,21 @@ import com.ghy.common.core.text.Convert;
import com.ghy.payment.domain.FinancialMaster; import com.ghy.payment.domain.FinancialMaster;
import com.ghy.payment.mapper.FinancialMasterMapper; import com.ghy.payment.mapper.FinancialMasterMapper;
import com.ghy.payment.service.FinancialMasterService; import com.ghy.payment.service.FinancialMasterService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
import static com.ghy.common.adapay.PayChannel.ALIPAY;
import static com.ghy.common.adapay.PayChannel.WX;
import static java.time.temporal.ChronoField.*;
/** /**
* 商品模块实现类 * 商品模块实现类
@ -17,6 +28,15 @@ import java.util.List;
@Service @Service
public class FinancialMasterServiceImpl implements FinancialMasterService { public class FinancialMasterServiceImpl implements FinancialMasterService {
private static final Logger logger = LoggerFactory.getLogger(FinancialMasterServiceImpl.class);
private static final AtomicLong INDEX = new AtomicLong(1L);
public static final DateTimeFormatter MINI_FORMATTER = new DateTimeFormatterBuilder()
.appendValue(YEAR, 4).appendValue(MONTH_OF_YEAR, 2)
.appendValue(DAY_OF_MONTH, 2).appendValue(HOUR_OF_DAY, 2)
.appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).toFormatter();
@Resource @Resource
private FinancialMasterMapper financialMasterMapper; private FinancialMasterMapper financialMasterMapper;
@ -46,4 +66,28 @@ public class FinancialMasterServiceImpl implements FinancialMasterService {
return financialMasterMapper.deleteFinancialMasterByIds(financialMasterIds); return financialMasterMapper.deleteFinancialMasterByIds(financialMasterIds);
} }
@Override
public void paySucceeded(String orderNo, String payChannel) {
int payType;
if (StringUtils.isBlank(payChannel)) {
payType = -1;
logger.warn("OrderNo[{}] Unknown payChannel [{}]!", orderNo, payChannel);
} else if (payChannel.startsWith(WX)) {
payType = 0;
} else if (payChannel.startsWith(ALIPAY)) {
payType = 1;
} else {
payType = -1;
logger.warn("OrderNo[{}] Unknown payChannel [{}]!", orderNo, payChannel);
}
financialMasterMapper.paySucceeded(orderNo, payType);
}
@Override
public String createCode() {
INDEX.compareAndSet(9999L, 1L);
LocalDateTime now = LocalDateTime.now();
return "fm" + now.format(MINI_FORMATTER) + INDEX.getAndIncrement();
}
} }

View File

@ -6,16 +6,19 @@
<resultMap id="FinancialDetailResult" type="com.ghy.payment.domain.FinancialDetail"> <resultMap id="FinancialDetailResult" type="com.ghy.payment.domain.FinancialDetail">
<id property="id" column="id"/> <id property="id" column="id"/>
<result property="deptId" column="dept_id"/>
<result property="code" column="code"/> <result property="code" column="code"/>
<result property="orderMasterId" column="order_master_id"/> <result property="financialMasterId" column="financial_master_id"/>
<result property="orderMasterCode" column="order_master_code"/> <result property="orderDetailId" column="order_detail_id"/>
<result property="orderDetailCode" column="order_detail_code"/>
<result property="totalMoney" column="total_money"/> <result property="totalMoney" column="total_money"/>
<result property="discountMoney" column="discount_money"/> <result property="discountMoney" column="discount_money"/>
<result property="payMoney" column="pay_money"/> <result property="payMoney" column="pay_money"/>
<result property="financialDetailType" column="financial_detail_type"/>
<result property="payeeId" column="payee_id"/>
<result property="payType" column="pay_type"/> <result property="payType" column="pay_type"/>
<result property="payStatus" column="pay_status"/> <result property="payStatus" column="pay_status"/>
<result property="payTime" column="pay_time"/> <result property="payTime" column="pay_time"/>
<result property="financialDetailType" column="financial_detail_type"/>
<result property="createBy" column="create_by"/> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>

View File

@ -6,6 +6,8 @@
<resultMap id="FinancialMasterResult" type="com.ghy.payment.domain.FinancialMaster"> <resultMap id="FinancialMasterResult" type="com.ghy.payment.domain.FinancialMaster">
<id property="id" column="id"/> <id property="id" column="id"/>
<result property="deptId" column="dept_id"/>
<result property="code" column="code"/>
<result property="orderMasterId" column="order_master_id"/> <result property="orderMasterId" column="order_master_id"/>
<result property="orderMasterCode" column="order_master_code"/> <result property="orderMasterCode" column="order_master_code"/>
<result property="totalMoney" column="total_money"/> <result property="totalMoney" column="total_money"/>
@ -22,18 +24,8 @@
</resultMap> </resultMap>
<sql id="selectFinancialMaster"> <sql id="selectFinancialMaster">
SELECT id, SELECT id, dept_id, code, order_master_id, order_master_code, total_money, discount_money, pay_money,
order_master_id, pay_type, pay_status, pay_time, create_by, create_time, update_by, update_time, remark
order_master_code,
total_money,
discount_money,
pay_money,
pay_type,
pay_status,
pay_time,
create_by,
create_time,
remark
FROM financial_master FROM financial_master
</sql> </sql>
@ -46,10 +38,10 @@
<if test="orderMasterCode != null and orderMasterCode != ''"> <if test="orderMasterCode != null and orderMasterCode != ''">
AND order_master_code LIKE concat('%', #{orderMasterCode}, '%') AND order_master_code LIKE concat('%', #{orderMasterCode}, '%')
</if> </if>
<if test="payType != null and payType != 0"> <if test="payType != null">
AND pay_type = #{payType} AND pay_type = #{payType}
</if> </if>
<if test="payStatus != null and payStatus != 0"> <if test="payStatus != null">
AND pay_status = #{payStatus} AND pay_status = #{payStatus}
</if> </if>
</where> </where>
@ -74,39 +66,54 @@
<update id="updateFinancialMaster" parameterType="com.ghy.payment.domain.FinancialMaster"> <update id="updateFinancialMaster" parameterType="com.ghy.payment.domain.FinancialMaster">
UPDATE financial_master UPDATE financial_master
<set> <set>
<if test="orderMasterId != null and orderMasterId != ''">order_master_id = #{orderMasterId},</if> <if test="deptId != null">dept_id = #{deptId},</if>
<if test="code != null and code != ''">`code` = #{code},</if>
<if test="orderMasterId != null and orderMasterId != 0">order_master_id = #{orderMasterId},</if>
<if test="orderMasterCode != null and orderMasterCode != ''">order_master_code = #{orderMasterCode},</if> <if test="orderMasterCode != null and orderMasterCode != ''">order_master_code = #{orderMasterCode},</if>
<if test="totalMoney != null and totalMoney != ''">total_money = #{totalMoney},</if> <if test="totalMoney != null">total_money = #{totalMoney},</if>
<if test="discountMoney != null and discountMoney != ''">discount_money = #{discountMoney},</if> <if test="discountMoney != null">discount_money = #{discountMoney},</if>
<if test="payType != null and payType != ''">pay_type = #{payType},</if> <if test="payType != null">pay_type = #{payType},</if>
<if test="payStatus != null and payStatus != ''">pay_status = #{payStatus},</if> <if test="payStatus != null">pay_status = #{payStatus},</if>
<if test="payTime != null">pay_time = #{payTime},</if> <if test="payTime != null">pay_time = #{payTime},</if>
<if test="payMoney != null and payMoney != ''">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>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
WHERE id = #{id} WHERE id = #{id}
</update> </update>
<update id="paySucceeded">
UPDATE financial_master SET
pay_status = #{payStatus},
pay_type = #{payType},
pay_time = SYSDATE(),
update_time = SYSDATE()
WHERE order_master_code = #{orderNo}
</update>
<insert id="insertFinancialMaster" parameterType="com.ghy.payment.domain.FinancialMaster" useGeneratedKeys="true" keyProperty="id"> <insert id="insertFinancialMaster" parameterType="com.ghy.payment.domain.FinancialMaster" useGeneratedKeys="true" keyProperty="id">
INSERT INTO financial_master( INSERT INTO financial_master(
<if test="deptId != null">dept_id,</if>
<if test="code != null and code != ''">`code`,</if>
<if test="orderMasterId != null and orderMasterId != 0">order_master_id,</if> <if test="orderMasterId != null and orderMasterId != 0">order_master_id,</if>
<if test="orderMasterCode != null and orderMasterCode != ''">order_master_code,</if> <if test="orderMasterCode != null and orderMasterCode != ''">order_master_code,</if>
<if test="totalMoney != null and totalMoney != ''">total_money,</if> <if test="totalMoney != null">total_money,</if>
<if test="discountMoney != null and discountMoney != ''">discount_money,</if> <if test="discountMoney != null">discount_money,</if>
<if test="payType != null and payType != ''">pay_type,</if> <if test="payType != null">pay_type,</if>
<if test="payStatus != null and payStatus != ''">pay_status,</if> <if test="payStatus != null">pay_status,</if>
<if test="payMoney != null and payMoney != ''">pay_money,</if> <if test="payMoney != null">pay_money,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
)VALUES( )VALUES(
<if test="deptId != null">#{deptId},</if>
<if test="code != null and code != ''">#{code},</if>
<if test="orderMasterId != null and orderMasterId != 0">#{orderMasterId},</if> <if test="orderMasterId != null and orderMasterId != 0">#{orderMasterId},</if>
<if test="orderMasterCode != null and orderMasterCode != ''">#{orderMasterCode},</if> <if test="orderMasterCode != null and orderMasterCode != ''">#{orderMasterCode},</if>
<if test="totalMoney != null and totalMoney != ''">#{totalMoney},</if> <if test="totalMoney != null">#{totalMoney},</if>
<if test="discountMoney != null and discountMoney != ''">#{discountMoney},</if> <if test="discountMoney != null">#{discountMoney},</if>
<if test="payType != null and payType != ''">#{payType},</if> <if test="payType != null">#{payType},</if>
<if test="payStatus != null and payStatus != ''">#{payStatus},</if> <if test="payStatus != null">#{payStatus},</if>
<if test="payMoney != null and payMoney != ''">#{payMoney},</if> <if test="payMoney != null">#{payMoney},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
SYSDATE() SYSDATE()
) )