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) { public void setTickettime(Date tickettime) {
this.tickettime = 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") @RequestMapping("/payCallback")
public JSONObject payCallback(HttpServletRequest request){ public JSONObject payCallback(HttpServletRequest request){
log.info("支付网关返回:"+request.toString());
JSONObject json = HttpUtil.getParamTreeMap_Utf8(request); JSONObject json = HttpUtil.getParamTreeMap_Utf8(request);
log.info("paygate_ret"+json);
payService.payCallback(json); payService.payCallback(json);
jsonObject.put("response","00"); jsonObject.put("response","00");
jsonObject.put("message","成功"); jsonObject.put("message","成功");

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

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

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

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

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

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

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

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

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

@ -1,5 +1,6 @@
package cn.chjyj.szwh; package cn.chjyj.szwh;
import cn.chjyj.szwh.constant.PayConstant;
import cn.chjyj.szwh.utils.pay.security.AesEncryption; import cn.chjyj.szwh.utils.pay.security.AesEncryption;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import org.junit.Test; import org.junit.Test;
@ -41,4 +42,25 @@ public class PayTest {
ex.printStackTrace(); 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 @Test
public void getOrderById() { public void getOrderById() {
int id=2; int id=262;
Order gorder = orderMapper.getOrderById(id); Order gorder = orderMapper.getOrderById(id);
System.out.println(gorder.getId()); System.out.println(gorder.getPayid());
System.out.println(gorder);
} }
@Test @Test
@ -76,6 +77,21 @@ public class OrderMapperTest {
orderMapper.updateOrderStatus(con,oid); 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