diff --git a/mallinkAdmin/src/main/resources/db/migration/V20230200001__car.sql b/mallinkAdmin/src/main/resources/db/migration/V20230200001__car.sql index f1636743c..f3ed15ddc 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V20230200001__car.sql +++ b/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 '其他配置参数'; + diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java index cda51b92b..741428bf3 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java +++ b/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; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayOrder.java index e519c692e..6b16f280a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayOrder.java +++ b/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 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") diff --git a/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayService.java b/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayService.java index 51cdde919..9c613ccab 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayService.java +++ b/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayService.java @@ -21,7 +21,7 @@ public interface WxParkPayService { public String handlePaidCallBack(Map 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); diff --git a/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayServiceImpl.java index 80bdee198..f3a9e1834 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/pay/WxParkPayServiceImpl.java +++ b/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)); diff --git a/mallinkService/src/main/resources/mapper/WxCarPayOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCarPayOrderMapper.xml index 43c17e640..2d0faf7f9 100644 --- a/mallinkService/src/main/resources/mapper/WxCarPayOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCarPayOrderMapper.xml @@ -8,6 +8,7 @@ + @@ -23,7 +24,7 @@ - `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` @@ -83,6 +84,10 @@ and `merchant_name` like concat('%', #{merchantName},'%') + + and `c_user_phone` like concat('%', #{cUserPhone},'%') + + and `park_notify` = #{parkNotify} @@ -103,6 +108,13 @@ and `create_time` <= #{end} + + and c_user_id in + + #{uidItem} + + + and id in