| @@ -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 '其他配置参数'; | ||||
| @@ -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; | ||||
| @@ -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") | ||||
| @@ -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); | ||||
| @@ -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)); | ||||
| @@ -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` <= #{end} | and `create_time` <= #{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=")"> | ||||