From 7de15911c90c5861d6e26e29550b6c60b09952c7 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 12 十月 2023 18:30:20 +0800
Subject: [PATCH] 修复
---
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java | 62 ++++++++++++++++++++++++++++++-
server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java | 10 +++--
server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java | 2
3 files changed, 67 insertions(+), 7 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java b/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
index 0bc10bf..8d508cd 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java
@@ -136,7 +136,7 @@
private String pricingDetailId;
@ApiModelProperty(value = "鏄惁鑺傚亣鏃� 0涓嶆槸 1鏄�")
- private String isHoliday;
+ private Integer isHoliday;
@ApiModelProperty(value = "杩樿溅绫诲瀷 0姝e父杩樿溅 1寮哄埗杩樿溅")
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java b/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java
index 5ad8dbe..e87fb89 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java
@@ -9,6 +9,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.math.BigDecimal;
import java.util.Date;
/**
@@ -66,7 +68,7 @@
@ApiModelProperty(value = "宸ヤ綔鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級", example = "1")
@ExcelColumn(name="宸ヤ綔鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級")
- private Integer basePrice;
+ private BigDecimal basePrice;
@ApiModelProperty(value = "宸ヤ綔鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�", example = "1")
@ExcelColumn(name="宸ヤ綔鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�")
@@ -74,7 +76,7 @@
@ApiModelProperty(value = "宸ヤ綔鏃ヨ秴鍑轰环鏍硷紙鍒嗭級", example = "1")
@ExcelColumn(name="宸ヤ綔鏃ヨ秴鍑轰环鏍硷紙鍒嗭級")
- private Integer unitPrice;
+ private BigDecimal unitPrice;
@ApiModelProperty(value = "鑺傚亣鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�", example = "1")
@ExcelColumn(name="鑺傚亣鏃ヨ捣姝ユ椂闂达紙鍒嗛挓锛�")
@@ -82,7 +84,7 @@
@ApiModelProperty(value = "鑺傚亣鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級", example = "1")
@ExcelColumn(name="鑺傚亣鏃ヨ捣姝ヤ环鏍硷紙鍒嗭級")
- private Integer holidayBasePrice;
+ private BigDecimal holidayBasePrice;
@ApiModelProperty(value = "鑺傚亣鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�", example = "1")
@ExcelColumn(name="鑺傚亣鏃ヨ秴鍑烘椂闂达紙鍒嗛挓锛�")
@@ -90,7 +92,7 @@
@ApiModelProperty(value = "鑺傚亣鏃ヨ秴鍑烘椂闂村崟浠凤紙鍒嗭級", example = "1")
@ExcelColumn(name="鑺傚亣鏃ヨ秴鍑烘椂闂村崟浠凤紙鍒嗭級")
- private Integer holidayUnitPrice;
+ private BigDecimal holidayUnitPrice;
@ApiModelProperty(value = "澶囨敞")
@ExcelColumn(name="澶囨敞")
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
index df2d026..0ec50d7 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -381,7 +381,6 @@
if (memberRidesMapper.selectCount(new QueryWrapper<MemberRides>().eq("member_id", memberId).in("status", 0, 1)) > Constants.ZERO) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀛樺湪楠戣涓溅杈嗭紝鏃犳硶鎵爜");
}
- ;
Locks locks = locksMapper.selectOne(new QueryWrapper<Locks>().eq("code", code).eq("isdeleted", Constants.ZERO).last("limit 1"));
if (Objects.isNull(locks)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鎵爜鏃犳晥锛屾湭鏌ヨ鍒伴攣澶翠俊鎭�");
@@ -393,11 +392,13 @@
if (StringUtils.isBlank(locks.getBikeCode())) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鎵爜閿佸ご鏃犺溅杈嗕俊鎭紝鏃犳硶杩涜寮�閿�");
}
+ MemberRides memberRides = new MemberRides();
+ //鏍规嵁杞﹀瀷鏌ヨ璁′环鏂规
+ isValidePricingType(locks,memberRides) ;
MqttLog flag = deviceService.openLock(locks);
MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse();
if (flag.getResult() == 0) {
//瀛樺偍楠戣璁板綍
- MemberRides memberRides = new MemberRides();
memberRides.setId(Constants.getUUID());
memberRides.setIsdeleted(Constants.ZERO);
memberRides.setMemberId(memberId);
@@ -432,6 +433,63 @@
return memberRidesDetailResponse;
}
+ private boolean isValidePricingType(Locks locks,MemberRides memberRides ) {
+ Bikes bike= new Bikes();
+ bike.setLockId(locks.getId());
+ bike.setSiteId(locks.getSiteId());
+ //鏌ヨ杞﹁締淇℃伅
+ bike = bikesMapper.selectOne(new QueryWrapper<>(bike).last("limit 1"));
+ if(bike == null && StringUtils.isBlank(bike.getParamId())){
+ //濡傛灉杞﹁締绫诲瀷鏄┖
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 璇ヨ溅鍨嬫殏鏃朵笉鑳藉�熻溅鎿嶄綔鍝︼紝璇锋洿鎹㈠叾浠栬溅鍨嬮噸璇曪紒");
+ }
+ Date date =new Date();
+
+ QueryWrapper<PricingParam> param = new QueryWrapper<>();
+ param.lambda().eq(PricingParam::getStatus,Constants.ZERO);
+ param.lambda().eq(PricingParam::getIsdeleted,Constants.ZERO);
+ param.lambda().le(PricingParam::getStartDate,date);
+ param.lambda().ge(PricingParam::getEndDate,date);
+ param.lambda().last(" limit 1" ) ;
+ param.lambda().orderByAsc(PricingParam::getSortnum);
+ //鏌ヨ浼樺厛绾ф渶楂橈紙鎺掑簭鐮佹渶灏忕殑锛夊彲鐢ㄩ厤浠锋柟妗�
+ PricingParam pp = pricingParamMapper.selectOne(param);
+ if(pp == null){
+ //濡傛灉杞﹁締鏈缃厤浠锋柟妗堬紝鎻愮ず寮�閿佸け璐ワ紒
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 璇ヨ溅鍨嬫殏鏃朵笉鑳藉�熻溅鎿嶄綔鍝︼紝璇锋洿鎹㈠叾浠栬溅鍨嬮噸璇曞摝锛�");
+ }
+ QueryWrapper<PricingDetail> detail = new QueryWrapper<>();
+ detail.lambda().eq(PricingDetail::getPricePramId,bike.getParamId());
+ detail.lambda().eq(PricingDetail::getIsdeleted,Constants.ZERO);
+ detail.lambda().last(" limit 1" ) ;
+ //鏌ヨ浼樺厛绾ф渶楂橈紙鎺掑簭鐮佹渶灏忕殑锛夊彲鐢ㄩ厤浠锋柟妗�
+ PricingDetail pricingDetail = pricingDetailMapper.selectOne(detail);
+ if(pricingDetail == null){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), " 璇ヨ溅鍨嬫殏鏃朵笉鑳藉�熻溅鎿嶄綔鍝︼紝璇锋洿鎹㈠叾浠栬溅鍨嬮噸璇曞摝~");
+ }
+ String nowDate = DateUtil.getDateLong(date);
+ Holidays holidays = new Holidays();
+ holidays.setHoliday(nowDate);
+ holidays.setIsdeleted(Constants.ZERO);
+ //妫�鏌ユ槸鍚﹁妭鍋囨棩
+ if(holidaysMapper.selectCount(new QueryWrapper<>(holidays)) >0){
+ //濡傛灉鏄妭鍋囨棩
+ memberRides.setBasePrice(pricingDetail.getHolidayBasePrice());
+ memberRides.setBaseTime(pricingDetail.getHolidayBaseTime());
+ memberRides.setUnitPrice(pricingDetail.getHolidayUnitPrice());
+ memberRides.setUnitTime(pricingDetail.getHolidayUnitTime());
+ memberRides.setIsHoliday(Constants.ONE);
+ }else{
+ //濡傛灉鏄伐浣滄棩
+ memberRides.setBasePrice(pricingDetail.getBasePrice());
+ memberRides.setBaseTime(pricingDetail.getBaseTime());
+ memberRides.setUnitPrice(pricingDetail.getUnitPrice());
+ memberRides.setUnitTime(pricingDetail.getUnitTime());
+ memberRides.setIsHoliday(Constants.ZERO);
+ }
+ return true;
+ }
+
@Override
public MemberRidesDetailResponse refreshLock(String id){
MemberRides memberRides = memberRidesMapper.selectById(id);
--
Gitblit v1.9.3