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

fix car pay

release_toaliyun_real
lin 3 лет назад
Родитель
Сommit
62ea41a592
6 измененных файлов: 32 добавлений и 10 удалений
  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 Просмотреть файл

@@ -5,6 +5,7 @@ CREATE TABLE `wx_car_pay_order` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`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 '车牌号',
`pay_amount` int(11) 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_99 LIKE wx_car_pay_order;

drop table wx_car_pay_order;

ALTER TABLE `mallink`.`wx_park`
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
add column `receiver_params` json COMMENT '其他配置参数';


+ 6
- 5
mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java Просмотреть файл

@@ -483,14 +483,15 @@ public class WxCarController extends BaseController {
}
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(",\"car:\":").append(carNumber)
.append(",\"uh\":\"").append(user.getPhone()).append("\"")
.append(",\"car:\":\"").append(carNumber).append("\"")
.append(",\"fee\":").append(payOrder.getFee())
.append(",\"ma\":").append(receiver.getReceiverAccount())
.append(",\"ma\":\"").append(receiver.getReceiverAccount()).append("\"")
.append(",\"mid\":").append(parkMerchant.getId())
.append(",\"mn\":").append(parkMerchant.getName())
.append(",\"mn\":\"").append(parkMerchant.getName()).append("\"")
.append("}");
//创建微信支付订单
boolean isIsv = false;


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

@@ -24,6 +24,10 @@ public class WxCarPayOrder extends TenantEntity {
private Date updateTime;
@io.swagger.annotations.ApiModelProperty(value="用户ID",name="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")
private String carNumber;
@io.swagger.annotations.ApiModelProperty(value="支付金额(分)",name="payAmount")


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

@@ -21,7 +21,7 @@ public interface WxParkPayService {
public String handlePaidCallBack(Map<String, String> paramMap);
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);


+ 4
- 3
mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayServiceImpl.java Просмотреть файл

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


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

@@ -8,6 +8,7 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<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="pay_amount" jdbcType="INTEGER" property="payAmount"/>
<result column="pay_time" jdbcType="TIMESTAMP" property="payTime"/>
@@ -23,7 +24,7 @@
</resultMap>

<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`,
`notify_fail_reason`,`notify_count`,`car_vendor`
</sql>
@@ -83,6 +84,10 @@
and `merchant_name` like concat('%', #{merchantName},'%')
</if>
<if test=" null != cUserPhone ">
and `c_user_phone` like concat('%', #{cUserPhone},'%')
</if>
<if test=" null != parkNotify ">
and `park_notify` = #{parkNotify}
</if>
@@ -103,6 +108,13 @@
and `create_time` &lt;= #{end}
</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 ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">


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