Browse Source

修正update中map中分割用,

master
xyiege 3 years ago
parent
commit
c2ac5f6019
  1. 36
      src/main/java/cn/chjyj/szwh/bean/Order.java
  2. 2
      src/main/java/cn/chjyj/szwh/controller/api/PayController.java
  3. 38
      src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java
  4. 2
      src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java
  5. 4
      src/main/resources/mapper/szwh/GoodsMapper.xml
  6. 2
      src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml
  7. 4
      src/main/resources/mapper/szwh/OrderMapper.xml
  8. 22
      src/test/java/cn/chjyj/szwh/PayTest.java
  9. 20
      src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

36
src/main/java/cn/chjyj/szwh/bean/Order.java

@ -296,4 +296,40 @@ public class Order implements Serializable {
public void setTickettime(Date tickettime) {
this.tickettime = tickettime;
}
@Override
public String toString() {
return "Order{" +
"id=" + id +
", userId=" + userId +
", buyIslicode='" + buyIslicode + '\'' +
", batchcode='" + batchcode + '\'' +
", accountRatioId=" + accountRatioId +
", historyBuyName='" + historyBuyName + '\'' +
", historyBuyCode='" + historyBuyCode + '\'' +
", totalServiceCharge=" + totalServiceCharge +
", totalMoney=" + totalMoney +
", type=" + type +
", status=" + status +
", transactionIslicode='" + transactionIslicode + '\'' +
", ticketid=" + ticketid +
", ticketmoney=" + ticketmoney +
", ticketurl='" + ticketurl + '\'' +
", ticketimage='" + ticketimage + '\'' +
", ticketStatus=" + ticketStatus +
", chargeChannel=" + chargeChannel +
", payStatus=" + payStatus +
", closeStatus=" + closeStatus +
", isClose=" + isClose +
", closeSerialNumber='" + closeSerialNumber + '\'' +
", payid='" + payid + '\'' +
", createtime=" + createtime +
", paymenttime=" + paymenttime +
", receivetime=" + receivetime +
", closetime=" + closetime +
", completetime=" + completetime +
", shuttime=" + shuttime +
", tickettime=" + tickettime +
'}';
}
}

2
src/main/java/cn/chjyj/szwh/controller/api/PayController.java

