From b10e9b08b7c1be37626e009193fa7ef5a68e09cc Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Tue, 4 Sep 2018 20:28:59 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=94=AF=E4=BB=98=E6=88=90=E5=8A=9F=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=80=9A=E7=9F=A5][=E6=96=B0=E5=A2=9E]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/simple/domain/po/WxPayOrder.java | 41 +++- .../com/simple/mapper/WxPayOrderMapper.java | 6 - .../service/impl/WxPayOrderServiceImpl.java | 25 +- .../resources/mapper/WxPayOrderMapper.xml | 223 +++++++++--------- 4 files changed, 153 insertions(+), 142 deletions(-) diff --git a/mallinkService/src/main/java/com/simple/domain/po/WxPayOrder.java b/mallinkService/src/main/java/com/simple/domain/po/WxPayOrder.java index d7b697bae..f9dad36e2 100644 --- a/mallinkService/src/main/java/com/simple/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/simple/domain/po/WxPayOrder.java @@ -69,6 +69,9 @@ public class WxPayOrder implements Serializable { /*支付结束时间**/ @io.swagger.annotations.ApiModelProperty(value="支付结束时间",name="payTimeEnd") private Date payTimeEnd; + /*微信预支付交易会话标识**/ + @io.swagger.annotations.ApiModelProperty(value="微信预支付交易会话标识",name="prepayId") + private String prepayId; /*微信生成的订单号**/ @io.swagger.annotations.ApiModelProperty(value="微信生成的订单号",name="transactionId") private String transactionId; @@ -138,6 +141,15 @@ public class WxPayOrder implements Serializable { public void setPayTimeEnd(Date _payTimeEnd) { payTimeEnd = _payTimeEnd; } + + public String getPrepayId() { + return prepayId; + } + + public void setPrepayId(String prepayId) { + this.prepayId = prepayId; + } + public String getTransactionId() { return transactionId; } @@ -174,20 +186,21 @@ public class WxPayOrder implements Serializable { public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") - ,TenantId_ASC("`tenantId` ASC"),TenantId_DESC("`tenantId` DESC") - ,CreateTime_ASC("`createTime` ASC"),CreateTime_DESC("`createTime` DESC") - ,UpdateTime_ASC("`updateTime` ASC"),UpdateTime_DESC("`updateTime` DESC") - ,OrderId_ASC("`orderId` ASC"),OrderId_DESC("`orderId` DESC") - ,CUserId_ASC("`cUserId` ASC"),CUserId_DESC("`cUserId` DESC") + ,TenantId_ASC("`tenant_id` ASC"),TenantId_DESC("`tenant_id` DESC") + ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") + ,UpdateTime_ASC("`update_time` ASC"),UpdateTime_DESC("`update_time` DESC") + ,OrderId_ASC("`order_id` ASC"),OrderId_DESC("`order_id` DESC") + ,CUserId_ASC("`c_user_id` ASC"),CUserId_DESC("`c_user_id` DESC") ,Ip_ASC("`ip` ASC"),Ip_DESC("`ip` DESC") - ,PayAmount_ASC("`payAmount` ASC"),PayAmount_DESC("`payAmount` DESC") - ,PayTimeStart_ASC("`payTimeStart` ASC"),PayTimeStart_DESC("`payTimeStart` DESC") - ,PayTimeEnd_ASC("`payTimeEnd` ASC"),PayTimeEnd_DESC("`payTimeEnd` DESC") - ,TransactionId_ASC("`transactionId` ASC"),TransactionId_DESC("`transactionId` DESC") - ,PayVendor_ASC("`payVendor` ASC"),PayVendor_DESC("`payVendor` DESC") - ,PayOrderNo_ASC("`payOrderNo` ASC"),PayOrderNo_DESC("`payOrderNo` DESC") - ,PayOrderStatus_ASC("`payOrderStatus` ASC"),PayOrderStatus_DESC("`payOrderStatus` DESC") - ,FailReason_ASC("`failReason` ASC"),FailReason_DESC("`failReason` DESC") + ,PayAmount_ASC("`pay_amount` ASC"),PayAmount_DESC("`pay_amount` DESC") + ,PayTimeStart_ASC("`pay_time_start` ASC"),PayTimeStart_DESC("`pay_time_start` DESC") + ,PayTimeEnd_ASC("`pay_time_end` ASC"),PayTimeEnd_DESC("`pay_time_end` DESC") + ,PrepayId_ASC("`prepay_id` ASC"),PrepayId_DESC("`transaction_id` DESC") + ,TransactionId_ASC("`transaction_id` ASC"),TransactionId_DESC("`prepay_id` DESC") + ,PayVendor_ASC("`pay_vendor` ASC"),PayVendor_DESC("`pay_vendor` DESC") + ,PayOrderNo_ASC("`pay_order_no` ASC"),PayOrderNo_DESC("`pay_order_no` DESC") + ,PayOrderStatus_ASC("`pay_order_status` ASC"),PayOrderStatus_DESC("`pay_order_status` DESC") + ,FailReason_ASC("`fail_reason` ASC"),FailReason_DESC("`fail_reason` DESC") ; private String value; Field(String value){ @@ -220,6 +233,8 @@ public class WxPayOrder implements Serializable { sb.append(","); sb.append(fields[k].toString()); } + + this.sortColumns = sb.toString(); } diff --git a/mallinkService/src/main/java/com/simple/mapper/WxPayOrderMapper.java b/mallinkService/src/main/java/com/simple/mapper/WxPayOrderMapper.java index 9f64bd266..67324c475 100644 --- a/mallinkService/src/main/java/com/simple/mapper/WxPayOrderMapper.java +++ b/mallinkService/src/main/java/com/simple/mapper/WxPayOrderMapper.java @@ -8,10 +8,4 @@ import com.simple.domain.po.WxPayOrder; public interface WxPayOrderMapper extends CommonMapper { List findList(WxPayOrder wxPayOrder); - - - - - - } diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java index daee749bc..f5240e926 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java @@ -182,6 +182,16 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { returnMap.put("paySign", signAgent); */ String prepay_id = returnMap.get("prepay_id"); + // update payOrder with prepay_id + record.setPrepayId(prepay_id); + record.setUpdateTime(new Date()); + try { + wxPayOrderMapper.updateByPrimaryKeySelective(record); + } catch (Exception e) { + logger.error("pay order update error: " + record.toString()); + throw new MallinkException(ErrorCode.DB_FAIL); + } + String timestamp = String.valueOf(Utility.getCurrentTimeStamp()); Map sighMap = MapUtil.getOrderMap(); sighMap.put("appId", returnMap.get("appid")); @@ -464,10 +474,15 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } // 微信模板通知用户 - WxAppinfo appinfo = new WxAppinfo(); - appinfo.setTenantId(order.getTenantId()); - appinfo.setType(EnumAppType.C.getCode()); - sendPaySuccessMsg(appinfo, order, updateOrder); + WxAppinfo appinfoQ = new WxAppinfo(); + appinfoQ.setTenantId(order.getTenantId()); + appinfoQ.setType(EnumAppType.C.getCode()); + List appinfoList = wxAppinfoMapper.select(appinfoQ); + if (appinfoList.size() >0) { + WxAppinfo appinfo = appinfoList.get(0); + sendPaySuccessMsg(appinfo, order, updateOrder); + } + // End of 微信模板通知用户 /* @@ -533,7 +548,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); WxMaTemplateMessage templateMessage = WxMaTemplateMessage.builder() .toUser(user.getOpenId()) - .formId("FORMID") + .formId(updateOrder.getPrepayId()) // 微信支付的formId是prepayId .page("index") .data(Lists.newArrayList( new WxMaTemplateMessage.Data("keyword1", dateFormat.format(new Date()), "#173177"), diff --git a/mallinkService/src/main/resources/mapper/WxPayOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxPayOrderMapper.xml index 03f72127a..526b439f1 100644 --- a/mallinkService/src/main/resources/mapper/WxPayOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPayOrderMapper.xml @@ -1,122 +1,109 @@ - - - - - - - - - - - - - - - - - - - - `id`,`tenant_id`,`create_time`,`update_time`,`order_id`,`c_user_id`,`ip`,`pay_amount`,`pay_time_start`,`pay_time_end`,`transaction_id`,`pay_vendor`,`pay_order_no`,`pay_order_status`,`fail_reason` - - - - where 1 = 1 - - - and `id` = #{id} - - - - - and `tenant_id` like concat('%', #{tenantId},'%') - - - - - and `create_time` = #{createTime} - - - - - and `update_time` = #{updateTime} - - - - - and `order_id` = #{orderId} - - - - - and `c_user_id` = #{cUserId} - - - - - and `ip` like concat('%', #{ip},'%') - - - - - and `pay_amount` = #{payAmount} - - - - - and `pay_time_start` = #{payTimeStart} - - - - - and `pay_time_end` = #{payTimeEnd} - - - - - and `transaction_id` like concat('%', #{transactionId},'%') - - - - - and `pay_vendor` = #{payVendor} - - - - - and `pay_order_no` like concat('%', #{payOrderNo},'%') - - - - - and `pay_order_status` = #{payOrderStatus} - - - - - and `fail_reason` like concat('%', #{failReason},'%') - - - - and id in - - #{idItem} - - - order by ${sortColumns} - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`create_time`,`update_time`,`order_id`,`c_user_id`,`ip`,`pay_amount`,`pay_time_start`,`pay_time_end`,`prepay_id`,`transaction_id`,`pay_vendor`,`pay_order_no`,`pay_order_status`,`fail_reason` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` like concat('%', #{tenantId},'%') + + + + and `create_time` = #{createTime} + + + + and `update_time` = #{updateTime} + + + + and `order_id` = #{orderId} + + + + and `c_user_id` = #{cUserId} + + + + and `ip` like concat('%', #{ip},'%') + + + + and `pay_amount` = #{payAmount} + + + + and `pay_time_start` = #{payTimeStart} + + + + and `pay_time_end` = #{payTimeEnd} + + + + and `prepay_d` like concat('%', #{prepayId},'%') + + + + and `transaction_id` like concat('%', #{transactionId},'%') + + + + and `pay_vendor` = #{payVendor} + + + + and `pay_order_no` like concat('%', #{payOrderNo},'%') + + + + and `pay_order_status` = #{payOrderStatus} + + + + and `fail_reason` like concat('%', #{failReason},'%') + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + +