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

[支付成功发送通知][新增]

release_toaliyun_real
Stormeye.Wu 7 лет назад
Родитель
Сommit
b10e9b08b7
4 измененных файлов: 153 добавлений и 142 удалений
  1. +28
    -13
      mallinkService/src/main/java/com/simple/domain/po/WxPayOrder.java
  2. +0
    -6
      mallinkService/src/main/java/com/simple/mapper/WxPayOrderMapper.java
  3. +20
    -5
      mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java
  4. +105
    -118
      mallinkService/src/main/resources/mapper/WxPayOrderMapper.xml

+ 28
- 13
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();
}


+ 0
- 6
mallinkService/src/main/java/com/simple/mapper/WxPayOrderMapper.java Просмотреть файл

@@ -8,10 +8,4 @@ import com.simple.domain.po.WxPayOrder;
public interface WxPayOrderMapper extends CommonMapper<WxPayOrder, Long> {

List<WxPayOrder> findList(WxPayOrder wxPayOrder);

}

+ 20
- 5
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<String, String> 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<WxAppinfo> 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"),


+ 105
- 118
mallinkService/src/main/resources/mapper/WxPayOrderMapper.xml Просмотреть файл

@@ -1,122 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.simple.mapper.WxPayOrderMapper">
<resultMap id="BaseResultMap" type="com.simple.domain.po.WxPayOrder">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="order_id" jdbcType="BIGINT" property="orderId" />
<result column="c_user_id" jdbcType="BIGINT" property="cUserId" />
<result column="ip" jdbcType="VARCHAR" property="ip" />
<result column="pay_amount" jdbcType="INTEGER" property="payAmount" />
<result column="pay_time_start" jdbcType="TIMESTAMP" property="payTimeStart" />
<result column="pay_time_end" jdbcType="TIMESTAMP" property="payTimeEnd" />
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId" />
<result column="pay_vendor" jdbcType="INTEGER" property="payVendor" />
<result column="pay_order_no" jdbcType="VARCHAR" property="payOrderNo" />
<result column="pay_order_status" jdbcType="INTEGER" property="payOrderStatus" />
<result column="fail_reason" jdbcType="VARCHAR" property="failReason" />
</resultMap>
<sql id="allColumns">
`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`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1
<if test=" null != id ">
and `id` = #{id}
</if>
<if test=" null != tenantId ">
and `tenant_id` like concat('%', #{tenantId},'%')
</if>
<if test=" null != createTime ">
and `create_time` = #{createTime}
</if>
<if test=" null != updateTime ">
and `update_time` = #{updateTime}
</if>
<if test=" null != orderId ">
and `order_id` = #{orderId}
</if>
<if test=" null != cUserId ">
and `c_user_id` = #{cUserId}
</if>
<if test=" null != ip ">
and `ip` like concat('%', #{ip},'%')
</if>
<if test=" null != payAmount ">
and `pay_amount` = #{payAmount}
</if>
<if test=" null != payTimeStart ">
and `pay_time_start` = #{payTimeStart}
</if>
<if test=" null != payTimeEnd ">
and `pay_time_end` = #{payTimeEnd}
</if>
<if test=" null != transactionId ">
and `transaction_id` like concat('%', #{transactionId},'%')
</if>
<if test=" null != payVendor ">
and `pay_vendor` = #{payVendor}
</if>
<if test=" null != payOrderNo ">
and `pay_order_no` like concat('%', #{payOrderNo},'%')
</if>
<if test=" null != payOrderStatus ">
and `pay_order_status` = #{payOrderStatus}
</if>
<if test=" null != failReason ">
and `fail_reason` like concat('%', #{failReason},'%')
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>
<select id="findList" parameterType="com.simple.domain.po.WxPayOrder" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_pay_order
<include refid="dynamicWhereConditions" />
</select>
<resultMap id="BaseResultMap" type="com.simple.domain.po.WxPayOrder">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="order_id" jdbcType="BIGINT" property="orderId"/>
<result column="c_user_id" jdbcType="BIGINT" property="cUserId"/>
<result column="ip" jdbcType="VARCHAR" property="ip"/>
<result column="pay_amount" jdbcType="INTEGER" property="payAmount"/>
<result column="pay_time_start" jdbcType="TIMESTAMP" property="payTimeStart"/>
<result column="pay_time_end" jdbcType="TIMESTAMP" property="payTimeEnd"/>
<result column="prepay_id" jdbcType="VARCHAR" property="prepayId"/>
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId"/>
<result column="pay_vendor" jdbcType="INTEGER" property="payVendor"/>
<result column="pay_order_no" jdbcType="VARCHAR" property="payOrderNo"/>
<result column="pay_order_status" jdbcType="INTEGER" property="payOrderStatus"/>
<result column="fail_reason" jdbcType="VARCHAR" property="failReason"/>
</resultMap>

<sql id="allColumns">
`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`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1

<if test=" null != id ">
and `id` = #{id}
</if>

<if test=" null != tenantId ">
and `tenant_id` like concat('%', #{tenantId},'%')
</if>

<if test=" null != createTime ">
and `create_time` = #{createTime}
</if>

<if test=" null != updateTime ">
and `update_time` = #{updateTime}
</if>

<if test=" null != orderId ">
and `order_id` = #{orderId}
</if>

<if test=" null != cUserId ">
and `c_user_id` = #{cUserId}
</if>

<if test=" null != ip ">
and `ip` like concat('%', #{ip},'%')
</if>

<if test=" null != payAmount ">
and `pay_amount` = #{payAmount}
</if>

<if test=" null != payTimeStart ">
and `pay_time_start` = #{payTimeStart}
</if>

<if test=" null != payTimeEnd ">
and `pay_time_end` = #{payTimeEnd}
</if>

<if test=" null != prepayId ">
and `prepay_d` like concat('%', #{prepayId},'%')
</if>

<if test=" null != transactionId ">
and `transaction_id` like concat('%', #{transactionId},'%')
</if>

<if test=" null != payVendor ">
and `pay_vendor` = #{payVendor}
</if>

<if test=" null != payOrderNo ">
and `pay_order_no` like concat('%', #{payOrderNo},'%')
</if>

<if test=" null != payOrderStatus ">
and `pay_order_status` = #{payOrderStatus}
</if>

<if test=" null != failReason ">
and `fail_reason` like concat('%', #{failReason},'%')
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns">order by ${sortColumns}</if>
</sql>

<select id="findList" parameterType="com.simple.domain.po.WxPayOrder" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from wx_pay_order
<include refid="dynamicWhereConditions"/>
</select>

</mapper>

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