@ -48,8 +48,8 @@ public class PayController extends BaseController {
*/
@RequestMapping("/payCallback")
public JSONObject payCallback(HttpServletRequest request){
log.info("支付网关返回:"+request.toString());
JSONObject json = HttpUtil.getParamTreeMap_Utf8(request);
log.info("paygate_ret"+json);
payService.payCallback(json);
jsonObject.put("response","00");
jsonObject.put("message","成功");

38
src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java

@ -42,6 +42,7 @@ public class PayServiceImpl implements PayService {
/**
* 关闭七日以前的已经支付了的订单
*
* @return
*/
@Override
@ -57,6 +58,7 @@ public class PayServiceImpl implements PayService {
/**
* 订单支付完成后的操作
*
* @param batchcode
* @return
*/
@ -110,8 +112,8 @@ public class PayServiceImpl implements PayService {
String contractcode = "";
if (StringUtils.isEmpty(odgd.getContractCode()) || "-".equals(odgd.getContractCode())) {
String ratio = "0.00";
// 远程获取查询对应的 islicode
JSONObject aplinkCodeJson=SzwhApiUtils.getApplyLinkCode(odgd.getGoodsIslicode(),
// 远程获取查询对应的 sourcedata_islicode
JSONObject aplinkCodeJson = SzwhApiUtils.getApplyLinkCode(odgd.getSourcedataIslicode(),
buyIslicode, ratio, transCount, dateStr, batchcode);
log.info("订单合约编号:" + aplinkCodeJson);
JSONArray aparr = aplinkCodeJson.getJSONArray("data");
@ -155,9 +157,15 @@ public class PayServiceImpl implements PayService {
//订单类型
String typeStr = "";
switch (type) {
case 1:typeStr="委托订单";break;
case 2:typeStr="认证订单";break;
default:typeStr="服务订单";break;
case 1:
typeStr = "委托订单";
break;
case 2:
typeStr = "认证订单";
break;
default:
typeStr = "服务订单";
break;
}
syncmap.put("type", typeStr);
syncmap.put("buyUsername", buyName);
@ -227,8 +235,6 @@ public class PayServiceImpl implements PayService {
log.info("支付网关返回解密结果:" + desencrypt);
// 转为json
JSONObject dataObject = JSONObject.parseObject(desencrypt);
//支付完成
if (dataObject.getIntValue("respcode") == 2) {
//订单编号
String ordersn = dataObject.getString("ordernumber");
//查找订单并更新订单状态
@ -245,15 +251,28 @@ public class PayServiceImpl implements PayService {
upgmap.put("sale_count", goods.getSaleCount() + 1);
goodsMapper.updateGoods(upgmap, goods.getId());
}
//使用的支付方式
int ichargeChannel = 3;//默认银联支付
String paymenttypename = dataObject.getString("paymenttypename");
if (paymenttypename.startsWith("支付宝")) {
ichargeChannel = 2;
}
if (paymenttypename.startsWith("微信")) {
ichargeChannel = 1;
}
//更新订单字段
Map upmap = new HashMap();
upmap.put("status", 2);
upmap.put("pay_status", 2);
upmap.put("paymenttime", new Date());
//支付方式
upmap.put("charge_channel", ichargeChannel);
upmap.put("payid", dataObject.getString("payorderid")); //支付流水单号
//更新订单指定字段
orderMapper.updateOrderStatus(upmap, order.getId());
}
// 处理订单其他信息
payFinishOperate(order.getBatchcode());
//买家发票信息等
@ -263,13 +282,14 @@ public class PayServiceImpl implements PayService {
}
} catch (Exception ex) {
log.error(ex.getLocalizedMessage());
log.error("支付返回结果解密异常:"+ex.getMessage());
}
return 0;
}
/**
* 买家发票信息
*
* @param bathcode
* @return
*/

2
src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java

@ -177,7 +177,7 @@ public class SzwhApiUtils {
String channelUser=ProperUtils.getSzwhProp("CHANNEL_ISLI");
String tlangHost= ProperUtils.getSzwhProp("TIANLANG_ENTRUST_URL");
//todo v2:测试环境 v1:正式环境
String url=tlangHost+"/consignation/v2/applylinkcode";
String url=tlangHost+"/consignation/v1/applylinkcode";
log.info("申请合约地址:"+url);
// 使用的token
String sign=SignUtils.createSign("entrust");

4
src/main/resources/mapper/szwh/GoodsMapper.xml

@ -291,10 +291,8 @@
update
<include refid="tbName"/>
<set>
<foreach collection="map" item="v" index="k" separator="and">
<if test="v != null and v != ''">
<foreach collection="map" item="v" index="k" separator=",">
${k} = #{v}
</if>
</foreach>
</set>
where id=#{gid}

2
src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml

@ -198,7 +198,7 @@
<update id="updateOrderGoodsDetail">
update <include refid="tbName"/>
<set>
<foreach collection="map" item="v" index="k" separator="and">
<foreach collection="map" item="v" index="k" separator=",">
${k} = #{v}
</foreach>
</set>

4
src/main/resources/mapper/szwh/OrderMapper.xml

@ -223,7 +223,7 @@
update
<include refid="tbName"/>
<set>
<foreach collection="map" item="v" index="k" separator="and">
<foreach collection="map" item="v" index="k" separator=",">
${k} = #{v}
</foreach>
</set>
@ -235,6 +235,6 @@
update
<include refid="tbName"/>
set `status`=5,`shuttime`=#{shuttime}
where batchcode=#{batchcode}
where batchcode=#{batchcode} and status!=2
</update>
</mapper>

22
src/test/java/cn/chjyj/szwh/PayTest.java

@ -1,5 +1,6 @@
package cn.chjyj.szwh;
import cn.chjyj.szwh.constant.PayConstant;
import cn.chjyj.szwh.utils.pay.security.AesEncryption;
import com.alibaba.fastjson2.JSONObject;
import org.junit.Test;
@ -41,4 +42,25 @@ public class PayTest {
ex.printStackTrace();
}
}
@Test
public void mkcrpy(){
String wstr ="{\"businesstypename\":\"现场收款\",\"subpaymenttypeid\":12,\n" +
"\"latitude\":0.0,\"bankaccount\":\"12_null\",\n" +
"\"channelpayorderid\":\"2022112422001401901438361289\",\"payorderid\":\"30331021124201835748\",\n" +
"\"subcompanyname\":\"深圳文化产权交易所有限公司(测试商户)\",\"body\":\"qq112401\",\"respcode\":2,\n" +
"\"channelordernumber\":\"288590033351202211247208767226\",\"businesstype\":1001,\"rcompanyname\":\"深圳文化产权交易所有限公司(测试商户)\",\n" +
"\"settlementtype\":1,\"companyid\":910000198,\"ordernumber\":\"1669292311057413\",\"rcompanyid\":910000198,\"respmsg\":\"支付完成\",\"longitude\":0.0,\n" +
"\"amount\":1,\"subcompanyid\":910000198,\"bankcardtype\":0,\"loginname\":\"深圳文化产权交易所有限公司(测试商户)\",\"subpaymenttypename\":\"支付宝扫码支付\",\n" +
"\"paymenttypename\":\"支付宝支付\",\"companyname\":\"深圳文化产权交易所有限公司(测试商户)\",\"businesstime\":\"2022-11-24 20:19:20\",\"paymenttypeid\":12,\n" +
"\"stationid\":0,\"ordertype\":307}";
try {
//加密
String aftAcrpy = AesEncryption.Desencrypt(wstr, PayConstant.TOKEN_SECRETKEY, PayConstant.TOKEN_SESSION);
System.out.println("加密后:"+aftAcrpy);
}catch (Exception ex){
ex.printStackTrace();
}
}
}

20
src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

@ -50,9 +50,10 @@ public class OrderMapperTest {
@Test
public void getOrderById() {
int id=2;
int id=262;
Order gorder = orderMapper.getOrderById(id);
System.out.println(gorder.getId());
System.out.println(gorder.getPayid());
System.out.println(gorder);
}
@Test
@ -76,6 +77,21 @@ public class OrderMapperTest {
orderMapper.updateOrderStatus(con,oid);
}
//更新支付时间,订单状态等
@Test
public void upordstatus(){
int oid=262;
Map upmap = new HashMap();
upmap.put("status", 2);
upmap.put("pay_status", 2);
upmap.put("paymenttime", new Date());
//支付方式
upmap.put("charge_channel", "2");
upmap.put("payid", "3037102113012202719"); //支付流水单号
//do it
orderMapper.updateOrderStatus(upmap,oid);
}
/**
* 订单关闭
*/

Loading…
Cancel
Save