Sfoglia il codice sorgente

fix car pay

release_toaliyun_real
lin 3 anni fa
parent
commit
62ea41a592
6 ha cambiato i file con 32 aggiunte e 10 eliminazioni
  1. +4
    -0
      mallinkAdmin/src/main/resources/db/migration/V20230200001__car.sql
  2. +6
    -5
      mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java
  3. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCarPayOrder.java
  4. +1
    -1
      mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayService.java
  5. +4
    -3
      mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayServiceImpl.java
  6. +13
    -1
      mallinkService/src/main/resources/mapper/WxCarPayOrderMapper.xml

+ 4
- 0
mallinkAdmin/src/main/resources/db/migration/V20230200001__car.sql Vedi File

@@ -5,6 +5,7 @@ CREATE TABLE `wx_car_pay_order` (
`create_time` datetime NOT NULL COMMENT '创建时间', `create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间', `update_time` datetime NOT NULL COMMENT '更新时间',
`c_user_id` bigint(20) NOT NULL COMMENT '用户ID', `c_user_id` bigint(20) NOT NULL COMMENT '用户ID',
`c_user_phone` varchar(30) COMMENT '用户手机号',
`car_number` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '车牌号', `car_number` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '车牌号',
`pay_amount` int(11) NOT NULL COMMENT '支付金额(分)', `pay_amount` int(11) NOT NULL COMMENT '支付金额(分)',
`pay_time` datetime NOT NULL COMMENT '支付时间', `pay_time` datetime NOT NULL COMMENT '支付时间',
@@ -123,6 +124,8 @@ CREATE TABLE wx_car_pay_order_97 LIKE wx_car_pay_order;
CREATE TABLE wx_car_pay_order_98 LIKE wx_car_pay_order; CREATE TABLE wx_car_pay_order_98 LIKE wx_car_pay_order;
CREATE TABLE wx_car_pay_order_99 LIKE wx_car_pay_order; CREATE TABLE wx_car_pay_order_99 LIKE wx_car_pay_order;


drop table wx_car_pay_order;

ALTER TABLE `mallink`.`wx_park` ALTER TABLE `mallink`.`wx_park`
ADD COLUMN `support_pay` int(1) COMMENT '会员小程序是否支持支付enumYesOrNo'; ADD COLUMN `support_pay` int(1) COMMENT '会员小程序是否支持支付enumYesOrNo';


@@ -131,3 +134,4 @@ ADD COLUMN `paid_call_back` varchar(100) COMMENT '支付完成回调地址';


alter table wx_profit_payment_receiver alter table wx_profit_payment_receiver
add column `receiver_params` json COMMENT '其他配置参数'; add column `receiver_params` json COMMENT '其他配置参数';


+ 6
- 5
mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java Vedi File

@@ -483,14 +483,15 @@ public class WxCarController extends BaseController {
} }
StringBuffer attachSb = new StringBuffer("{") StringBuffer attachSb = new StringBuffer("{")
.append("\"t\":").append(park.getTenantId()).append(",\"pt\":").append(park.getParentTenantId())
.append(",\"v\":").append(park.getVendorType())
.append("\"t\":\"").append(park.getTenantId()).append("\",\"pt\":\"").append(park.getParentTenantId()).append("\"")
.append(",\"v\":").append(park.getVendorType())
.append(",\"u\":").append(user.getUserId()) .append(",\"u\":").append(user.getUserId())
.append(",\"car:\":").append(carNumber)
.append(",\"uh\":\"").append(user.getPhone()).append("\"")
.append(",\"car:\":\"").append(carNumber).append("\"")
.append(",\"fee\":").append(payOrder.getFee()) .append(",\"fee\":").append(payOrder.getFee())
.append(",\"ma\":").append(receiver.getReceiverAccount())
.append(",\"ma\":\"").append(receiver.getReceiverAccount()).append("\"")
.append(",\"mid\":").append(parkMerchant.getId()) .append(",\"mid\":").append(parkMerchant.getId())
.append(",\"mn\":").append(parkMerchant.getName())
.append(",\"mn\":\"").append(parkMerchant.getName()).append("\"")
.append("}"); .append("}");
//创建微信支付订单 //创建微信支付订单
boolean isIsv = false; boolean isIsv = false;


+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCarPayOrder.java Vedi File

@@ -24,6 +24,10 @@ public class WxCarPayOrder extends TenantEntity {
private Date updateTime; private Date updateTime;
@io.swagger.annotations.ApiModelProperty(value="用户ID",name="cUserId") @io.swagger.annotations.ApiModelProperty(value="用户ID",name="cUserId")
private Long cUserId; private Long cUserId;
@TableField(exist = false)
private List<Long> userIds;
@io.swagger.annotations.ApiModelProperty(value="用户手机号",name="cUserPhone")
private String cUserPhone;
@io.swagger.annotations.ApiModelProperty(value="车牌号",name="carNumber") @io.swagger.annotations.ApiModelProperty(value="车牌号",name="carNumber")
private String carNumber; private String carNumber;
@io.swagger.annotations.ApiModelProperty(value="支付金额(分)",name="payAmount") @io.swagger.annotations.ApiModelProperty(value="支付金额(分)",name="payAmount")


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayService.java Vedi File

@@ -21,7 +21,7 @@ public interface WxParkPayService {
public String handlePaidCallBack(Map<String, String> paramMap); public String handlePaidCallBack(Map<String, String> paramMap);
public void handlePaidSuccess(TenantEntity tenantEntity,WxPark wxPark,Long cUserId,Integer carVendor,String carNumber,String payOrderNo, public void handlePaidSuccess(TenantEntity tenantEntity,WxPark wxPark,Long cUserId,Integer carVendor,String carNumber,String payOrderNo,
Integer fee,Date paidTime,String transcationId,String merchantAccount,Long merchantId,String merchantName) throws Exception;
Integer fee,Date paidTime,String transcationId,String merchantAccount,Long merchantId,String merchantName,String userPhone) throws Exception;


public WxCarPayOrder detailWxCarPayOrder(Long id,String tenantId); public WxCarPayOrder detailWxCarPayOrder(Long id,String tenantId);


+ 4
- 3
mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayServiceImpl.java Vedi File

@@ -167,10 +167,11 @@ public class WxParkPayServiceImpl implements WxParkPayService {
String merchantAccount = attachObj.getString("ma"); String merchantAccount = attachObj.getString("ma");
Long merchantId = attachObj.getLong("mid"); Long merchantId = attachObj.getLong("mid");
String merchantName = attachObj.getString("mn"); String merchantName = attachObj.getString("mn");
String userPhone = attachObj.getString("uh");
handlePaidSuccess(te,park,cUserId,carVendor,carNumber,payOrderNo,Integer.parseInt(cashFeeStr), handlePaidSuccess(te,park,cUserId,carVendor,carNumber,payOrderNo,Integer.parseInt(cashFeeStr),
DateUtils.string2Date(time_end, DateUtils.DATE_PATTERN_ALL_NOSPACE).getTime(),transcationId, DateUtils.string2Date(time_end, DateUtils.DATE_PATTERN_ALL_NOSPACE).getTime(),transcationId,
merchantAccount,merchantId,merchantName);
merchantAccount,merchantId,merchantName,userPhone);
} catch (Exception e) { } catch (Exception e) {
logger.error("handlePaidCallBackError.",e); logger.error("handlePaidCallBackError.",e);
return notifyErrorResult(e.getMessage()); return notifyErrorResult(e.getMessage());
@@ -190,7 +191,7 @@ public class WxParkPayServiceImpl implements WxParkPayService {
@Override @Override
public void handlePaidSuccess(TenantEntity tenantEntity,WxPark wxPark,Long cUserId,Integer carVendor,String carNumber, public void handlePaidSuccess(TenantEntity tenantEntity,WxPark wxPark,Long cUserId,Integer carVendor,String carNumber,
String payOrderNo,Integer fee,Date paidTime,String transcationId,String merchantAccount, String payOrderNo,Integer fee,Date paidTime,String transcationId,String merchantAccount,
Long merchantId,String merchantName) throws Exception{
Long merchantId,String merchantName,String userPhone) throws Exception{
//查询该笔订单是否已经存在 //查询该笔订单是否已经存在
WxCarPayOrder payOrder = wxCarPayOrderMapper.findOneByParkOderNo(payOrderNo, tenantEntity.getTenantId()); WxCarPayOrder payOrder = wxCarPayOrderMapper.findOneByParkOderNo(payOrderNo, tenantEntity.getTenantId());
String parkOrderNo = ParkCreatePayOrder.getRealParkOrderNumber(payOrderNo,EnumCarVendor.getEnum(carVendor)); String parkOrderNo = ParkCreatePayOrder.getRealParkOrderNumber(payOrderNo,EnumCarVendor.getEnum(carVendor));
@@ -219,8 +220,8 @@ public class WxParkPayServiceImpl implements WxParkPayService {
payOrder.setMerchantId(merchantId); payOrder.setMerchantId(merchantId);
payOrder.setMerchantName(merchantName); payOrder.setMerchantName(merchantName);
payOrder.setCarVendor(carVendor); payOrder.setCarVendor(carVendor);
payOrder.setCUserPhone(userPhone);
wxCarPayOrderMapper.insert(payOrder); wxCarPayOrderMapper.insert(payOrder);
//通知车场支付成功 //通知车场支付成功
try { try {
parkFactory.getParkService(carVendor).notifyPaid(wxPark,new ParkNotifyPaid(tenantEntity.getTenantId(),payOrderNo,parkOrderNo,fee,paidTime)); parkFactory.getParkService(carVendor).notifyPaid(wxPark,new ParkNotifyPaid(tenantEntity.getTenantId(),payOrderNo,parkOrderNo,fee,paidTime));


+ 13
- 1
mallinkService/src/main/resources/mapper/WxCarPayOrderMapper.xml Vedi File

@@ -8,6 +8,7 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="c_user_id" jdbcType="BIGINT" property="cUserId"/> <result column="c_user_id" jdbcType="BIGINT" property="cUserId"/>
<result column="c_user_phone" jdbcType="VARCHAR" property="cUserPhone"/>
<result column="car_number" jdbcType="VARCHAR" property="carNumber"/> <result column="car_number" jdbcType="VARCHAR" property="carNumber"/>
<result column="pay_amount" jdbcType="INTEGER" property="payAmount"/> <result column="pay_amount" jdbcType="INTEGER" property="payAmount"/>
<result column="pay_time" jdbcType="TIMESTAMP" property="payTime"/> <result column="pay_time" jdbcType="TIMESTAMP" property="payTime"/>
@@ -23,7 +24,7 @@
</resultMap> </resultMap>


<sql id="allColumns"> <sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`c_user_id`,`car_number`,`pay_amount`,
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`c_user_id`,`c_user_phone`,`car_number`,`pay_amount`,
`pay_time`,`transaction_id`,`park_order_no`,`merchant_account`,`merchant_id`,`merchant_name`,`park_notify`, `pay_time`,`transaction_id`,`park_order_no`,`merchant_account`,`merchant_id`,`merchant_name`,`park_notify`,
`notify_fail_reason`,`notify_count`,`car_vendor` `notify_fail_reason`,`notify_count`,`car_vendor`
</sql> </sql>
@@ -83,6 +84,10 @@
and `merchant_name` like concat('%', #{merchantName},'%') and `merchant_name` like concat('%', #{merchantName},'%')
</if> </if>
<if test=" null != cUserPhone ">
and `c_user_phone` like concat('%', #{cUserPhone},'%')
</if>
<if test=" null != parkNotify "> <if test=" null != parkNotify ">
and `park_notify` = #{parkNotify} and `park_notify` = #{parkNotify}
</if> </if>
@@ -103,6 +108,13 @@
and `create_time` &lt;= #{end} and `create_time` &lt;= #{end}
</if> </if>
<if test=" null != userIds ">
and c_user_id in
<foreach collection="userIds" index="index" item="uidItem" open="(" separator="," close=")">
#{uidItem}
</foreach>
</if>
<if test=" null != ids "> <if test=" null != ids ">
and id in and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">


Caricamento…
Annulla
Salva