Просмотр исходного кода

[收银台][修改]:收银台支持券

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
c0f6ee12b1
10 измененных файлов: 289 добавлений и 8 удалений
  1. +2
    -0
      mallinkAdmin/src/main/resources/db/migration/V201910211400__ALTER_ORDER.sql
  2. +44
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  3. +94
    -5
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  5. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  6. +9
    -0
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  7. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  8. +123
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  9. +9
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  10. +2
    -1
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 2
- 0
mallinkAdmin/src/main/resources/db/migration/V201910211400__ALTER_ORDER.sql Просмотреть файл

@@ -0,0 +1,2 @@
ALTER TABLE `wx_order`
ADD COLUMN `total_payment` int(11) NULL COMMENT '总支付金额';

+ 44
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java Просмотреть файл

@@ -1,9 +1,11 @@
package com.iformall.controller;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.po.WxMerchantBUser;
@@ -11,6 +13,7 @@ import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.enums.EnumCreditLockedStatus;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxCUserBasicInfoService;
import com.iformall.service.WxCUserService;
import com.iformall.service.WxCouponOrderService;
import com.iformall.service.WxMerchantBUserService;
import io.swagger.annotations.Api;
@@ -23,7 +26,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@@ -41,6 +47,9 @@ public class WxCouponOrderController extends BaseController {
@Autowired
private WxCUserBasicInfoService wxCUserBasicInfoService;

@Autowired
private WxCUserService wxCUserService;


@ApiOperation("分页列表接口")
@GetMapping("list")
@@ -210,4 +219,39 @@ public class WxCouponOrderController extends BaseController {

return new ResultData();
}

@ApiOperation(value = "获取C端用户可用券", notes = "{\"cUserId\":\"必填\",\"payPrice\":\"支付金额\"}")
@PostMapping("getAvailCouponOrder")
public ResultData getAvailCouponOrder(@RequestBody Map<String, String> paramMap) {
WxMerchantBUser user = getUser();
String cUserIdStr = paramMap.get("cUserId");
String payPriceStr = paramMap.get("payPrice");
if (StringUtils.isBlank(cUserIdStr)) {
logger.error("cUserId不能为空: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
if (StringUtils.isBlank(payPriceStr)) {
logger.error("payPriceStr不能为空: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}

BigDecimal totalFee = new BigDecimal(payPriceStr);
totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
Integer payPrice = totalFee.multiply(new BigDecimal(100)).intValue();
Long cUserId = 0L;
try {
cUserId = Long.valueOf(cUserIdStr);
} catch (NumberFormatException e) {
cUserId = 0L;
logger.error("cUserId参数不正确: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_CLASSCAST_ERROR);
}

WxCUser cUser = wxCUserService.getById(cUserId);

List<WxCouponOrderCVo> avaList = wxCouponOrderService.queryMicroPayCouponOrder(user, cUser, payPrice);
return new ResultData(avaList);
}


}

+ 94
- 5
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java Просмотреть файл

@@ -4,9 +4,8 @@ package com.iformall.controller;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.enums.EnumOrderType;
import com.iformall.enums.EnumPayType;
import com.iformall.enums.EnumPayWay;
import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.service.*;
import com.iformall.utils.IPUtil;
@@ -21,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

/**
@@ -50,7 +51,13 @@ public class WxMicroPayController extends BaseController {
@Autowired
WxAppinfoService wxAppinfoService;

@ApiOperation(value = "付款码支付订单", notes = "params:{\"authCode\":\"String\",\"totalFee\":\"String\"},\n" +
@Autowired
WxCouponOrderService wxCouponOrderService;

@Autowired
private WxCUserBasicInfoService wxCUserBasicInfoService;

@ApiOperation(value = "付款码支付订单", notes = "params:{\"authCode\":\"String\",\"totalFee\":\"实际支付金额\", ,\"totalPay\":\"总支付金额\"},\n" +
"注意:\n" +
"提醒1:提交支付请求后微信会同步返回支付结果。当返回结果为“系统错误”时,商户系统等待5秒后调用【查询订单API】,查询支付实际交易结果;当返回结果为“USERPAYING”时,商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒);\n" +
"提醒2:在调用查询接口返回后,如果交易状况不明晰,请调用【撤销订单API】,此时如果交易失败则关闭订单,该单不能再支付成功;如果交易成功,则将扣款退回到用户账户。当撤销无返回或错误时,请再次调用。注意:请勿扣款后立即调用【撤销订单API】,建议至少15秒后再调用。撤销订单API需要双向证书。")
@@ -61,6 +68,7 @@ public class WxMicroPayController extends BaseController {
//Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
String authCode = paramMap.get("authCode");
String totalFeeStr = paramMap.get("totalFee");
String totalPayStr = paramMap.get("totalPay");

if (StringUtils.isBlank(authCode)) {
logger.error("authCode不能为空");
@@ -77,7 +85,7 @@ public class WxMicroPayController extends BaseController {

WxOrder order = null;
try {
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr);
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr, totalPayStr);
} catch (MallinkException e) {
logger.error("saveMicopayOrder 1" + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
@@ -258,4 +266,85 @@ public class WxMicroPayController extends BaseController {
return new ResultData(ErrorCode.REFUND_ORDER_ERROR);
}
}

@ApiOperation(value = "收银台核销券", notes = "{\"couponOrderId\":\"必填\",\"payPrice\":\"支付金额(分)\"}")
@PostMapping("userCouponOrderForMicroPay")
public ResultData userCouponOrderForMicroPay(@RequestBody Map<String, String> paramMap) {
logger.info("couponOrderController.verify:"+paramMap.toString());
String couponOrderIdStr = paramMap.get("couponOrderId");
String payPriceStr = paramMap.get("payPrice");
if (StringUtils.isBlank(couponOrderIdStr)) {
logger.error("couponOrderId不能为空: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
if (StringUtils.isBlank(payPriceStr)) {
logger.error("payPrice不能为空: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
Long couponOrderId = 0L;
BigDecimal totalFee = new BigDecimal(payPriceStr);
totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
Integer payPrice = totalFee.multiply(new BigDecimal(100)).intValue();
try {
couponOrderId = Long.valueOf(couponOrderIdStr);
} catch (NumberFormatException e) {
couponOrderId = 0L;
logger.error("couponOrderId参数不正确: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}

WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr);

if (wxCouponOrderCVo == null)
return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL);

WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCouponOrderCVo.getcUserId());
if (wxCUserBasicInfo != null && EnumCreditLockedStatus.CLOSE.getCode().equals(wxCUserBasicInfo.getStatus())) {
return new ResultData(ErrorCode.MEMBER_IS_LOCKED);
}

if (wxCouponOrderCVo.getValidStartDate() != null && wxCouponOrderCVo.getValidEndDate() != null ) {
Date now = new Date();
if (wxCouponOrderCVo.getValidStartDate().getTime() > now.getTime()) {
logger.error("此券有效期未开始:" + couponOrderIdStr);
return new ResultData(ErrorCode.COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE);
}
if (wxCouponOrderCVo.getValidEndDate().getTime() < now.getTime()) {
logger.error("此券有效期已结束:" + couponOrderIdStr);
return new ResultData(ErrorCode.COUPON_ORDER_IS_LATER_THAN_VALIDDATE);
}
}

WxCouponOrder wxCouponOrder = wxCouponOrderService.getById(couponOrderId);
if (wxCouponOrder == null) {
logger.error("券ID不存在:" + couponOrderId);
return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL);
}

WxMerchantBUser wxMerchantBUser = wxMerchantBUserService.getById(getUser().getId());
if (wxMerchantBUser == null) {
logger.error("核销员ID不存在:" + getUser().getId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "核销员ID不存在或者无权限");
}
wxMerchantBUser.setBuserId(getBuserId());
WxCouponOrder couponOrder = null;
Integer remainPrice = payPrice;
try {
remainPrice = wxCouponOrderService.microPayVerify(wxCouponOrder, wxMerchantBUser, payPrice);
} catch (MallinkException e) {
logger.error("核销异常: " + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
} catch (Exception e) {
logger.error("核销异常: " + e.getMessage());
return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage());
}

if(couponOrder != null) {
wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder.getTenantId(), couponOrderId, wxMerchantBUser.getId());
}
Double remainPriceD = Double.valueOf(remainPrice);
String remainPriceStr = String.format("%.2f", remainPriceD);

return new ResultData(remainPrice);
}
}

+ 2
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -197,6 +197,8 @@ public enum ErrorCode{
COUPON_ORDER_IS_PRE_VERIFY(4008, "卡券已被预核销"),
COUPON_SEND_LIMIT_VERIFY(4009, "商户购券数错误"),
COUPON_HANDSEL_VERIFY(4010, "商户发券异常"),
COUPON_MANJIAN_USE_PRICE_NO_ALLOW_(4011, "满减券金额不符合条件"),
COUPON_ORDER_TYPE_NOT_SUPPORTED(4012, "券类型不支持"),

/**
* 卡


+ 3
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Просмотреть файл

@@ -93,6 +93,9 @@ public class WxOrder extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="POS SN",name="posOrderCreateSn")
private String posOrderCreateSn;

@io.swagger.annotations.ApiModelProperty(value="总支付金额(分),收银台用券时使用",name="totalPayment")
private Integer totalPayment;

@TableField(exist = false)
protected List<Integer> statusS;



+ 9
- 0
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.vo.*;
@@ -189,4 +190,12 @@ public interface WxCouponOrderService {
ResultData queryCardStatus(WxCouponOrder wxCouponOrder);

void exportData(WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response);

/**
* B端-收银台-支持优惠券
*/
List<WxCouponOrderCVo> queryMicroPayCouponOrder(WxMerchantBUser user, WxCUser cUser, Integer price);

Integer microPayVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer price);

}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Просмотреть файл

@@ -42,7 +42,7 @@ public interface WxOrderService {
* @param totalFeeStr
* @return 订单id
*/
WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr);
WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr, String totalPayStr);

/**
* 商户码-储值卡支付


+ 123
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Просмотреть файл

@@ -37,6 +37,7 @@ import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;

@Service
public class WxCouponOrderServiceImpl implements WxCouponOrderService {
@@ -1034,4 +1035,126 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
wxCardTransferInfoMapper.insert(wxCardTransferInfo);
}

@Override
public List<WxCouponOrderCVo> queryMicroPayCouponOrder(WxMerchantBUser user, WxCUser cUser, Integer payPrice) {
Map<String, Object> coQ = new HashMap<>();
coQ.put("tenantId", user.getTenantId());
coQ.put("cUserId", user.getId());
coQ.put("merchantId", user.getMerchantId());
List<WxCouponOrderCVo> avaCoList = wxCouponOrderMapper.findAvailCouponOrder(coQ);
List<WxCouponOrderCVo> avaCouponOrderList = avaCoList.stream().filter(couponOrderCVo -> {
if (couponOrderCVo.getType().equals(EnumCouponType.COUPON_MANJIAN.getCode())) {
if (payPrice > couponOrderCVo.getUsePrice()) {
return true;
}
} else {
return true;
}
return false;
}).collect(Collectors.toList());
return avaCouponOrderList;
}

@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public Integer microPayVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer payPrice) {

// 1. 获取券信息
WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId());
if (wxCoupon == null) {
logger.error("券: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL);
}
if (!(wxCoupon.getType().equals(EnumCouponType.COUPON_MANJIAN.getCode()) ||
wxCoupon.getType().equals(EnumCouponType.COUPON_DAIJIN.getCode()) ||
wxCoupon.getType().equals(EnumCouponType.COUPON_MULTIMCH.getCode()))) {
logger.error("收银台不支持此券类型: " + wxCoupon.getType());
throw new MallinkException(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED);
}

// 2. 检查适用门店
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.setProductId(wxCoupon.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant);
if (!couponMerchantList.stream().anyMatch(cm -> cm.getMerchantId().equals(bUser.getMerchantId()))) {
logger.error("券: coupon-" + wxCoupon.getId() + "核销: couponMerchantId-" + bUser.getMerchantId());
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}

// 3. 券包状态检查
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) {
logger.error("已过期: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()) {
logger.error("已退款: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) {
logger.error("已经核销过的券: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) {
logger.error("券已被预核销: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY);
}
if (couponOrder.getCouponType().equals(EnumCouponType.COUPON_MANJIAN.getCode())) {
if (payPrice < wxCoupon.getUsePrice()) {
logger.error("券达不到满减条件: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY);
}
}
int num = 0;
try {
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销
couponOrder.setBUserId(bUser.getId());
couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode());
couponOrder.setUpdateDate(new Date());
num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder);
} catch (Exception e) {
logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
if (num != 1) {
logger.error("核销异常:updatete num " + num);
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num);
}

// 成长值
try {
WxOrder order = wxOrderMapper.selectById(couponOrder.getOrderId());
wxScoreRulesService.addScore2(EnumScoreType.CONSUMPTION, order, wxCoupon.getBusiness());
} catch (Exception e) {
logger.error("成长值:" + e.getMessage());
}

// 积分
try {
//-------此处为【现金支付】记录增加积分操作-------
WxCreditHistory creditHistory = new WxCreditHistory();
creditHistory.setOperatorType(EnumUserType.BUSER.getCode());
creditHistory.setOperatorId(bUser.getId());
creditHistory.setCUserId(couponOrder.getcUserId());
creditHistory.setCreateDate(new Date());
creditHistory.setTenantId(couponOrder.getTenantId());
creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
creditHistory.setCouponId(wxCoupon.getId());
creditHistory.setBusinessId(wxCoupon.getBusiness());
creditHistory.setSpend(couponOrder.getCouponPrice());
//如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户
creditHistory.setMerchantId(bUser.getMerchantId());
creditHistory.setBuserId(bUser.getBuserId());
wxCreditHistoryService.saveOrUpdate(creditHistory);
} catch (Exception e) {
logger.error("积分值:" + e.getMessage());
}

Integer remainPrice = payPrice - wxCoupon.getPrice();
if (remainPrice < 0) {
remainPrice = 0;
}
return remainPrice;
}

}

+ 9
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -18,6 +18,7 @@ import com.iformall.mapper.*;
import com.iformall.mq.MqBaseProducer;
import com.iformall.service.*;
import com.iformall.utils.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -553,7 +554,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr) {
public WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr, String totalPayStr) {
// 检查用户
if (user == null) {
logger.error("用户不存在");
@@ -578,7 +579,13 @@ public class WxOrderServiceImpl implements WxOrderService {
BigDecimal totalFee = new BigDecimal(totalFeeStr);
totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入)

Integer totalPayment = null;
int payment = totalFee.multiply(new BigDecimal(100)).intValue();
if (StringUtils.isNotBlank(totalFeeStr)) {
BigDecimal totalPay = new BigDecimal(totalPayStr);
totalPay.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
totalPayment = totalPay.multiply(new BigDecimal(100)).intValue();
}

final IdWorker idWorker = IdWorker.get();
Long orderNumber = idWorker.nextId();
@@ -594,6 +601,7 @@ public class WxOrderServiceImpl implements WxOrderService {
record.setProductId(user.getId());
record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode());
record.setPayment(payment);
record.setTotalPayment(totalPayment);
record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode());
record.setDetail(bodyStr);
record.setCreateDate(curr);


+ 2
- 1
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Просмотреть файл

@@ -21,12 +21,13 @@
<result column="press_current_value" jdbcType="INTEGER" property="pressCurrentValue"/>
<result column="order_group_id" jdbcType="BIGINT" property="orderGroupId"/>
<result column="form_id" jdbcType="VARCHAR" property="formId"/>
<result column="total_payment" jdbcType="INTEGER" property="totalPayment"/>

</resultMap>

<sql id="allColumns">
`id`,`order_number`,`tenant_id`,`c_user_id`,`coupon_channel_id`,`product_id`,`type`,`payment_type`,`payment`,`payment_time`,`order_status`,`create_date`,`update_date`,`detail`,
`press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`
`press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`,`total_payment`
</sql>

<sql id="dynamicWhereConditions">


Загрузка…
Отмена
Сохранить