From 13ac9c42bb22b980567313a9dff51d4a8d639bbc Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 20 十二月 2023 10:58:47 +0800
Subject: [PATCH] 服务商
---
server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java | 24 ++++
server/services/src/main/java/com/doumee/service/business/RefundService.java | 1
server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java | 15 -
server/web/src/main/java/com/doumee/api/web/PaymentCallback.java | 5
server/README.md | 21 +--
server/services/src/main/java/com/doumee/service/business/GoodsorderService.java | 2
server/services/src/main/resources/application-dev.yml | 6
server/platform/src/main/java/com/doumee/task/ScheduleTool.java | 7
server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java | 2
server/services/src/main/resources/application-test.yml | 3
server/services/src/main/resources/application-pro.yml | 31 +++-
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 7 +
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 224 ++++++++++++++++++++++++++++--------
server/platform/src/main/resources/application.yml | 2
server/web/src/main/resources/application.yml | 2
15 files changed, 256 insertions(+), 96 deletions(-)
diff --git a/server/README.md b/server/README.md
index e980c38..60f0249 100644
--- a/server/README.md
+++ b/server/README.md
@@ -1,25 +1,18 @@
涓�銆佹墦鍖呮敞鎰忎簨椤癸細
-1銆佹墦鍖卲ro鐜锛屽紑鍚疭cheduleTool瀹氭椂鍣ㄤ换鍔★紝鍛藉悕锛歵ielangtou.jar
-2銆佹墦鍖卲roTwo鐜锛屽叧闂璖cheduleTool瀹氭椂鍣ㄤ换鍔★紝鍛藉悕锛歵ielangtou12.jar
-3銆佹墦鍖卲roThree鐜锛屽叧闂璖cheduleTool瀹氭椂鍣ㄤ换鍔★紝鍛藉悕锛歵ielangtou13.jar
+1銆佹墦鍖呮湇鍔$鎺ュ彛pro鐜锛屽懡鍚嶏細bike_admin_api.jar
+3銆佹墦鍖呭鎴风鎺ュ彛pro鐜锛屽懡鍚嶏細bike_h5_api.jar
浜屻�佸惎鍔ㄥ懡浠わ細
1銆佹煡鐪嬪綋鍓嶈繍琛岃繘绋嬶紝ps -ef | grep java
2銆佸叧闂笁涓猨ava杩涚▼锛宬ill -9 xxxx
-3銆乯ar瀛樻斁鐩綍 /usr/local/static_resources
+3銆乯ar瀛樻斁鐩綍 /usr/local/parks
4銆佸惎鍔ㄥ懡浠わ細
-nohup java -Xms3g -Xmx3g -Xmn3g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/static_resources/tielangtou.jar >/usr/local/static_resources/log.log 2>/usr/local/static_resources/err.log &
-nohup java -Xms3g -Xmx3g -Xmn3g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/static_resources/tielangtou12.jar >/usr/local/static_resources/log12.log 2>/usr/local/static_resources/err12.log &
-nohup java -Xms3g -Xmx3g -Xmn3g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/static_resources/tielangtou13.jar >/usr/local/static_resources/log13.log 2>/usr/local/static_resources/err13.log &
-nohup java -Xms2g -Xmx2g -Xmn2g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/static_resources/tielangtou14.jar >/usr/local/static_resources/log14.log 2>/usr/local/static_resources/err14.log &
-nohup java -Xms2g -Xmx2g -Xmn2g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/static_resources/tielangtou15.jar >/usr/local/static_resources/log15.log 2>/usr/local/static_resources/err15.log &
-nohup java -Xms2g -Xmx2g -Xmn2g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/static_resources/tielangtou16.jar >/usr/local/static_resources/log16.log 2>/usr/local/static_resources/err16.log &
-
+nohup java -Xms3g -Xmx3g -Xmn3g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/parks/bike_admin_api.jar >/usr/local/parks/log.log 2>/usr/local/parks/err.log &
+nohup java -Xms3g -Xmx3g -Xmn3g -XX:MetaspaceSize=1536m -XX:MaxMetaspaceSize=1536m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -jar /usr/local/parks/bike_h5_api.jar >/usr/local/parks/log.log 2>/usr/local/parks/err.log &
5銆佸啀娆℃煡鐪嬪綋鍓嶈繍琛岃繘绋嬶紝ps -ef | grep java锛屼笁涓繘绋嬫槸鍚︽甯�
涓夈�佹棩蹇楁煡鐪嬪懡浠わ細
-tail -f /usr/local/static_resources/log.log
-tail -f /usr/local/static_resources/log12.log
-tail -f /usr/local/static_resources/log13.log
+tail -f /usr/local/parks/log.log
+tail -f /usr/local/parks/error.log
diff --git a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
index b55e675..4f8c93d 100644
--- a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -70,12 +70,11 @@
* 娓│
* @throws Exception
*/
- @Scheduled(cron = "0 0 21 * * ? ")
+ @Scheduled(cron = "0 30 13 * * ? ")
public void getYesterdayBill() throws Exception {
log.info("=====================寮�濮嬫瘡澶╄嚜鍔ㄧ粨绠�=======================");
goodsorderService.autoCloseOrder();
log.info("=====================缁撴潫姣忓ぉ鑷姩缁撶畻=======================");
-
}
/**
@@ -117,7 +116,7 @@
String appSecret = wxPayProperties.getAppSecret();
if(wxPayProperties.getExistsSub() ==1){
//濡傛灉鏄湇鍔″晢鏀粯,鍙栧瓙鍟嗘埛淇℃伅
- appId = StringUtils.trimToNull(wxPayProperties.getSubMchId());
+ appId = StringUtils.trimToNull(wxPayProperties.getSubAppId());
appSecret =StringUtils.trimToNull(wxPayProperties.getSubAppSecret());
}
//鐢熸垚寰俊token
@@ -137,7 +136,7 @@
@Scheduled(fixedDelay = 1000L * 60L )
public void autoCancelRefunOrder(){
log.info("=====================寮�濮� 鑷嫊鍙栨秷鏈帹閫侀��娆剧姸鎬佺殑閫�娆惧崟鐘舵��=======================");
- refundService.autoCancelRefunOrder();;
+ goodsorderService.autoCancelRefunOrder();;
log.info("=====================缁撴潫 鑷嫊鍙栨秷鏈帹閫侀��娆剧姸鎬佺殑閫�娆惧崟鐘舵��=======================");
}
diff --git a/server/platform/src/main/resources/application.yml b/server/platform/src/main/resources/application.yml
index a70c09f..495699e 100644
--- a/server/platform/src/main/resources/application.yml
+++ b/server/platform/src/main/resources/application.yml
@@ -9,7 +9,7 @@
# application:
# name: parkbike
profiles:
- active: test
+ active: pro
# JSON杩斿洖閰嶇疆
jackson:
# 榛樿鏃跺尯
diff --git a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
index 7439fd9..d3fd0bd 100644
--- a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
+++ b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
@@ -16,6 +16,7 @@
import com.doumee.dao.system.model.SystemDictData;
import com.wechat.pay.java.service.refund.model.AmountReq;
import com.wechat.pay.java.service.refund.model.CreateRequest;
+import com.wechat.pay.java.service.refund.model.QueryByOutRefundNoRequest;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -82,7 +83,9 @@
amountReq.setCurrency("CNY");
request.setAmount(amountReq);
try {
+ log.error("=============="+JSONObject.toJSONString(request));
com.wechat.pay.java.service.refund.model.Refund response = WxMiniConfig.refundService.create(request);
+ log.error("=============="+JSONObject.toJSONString(response));
if ("SUCCESS".equals(response.getStatus().name())
|| "PROCESSING".equals(response.getStatus().name()) ) {
return true;
@@ -95,6 +98,27 @@
}
}
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public com.wechat.pay.java.service.refund.model.Refund isSuucessRefund(String outTradeNo) {
+ // 鍙戦�侀��娆捐姹�
+
+ QueryByOutRefundNoRequest request = new QueryByOutRefundNoRequest();
+ request.setOutRefundNo(outTradeNo);
+ request.setSubMchid(WxMiniConfig.wxProperties.getSubMchId());
+ try {
+ log.error("=============="+JSONObject.toJSONString(request));
+ com.wechat.pay.java.service.refund.model.Refund response = WxMiniConfig.refundService.queryByOutRefundNo(request);
+ log.error("=============="+JSONObject.toJSONString(response));
+ if ("SUCCESS".equals(response.getStatus().name())
+ || "PROCESSING".equals(response.getStatus().name()) ) {
+ return response;
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+
+ }
+ return null;
+ }
public Refund wxRefundOld(RefundDTO refundDTO) {
// 鍙戦�侀��娆捐姹�
String refNum = ID.nextGUID();
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java b/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
index 0dced2a..04205a2 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
@@ -38,7 +38,7 @@
private String leaseNotice;
- @ApiModelProperty(value = "鎶奸噾鐘舵�侊細0=鏈敮浠樻娂閲戯紱1=宸叉敮浠樻娂閲戯紱")
+ @ApiModelProperty(value = "鎶奸噾鐘舵�侊細0=鏈敮浠樻娂閲戯紱1=宸叉敮浠樻娂閲�; 2=閫�娆句腑")
private Integer depositStatus = 0;
@ApiModelProperty(value = "璁㈠崟涓婚敭")
diff --git a/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java b/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
index 4724ede..5ea76b3 100644
--- a/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
+++ b/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -188,4 +188,6 @@
void goodsOrderSettlement(String memberId);
void autoCloseOrder();
+
+ void autoCancelRefunOrder();
}
diff --git a/server/services/src/main/java/com/doumee/service/business/RefundService.java b/server/services/src/main/java/com/doumee/service/business/RefundService.java
index 274d923..78bd4d2 100644
--- a/server/services/src/main/java/com/doumee/service/business/RefundService.java
+++ b/server/services/src/main/java/com/doumee/service/business/RefundService.java
@@ -102,5 +102,4 @@
List<RefundPlatExportVO> findPlatExportPage( Refund pageWrap);
- void autoCancelRefunOrder();
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 566ca83..4b18e96 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -45,6 +45,7 @@
import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.*;
import com.wechat.pay.java.service.refund.model.RefundNotification;
+import com.wechat.pay.java.service.refund.model.Status;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -373,41 +374,55 @@
.eq("member_id",memberId)
.eq("status",Constants.goodsorderStatus.pay)
.last(" limit 1 "));
- if(!Objects.isNull(goodsorder)&&goodsorder.getStatus().equals(Constants.goodsorderStatus.pay)){
- homeResponse.setDepositStatus(Constants.goodsorderStatus.pay);
- homeResponse.setGoodsOrderId(goodsorder.getId());
- //鏌ヨ褰撳墠楠戣鐘舵��
- MemberRides memberRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().lambda()
- .eq(MemberRides::getMemberId, memberId)
- .eq(MemberRides::getOrdreId,goodsorder.getId())
- .ne(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey())
- .orderByDesc(MemberRides::getCreateDate)
- .last(" limit 1 "));
- if (!Objects.isNull(memberRides)) {
- homeResponse.setRideStatus(memberRides.getStatus());
- MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
- BaseParam baseParam = baseParamMapper.selectById(memberRides.getParamId());
- if(!Objects.isNull(baseParam)){
- memberRidesResponse.setBikeType(baseParam.getName());
+ homeResponse.setDepositStatus(Constants.ZERO);
+ if(goodsorder!=null){
+ Refund r = this.refundMapper.selectOne(new QueryWrapper<Refund>().lambda()
+ .eq(Refund::getObjId,goodsorder.getId())
+ .eq(Refund::getIsdeleted,Constants.ZERO)
+ .eq(Refund::getStatus,Constants.ZERO)
+ .last("limit 1" ));
+ if(r!=null){
+ homeResponse.setDepositStatus(Constants.TWO);
+ }else{
+ homeResponse.setDepositStatus(Constants.ONE);
+ }
+ if( goodsorder.getStatus().equals(Constants.goodsorderStatus.pay)){
+ homeResponse.setGoodsOrderId(goodsorder.getId());
+ //鏌ヨ褰撳墠楠戣鐘舵��
+ MemberRides memberRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().lambda()
+ .eq(MemberRides::getMemberId, memberId)
+ .eq(MemberRides::getOrdreId,goodsorder.getId())
+ .ne(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey())
+ .orderByDesc(MemberRides::getCreateDate)
+ .last(" limit 1 "));
+ if (!Objects.isNull(memberRides)) {
+ homeResponse.setRideStatus(memberRides.getStatus());
+ MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
+ BaseParam baseParam = baseParamMapper.selectById(memberRides.getParamId());
+ if(!Objects.isNull(baseParam)){
+ memberRidesResponse.setBikeType(baseParam.getName());
+ }
+ memberRidesResponse.setRideId(memberRides.getId());
+ memberRidesResponse.setRideStartTime(memberRides.getRentDate());
+ memberRidesResponse.setRideStartTimeStr(DateUtil.DateToStr(memberRides.getRentDate(),"HH:mm"));
+ memberRidesResponse.setRideEndTime(memberRides.getBackDate());
+ memberRidesResponse.setRideEndTimeStr(DateUtil.DateToStr(memberRides.getBackDate(),"HH:mm"));
+ memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRides.getRentDate(),memberRides.getBackDate()));
+ memberRidesResponse.setBikeCode(memberRides.getBikeCode());
+ memberRidesResponse.setBasePrice(memberRides.getBasePrice());
+ memberRidesResponse.setBaseTime(memberRides.getBaseTime());
+ memberRidesResponse.setUnitTime(memberRides.getUnitTime());
+ memberRidesResponse.setUnitPrice(memberRides.getUnitPrice());
+ memberRidesResponse.setPriceRole(PricingDetailServiceImpl.getRoleNameByParam(
+ memberRidesResponse.getBasePrice(),memberRidesResponse.getBaseTime(),
+ memberRidesResponse.getUnitPrice()
+ ,memberRidesResponse.getUnitTime()));
+ homeResponse.setMemberRidesResponse(memberRidesResponse);
}
- memberRidesResponse.setRideId(memberRides.getId());
- memberRidesResponse.setRideStartTime(memberRides.getRentDate());
- memberRidesResponse.setRideStartTimeStr(DateUtil.DateToStr(memberRides.getRentDate(),"HH:mm"));
- memberRidesResponse.setRideEndTime(memberRides.getBackDate());
- memberRidesResponse.setRideEndTimeStr(DateUtil.DateToStr(memberRides.getBackDate(),"HH:mm"));
- memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRides.getRentDate(),memberRides.getBackDate()));
- memberRidesResponse.setBikeCode(memberRides.getBikeCode());
- memberRidesResponse.setBasePrice(memberRides.getBasePrice());
- memberRidesResponse.setBaseTime(memberRides.getBaseTime());
- memberRidesResponse.setUnitTime(memberRides.getUnitTime());
- memberRidesResponse.setUnitPrice(memberRides.getUnitPrice());
- memberRidesResponse.setPriceRole(PricingDetailServiceImpl.getRoleNameByParam(
- memberRidesResponse.getBasePrice(),memberRidesResponse.getBaseTime(),
- memberRidesResponse.getUnitPrice()
- ,memberRidesResponse.getUnitTime()));
- homeResponse.setMemberRidesResponse(memberRidesResponse);
}
}
+
+
return homeResponse;
}
@@ -504,18 +519,88 @@
memberRides.get(0).setActualPrice(closeMoney);
}
int refundMoney =( Constants.formatDecimalNum(goodsorder.getMoney()).subtract(closeMoney)).intValue();//璁$畻浠锋牸
- RefundDTO refundDTO = new RefundDTO();
- refundDTO.setOrderId(goodsorder.getId());
- refundDTO.setCanBalance(goodsorder.getMoney());
- refundDTO.setRefundAmount(new BigDecimal(refundMoney));
- refundDTO.setTotalAmount(goodsorder.getMoney());
- refundDTO.setMemberId(goodsorder.getMemberId());
- refundDTO.setReason(Constants.REFUND_TYPE.get(type).getName());
- refundDTO.setCreator(goodsorder.getEditor());
- refundDTO.setType(type);
- wxMiniUtilService.wxRefund(refundDTO);
+ if(refundMoney>0){
+ RefundDTO refundDTO = new RefundDTO();
+ refundDTO.setOrderId(goodsorder.getId());
+ refundDTO.setCanBalance(goodsorder.getMoney());
+ refundDTO.setRefundAmount(new BigDecimal(refundMoney));
+ refundDTO.setTotalAmount(goodsorder.getMoney());
+ refundDTO.setMemberId(goodsorder.getMemberId());
+ refundDTO.setReason(Constants.REFUND_TYPE.get(type).getName());
+ refundDTO.setCreator(goodsorder.getEditor());
+ refundDTO.setType(type);
+ boolean res = wxMiniUtilService.wxRefund(refundDTO);
+ }else{
+ //鏃犻��娆剧粨绠�
+ closeGoodsorderDoneNoRefund(goodsorder,type,new BigDecimal(0),null);
+ }
}
-
+ public void closeGoodsorderDoneNoRefund(Goodsorder goodsorder,int type,BigDecimal refundMoney,String closeId) {
+ log.error("========================================"+JSONObject.toJSONString(goodsorder));
+ if(goodsorder ==null || Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){
+ return;
+ }
+ BigDecimal closeMoney =( Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refundMoney));
+ //杩涜璁㈠崟缁撶畻涓氬姟澶勭悊
+ List<MemberRides> memberRides = getMemberRidesForClose(goodsorder.getId());
+ //榛樿缁撶畻涓烘娂閲戦噾棰�
+ if (!CollectionUtils.isEmpty(memberRides)){
+ //楠戣鎬绘椂闀�
+ for(MemberRides model :memberRides){
+ MemberRides up = new MemberRides();
+ up.setId(model.getId());
+ up.setActualPrice(model.getActualPrice());
+ up.setCloseDate(goodsorder.getEditDate());
+ up.setCloseStatus(Constants.ONE);
+ up.setEditor(goodsorder.getEditor());
+ up.setEditDate(goodsorder.getEditDate());
+ //鏇存柊楠戣璁板綍鐨勮绠楅噾棰濆拰鐘舵��
+ memberRidesJoinMapper.updateById(up);
+ }
+ }
+// BigDecimal closeMoney =( Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refund.getMoney()));
+ //閫�娆句箰琛�
+// int type =Constants.formatIntegerNum(refund.getType());
+ Goodsorder update = new Goodsorder();
+ update.setId(goodsorder.getId());
+ update.setStatus(Constants.GOODSORDER_STATUS.CLOSE.getKey());
+ update.setCloseMoney(closeMoney);
+ update.setCloseStatus(Constants.ONE);
+ update.setCloseDate(new Date());
+ update.setCloseInfo(Constants.REFUND_TYPE.get(type).getInfo());
+ update.setCloseUserId(goodsorder.getEditor());
+ if(Constants.REFUND_TYPE.PLAT_FORCE.getKey() == type){
+ //濡傛灉鏄己鍒剁粨绠�
+ update.setCloseType(Constants.ONE);
+// LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+// update.setEditor(principal.getId());
+ }else if(Constants.REFUND_TYPE.NORMAL.getKey() == type){
+ //濡傛灉鏄嚜琛岀祼绠�
+ update.setCloseType(Constants.ZERO);
+ }else{
+ //濡傛灉鏄钩鍙拌嚜鍔ㄧ粨绠�
+ update.setCloseType(Constants.TWO);
+ }
+ update.setCloseId(closeId);
+ //瀛樺偍 娑堣垂浜ゆ槗娴佹按
+ Transactions transactions = new Transactions();
+ transactions.setId(Constants.getUUID());
+ transactions.setMemberId(goodsorder.getMemberId());
+ transactions.setCreateDate(new Date());
+ transactions.setIsdeleted(Constants.ZERO);
+ transactions.setOrderId(goodsorder.getId());
+ transactions.setMoney(closeMoney);
+ transactions.setType(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getKey());
+ transactions.setDoneDate(new Date());
+ transactions.setTitle(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getName());
+ transactions.setContent(Constants.TRANSACTIONS_TYPE.CONSUMPTION.getInfo());
+ transactions.setBalance(BigDecimal.ZERO);
+ transactions.setObjId(goodsorder.getId());
+ transactions.setObjType(Constants.ONE);
+ transactionsMapper.insert(transactions);
+ //淇敼璁㈠崟淇℃伅
+ goodsorderMapper.updateById(update);
+ }
/**
* 閫�娆炬垚鍔熷洖璋�
*/
@@ -541,9 +626,12 @@
}
refund.setOnlineOrderid(param.getTransactionId());
doRefundTransactions(refund);
-
+ //閫�娆句箰琛�
+ int type =Constants.formatIntegerNum(refund.getType());
Goodsorder goodsorder = goodsorderMapper.selectById(refund.getObjId());
- if(goodsorder ==null || Constants.formatIntegerNum(goodsorder.getCloseStatus()) != Constants.ZERO){
+ closeGoodsorderDoneNoRefund(goodsorder,refund.getType(),refund.getMoney(),refund.getId());
+ /* log.error("========================================"+JSONObject.toJSONString(goodsorder));
+ if(goodsorder ==null || Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){
return;
}
//杩涜璁㈠崟缁撶畻涓氬姟澶勭悊
@@ -563,21 +651,20 @@
memberRidesJoinMapper.updateById(up);
}
}
- BigDecimal closeMoney =( Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refund.getMoney()));
- //閫�娆句箰琛�
- int type =Constants.formatIntegerNum(refund.getType());
+
Goodsorder update = new Goodsorder();
update.setId(goodsorder.getId());
update.setStatus(Constants.GOODSORDER_STATUS.CLOSE.getKey());
update.setCloseMoney(closeMoney);
+ update.setCloseStatus(Constants.ONE);
update.setCloseDate(new Date());
update.setCloseInfo(Constants.REFUND_TYPE.get(refund.getType()).getInfo());
update.setCloseUserId(goodsorder.getEditor());
if(Constants.REFUND_TYPE.PLAT_FORCE.getKey() == type){
//濡傛灉鏄己鍒剁粨绠�
update.setCloseType(Constants.ONE);
- LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
- update.setEditor(principal.getId());
+// LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+// update.setEditor(principal.getId());
}else if(Constants.REFUND_TYPE.NORMAL.getKey() == type){
//濡傛灉鏄嚜琛岀祼绠�
update.setCloseType(Constants.ZERO);
@@ -603,7 +690,7 @@
transactions.setObjType(Constants.ONE);
transactionsMapper.insert(transactions);
//淇敼璁㈠崟淇℃伅
- goodsorderMapper.updateById(update);
+ goodsorderMapper.updateById(update);*/
}
private void doRefundTransactions(Refund refund ) {
@@ -999,10 +1086,43 @@
}
+ @Override
+ public void autoCancelRefunOrder(){
+ Date date = new Date(System.currentTimeMillis()-5*60L*1000L);
+ List<Refund> list = refundMapper.selectList(new QueryWrapper<Refund>().lambda()
+ .eq(Refund::getStatus,Constants.ZERO)
+ .lt(Refund::getCreateDate,date));
+ if(list !=null && list.size()>0){
+ List<String> cancelIds = new ArrayList<>();
+ for(Refund r:list){
+ com.wechat.pay.java.service.refund.model.Refund res =wxMiniUtilService.isSuucessRefund(r.getId());
+ if(res !=null){
+ //濡傛灉閫�娆炬垚鍔�
+ RefundNotification param = new RefundNotification();
+ param.setRefundStatus(Status.SUCCESS);
+ param.setOutRefundNo(r.getId());
+ param.setTransactionId(res.getTransactionId());
+ //鎵ц鍏抽棴璁㈠崟涓氬姟
+ closeGoodsorderDone(param);
+ }else{
+ //鏀惧叆鍙栨秷闆嗗悎涓�
+ cancelIds.add(r.getId());
+ }
+ }
+ if(cancelIds.size()>0){
+ refundMapper.update(null, new UpdateWrapper<Refund>().lambda()
+ .in(Refund::getId,cancelIds)
+ .set(Refund::getStatus,Constants.ONE)
+ .set(Refund::getEditDate,new Date())
+ .set(Refund::getInfo,"瓒呮椂鏈洖璋冿紝鑷姩鍙栨秷")
+ );
+ }
+ }
+ }
@Override
public void autoCloseOrder( ) {
- Goodsorder goodsorder = new Goodsorder();
+ Goodsorder goodsorder = new Goodsorder();
goodsorder.setIsdeleted(Constants.ZERO);
goodsorder.setStatus(Constants.goodsorderStatus.pay);
List<Goodsorder> list = findList(goodsorder);
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index c9419f4..e6471a7 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2,6 +2,7 @@
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -25,6 +26,7 @@
import com.doumee.dao.business.web.response.HomeResponse;
import com.doumee.dao.business.web.response.UserResponse;
import com.doumee.service.business.MemberService;
+import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -46,6 +48,7 @@
* @date 2023/09/27 18:06
*/
@Service
+@Slf4j
public class MemberServiceImpl implements MemberService {
@Autowired
@@ -57,6 +60,7 @@
memberMapper.insert(member);
return member.getId();
}
+
@Override
public String createManageMember(Member member) {
@@ -315,9 +319,11 @@
*/
@Override
public AccountResponse wxLogin(String code) {
+ log.error("================================"+code+ JSONObject.toJSONString( WxMiniConfig.wxMaService.getWxMaConfig()));
try {
//鑾峰彇寰俊鏁忔劅鏁版嵁
WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
+ log.error("================================"+ JSONObject.toJSONString(session));
String openId = session.getOpenid();
String unionId = session.getUnionid();
if (StringUtils.isBlank(openId)) {
@@ -349,6 +355,7 @@
accountResponse.setUserResponse(userResponse);
return accountResponse;
} catch (WxErrorException e) {
+ log.error(e.getMessage());
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
}
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java
index 628e153..0c322f5 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/RefundServiceImpl.java
@@ -4,6 +4,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
+import com.doumee.core.wx.WxMiniUtilService;
import com.doumee.dao.business.RefundMapper;
import com.doumee.dao.business.TransactionsMapper;
import com.doumee.dao.business.join.RefundJoinMapper;
@@ -18,6 +19,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.wechat.pay.java.service.refund.model.RefundNotification;
+import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -44,6 +46,7 @@
private RefundJoinMapper refundJoinMapper;
@Autowired
private TransactionsMapper transactionsMapper;
+
@Override
public String create(Refund refund) {
@@ -123,17 +126,7 @@
}
return PageData.from(refundIPage);
}
- @Override
- public void autoCancelRefunOrder(){
- Date date = new Date(System.currentTimeMillis()-5*60L*1000L);
- refundMapper.update(null, new UpdateWrapper<Refund>().lambda()
- .eq(Refund::getStatus,Constants.ZERO)
- .lt(Refund::getCreateDate,date)
- .set(Refund::getStatus,Constants.ONE)
- .set(Refund::getEditDate,new Date())
- .set(Refund::getInfo,"瓒呮椂鏈洖璋冿紝鑷姩鍙栨秷")
- );
- }
+
@Override
public List<RefundPlatExportVO> findPlatExportPage( Refund pageWrap) {
pageWrap.setTypeList(new ArrayList<>());
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index 980bff6..77fa08a 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -43,6 +43,7 @@
########################寰俊鏀粯鐩稿叧閰嶇疆########################
wx:
pay:
+ #鏈嶅姟鍟�---------start-------
appId: wx48fd8faa35cc8277
mchId: 1661770902
apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT
@@ -53,12 +54,15 @@
keyPath: D://apiclient_cert.p12
privateCertPath: D://apiclient_cert.pem
privateKeyPath: D://apiclient_key.pem
+ #鏈嶅姟鍟�-------------end---
existsSub: 1
appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
+ #瀛愬晢鎴�------------start----
subAppId: wxcd2b89fd2ff065f8
- subAppSecret: 49c4a52f9ad87ba98307972664fe33b3
+ subAppSecret: 3336812504c830b1c3c5243f9ece407a
subMchId: 1661772003
subMchKey: EVM8E15TKXE0OEMJFC0V6UFVIOZ5CSQS
+ #瀛愬晢鎴�------------end----
# mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
typeId: gybike
########################mqtt鐩稿叧閰嶇疆########################
diff --git a/server/services/src/main/resources/application-pro.yml b/server/services/src/main/resources/application-pro.yml
index c92867d..5132499 100644
--- a/server/services/src/main/resources/application-pro.yml
+++ b/server/services/src/main/resources/application-pro.yml
@@ -1,6 +1,3 @@
-# WEB鏈嶅姟鍣ㄩ厤缃�
-server:
- port: 10012
spring:
# 鏁版嵁婧愰厤缃�
@@ -42,16 +39,32 @@
# 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
redirect-uri: /
-
########################寰俊鏀粯鐩稿叧閰嶇疆########################
wx:
pay:
- appId: wxcd2b89fd2ff065f8
+ #鏈嶅姟鍟�---------start-------
+ appId: wx48fd8faa35cc8277
+ mchId: 1661770902
+ apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT
+ serialNumer: 368B835A194384FD583B83B77977B84127D2F655
+ notifyUrl: https://bikes.yxbhlt.cn/bike_h5_api/wxPayNotify
+ refundNotifyUrl: https://bikes.yxbhlt.cn/bike_h5_api/wxRefundNotify
+ # notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
+ keyPath: /usr/local/parks/cert/apiclient_cert.p12
+ privateCertPath: /usr/local/parks/cert/apiclient_cert.pem
+ privateKeyPath: /usr/local/parks/cert/apiclient_key.pem
+ #鏈嶅姟鍟�-------------end---
+ existsSub: 1
appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
- mchId: 1229817002
- mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
- notifyUrl: https://bikes.yxbhlt.cn/bike_h5_api/api/wxPayNotify
- keyPath: /usr/local/apiclient_cert.p12
+ #瀛愬晢鎴�------------start----
+ subAppId: wxf493d72d7e5ffe76
+ subAppSecret: a347bce54fd2f77a5272cc32b51264b0
+ subMchId: 1662894737
+ subMchKey: twTtOZJ28eqEvyMkv0WTJmhpgqaM9mmT
+ #瀛愬晢鎴�------------end----
+ # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
+ typeId: gybike
+
########################mqtt鐩稿叧閰嶇疆########################
mqtt:
host: tcp://39.100.125.239:1883
diff --git a/server/services/src/main/resources/application-test.yml b/server/services/src/main/resources/application-test.yml
index cf74de8..6aeafde 100644
--- a/server/services/src/main/resources/application-test.yml
+++ b/server/services/src/main/resources/application-test.yml
@@ -49,13 +49,14 @@
serialNumer: 368B835A194384FD583B83B77977B84127D2F655
notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
refundNotifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxRefundNotify
+# refundNotifyUrl: http://xiaopiqiu2.natapp1.cc/api/wxRefundNotify
keyPath: /usr/local/apiclient_cert.p12
privateCertPath: /usr/local/apiclient_cert.pem
privateKeyPath: /usr/local/apiclient_key.pem
existsSub: 1
appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
subAppId: wxcd2b89fd2ff065f8
- subAppSecret: 49c4a52f9ad87ba98307972664fe33b3
+ subAppSecret: 3336812504c830b1c3c5243f9ece407a
subMchId: 1661772003
subMchKey: EVM8E15TKXE0OEMJFC0V6UFVIOZ5CSQS
typeId: gybike
diff --git a/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java b/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
index 3358405..1c3de12 100644
--- a/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
+++ b/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
@@ -13,6 +13,8 @@
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
import com.wechat.pay.java.service.refund.model.RefundNotification;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.mgt.DefaultSecurityManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
@@ -109,7 +111,10 @@
}
@PostMapping("/api/wxRefundNotify")
public ApiResponse wxRefundNotify(HttpServletRequest request) {
+ log.error("寰俊閫�娆惧洖璋冪粨鏋滃紑濮�===========" );
try {
+ DefaultSecurityManager securityManager = new DefaultSecurityManager();
+ SecurityUtils.setSecurityManager(securityManager);
ServletInputStream inputStream = request.getInputStream();
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index ea1f0e8..8d85f9d 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -9,7 +9,7 @@
# application:
# name: parkbike
profiles:
- active: test
+ active: pro
# JSON杩斿洖閰嶇疆
jackson:
# 榛樿鏃跺尯
--
Gitblit v1.9.3