Browse Source

11.5 退款接口修改

huangqizheng/feature-20251104113536-现金管理二期退款修改
huangqizhen 3 weeks ago
parent
commit
812e70e2a3
  1. 21
      src/main/java/com/example/demo/controller/cash/CashRefundController.java
  2. 39
      src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java
  3. 197
      src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java
  4. 2
      src/main/java/com/example/demo/domain/vo/coin/Page.java
  5. 7
      src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java
  6. 10
      src/main/java/com/example/demo/service/cash/RefundService.java
  7. 50
      src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
  8. 307
      src/main/resources/cashMapper/CashRefundMapper.xml

21
src/main/java/com/example/demo/controller/cash/CashRefundController.java

@ -4,6 +4,7 @@ package com.example.demo.controller.cash;
import com.example.demo.Util.JWTUtil;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.cash.CashRecordDone;
import com.example.demo.domain.vo.cash.CashRecordRefund;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.RechargeUser;
import com.example.demo.domain.vo.coin.Result;
@ -43,7 +44,9 @@ public class CashRefundController {
private RefundService refundService;
@Autowired
MarketService marketService;
/**
* 当地财务负责人退款记录
*/
@PostMapping("/select")
public Result select(@RequestBody Page page) throws Exception {
// 获取当前请求对象
@ -84,17 +87,23 @@ public class CashRefundController {
}
// 校验通过保持 requestedMarkets 不变
}
return Result.success(refundService.select(page.getPageNum(), page.getPageSize(), page.getCashRecordDone()));
return Result.success(refundService.financeSelect(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO()));
}
/**
* 添加退款现金记录
*/
@PostMapping("/add")
public Result add(@RequestBody CashRecordDone cashRecordDone) throws Exception {
public Result add(@RequestBody CashRecordRefund cashRecordRefund) throws Exception {
try {
return Result.success(refundService.add(cashRecordDone));
return Result.success(refundService.add(cashRecordRefund));
} catch (Exception e) {
return Result.error(e.getMessage());
}
}
/**
* 查询客服提交现金记录
*/
@PostMapping("/selecta")
public Result selecta(@RequestBody Page page) {
@ -107,9 +116,9 @@ public class CashRefundController {
return Result.error("页大小为空!");
}
// 获取传入的市场列表
List<String> requestedMarkets = page.getCashRecordDone() != null ? page.getCashRecordDone().getMarkets() : null;
List<String> requestedMarkets = page.getCashRecordDTO() != null ? page.getCashRecordDTO().getMarkets() : null;
return Result.success(refundService.select(page.getPageNum(), page.getPageSize(), page.getCashRecordDone()));
return Result.success(refundService.select(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO()));
}
@PostMapping("/update")
public Result update(@RequestBody CashRecordDone cashRecordDone)throws Exception {

39
src/main/java/com/example/demo/domain/vo/cash/CashRecordDTO.java

@ -0,0 +1,39 @@
package com.example.demo.domain.vo.cash;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @program: GOLD
* @ClassName CashRecordDTO
* @description:
* @author: huangqizhen
* @create: 202511-04 17:03
* @Version 1.0
**/
@Data
@AllArgsConstructor
public class CashRecordDTO extends CashRecordRefund{
private Integer activity;
private String goodsName;
private Integer goodsNum;
private String numUnit;
private BigDecimal gold;
private BigDecimal free;
private String paymentCurrency;
private BigDecimal paymentAmount;
private String receiveCurrency;
private BigDecimal receiveAmount;
private BigDecimal handlingCharges;
private String payType;
private String receivedMarket;
private String payVoucher;
private String payRemark;
private List<String> goodsNames;
private List<String> markets;
}

197
src/main/java/com/example/demo/domain/vo/cash/CashRecordRefund.java

@ -0,0 +1,197 @@
package com.example.demo.domain.vo.cash;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* @TableName cash_record_refund
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CashRecordRefund {
/**
* 序号
*/
private Integer id;
/**
* 精网号
*/
private Integer jwcode;
/**
* 姓名
*/
private String name;
/**
* 所属地区
*/
private String market;
/**
* 金币订单号
*/
private String orderCode;
/**
* 银行流水订单号
*/
private String bankCode;
/**
* 永久金币
*/
private Integer permanentGold;
/**
* 免费金币
*/
private Integer freeGold;
/**
* 审核人id
*/
private Integer auditId;
/**
* 订单状态1位代表收款2位代表退款
0线下财务待审核1线下财务审核通过待填手续费2线下财务审核驳回5手动撤回待编辑提交
3link线上财务复核待填手续费
4收款流程全部结束
6退款
---------------------------------------------
10地区财务待审核;11:地区财务手动撤回待编辑提交12地区财务驳回
20地区负责人待审核22地区负责人驳回
30总部财务待审核32总部财务驳回
40执行人待处理41执行人已处理退款结束
*/
private Integer status;
/**
* 提交人id
*/
private Integer submitterId;
/**
* 提交人地区
*/
private String submitterMarket;
/**
* 转账凭证
*/
private String voucher;
/**
* 备注
*/
private String remark;
/**
* 驳回理由
*/
private String rejectReason;
/**
* 退款备注理由,客服填写
*/
private String refundReason;
/**
* 退款方式0全额/1部分
*/
private Integer refundModel;
/**
* 退款执行人OA号
*/
private Integer executor;
/**
* 退款途径
*/
private String refundChannels;
/**
* 退款日期到天
*/
private Date refundTime;
/**
* 退款备注执行人填写
*/
private String refundRemark;
/**
* 退款截图
*/
private String refundVoucher;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 审核时间
*/
private Date auditTime;
/**
* 退款币种
*/
private String refundCurrency;
/**
* 退款金额
*/
private String refundAmount;
/**
* 关联收款id
*/
private Integer relatedId;
@ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date startTime; // 开始时间
@ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date endTime; // 结束时间
private String submitterName;
private String auditName;
private String executorName;
private String marketName;
private List<Integer> statuses;
private String processInstanceId; // 流程实例ID
private String currentTaskId; // 当前任务ID
private String areaServise;
private String areaFinance;
private String areaCharge;
private String headFinance;
private String sortField;
private String sortOrder;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date sTime; // 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date eTime; // 结束时间
}

2
src/main/java/com/example/demo/domain/vo/coin/Page.java

@ -3,6 +3,7 @@ package com.example.demo.domain.vo.coin;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.bean.*;
import com.example.demo.domain.vo.cash.CashCollection;
import com.example.demo.domain.vo.cash.CashRecordDTO;
import com.example.demo.domain.vo.cash.CashRecordDone;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -44,5 +45,6 @@ public class Page {
private HistoryRecord historyRecord; //历史记录
private CashCollection cashCollection; //现金收款
private CashRecordDone cashRecordDone;
private CashRecordDTO cashRecordDTO;
}

7
src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java

@ -1,7 +1,9 @@
package com.example.demo.mapper.cash;
import com.example.demo.domain.vo.cash.CashCollection;
import com.example.demo.domain.vo.cash.CashRecordDTO;
import com.example.demo.domain.vo.cash.CashRecordDone;
import com.example.demo.domain.vo.cash.CashRecordRefund;
import com.example.demo.domain.vo.coin.RefundUser;
import org.apache.ibatis.annotations.Mapper;
@ -17,9 +19,9 @@ import java.util.List;
**/
@Mapper
public interface CashRefundMapper {
List<CashRecordDone> select(CashRecordDone cashRecordDone);
List<CashRecordDTO> select(CashRecordDTO cashRecordDTO);
int update(CashRecordDone cashRecordDone);
int insert(CashRecordDone cashRecordDone);
int insert(CashRecordRefund cashRecordRefund);
int withdraw(Integer id);
int review(CashRecordDone cashRecordDone);
@ -29,4 +31,5 @@ public interface CashRefundMapper {
int updateStatus(CashRecordDone cashRecordDone);
void addAudit(CashRecordDone cashRecordDone);
void updateAudit(CashRecordDone cashRecordDone);
List<CashRecordDTO> financeSelect(CashRecordDTO cashRecordDTO);
}

10
src/main/java/com/example/demo/service/cash/RefundService.java

@ -1,6 +1,9 @@
package com.example.demo.service.cash;
import com.example.demo.domain.vo.cash.CashRecordDTO;
import com.example.demo.domain.vo.cash.CashRecordDone;
import com.example.demo.domain.vo.cash.CashRecordRefund;
import com.example.demo.domain.vo.coin.Page;
import com.github.pagehelper.PageInfo;
/**
@ -12,10 +15,10 @@ import com.github.pagehelper.PageInfo;
* @Version 1.0
**/
public interface RefundService {
//多条件查询
PageInfo<CashRecordDone> select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone);
//多条件查询(qi'yong)
PageInfo<CashRecordDTO> select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO);
//添加
int add(CashRecordDone cashRecordDone) throws Exception;
int add(CashRecordRefund cashRecordRefund) throws Exception;
//修改
int update(CashRecordDone cashRecordDone) throws Exception;
//
@ -28,4 +31,5 @@ public interface RefundService {
int updateStatus(CashRecordDone cashRecordDone);
int finalreview(CashRecordDone cashRecordDone);
PageInfo<CashRecordDTO> financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO);
}

50
src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java

@ -3,7 +3,9 @@ package com.example.demo.serviceImpl.cash;
import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.entity.UserGoldRecord;
import com.example.demo.domain.vo.cash.CashRecordDTO;
import com.example.demo.domain.vo.cash.CashRecordDone;
import com.example.demo.domain.vo.cash.CashRecordRefund;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.mapper.cash.CashRefundMapper;
import com.example.demo.mapper.coin.AuditMapper;
@ -12,6 +14,7 @@ import com.example.demo.mapper.coin.RefundMapper;
import com.example.demo.service.cash.RefundService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -44,49 +47,38 @@ public class CashRefundServiceImpl implements RefundService {
@Autowired
private MarketMapper marketMapper;
@Override
public PageInfo<CashRecordDone> select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) {
public PageInfo<CashRecordDTO> select(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) {
PageHelper.startPage(pageNum, pageSize);
// System.out.println(goldDetail.getMarkets());
List<CashRecordDone> list = cashRefundMapper.select(cashRecordDone);
List<CashRecordDTO> list = cashRefundMapper.select(cashRecordDTO);
return new PageInfo<>(list);
}
@Override
public int add(CashRecordDone cashRecordDone) throws Exception {
if(cashRecordDone.getHandlingCharge()== null){
throw new Exception("未输入手续费") ;
}
if(cashRecordDone.getJwcode()==null){
public int add(CashRecordRefund cashRecordRefund) throws Exception {
if(cashRecordRefund.getJwcode()==null){
throw new Exception("未输入精网号") ;
}
if(cashRecordDone.getPaymentAmount()== null){
throw new Exception("未输入付款金额") ;
}
if(cashRecordDone.getPaymentCurrency()== null){
throw new Exception("未输入付款币种") ;
}
if(cashRecordDone.getRefundModel()== null){
if(cashRecordRefund.getRefundModel()== null){
throw new Exception("请填充退款类型") ;
}
if(cashRecordDone.getRefundReason()== null){
if(cashRecordRefund.getRefundReason()== null){
throw new Exception("请填写退款理由") ;
}
CashRecordDone cashRecordDonetwo = new CashRecordDone();
cashRecordDonetwo.setAreaServise(cashRecordDone.getAreaServise());
cashRecordDonetwo.setAreaServise(cashRecordRefund.getAreaServise());
cashRefundMapper.addAudit(cashRecordDonetwo);
cashRecordDone.setAuditId(cashRecordDonetwo.getId());
cashRecordRefund.setAuditId(cashRecordDonetwo.getId());
cashRecordDone.setOrderType(2);
cashRecordDone.setStatus(10);
cashRecordRefund.setStatus(10);
//生成订单号后半部分
String orderNumber = cashRecordDone.getOrderCode();
String orderNumber = cashRecordRefund.getOrderCode();
//构建订单信息
cashRecordDone.setOrderCode("TK" + orderNumber); //订单号
cashRecordDone.setMarket(marketMapper.getMarketId(cashRecordDone.getMarket()));
cashRecordDone.setReceivedMarket(marketMapper.getMarketId(cashRecordDone.getReceivedMarket()));
cashRefundMapper.insert(cashRecordDone);
cashRecordRefund.setOrderCode("TK" + orderNumber); //订单号
cashRecordRefund.setMarket(String.valueOf(Integer.valueOf(marketMapper.getMarketId(cashRecordRefund.getMarket()))));
cashRefundMapper.insert(cashRecordRefund);
CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setId(cashRecordDone.getId());
cashRecordDone1.setId(cashRecordRefund.getId());
cashRecordDone1.setStatus(6);
if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null)
return cashRefundMapper.updateStatus(cashRecordDone1);
@ -226,4 +218,12 @@ CashRecordDone cashRecordDone1 = new CashRecordDone();
int result = cashRefundMapper.review(cashRecordDone);
return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();
}
@Override
public PageInfo<CashRecordDTO> financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) {
PageHelper.startPage(pageNum, pageSize);
// System.out.println(goldDetail.getMarkets());
List<CashRecordDTO> list = cashRefundMapper.financeSelect(cashRecordDTO);
return new PageInfo<>(list);
}
}

307
src/main/resources/cashMapper/CashRefundMapper.xml

@ -2,72 +2,58 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.cash.CashRefundMapper">
<insert id="insert">
INSERT INTO cash_record (
order_type,
jwcode,
name,
market,
activity,
order_code,
bank_code,
goods_name,
good_num,
audit_id,
payment_currency,
payment_amount,
received_currency,
received_amount,
handling_charge,
received_market,
pay_type,
pay_time,
received_time,
status,
submitter_id,
voucher,
remark,
refund_reason,
refund_model,
executor,
refund_channels,
refund_time,
refund_remark,
refund_voucher,
permanent_gold,
free_gold
INSERT INTO cash_record_refund (
jwcode,
name,
market,
activity,
order_code,
bank_code,
permanent_gold,
free_gold,
submitter_id,
submitter_market,
voucher,
remark,
reject_reason,
refund_reason,
refund_model,
executor,
refund_channels,
refund_time,
refund_remark,
refund_voucher,
refund_currency,
refund_amount,
related_id,
audit_id,
status,
) VALUES (
#{orderType},
#{jwcode},
#{name},
#{market},
#{activity},
#{orderCode},
#{bankCode},
#{goodsName},
#{goodNum},
#{auditId},
#{paymentCurrency},
#{paymentAmount},
#{receivedCurrency},
#{receivedAmount},
#{handlingCharge},
#{receivedMarket},
#{payType},
#{payTime},
#{receivedTime},
#{status},
#{submitterId},
#{voucher},
#{remark},
#{refundReason},
#{refundModel},
#{executor},
#{refundChannels},
#{refundTime},
#{refundRemark},
#{refundVoucher},
#{jwcode},
#{name},
#{market},
#{activity},
#{orderCode},
#{bankCode},
#{permanentGold},
#{freeGold}
#{freeGold},
#{submitterId},
#{submitterMarket},
#{voucher},
#{remark},
#{rejectReason},
#{refundReason},
#{refundModel},
#{executor},
#{refundChannels},
#{refundTime},
#{refundRemark},
#{refundVoucher},
#{refundCurrency},
#{refundAmount},
#{id},
#{auditId},
#{status},
);
</insert>
<insert id="addAudit" parameterType="com.example.demo.domain.vo.cash.CashRecordDone" useGeneratedKeys="true" keyProperty="id">
@ -148,117 +134,150 @@
<select id="select" resultType="com.example.demo.domain.vo.cash.CashRecordDone">
select
cr.id,
cr.order_type,
cr.jwcode,
cr.name,
cr.market,
cr.activity,
cr.order_code,
cr.bank_code,
cr.goods_name,
cr.good_num,
cr.payment_currency,
Round((payment_amount) / 100.0, 2) AS PaymentAmount,
cr.received_currency,
Round((received_amount) / 100.0, 2) AS receivedAmount,
Round((handling_charge) / 100.0, 2) AS handlingCharge,
cr.pay_type,
cr.received_market,
cr.pay_time,
cr.received_time,
cr.audit_id,
cr.status,
cr.submitter_id,
cr.voucher,
cr.refund_reason,
cr.refund_model,
cr.executor,
cr.refund_channels,
cr.refund_time,
cr.refund_remark,
cr.refund_voucher,
cr.remark,
cr.reject_reason,
cr.create_time,
cr.update_time,
cr.audit_time,
a1.admin_name as submitterName,
a3.admin_name as executorName,
a2.area_servise,
a2.area_finance,
a2.area_charge,
a2.head_finance,
cr.refund_currency,
cr.refund_amount,
Round((cr.permanent_gold) / 100.0, 2) AS permanentGold,
Round((cr.free_gold) / 100.0, 2) AS freeGold,
m.name as marketName
from cash_record cr
left join admin a1 on submitter_id = a1.id
left join lhl_audit a2 on cr.audit_id = a2.id
left join admin a3 on executor = a3.account
left join market m on m.id = cr.market
select
crr.id,
crr.jwcode,
crr.name,
crr.market,
crr.permanent_gold,
crr.free_gold,
crr.audit_id,
crr.status,
crr.submitter_id,
crr.submitter_market,
crr.executor,
crr.refund_channels,
crr.refund_time,
crr.create_time,
crr.update_time,
crr.audit_time,
crr.related_id,
la.area_servise,
la.area_finance,
la.area_charge,
la.head_finance,
crc.activity,
crc.goods_name,
crc.goods_num,
crc.num_unit,
crc.pay_type,
crc.pay_time,
crc.voucher,
crc.remark,
crc.payment_currency,
crc.payment_amount,
left join lhl_audit la on la.id = crr.audit_id
left join cash_record_collection crc on crc.id = crr.related_id
<where>
cr.order_type = 2
<if test="status != null">
and cr.status = #{status}
and crr.status = #{status}
</if>
<if test="orderCode != null">
and cr.order_code = #{orderCode}
</if>
<if test="name != null and name.length() > 0">
and cr.name = #{name}
and crr.name = #{name}
</if>
<if test="jwcode != null">
and cr.jwcode = #{jwcode}
and crr.jwcode = #{jwcode}
</if>
<if test="markets!= null and markets.size > 0">
AND cr.market IN
AND crr.market IN
<foreach collection="markets" item="markets" open="(" separator="," close=")">
#{markets}
</foreach>
</if>
<if test="statuses!= null and statuses.size > 0">
AND cr.status IN
AND crr.status IN
<foreach collection="statuses" item="statuses" open="(" separator="," close=")">
#{statuses}
</foreach>
</if>
<if test="paymentCurrency!= null and paymentCurrency.length() > 0">
AND cr.payment_currency LIKE CONCAT('%', #{paymentCurrency}, '%')
AND crc.payment_currency LIKE CONCAT('%', #{paymentCurrency}, '%')
</if>
<if test="goodsNames!= null and goodsNames.size > 0">
AND cr.goods_name IN
AND crc.goods_name IN
<foreach collection="goodsNames" item="goodsNames" open="(" separator="," close=")">
#{goodsNames}
</foreach>
</if>
<if test="payType != null and payType.length()>0">
and cr.pay_type = #{payType}
</if>
<if test="receivedMarket != null and receivedMarket.length()>0">
and cr.received_market = #{receivedMarket}
</if>
<if test="refundModel != null and refundModel.length()>0">
and cr.refundModel = #{refundModel}
and crc.pay_type = #{payType}
</if>
<if test="startTime != null and endTime != null">
and cr.`pay_time` BETWEEN #{startTime} AND #{endTime}
and crc.`pay_time` BETWEEN #{startTime} AND #{endTime}
</if>
<if test=" submitterId!= null">
and cr.submitter_id = #{submitterId}
</if>
<if test="refundCurrency != null and refundCurrency.length()>0">
and cr.refund_currency = #{refundCurrency}
</if>
<if test="refundChannels != null and refundChannels.length()>0">
and cr.refund_channels = #{refundChannels}
and crr.submitter_id = #{submitterId}
</if>
<if test="sTime != null and eTime != null">
and cr.`refund_time` BETWEEN #{sTime} AND #{eTime}
</where>
<choose>
<when test="sortField != null and sortField.length > 0 or sortOrder != null and sortOrder.length > 0">
ORDER BY ${sortField} ${sortOrder}
</when>
<otherwise>
ORDER BY create_time DESC
</otherwise>
</choose>
</select>
<select id="financeSelect" resultType="com.example.demo.domain.vo.cash.CashRecordDTO">
select crr.id,
crr.jwcode,
crr.name,
crr.market,
crc.goods_name,
crc.goods_num,
crc.num_unit,
crr.refund_model,
crr.submitter_id,
crr.refund_reason,
crr.remark,
crr.status,
crr.permanent_gold,
crr.free_gold,
crr.audit_id,
crr.related_id
from cash_record_refund crr
left join cash_record_collection crc on crc.id = crr.related_id
<where>
<if test="status != null">
and crr.status = #{status}
</if>
<if test="name != null and name.length() > 0">
and crr.name = #{name}
</if>
<if test="jwcode != null">
and crr.jwcode = #{jwcode}
</if>
<if test="markets!= null and markets.size > 0">
AND crr.market IN
<foreach collection="markets" item="markets" open="(" separator="," close=")">
#{markets}
</foreach>
</if>
<if test="statuses!= null and statuses.size > 0">
AND crr.status IN
<foreach collection="statuses" item="statuses" open="(" separator="," close=")">
#{statuses}
</foreach>
</if>
<if test="paymentCurrency!= null and paymentCurrency.length() > 0">
AND crc.payment_currency LIKE CONCAT('%', #{paymentCurrency}, '%')
</if>
<if test="goodsNames!= null and goodsNames.size > 0">
AND crc.goods_name IN
<foreach collection="goodsNames" item="goodsNames" open="(" separator="," close=")">
#{goodsNames}
</foreach>
</if>
<if test="payType != null and payType.length()>0">
and crc.pay_type = #{payType}
</if>
<if test="startTime != null and endTime != null">
and crc.`pay_time` BETWEEN #{startTime} AND #{endTime}
</if>
<if test=" submitterId!= null">
and crr.submitter_id = #{submitterId}
</if>
</where>
<choose>

Loading…
Cancel
Save