From 69283b5a4559509187516355602e32e4bdac9d5d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 28 二月 2025 11:54:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
---
server/web/src/main/java/com/doumee/jtt808/web/service/Jtt808Service.java | 70 ++++++++++++++++++++++++----------
1 files changed, 49 insertions(+), 21 deletions(-)
diff --git a/server/web/src/main/java/com/doumee/jtt808/web/service/Jtt808Service.java b/server/web/src/main/java/com/doumee/jtt808/web/service/Jtt808Service.java
index ecf63d4..c77a7a0 100644
--- a/server/web/src/main/java/com/doumee/jtt808/web/service/Jtt808Service.java
+++ b/server/web/src/main/java/com/doumee/jtt808/web/service/Jtt808Service.java
@@ -80,7 +80,6 @@
@Autowired
private MemberRidesJoinMapper memberRidesJoinMapper;
-
@Autowired
private PricingParamMapper pricingParamMapper;
@@ -102,6 +101,10 @@
return data;
}
+ /**
+ * 鎵嬪姩杩樿溅
+ * @param param
+ */
@Transactional(rollbackFor = {BusinessException.class})
public void backElecBike(BackElecBikeRequest param) {
Member member = memberMapper.selectById(param.getMemberId());
@@ -113,6 +116,22 @@
gparam.setStatus(Constants.goodsorderStatus.pay);
gparam.setType(Constants.ZERO);
Goodsorder goodsorder = goodsorderService.findOne(gparam);
+ this.backBike(goodsorder);
+ }
+
+ /**
+ * 鑷姩杩樿溅
+ * @param id
+ */
+ @Transactional
+ public void forceBack(String id){
+ Goodsorder goodsorder = goodsorderService.findById(id);
+ this.backBike(goodsorder);
+ }
+
+
+ @Transactional(rollbackFor = {BusinessException.class})
+ public void backBike(Goodsorder goodsorder){
if(Objects.isNull(goodsorder)){
throw new BusinessException(ResponseStatus.NO_UNCLOSEED_ORDER.getCode(),"鏃犻獞琛岃鍗曡褰�");
}
@@ -127,15 +146,15 @@
if(Constants.equalsInteger(rides.getStatus(),Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey())
&&Constants.equalsInteger(rides.getType(),Constants.ONE)){
//濡傛灉鏄數杞﹀苟涓旀槸楠戣涓� 杩涜鍏抽攣澶勭悊
-// Bikes bike = getElecBikeByCode(rides.getBikeCode());
-// //鏌ヨ鍋滆溅绔欑偣淇℃伅
-// if(bike.getSiteId() ==null){
-// throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝璇锋寜瑕佹眰鍓嶅線鍋滆溅鐐瑰仠杞︼紒");
-// }
-// lockBikes(bike.getDeviceSn(),Constants.ZERO);//鍙戣捣鍏抽攣鎸囦护璇锋眰
+ Bikes bike = getElecBikeByCode(rides.getBikeCode());
+ //鏌ヨ鍋滆溅绔欑偣淇℃伅
+ if(bike.getSiteId() ==null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝璇锋寜瑕佹眰鍓嶅線鍋滆溅鐐瑰仠杞︼紒");
+ }
+ lockBikes(bike.getDeviceSn(),Constants.ZERO);//鍙戣捣鍏抽攣鎸囦护璇锋眰
backIds.add(rides.getId());
rides.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());//宸茶繕杞�
-// rides.setBackSiteId(bike.getSiteId());//杩樿溅绔欑偣
+ rides.setBackSiteId(bike.getSiteId());//杩樿溅绔欑偣
rides.setBackDate(new Date());
Integer freeRentTime = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME, Constants.FREE_RENT_TIME).getCode());
@@ -194,7 +213,7 @@
APIResult<T0201_0500> data = result.block();
if(!data.isSuccess()){
//濡傛灉寮�閿佸け璐ワ紝鍒欒繑鍥炲紓甯�
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝"+(type ==0?"杞﹁締寮�閿�":"杞﹁締鍏抽攣")+"澶辫触锛岃绋嶅悗閲嶈瘯锛屾垨鑰呰仈绯诲洯鍖虹鐞嗕汉鍛橈紒");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝"+(type ==0?"杞﹁締鍏抽攣":"杞﹁締寮�閿�")+"澶辫触锛岃绋嶅悗閲嶈瘯锛屾垨鑰呰仈绯诲洯鍖虹鐞嗕汉鍛橈紒");
}
}
@@ -243,6 +262,7 @@
Goodsorder gparam = new Goodsorder();
gparam.setMemberId(param.getMemberId());
gparam.setStatus(Constants.goodsorderStatus.pay);
+ gparam.setType(Constants.ZERO);
Goodsorder goodsorder = goodsorderService.findOne(gparam);
if(Objects.isNull(goodsorder)){
throw new BusinessException(ResponseStatus.NO_UNCLOSEED_ORDER.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鎮ㄥ綋鍓嶆湁楠戣涓鍗曡褰�");
@@ -256,9 +276,9 @@
if(memberRides ==null || memberRides.getBikeCode() == null){
throw new BusinessException(ResponseStatus.NO_UNCLOSEED_ORDER.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鎮ㄥ綋鍓嶆湁楠戣涓褰�");
}
-// Bikes bike = getElecBikeByCode(memberRides.getBikeCode());
-// //鏌ヨ鍋滆溅浣嶇疆鏄惁绗﹀悎鍋滆溅浣嶇疆瑙勮寖
-// checkPausePostionBiz(bike);
+ Bikes bike = getElecBikeByCode(memberRides.getBikeCode());
+ //鏌ヨ鍋滆溅浣嶇疆鏄惁绗﹀悎鍋滆溅浣嶇疆瑙勮寖
+ checkPausePostionBiz(bike);
memberRides.setPauseDate(new Date());
memberRides.setEditDate(memberRides.getBackDate());
memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_PAUSING.getKey());
@@ -373,7 +393,7 @@
//濡傛灉杞﹁締绫诲瀷鏄┖
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 璇ヨ溅鍨嬫殏鏃朵笉鑳藉�熻溅鎿嶄綔鍝︼紝璇锋洿鎹㈠叾浠栬溅鍨嬮噸璇曪紒");
}
- cacheOpenLock.put(bike.getCode(), 1);
+ cacheOpenLock.put(openElecBikeRequest.getCode(), 1);
try {
//鍒ゆ柇褰撳墠鏄惁宸叉敮浠樻娂閲�
Goodsorder goodsorder = goodsorderService.findOneByWrapper(new QueryWrapper<Goodsorder>()
@@ -404,7 +424,7 @@
//鏍规嵁杞﹀瀷鏌ヨ璁′环鏂规
isValidePricingType(bike,memberRides) ;
MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse();
-// this.lockBikes(bike.getDeviceSn(),1);
+ this.lockBikes(bike.getDeviceSn(),1);
//瀛樺偍楠戣璁板綍
memberRides.setId(Constants.getUUID());
memberRides.setIsdeleted(Constants.ZERO);
@@ -420,10 +440,12 @@
memberRidesJoinMapper.insert(memberRides);
BeanUtils.copyProperties(memberRides, memberRidesDetailResponse);
return memberRidesDetailResponse;
- }catch (Exception e){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寮�閿佸け璐ワ紝璇疯仈绯荤鐞嗗憳");
+ }catch (BusinessException biz){
+ throw biz;
+ }catch (Exception biz){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR);
}finally {
- cacheOpenLock.remove(bike.getCode());
+ cacheOpenLock.remove(openElecBikeRequest.getCode());
}
}
@@ -437,6 +459,7 @@
Goodsorder gparam = new Goodsorder();
gparam.setMemberId(param.getMemberId());
gparam.setStatus(Constants.goodsorderStatus.pay);
+ gparam.setType(Constants.ZERO);
Goodsorder goodsorder = goodsorderService.findOne(gparam);
if(Objects.isNull(goodsorder)){
throw new BusinessException(ResponseStatus.NO_UNCLOSEED_ORDER.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鎮ㄥ綋鍓嶆湁楠戣涓鍗曡褰�");
@@ -536,9 +559,10 @@
.eq(MemberRides::getIsdeleted,Constants.ZERO)
.eq(MemberRides::getType,Constants.ONE)
.eq(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.RIDES_PAUSING.getKey())
- .apply(" NOW() >= t.create_date + INTERVAL '2 hours' ")
+ .apply(" NOW() >= (t.create_date + INTERVAL '"+systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PAUSE_AUTO_CLOSE_TIME).getCode()+" min') ")
);
+ ;
for (MemberRides timeOutRides:memberRidesList) {
Goodsorder goodsorder = goodsorderService.findById(timeOutRides.getOrdreId());
//鏌ヨ楠戣璁板綍
@@ -557,6 +581,10 @@
rides.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());//宸茶繕杞�
rides.setBackSiteId(bike.getSiteId());//杩樿溅绔欑偣
rides.setBackDate(new Date());
+ Integer freeRentTime = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME, Constants.FREE_RENT_TIME).getCode());
+ Integer rideTime = DateUtil.betweenMin(rides.getRentDate(), rides.getBackDate());
+ //璁$畻楠戣璁¤垂鏃堕暱
+ rides.setDuration( rideTime > freeRentTime ? rideTime : 0 );
rides.setEditDate(rides.getBackDate());
memberRidesJoinMapper.updateById(rides);//鏇存柊楠戣鐘舵�佷负宸茶繕杞�
}
@@ -570,10 +598,10 @@
//鍙戦�佸皬绋嬪簭閫氱煡
Member member = memberMapper.selectById(goodsorder.getMemberId());
if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
- sendWxMessage.bookingsCancel(member.getOpenid(),goodsorder.getId(), WxMiniConfig.wxMaService.getAccessToken(),timeOutRides.getBikeCode(),goodsorder.getPayDate(),goodsorder.getEndDate());
+ sendWxMessage.bookingsCancel(member.getOpenid(),goodsorder.getId(),
+ WxMiniConfig.wxMaService.getAccessToken(),
+ timeOutRides.getBikeCode(),goodsorder.getPayDate(),goodsorder.getEditDate());
}
-
-
}
}
--
Gitblit v1.9.3