作者 shenhailong

判断 建行反馈多次接口 逻辑

package com.sunyo.energy.location.controller;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.internal.$Gson$Preconditions;
import com.sunyo.energy.location.controller.response.ResultJson;
import com.sunyo.energy.location.dao.PayRecordsMapper;
import com.sunyo.energy.location.dao.PayResponseMapper;
... ... @@ -107,7 +108,12 @@ public class PayRseponeController {
payResponse.setPaytype(PAYTYPE);
payResponse.setSign(SIGN);
try {
int msg = 0;
/**
* 解决建行反馈多次原因
*/
if(payResponseMapperl.count(ORDERID) == 0){
int i = payResponseMapperl.insertSelective(payResponse);
log.info("插入数据库{},信息{}",i, payResponse);
if (i > 0) {
... ... @@ -125,15 +131,10 @@ public class PayRseponeController {
if ("Y".equals(SUCCESS)) {
payRecords.setOrdernumber(ORDERID);
payRecords.setReamke3("1");
} else {
payRecords.setOrdernumber(ORDERID);
payRecords.setReamke3("0");
}
/**
* 修改订单支付状态
*/
payRecordsMapper.updateOrderStatus(payRecords);
// 查询是水还是电
boolean selectType = payRecordsMapper.selectType(ORDERID);
if (selectType) {
... ... @@ -210,8 +211,22 @@ public class PayRseponeController {
}
}
} else {
payRecords.setOrdernumber(ORDERID);
payRecords.setReamke3("0");
/**
* 修改订单支付状态
*/
payRecordsMapper.updateOrderStatus(payRecords);
}
}
return i == 1 ? new ResultJson("200", "支付回执信息接受成功") : new ResultJson("500", "支付回执信息接受失败");
}else {
return 1 == 1 ? new ResultJson("200", "2次调用") : new ResultJson("500", "2次调用");
}
}catch (Exception e){
e.printStackTrace();
log.info("系统异常-----------");
... ... @@ -219,4 +234,5 @@ public class PayRseponeController {
}
}
}
... ...
... ... @@ -12,7 +12,7 @@ public interface PayRecordsMapper {
int insertSelective(PayRecords record);
PayRecords selectByPrimaryKey(Integer id);
PayRecords selectByPrimaryKey(@Param(value = "orderNumber") String orderNumber);
int updateByPrimaryKeySelective(PayRecords record);
... ...
package com.sunyo.energy.location.dao;
import com.sunyo.energy.location.model.PayResponse;
import org.apache.ibatis.annotations.Param;
public interface PayResponseMapper {
int deleteByPrimaryKey(String id);
... ... @@ -14,4 +15,6 @@ public interface PayResponseMapper {
int updateByPrimaryKeySelective(PayResponse record);
int updateByPrimaryKey(PayResponse record);
int count(@Param("order") String orderId);
}
\ No newline at end of file
... ...
... ... @@ -237,6 +237,7 @@ public class WaterMeterServiceImp implements WaterMeterService {
String s = AllUtils.nubmerDivision(payFees);
// 查询累计充值量
WaterMeterSacc waterMeterSacc = waterMeterSaccMapper.selectByPrimaryKey(AllUtils.wmIdUtils(wmId));
// 需要通知外部水表接口的累计充值量
String allSacc = AllUtils.nubmerAdd(s, waterMeterSacc.getWmSacc());
Map<String, Object> datas = new HashMap<>();
datas.put("MtId", wmId);
... ...
... ... @@ -23,11 +23,11 @@
id, payFees, payUserId, payTime, payLocationId, payStatus, payType, payFessType,
orderNumber, reamke1, reamke2, reamke3, reamke4, payUserName, payLocationName, payTypeAddress
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from pay_records
where id = #{id,jdbcType=INTEGER}
where orderNumber = #{orderNumber,jdbcType=INTEGER}
</select>
<select id="findAll" resultMap="BaseResultMap">
... ...
... ... @@ -31,6 +31,11 @@
from pay_response
where ID = #{id,jdbcType=VARCHAR}
</select>
<select id="count" resultType="int" parameterType="string">
select count(*) from pay_response where ORDERID = #{order,jdbcType=VARCHAR} and SUCCESS = 'Y'
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from pay_response
where ID = #{id,jdbcType=VARCHAR}
... ...