presettle undo processing

master
yixian 6 years ago
parent 073df7b0ee
commit d19bc70a16

@ -11,7 +11,6 @@ import au.com.royalpay.payment.core.PaymentApi;
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException; import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
import au.com.royalpay.payment.core.exceptions.OrderNotExistsException; import au.com.royalpay.payment.core.exceptions.OrderNotExistsException;
import au.com.royalpay.payment.core.mappers.PmtCustomReportMapper; import au.com.royalpay.payment.core.mappers.PmtCustomReportMapper;
import au.com.royalpay.payment.manage.analysis.core.ATOReportService;
import au.com.royalpay.payment.manage.analysis.core.DashboardService; import au.com.royalpay.payment.manage.analysis.core.DashboardService;
import au.com.royalpay.payment.manage.analysis.core.PlatformClearService; import au.com.royalpay.payment.manage.analysis.core.PlatformClearService;
import au.com.royalpay.payment.manage.appclient.core.RetailAppService; import au.com.royalpay.payment.manage.appclient.core.RetailAppService;
@ -28,7 +27,6 @@ import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.manage.mappers.system.SysClientLegalPersonMapper; import au.com.royalpay.payment.manage.mappers.system.SysClientLegalPersonMapper;
import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.manage.merchants.core.ClientManager;
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
import au.com.royalpay.payment.manage.pos.datasource.ReadOnlyConnection;
import au.com.royalpay.payment.manage.system.core.TradeSecureService; import au.com.royalpay.payment.manage.system.core.TradeSecureService;
import au.com.royalpay.payment.manage.tradelog.core.TradeLogService; import au.com.royalpay.payment.manage.tradelog.core.TradeLogService;
import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.CommonConsts;
@ -38,6 +36,7 @@ import au.com.royalpay.payment.tools.defines.TradeType;
import au.com.royalpay.payment.tools.env.PlatformEnvironment; import au.com.royalpay.payment.tools.env.PlatformEnvironment;
import au.com.royalpay.payment.tools.env.SysConfigManager; import au.com.royalpay.payment.tools.env.SysConfigManager;
import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.exceptions.NotFoundException;
import au.com.royalpay.payment.tools.http.HttpUtils; import au.com.royalpay.payment.tools.http.HttpUtils;
import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider; import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
@ -62,7 +61,6 @@ import org.springframework.util.Assert;
import org.springframework.validation.Errors; import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import au.com.royalpay.payment.tools.exceptions.NotFoundException;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;

@ -102,6 +102,8 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider
@Resource @Resource
private TaskManualSettleMapper taskManualSettleMapper; private TaskManualSettleMapper taskManualSettleMapper;
@Resource @Resource
private PreSettleTaskMapper preSettleTaskMapper;
@Resource
private ValidationLogMapper validationLogMapper; private ValidationLogMapper validationLogMapper;
@Resource @Resource
private ManagerMapper managerMapper; private ManagerMapper managerMapper;
@ -1283,6 +1285,7 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider
} }
transactionMapper.deleteSettlementTransaction(clearingId); transactionMapper.deleteSettlementTransaction(clearingId);
transactionMapper.removeSettleRemark(clearingId); transactionMapper.removeSettleRemark(clearingId);
preSettleTaskMapper.resetClearStatus(clearingId);
clearingDetailAnalysisMapper.clearAnalysis(clearingId); clearingDetailAnalysisMapper.clearAnalysis(clearingId);
taskManualSettleMapper.rollbackExecutedTask(clearingId); taskManualSettleMapper.rollbackExecutedTask(clearingId);
clearingDetailMapper.deleteSettleLogs(clearingId); clearingDetailMapper.deleteSettleLogs(clearingId);

@ -0,0 +1,13 @@
package au.com.royalpay.payment.manage.mappers.log;
import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper;
import org.apache.ibatis.annotations.Param;
/**
* Create by davep at 2020-02-04 11:40
*/
@AutoMapper(tablename = "log_presettle_task",pkName = "task_id")
public interface PreSettleTaskMapper {
void resetClearStatus(@Param("clearing_id") int clearingId);
}

@ -0,0 +1,11 @@
<?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="au.com.royalpay.payment.manage.mappers.log.PreSettleTaskMapper">
<update id="resetClearStatus">
update log_presettle_task p
inner join log_clearing_detail cd on cd.clear_detail_id = p.clear_detail_id
set p.clear_detail_id=null,
p.finish_flag=0
where cd.clearing_id = #{clearing_id}
</update>
</mapper>

@ -4,7 +4,9 @@
<update id="removeSettleRemark"> <update id="removeSettleRemark">
UPDATE pmt_transactions AS t UPDATE pmt_transactions AS t
INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order
SET clearing_status = 0, SET clearing_status = if(
(select count(task_id) from log_presettle_task p where p.clear_detail_id = d.clear_detail_id) >
0, 4, 0),
clearing_order = NULL, clearing_order = NULL,
clearing_time = NULL clearing_time = NULL
WHERE d.clearing_id = #{clearing_id} WHERE d.clearing_id = #{clearing_id}
@ -61,7 +63,8 @@
SELECT count(1) SELECT count(1)
FROM pmt_transactions t FROM pmt_transactions t
<if test="dev_id!=null or "> <if test="dev_id!=null or ">
INNER JOIN (select o.order_id from pmt_orders o<where> INNER JOIN (select o.order_id from pmt_orders o
<where>
<if test="dev_id!=null">and o.dev_id = #{dev_id}</if> <if test="dev_id!=null">and o.dev_id = #{dev_id}</if>
<if test=" <if test="
channel!=null">and channel!=null">and
@ -69,7 +72,8 @@
o.channel=#{chan} o.channel=#{chan}
</foreach> </foreach>
</if> </if>
</where>)oo ON oo.order_id=t.order_id </where>
)oo ON oo.order_id=t.order_id
</if> </if>
<where> <where>
@ -1222,14 +1226,14 @@
</select> </select>
<select id="useAlipayOnlineClients" resultType="java.lang.Integer"> <select id="useAlipayOnlineClients" resultType="java.lang.Integer">
SELECT DISTINCT client_id FROM pmt_transactions SELECT DISTINCT client_id
FROM pmt_transactions
WHERE order_channel = 'AlipayOnline' WHERE order_channel = 'AlipayOnline'
and create_time >= '2019-01-01 00:00:00' and create_time >= '2019-01-01 00:00:00'
</select> </select>
<select id="getSettleDataDailyReport" resultType="com.alibaba.fastjson.JSONObject"> <select id="getSettleDataDailyReport" resultType="com.alibaba.fastjson.JSONObject">
SELECT SELECT channel,
channel,
SUM(IF(transaction_type = 'Credit', settle_amount, -settle_amount)) AS settle_amount, SUM(IF(transaction_type = 'Credit', settle_amount, -settle_amount)) AS settle_amount,
SUM(IF(transaction_type = 'Credit', clearing_amount, 0)) AS credit_amount, SUM(IF(transaction_type = 'Credit', clearing_amount, 0)) AS credit_amount,
SUM(IF(transaction_type = 'Credit', 0, -clearing_amount)) AS debit_amount, SUM(IF(transaction_type = 'Credit', 0, -clearing_amount)) AS debit_amount,

Loading…
Cancel
Save