From 70f25657a7f1c5b1bfb1189759b9fa6f33b6922e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 09 十月 2023 13:35:48 +0800
Subject: [PATCH] 集成mqtt
---
server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java | 60 ++
server/services/src/main/java/com/doumee/dao/business/web/response/PayOrderDTO.java | 9
server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java | 103 ++++
server/web/src/main/java/com/doumee/api/web/GoodsOrderApi.java | 37 +
server/services/src/main/java/com/doumee/service/business/GoodsorderService.java | 7
server/web/src/main/java/com/doumee/api/web/AccountApi.java | 50 +
server/services/src/main/java/com/doumee/dao/business/web/response/PricingRuleDTO.java | 36 +
server/services/src/main/java/com/doumee/dao/business/web/request/RefundDTO.java | 40 +
server/services/src/main/java/com/doumee/service/business/PricingRuleService.java | 26 +
server/services/src/main/java/com/doumee/core/utils/DateUtil.java | 7
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java | 110 ++--
server/services/src/main/java/com/doumee/dao/business/web/request/WxPhoneRequest.java | 5
server/web/src/main/java/com/doumee/api/web/HomeApi.java | 38 +
server/services/src/main/java/com/doumee/core/constants/Constants.java | 484 +++++++++++++---------
server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java | 3
server/services/src/main/java/com/doumee/dao/business/model/MemberRides.java | 28
server/services/src/main/java/com/doumee/dao/business/model/Refund.java | 2
server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java | 4
server/services/src/main/java/com/doumee/service/business/MemberService.java | 11
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 12
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 157 ++++++
server/services/src/main/java/com/doumee/dao/business/web/response/RidesDetailResponse.java | 5
server/services/src/main/java/com/doumee/dao/business/model/Transactions.java | 2
23 files changed, 903 insertions(+), 333 deletions(-)
diff --git a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
index d0ffd07..1fa11a5 100644
--- a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
@@ -1,5 +1,6 @@
package com.doumee.api.business;
+import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
@@ -25,7 +26,7 @@
@Api(tags = "璁㈠崟淇℃伅琛�")
@RestController
@RequestMapping("/business/goodsorder")
-public class GoodsorderController {
+public class GoodsorderController extends BaseController {
@Autowired
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 1173448..70c4d79 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -18,6 +18,7 @@
public class Constants {
+<<<<<<< HEAD
public static final String DEFAULT_PWD = "DEFAULT_PWD";
public static final String TRUE = "t";
public static final String FALSE = "f";
@@ -55,224 +56,323 @@
int waitPay =0;
int pay =1;
}
-
+ public interface transactionsType{
+ int deposit =0;
+ int consumption =1;
+ int refund =2;
+ int platformRefund = 3;
+ }
public static String getUUID(){
return UUID.randomUUID().toString().replace("-","");
}
- public interface RedisKeys {
- public static final String submission_period_key = "sp_";
- }
-
-
- public static final String ACCESS_ID="ACCESS_ID";
-
- public static final String BUCKETNAME = "BUCKETNAME";
-
- public static final String OSS = "OSS";
-
- public static final String ACCESS_KEY = "ACCESS_KEY";
-
- public static final String SCRATCH_REDIRECT = "SCRATCH_REDIRECT";
-
- public static final String ENDPOINT = "ENDPOINT";
-
- public static final String TESTCASE_UPLOAD_PATH = "TESTCASE_UPLOAD_PATH";
-
- public static final String RESOURCE_PATH = "RESOURCE_PATH";
- public static final String UPLOAD_FILE = "UPLOAD_FILE";
- public static final String AVATAR_FILE = "AVATAR_FILE";
- //鐢ㄦ埛鍗忚
- public static final String AGREEMENT = "AGREEMENT";
- //璁′环瑙勫垯
- public static final String PRICING_RULE = "PRICING_RULE";
- //灏忕▼搴忎富棰樺悕绉�
- public static final String PROJECT_NAME = "PROJECT_NAME";
- //灏忕▼搴忔湇鍔$鐢佃瘽
- public static final String SERVER_PHONE = "SERVER_PHONE";
- //灏忕▼搴忕璧佹祦绋嬭棰�
- public static final String RENT_TIPS_VIDEO = "RENT_TIPS_VIDEO";
- //绉熻祦椤荤煡
- public static final String LEASE_NOTICE = "LEASE_NOTICE";
- //绉熻祦椤荤煡鍥剧墖
- public static final String LEASE_NOTICE_URL = "LEASE_NOTICE_URL";
- //鎶奸噾
- public static final String RENT_DEPOSIT = "RENT_DEPOSIT";
- //娓╅Θ鎻愮ず
- public static final String TIPS = "TIPS";
-
-
-
-
-
-
- public static final String FILES_DIR = "FILES_DIR";
- public static final String SCRATCH_REDIRECT_URL = "SCRATCH_REDIRECT_URL";
- public static final Integer ZERO = 0 ;
- public static final Integer ONE = 1 ;
- public static final Integer TWO = 2 ;
- public static final Integer THREE = 3 ;
-
- public static int formatIntegerNum(Integer num){
- if(num == null){
- return 0;
- }
- return num;
- }
-
- public interface UserActionsType{
- String cancelPrePay="CANCEL_PRE_PAY";
-
- //璁㈠崟缁撶畻璁㈠崟
- String close="CLOSE";
- String forceRefund="FORCE_REFUND";
- String login="LOGIN";
- String pay="PAY";
- String preForceRefund="PRE_FORCE_REFUND";
- String prePay="PRE_PAY";
- String preRefund="PRE_REFUND";
- String refund="REFUND";
- String register="REGISTER";
- String rent="RENT";
- }
- public static BigDecimal formatDecimalNum(BigDecimal num){
- if(num == null){
- return new BigDecimal(0);
- }
- return num;
- }
- public static int compareBigdecimal(BigDecimal num,BigDecimal num2){
- if(num == null){
- num =new BigDecimal(0);
- }
- if(num2 == null){
- num2 =new BigDecimal(0);
- }
- if (num.compareTo(num2) == 1) {
- return 1;
- } else if (num.compareTo(num2)== -1) {
- return -1;
- }
- return 0;
- }
-
- public static long formatLongNum(Long num){
- if(num == null){
- return 0;
- }
- return num;
- }
- public static String formatImgPath(String avatar, String imgPath) {
- if(StringUtils.isBlank(avatar)){
- return null;
- }
- return imgPath+avatar;
- }
- public static String getIpAddr(HttpServletRequest request) {
- String ipAddress = request.getHeader("x-forwarded-for");
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("Proxy-Client-IP");
+ public interface RedisKeys {
+ public static final String submission_period_key = "sp_";
}
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("WL-Proxy-Client-IP");
+
+
+ public static final String ACCESS_ID = "ACCESS_ID";
+
+ public static final String BUCKETNAME = "BUCKETNAME";
+
+ public static final String OSS = "OSS";
+
+ public static final String ACCESS_KEY = "ACCESS_KEY";
+
+
+ public static final String ENDPOINT = "ENDPOINT";
+
+
+ public static final String RESOURCE_PATH = "RESOURCE_PATH";
+ public static final String AVATAR_FILE = "AVATAR_FILE";
+ //鐢ㄦ埛鍗忚
+ public static final String AGREEMENT = "AGREEMENT";
+ //璁′环瑙勫垯
+ public static final String PRICING_RULE = "PRICING_RULE";
+ //灏忕▼搴忎富棰樺悕绉�
+ public static final String PROJECT_NAME = "PROJECT_NAME";
+ //灏忕▼搴忔湇鍔$鐢佃瘽
+ public static final String SERVER_PHONE = "SERVER_PHONE";
+ //灏忕▼搴忕璧佹祦绋嬭棰�
+ public static final String RENT_TIPS_VIDEO = "RENT_TIPS_VIDEO";
+ //绉熻祦椤荤煡
+ public static final String LEASE_NOTICE = "LEASE_NOTICE";
+ //绉熻祦椤荤煡鍥剧墖
+ public static final String LEASE_NOTICE_URL = "LEASE_NOTICE_URL";
+ //鎶奸噾
+ public static final String RENT_DEPOSIT = "RENT_DEPOSIT";
+ //娓╅Θ鎻愮ず
+ public static final String TIPS = "TIPS";
+
+
+ public static final String FILES_DIR = "FILES_DIR";
+ public static final String SCRATCH_REDIRECT_URL = "SCRATCH_REDIRECT_URL";
+ public static final Integer ZERO = 0;
+ public static final Integer ONE = 1;
+ public static final Integer TWO = 2;
+ public static final Integer THREE = 3;
+
+ public static int formatIntegerNum(Integer num) {
+ if (num == null) {
+ return 0;
+ }
+ return num;
}
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getRemoteAddr();
- String localIp = "127.0.0.1";
- String localIpv6 = "0:0:0:0:0:0:0:1";
- if (ipAddress.equals(localIp) || ipAddress.equals(localIpv6)) {
- // 鏍规嵁缃戝崱鍙栨湰鏈洪厤缃殑IP
- InetAddress inet = null;
- try {
- inet = InetAddress.getLocalHost();
- ipAddress = inet.getHostAddress();
- } catch (UnknownHostException e) {
- e.printStackTrace();
+
+ public interface UserActionsType {
+ String cancelPrePay = "CANCEL_PRE_PAY";
+
+ //璁㈠崟缁撶畻璁㈠崟
+ String close = "CLOSE";
+ String forceRefund = "FORCE_REFUND";
+ String login = "LOGIN";
+ String pay = "PAY";
+ String preForceRefund = "PRE_FORCE_REFUND";
+ String prePay = "PRE_PAY";
+ String preRefund = "PRE_REFUND";
+ String refund = "REFUND";
+ String register = "REGISTER";
+ String rent = "RENT";
+ }
+
+ public enum GOODSORDER_STATUS{
+ // 0寰呮敮浠� 1宸叉敮浠� 2宸插彇娑� 3鏀粯澶辫触 4宸茬粨绠�
+ UN_PAY("寰呮敮浠�", 0,"寰呮敮浠�"),
+
+ HAVING_PAY("宸叉敮浠�", 1,"宸叉敮浠�"),
+
+ CANCEL("宸插彇娑�", 2,"宸插彇娑�"),
+
+ PAY_FAILURE("鏀粯澶辫触", 3,"鏀粯澶辫触"),
+
+ CLOSE("宸茬粨绠�", 4,"宸茬粨绠�"),
+ ;
+ String name;
+
+ Integer key;
+
+ String info;
+
+ GOODSORDER_STATUS(String name, Integer key, String info) {
+ this.name = name;
+ this.key = key;
+ this.info = info;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer getKey() {
+ return key;
+ }
+
+ public void setKey(Integer key) {
+ this.key = key;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+ }
+
+ public enum MEMBER_RIDES_STATUS{
+// 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�
+ LOCKING("璇锋眰寮�閿佷腑", 0,"璇锋眰寮�閿佷腑"),
+
+ RIDES_RUNNING("楠戣涓�", 1,"楠戣涓�"),
+
+ BACK_CYCLING("宸茶繕杞�", 2,"宸茶繕杞�"),
+
+ LOCKING_DEFEAT("寮�閿佸け璐�", 3,"寮�閿佸け璐�")
+ ;
+ String name;
+
+ Integer key;
+
+ String info;
+
+ MEMBER_RIDES_STATUS(String name, Integer key, String info) {
+ this.name = name;
+ this.key = key;
+ this.info = info;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer getKey() {
+ return key;
+ }
+
+ public void setKey(Integer key) {
+ this.key = key;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+ }
+
+ public static BigDecimal formatDecimalNum(BigDecimal num) {
+ if (num == null) {
+ return new BigDecimal(0);
+ }
+ return num;
+ }
+
+ public static int compareBigdecimal(BigDecimal num, BigDecimal num2) {
+ if (num == null) {
+ num = new BigDecimal(0);
+ }
+ if (num2 == null) {
+ num2 = new BigDecimal(0);
+ }
+ if (num.compareTo(num2) == 1) {
+ return 1;
+ } else if (num.compareTo(num2) == -1) {
+ return -1;
+ }
+ return 0;
+ }
+
+ public static long formatLongNum(Long num) {
+ if (num == null) {
+ return 0;
+ }
+ return num;
+ }
+
+ public static String formatImgPath(String avatar, String imgPath) {
+ if (StringUtils.isBlank(avatar)) {
+ return null;
+ }
+ return imgPath + avatar;
+ }
+
+ public static String getIpAddr(HttpServletRequest request) {
+ String ipAddress = request.getHeader("x-forwarded-for");
+ if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("Proxy-Client-IP");
+ }
+ if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("WL-Proxy-Client-IP");
+ }
+ if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getRemoteAddr();
+ String localIp = "127.0.0.1";
+ String localIpv6 = "0:0:0:0:0:0:0:1";
+ if (ipAddress.equals(localIp) || ipAddress.equals(localIpv6)) {
+ // 鏍规嵁缃戝崱鍙栨湰鏈洪厤缃殑IP
+ InetAddress inet = null;
+ try {
+ inet = InetAddress.getLocalHost();
+ ipAddress = inet.getHostAddress();
+ } catch (UnknownHostException e) {
+ e.printStackTrace();
+ }
}
}
- }
- // 瀵逛簬閫氳繃澶氫釜浠g悊鐨勬儏鍐碉紝绗竴涓狪P涓哄鎴风鐪熷疄IP,澶氫釜IP鎸夌収','鍒嗗壊
- String ipSeparate = ",";
- int ipLength = 15;
- if (ipAddress != null && ipAddress.length() > ipLength) {
- if (ipAddress.indexOf(ipSeparate) > 0) {
- ipAddress = ipAddress.substring(0, ipAddress.indexOf(ipSeparate));
+ // 瀵逛簬閫氳繃澶氫釜浠g悊鐨勬儏鍐碉紝绗竴涓狪P涓哄鎴风鐪熷疄IP,澶氫釜IP鎸夌収','鍒嗗壊
+ String ipSeparate = ",";
+ int ipLength = 15;
+ if (ipAddress != null && ipAddress.length() > ipLength) {
+ if (ipAddress.indexOf(ipSeparate) > 0) {
+ ipAddress = ipAddress.substring(0, ipAddress.indexOf(ipSeparate));
+ }
}
+ return ipAddress;
}
- return ipAddress;
- }
- public static String getSHA256Str(String str) {
- MessageDigest messageDigest;
- String encdeStr = "";
- try {
- messageDigest = MessageDigest.getInstance("SHA-256");
- byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
- encdeStr = Hex.encodeHexString(hash);
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- return encdeStr;
- }
- public static String trimEndSpaceStr(String outPut){
- String newOutPut = "";
- if(StringUtils.isNotBlank(outPut)){
- String[] ostrs = outPut.split("\n");
- for(String str : ostrs){
- String text = str.replace("\n","").replaceAll("\\s+$", "");
- newOutPut += text+"\n";
-
+ public static String getSHA256Str(String str) {
+ MessageDigest messageDigest;
+ String encdeStr = "";
+ try {
+ messageDigest = MessageDigest.getInstance("SHA-256");
+ byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
+ encdeStr = Hex.encodeHexString(hash);
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
}
- if(newOutPut.endsWith("\n")){
- newOutPut = newOutPut.substring(0,newOutPut.length()-1);
+ return encdeStr;
+ }
+
+ public static String trimEndSpaceStr(String outPut) {
+ String newOutPut = "";
+ if (StringUtils.isNotBlank(outPut)) {
+ String[] ostrs = outPut.split("\n");
+ for (String str : ostrs) {
+ String text = str.replace("\n", "").replaceAll("\\s+$", "");
+ newOutPut += text + "\n";
+
+ }
+ if (newOutPut.endsWith("\n")) {
+ newOutPut = newOutPut.substring(0, newOutPut.length() - 1);
+ }
}
+ return newOutPut;
}
- return newOutPut;
- }
- public static String delHTMLTag(String htmlStr) {
- if (StringUtils.isBlank(htmlStr)) {
- return "";
+ public static String delHTMLTag(String htmlStr) {
+ if (StringUtils.isBlank(htmlStr)) {
+ return "";
+ }
+ String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 瀹氫箟script鐨勬鍒欒〃杈惧紡
+ String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 瀹氫箟style鐨勬鍒欒〃杈惧紡
+ String regEx_html = "<[^>]+>"; // 瀹氫箟HTML鏍囩鐨勬鍒欒〃杈惧紡
+
+ Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
+ Matcher m_script = p_script.matcher(htmlStr);
+ htmlStr = m_script.replaceAll(""); // 杩囨护script鏍囩
+
+ Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
+ Matcher m_style = p_style.matcher(htmlStr);
+ htmlStr = m_style.replaceAll(""); // 杩囨护style鏍囩
+
+ Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
+ Matcher m_html = p_html.matcher(htmlStr);
+ htmlStr = m_html.replaceAll(""); // 杩囨护html鏍囩
+
+ htmlStr = htmlStr.replace(" ", " "); // 杩囨护绌烘牸鏍囩
+ htmlStr = htmlStr.replace(" ", " "); // 杩囨护绌烘牸鏍囩
+
+ return htmlStr.trim(); // 杩斿洖鏂囨湰瀛楃涓�
}
- String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 瀹氫箟script鐨勬鍒欒〃杈惧紡
- String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 瀹氫箟style鐨勬鍒欒〃杈惧紡
- String regEx_html = "<[^>]+>"; // 瀹氫箟HTML鏍囩鐨勬鍒欒〃杈惧紡
-
- Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
- Matcher m_script = p_script.matcher(htmlStr);
- htmlStr = m_script.replaceAll(""); // 杩囨护script鏍囩
-
- Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
- Matcher m_style = p_style.matcher(htmlStr);
- htmlStr = m_style.replaceAll(""); // 杩囨护style鏍囩
-
- Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
- Matcher m_html = p_html.matcher(htmlStr);
- htmlStr = m_html.replaceAll(""); // 杩囨护html鏍囩
-
- htmlStr = htmlStr.replace(" "," "); // 杩囨护绌烘牸鏍囩
- htmlStr = htmlStr.replace(" "," "); // 杩囨护绌烘牸鏍囩
-
- return htmlStr.trim(); // 杩斿洖鏂囨湰瀛楃涓�
- }
- public static List<String> checkUUID(String checkValue){
- String [] str = checkValue.split(",");
+ public static List<String> checkUUID(String checkValue) {
+ String[] str = checkValue.split(",");
List<String> strList = new ArrayList<>();
- for (String s:str) {
- try{
+ for (String s : str) {
+ try {
String uuid = UUID.fromString(s).toString();
strList.add(uuid);
//do something
- } catch (IllegalArgumentException exception){
+ } catch (IllegalArgumentException exception) {
continue;
}
}
return strList;
- }
+ }
}
diff --git a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
index d51d0f6..88f215a 100644
--- a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -10,7 +10,6 @@
import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.time.Duration;
import java.util.Date;
import java.util.*;
@@ -3011,11 +3010,11 @@
* @param end
* @return
*/
- public static long betweenMin(Date begin, Date end) {
+ public static Integer betweenMin(Date begin, Date end) {
long createTime =begin.getTime();//鑾峰彇鍒涘缓鏃堕棿鐨勬椂闂存埑
long currentTime =Objects.isNull(end)?System.currentTimeMillis():end.getTime();//鑾峰彇褰撳墠鏃堕棿鐨勬椂闂存埑
long diff=(currentTime-createTime)/1000/60;//鑾峰彇涓や釜鏃堕棿鐩稿樊鐨勫垎閽�
- return diff;
+ return (int)diff;
}
@@ -3038,4 +3037,4 @@
return consuming.toString();
}
-}
\ No newline at end of file
+}
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 d0da6cd..295eb7e 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
@@ -1,19 +1,28 @@
package com.doumee.core.wx;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.ID;
+import com.doumee.dao.business.RefundMapper;
+import com.doumee.dao.business.TransactionsMapper;
+import com.doumee.dao.business.model.Refund;
+import com.doumee.dao.business.model.Transactions;
+import com.doumee.dao.business.web.request.RefundDTO;
+import com.doumee.service.business.RefundService;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.util.Date;
/**
* 寰俊灏忕▼搴�-鍏叡鏂规硶
@@ -22,29 +31,55 @@
@Slf4j
public class WxMiniUtilService {
+ @Autowired
+ private RefundMapper refundMapper;
@Autowired
- private SystemDictDataBiz systemDictDataBiz;
+ private TransactionsMapper transactionsMapper;
- /**
- * 璁㈠崟寰俊閫�娆�
- * orderNo:鍟嗘埛璁㈠崟鍙�
- * totalPrice锛氳鍗曟�婚噾棰�
- * refundPrice锛涢��娆鹃噾棰�
- */
+
@Transactional(rollbackFor = Exception.class)
- public static String wxRefund(String orderNo, BigDecimal totalPrice, BigDecimal refundPrice) {
+ public Refund wxRefund(RefundDTO refundDTO) {
try {
// 鍙戦�侀��娆捐姹�
String refNum = ID.nextGUID();
WxPayRefundRequest request = new WxPayRefundRequest();
- request.setOutTradeNo(orderNo);
+ request.setOutTradeNo(refundDTO.getOrderId());
request.setOutRefundNo(refNum);
- request.setTotalFee(BaseWxPayRequest.yuanToFen(totalPrice.toString()));
- request.setRefundFee(BaseWxPayRequest.yuanToFen(refundPrice.toString()));
+ request.setTotalFee(BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString()));
+ request.setRefundFee(BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString()));
WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request);
if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) {
- return refNum;
+ //瀛樺偍閫�娆捐褰� 涓� 娴佹按璁板綍
+ Refund refund = new Refund();
+ refund.setCreateDate(new Date());
+ refund.setMemberId(refundDTO.getMemberId());
+ refund.setMoney(refundDTO.getRefundAmount());
+ refund.setOnlineOrderid(refNum);
+ refund.setPayWay(Constants.ZERO);
+ refund.setDoneDate(new Date());
+ refund.setType(refundDTO.getType());
+ refund.setObjId(refundDTO.getOrderId());
+ refund.setReason(refundDTO.getReason());
+ refundMapper.insert(refund);
+ //瀛樺偍浜ゆ槗娴佹按琛�
+ Transactions transactions = new Transactions();
+ transactions.setMemberId(refundDTO.getMemberId());
+ transactions.setCreateDate(new Date());
+ transactions.setIsdeleted(Constants.ZERO);
+ transactions.setOrderId(refundDTO.getOrderId());
+ transactions.setMoney(refundDTO.getRefundAmount());
+ transactions.setType(refundDTO.getType()==Constants.transactionsType.refund?Constants.transactionsType.platformRefund:Constants.transactionsType.refund);
+ transactions.setPreOrderid(refundDTO.getOrderId());
+ transactions.setOnlineOrderid(refNum);
+ transactions.setDoneDate(new Date());
+ transactions.setTitle("閫�娆�");
+ transactions.setContent(refundDTO.getType()==Constants.transactionsType.refund?"骞冲彴閫�娆�":"缁撶畻閫�娆�");
+ transactions.setBalance(BigDecimal.ZERO);
+ transactions.setObjId(refund.getId());
+ transactions.setObjType(Constants.ONE);
+ transactionsMapper.insert(transactions);
+ return refund;
} else{
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),response.getErrCode() + response.getErrCodeDes());
}
@@ -53,6 +88,5 @@
}
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫�娆惧彂鐢熷紓甯歌鑱旂郴绠$悊鍛�");
}
-
}
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 427a040..dd62879 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
@@ -41,7 +41,7 @@
@ExcelColumn(name="缂栬緫浜�")
private String editor;
- @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
+ @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
@ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
@TableLogic
private Integer isdeleted;
@@ -64,7 +64,7 @@
@ExcelColumn(name="杞﹁締缂栫爜")
private String bikeCode;
- @ApiModelProperty(value = "褰撳墠璐︽埛浣欓", example = "1")
+ @ApiModelProperty(value = "褰撳墠璐︽埛浣欓")
@ExcelColumn(name="褰撳墠璐︽埛浣欓")
private BigDecimal balance;
@@ -111,31 +111,31 @@
@ExcelColumn(name="杩樿溅鎸囦护缂栫爜")
private String backCommondId;
- @ApiModelProperty(value = "璧锋浠�", example = "1")
+ @ApiModelProperty(value = "璧锋浠�")
@ExcelColumn(name="璧锋浠�")
private BigDecimal basePrice;
- @ApiModelProperty(value = "璧锋浠锋椂闂�", example = "1")
+ @ApiModelProperty(value = "璧锋浠锋椂闂�")
@ExcelColumn(name="璧锋浠锋椂闂�")
private Integer baseTime;
- @ApiModelProperty(value = "瓒呭嚭鍗曚环", example = "1")
+ @ApiModelProperty(value = "瓒呭嚭鍗曚环")
@ExcelColumn(name="瓒呭嚭鍗曚环")
- private Integer unitPrice;
+ private BigDecimal unitPrice;
- @ApiModelProperty(value = "瓒呭嚭鏃堕棿鍗曚綅", example = "1")
+ @ApiModelProperty(value = "瓒呭嚭鏃堕棿鍗曚綅")
@ExcelColumn(name="瓒呭嚭鏃堕棿鍗曚綅")
private Integer unitTime;
- @ApiModelProperty(value = "楠戣浠锋牸", example = "1")
+ @ApiModelProperty(value = "楠戣浠锋牸")
@ExcelColumn(name="楠戣浠锋牸")
private BigDecimal price;
- @ApiModelProperty(value = "楠戣瀹為檯浠锋牸", example = "1")
+ @ApiModelProperty(value = "楠戣瀹為檯浠锋牸")
@ExcelColumn(name="楠戣瀹為檯浠锋牸")
private BigDecimal actualPrice;
- @ApiModelProperty(value = "楠戣璁¤垂鏃堕暱", example = "1")
+ @ApiModelProperty(value = "楠戣璁¤垂鏃堕暱")
@ExcelColumn(name="楠戣璁¤垂鏃堕暱")
private Integer duration;
@@ -144,7 +144,7 @@
//@JsonFormat(pattern = "yyyy-MM-dd")
private Date closeDate;
- @ApiModelProperty(value = "缁撶畻鐘舵�� 0鏈粨绠� 1宸茬粨鏉�", example = "1")
+ @ApiModelProperty(value = "缁撶畻鐘舵�� 0鏈粨绠� 1宸茬粨鏉�")
@ExcelColumn(name="缁撶畻鐘舵�� 0鏈粨绠� 1宸茬粨鏉�")
private Integer closeStatus;
@@ -152,7 +152,7 @@
@ExcelColumn(name="鍏宠仈璁㈠崟缂栫爜(鍏宠仈goodsorder锛�")
private String ordreId;
- @ApiModelProperty(value = "鏄惁缁撶畻璁¤垂杞﹀瀷 0鍚� 1鏄�", example = "1")
+ @ApiModelProperty(value = "鏄惁缁撶畻璁¤垂杞﹀瀷 0鍚� 1鏄�")
@ExcelColumn(name="鏄惁缁撶畻璁¤垂杞﹀瀷 0鍚� 1鏄�")
private Integer isStandard;
@@ -164,11 +164,11 @@
@ExcelColumn(name="鏄惁鑺傚亣鏃� 0涓嶆槸 1鏄�")
private String isHoliday;
- @ApiModelProperty(value = "鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�", example = "1")
+ @ApiModelProperty(value = "鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�")
@ExcelColumn(name="鐘舵�� 0璇锋眰寮�閿佷腑 1楠戣涓� 2宸茶繕杞� 3寮�閿佸け璐�")
private Integer status;
- @ApiModelProperty(value = "杩樿溅绫诲瀷 0姝e父杩樿溅 1寮哄埗杩樿溅", example = "1")
+ @ApiModelProperty(value = "杩樿溅绫诲瀷 0姝e父杩樿溅 1寮哄埗杩樿溅")
@ExcelColumn(name="杩樿溅绫诲瀷 0姝e父杩樿溅 1寮哄埗杩樿溅")
private Integer backType;
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Refund.java b/server/services/src/main/java/com/doumee/dao/business/model/Refund.java
index f19d889..c328599 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Refund.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Refund.java
@@ -59,7 +59,7 @@
@ApiModelProperty(value = "鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級", example = "1")
@ExcelColumn(name="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級")
- private BigDecimal memberId;
+ private String memberId;
@ApiModelProperty(value = "浜ゆ槗閲戦", example = "1")
@ExcelColumn(name="浜ゆ槗閲戦")
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Transactions.java b/server/services/src/main/java/com/doumee/dao/business/model/Transactions.java
index 5abe37d..91c04df 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Transactions.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Transactions.java
@@ -77,7 +77,7 @@
@ApiModelProperty(value = "浜ゆ槗瀹屾垚鏃堕棿")
@ExcelColumn(name="浜ゆ槗瀹屾垚鏃堕棿")
- private String doneDate;
+ private Date doneDate;
@ApiModelProperty(value = "浜ゆ槗鏍囬")
@ExcelColumn(name="浜ゆ槗鏍囬")
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/RefundDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/request/RefundDTO.java
new file mode 100644
index 0000000..9f14775
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/RefundDTO.java
@@ -0,0 +1,40 @@
+package com.doumee.dao.business.web.request;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/10/9 9:34
+ */
+@Data
+@ApiModel("閫�娆捐姹傜被")
+public class RefundDTO {
+
+ @ApiModelProperty(value = "璁㈠崟淇℃伅鍙凤紙goodsOrder:id锛�")
+ private String orderId;
+
+ @ApiModelProperty(value = "璁㈠崟鎬婚噾棰濓紙鍒嗭級")
+ private BigDecimal totalAmount;
+
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
+ private String memberId;
+
+ @ApiModelProperty(value = "閫�娆鹃噾棰濓紙鍒嗭級")
+ private BigDecimal refundAmount;
+
+ @ApiModelProperty(value = "閫�娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�")
+ private Integer type;
+
+ @ApiModelProperty(value = "閫�娆惧師鍥�")
+ private String reason;
+
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/WxPhoneRequest.java b/server/services/src/main/java/com/doumee/dao/business/web/request/WxPhoneRequest.java
index 84dc7db..3ad88b8 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/request/WxPhoneRequest.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/WxPhoneRequest.java
@@ -29,8 +29,7 @@
@ApiModelProperty(value = "sessionKey")
private String sessionKey;
- @NotEmpty(message = "openId 涓嶈兘涓虹┖")
- @ApiModelProperty(value = "openId")
- private String openId;
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",hidden = true)
+ private String memberId;
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java b/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
index 83fc050..6d4d589 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
@@ -30,10 +30,10 @@
private Date rideEndTime;
@ApiModelProperty(value = "楠戣鏃堕暱")
- private long rideTime;
+ private Integer rideTime;
@ApiModelProperty(value = "璁¤垂鏃堕暱")
- private long duration;
+ private Integer duration;
@ApiModelProperty(value = "杞﹀瀷")
private String bikeType;
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/PayOrderDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/PayOrderDTO.java
index 940dfed..928a5ef 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/PayOrderDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/PayOrderDTO.java
@@ -1,6 +1,8 @@
package com.doumee.dao.business.web.response;
+import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@@ -13,14 +15,19 @@
@ApiModel("浜ゆ槗鏄庣粏")
public class PayOrderDTO {
+ @ApiModelProperty(value = "璁㈠崟缂栫爜")
private String orderCode;
- private Integer payType;
+ @ApiModelProperty(value = "鏀粯鏂瑰紡 0寰俊 1鏀粯瀹�")
+ private Integer payWay;
+ @ApiModelProperty(value = "閫�娆剧被鍨� 0缁撶畻閫�娆� 1寮哄埗缁撶畻閫�娆� 2缁撶畻鍚庨��娆�")
private Integer refundType;
+ @ApiModelProperty(value = "浜ゆ槗閲戦")
private BigDecimal money;
+ @ApiModelProperty(value = "鏀粯鏃堕棿")
private Date payDate;
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/PricingRuleDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/PricingRuleDTO.java
new file mode 100644
index 0000000..b249a65
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/PricingRuleDTO.java
@@ -0,0 +1,36 @@
+package com.doumee.dao.business.web.response;
+
+import com.doumee.dao.business.model.MemberRides;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * 璁′环瑙勫垯
+ * @author T14
+ */
+@Data
+@ApiModel("璁′环瑙勫垯")
+public class PricingRuleDTO {
+
+ @ApiModelProperty(value = "璧锋鍗曚环")
+ private BigDecimal startFare;
+
+ @ApiModelProperty(value = "鍗曚环")
+ private BigDecimal price;
+
+ @ApiModelProperty(value = "璁′环鏂瑰紡 1:涓�鍙d环 2:闃舵瀹氫环")
+ private Integer type;
+
+ @ApiModelProperty(value = "杞﹁締绫诲瀷")
+ private String paramId;
+
+ @ApiModelProperty(value = "杞﹀瀷鍚嶇О")
+ private String bikeType;
+
+ @ApiModelProperty(value = "璁′环鍓湰")
+ private MemberRides memberRides;
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/RidesDetailResponse.java b/server/services/src/main/java/com/doumee/dao/business/web/response/RidesDetailResponse.java
index 8520aef..38fb132 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/RidesDetailResponse.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/RidesDetailResponse.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.web.response;
+import com.doumee.dao.business.model.BaseParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -20,13 +21,13 @@
public class RidesDetailResponse {
@ApiModelProperty(value = "棰勮娑堣垂閲戦")
- private long amount;
+ private BigDecimal amount;
@ApiModelProperty(value = "杞﹀瀷")
private String bikeType;
@ApiModelProperty(value = "璁¤垂鏃堕暱")
- private long duration;
+ private Integer duration;
@ApiModelProperty(value = "楠戣璁板綍")
private List<MemberRidesResponse> memberRidesResponseList;
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 c599567..6941ae7 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
@@ -7,6 +7,7 @@
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.web.response.HomeResponse;
import com.doumee.dao.business.web.response.GoodsorderDetailDTO;
+import com.doumee.dao.business.web.response.RidesDetailResponse;
import java.util.List;
@@ -116,6 +117,7 @@
*/
Object createGoodsOrderPay(String memberId);
+
/**
* 鎶奸噾鏀粯鍥炶皟涓氬姟
* @param preOrderId
@@ -137,5 +139,8 @@
* @param id
* @return
*/
- Goodsorder closerGoodsorder(String id);
+ void closerGoodsorder(String id);
+
+
+ RidesDetailResponse getRidesDetailResponse(String id);
}
diff --git a/server/services/src/main/java/com/doumee/service/business/MemberService.java b/server/services/src/main/java/com/doumee/service/business/MemberService.java
index e43dbc6..9aefd3a 100644
--- a/server/services/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/services/src/main/java/com/doumee/service/business/MemberService.java
@@ -4,6 +4,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.web.request.RegisterRequest;
+import com.doumee.dao.business.web.request.WxPhoneRequest;
import com.doumee.dao.business.web.response.AccountResponse;
import com.doumee.dao.business.web.response.UserResponse;
@@ -104,20 +105,18 @@
void wxEmpower(String code, String memberId);
/**
- * 鎷夊彇鐧诲綍
+ * 鎺堟潈鐧诲綍
* @param code
*/
AccountResponse wxLogin(String code);
+
/**
* 瑙f瀽鎵嬫満鍙�
- * @param memberId
- * @param encryptedData
- * @param iv
- * @param sessionKey
+ * @param wxPhoneRequest
* @return
*/
- AccountResponse wxPhone(String memberId,String encryptedData, String iv,String sessionKey);
+ AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest);
UserResponse getUserInfo(String memberId);
}
diff --git a/server/services/src/main/java/com/doumee/service/business/PricingRuleService.java b/server/services/src/main/java/com/doumee/service/business/PricingRuleService.java
new file mode 100644
index 0000000..3cfab59
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/PricingRuleService.java
@@ -0,0 +1,26 @@
+package com.doumee.service.business;
+
+import com.doumee.dao.business.model.MemberRides;
+import com.doumee.dao.business.web.response.PricingRuleDTO;
+
+import java.util.List;
+
+/**
+ *
+ * 鑾峰彇璁′环瑙勫垯
+ * @author T14
+ */
+public interface PricingRuleService {
+
+
+ /**
+ * 鑾峰彇鑾峰彇璁′环瑙勫垯
+ * @param goodaorderId
+ * @return
+ */
+ PricingRuleDTO getPricingRule(String goodaorderId);
+
+
+ PricingRuleDTO getPricingRule(List<MemberRides> memberRidesList);
+
+}
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 888b31f..ca87427 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
@@ -9,6 +9,7 @@
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.DateUtil;
@@ -22,19 +23,18 @@
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberRides;
-import com.doumee.dao.business.web.response.HomeResponse;
+import com.doumee.dao.business.web.response.*;
import com.doumee.dao.business.join.MemberRidesJoinMapper;
import com.doumee.dao.business.model.*;
-import com.doumee.dao.business.web.response.GoodsorderDetailDTO;
-import com.doumee.dao.business.web.response.MemberRidesResponse;
-import com.doumee.dao.business.web.response.PayOrderDTO;
import com.doumee.service.business.GoodsorderService;
+import com.doumee.service.business.PricingRuleService;
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,6 +51,7 @@
import java.util.Date;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
@Service
public class GoodsorderServiceImpl implements GoodsorderService {
@@ -74,14 +75,14 @@
@Autowired
private BaseParamMapper baseParamMapper;
-
-
-
@Autowired
private RefundMapper refundMapper;
@Autowired
private MemberRidesJoinMapper memberRidesJoinMapper;
+
+ @Autowired
+ PricingRuleService pricingRuleService;
@Override
public String create(Goodsorder goodsorder) {
@@ -221,8 +222,8 @@
}
return homeResponse;
}
-
-
+ @Autowired
+ private TransactionsMapper transactionsMapper;
@Override
@@ -237,7 +238,7 @@
PayOrderDTO payOrderDTO = new PayOrderDTO();
payOrderDTO.setOrderCode(goodsorder.getCode());
- payOrderDTO.setPayType(goodsorder.getPayWay());
+ payOrderDTO.setPayWay(goodsorder.getPayWay());
payOrderDTO.setMoney(goodsorder.getMoney());
payOrderDTO.setPayDate(goodsorder.getPayDate());
payOrderDTOList.add(0,payOrderDTO);
@@ -245,7 +246,8 @@
refunds.forEach(s->{
PayOrderDTO refundOrderDTO = new PayOrderDTO();
refundOrderDTO.setOrderCode(s.getCode());
- refundOrderDTO.setPayType(s.getPayWay());
+ refundOrderDTO.setPayWay(s.getPayWay());
+ refundOrderDTO.setRefundType(s.getType());
refundOrderDTO.setMoney(s.getMoney());
refundOrderDTO.setPayDate(s.getDoneDate());
payOrderDTOList.add(refundOrderDTO);
@@ -262,15 +264,125 @@
}
@Override
- public Goodsorder closerGoodsorder(String id) {
+ public void closerGoodsorder(String id) {
+
+ LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
Goodsorder goodsorder = goodsorderMapper.selectById(id);
+ QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(MemberRides::getOrdreId,id);
+ List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
+ if (!CollectionUtils.isEmpty(memberRides)){
+ boolean exitUnBack = memberRides.stream().anyMatch(s -> !Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey().equals(s.getStatus()));
+ if (exitUnBack){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璁㈠崟鏈夋湭瀹屾垚鐨勯獞琛岋紝鏃犳硶寮哄埗缁撶畻");
+ }
+
+ PricingRuleDTO pricingRule = pricingRuleService.getPricingRule(memberRides);
+ RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
+ List<MemberRidesResponse> collect = memberRides.stream().map(s -> {
+ MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
+ memberRidesResponse.setRideStartTime(s.getRentDate());
+ memberRidesResponse.setRideEndTime(s.getBackDate());
+ memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRidesResponse.getRideStartTime(), memberRidesResponse.getRideEndTime()));
+ memberRidesResponse.setDuration(s.getDuration());
+ memberRidesResponse.setBikeType(s.getParamName());
+ memberRidesResponse.setBikeCode(s.getBikeCode());
+ memberRidesResponse.setBasePrice(s.getBasePrice());
+ memberRidesResponse.setBaseTime(s.getBaseTime());
+ memberRidesResponse.setUnitPrice(s.getUnitTime());
+ memberRidesResponse.setUnitTime(s.getUnitTime());
+ return memberRidesResponse;
+ }).collect(Collectors.toList());
+
+ Integer durationSum = memberRides.stream().filter(s -> s.getDuration() > 0).mapToInt(s -> s.getDuration()).sum();
+ if (durationSum > pricingRule.getMemberRides().getBaseTime()){
+ BigDecimal basePrice = pricingRule.getMemberRides().getBasePrice();
+ BigDecimal multiply = pricingRule.getMemberRides().getUnitPrice().multiply(new BigDecimal((durationSum - pricingRule.getMemberRides().getBaseTime())));
+ ridesDetailResponse.setAmount(basePrice.add(multiply));
+ }else {
+ ridesDetailResponse.setAmount(pricingRule.getMemberRides().getBasePrice());
+ }
+ ridesDetailResponse.setBikeType(pricingRule.getBikeType());
+ ridesDetailResponse.setDuration(durationSum);
+ ridesDetailResponse.setMemberRidesResponseList(collect);
-
- return null;
+ Refund refund = new Refund();
+ refund.setCreateDate(new Date());
+ refund.setCreator(principal.getId());
+ refund.setEditDate(new Date());
+ refund.setEditor(principal.getId());
+ refund.setIsdeleted(Constants.ZERO);
+ refund.setInfo("绯荤粺缁撶畻鍚庤鍗曡嚜鍔ㄥ畬缁�");
+// refund.setCode();
+ refund.setMemberId(goodsorder.getMemberId());
+ refund.setMoney(goodsorder.getMoney().subtract(ridesDetailResponse.getAmount()));
+// refund.setStatus();
+// refund.setPreOrderid();
+// refund.setOnlineOrderid();
+ refund.setPayWay(goodsorder.getPayWay());
+ refund.setDoneDate(new Date());
+ refund.setType(Constants.ONE);
+ refund.setObjId(goodsorder.getId());
+ refund.setReason("纭畾寮哄埗缁撶畻鍚楋紵缁撶畻鍚庤鍗曡嚜鍔ㄥ畬缁�");
+ refundMapper.insert(refund);
+ Goodsorder update = new Goodsorder();
+ update.setId(goodsorder.getId());
+ update.setStatus(Constants.GOODSORDER_STATUS.CLOSE.getKey());
+ update.setCloseMoney(goodsorder.getMoney().subtract(ridesDetailResponse.getAmount()));
+ update.setCloseId(refund.getId());
+ update.setCloseDate(refund.getDoneDate());
+ update.setCloseInfo(refund.getInfo());
+ update.setCloseUserId(principal.getId());
+ update.setCloseType(Constants.ONE);
+ goodsorderMapper.updateById(update);
+ }
}
+
+ @Override
+ public RidesDetailResponse getRidesDetailResponse(String id) {
+
+ QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(MemberRides::getOrdreId,id);
+ List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
+ if (!CollectionUtils.isEmpty(memberRides)){
+ PricingRuleDTO pricingRule = pricingRuleService.getPricingRule(memberRides);
+ RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
+ List<MemberRidesResponse> collect = memberRides.stream().map(s -> {
+ MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
+ memberRidesResponse.setRideStartTime(s.getRentDate());
+ memberRidesResponse.setRideEndTime(s.getBackDate());
+ memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRidesResponse.getRideStartTime(), memberRidesResponse.getRideEndTime()));
+ memberRidesResponse.setDuration(s.getDuration());
+ memberRidesResponse.setBikeType(s.getParamName());
+ memberRidesResponse.setBikeCode(s.getBikeCode());
+ memberRidesResponse.setBasePrice(s.getBasePrice());
+ memberRidesResponse.setBaseTime(s.getBaseTime());
+ memberRidesResponse.setUnitPrice(s.getUnitTime());
+ memberRidesResponse.setUnitTime(s.getUnitTime());
+ return memberRidesResponse;
+ }).collect(Collectors.toList());
+
+ Integer durationSum = memberRides.stream().filter(s -> s.getDuration() > 0).mapToInt(s -> s.getDuration()).sum();
+ if (durationSum > pricingRule.getMemberRides().getBaseTime()){
+ BigDecimal basePrice = pricingRule.getMemberRides().getBasePrice();
+ BigDecimal multiply = pricingRule.getMemberRides().getUnitPrice().multiply(new BigDecimal((durationSum - pricingRule.getMemberRides().getBaseTime())));
+ ridesDetailResponse.setAmount(basePrice.add(multiply));
+ }else {
+ ridesDetailResponse.setAmount(pricingRule.getMemberRides().getBasePrice());
+ }
+ ridesDetailResponse.setBikeType(pricingRule.getBikeType());
+ ridesDetailResponse.setDuration(durationSum);
+ ridesDetailResponse.setMemberRidesResponseList(collect);
+ return ridesDetailResponse;
+ }
+
+ return new RidesDetailResponse();
+ }
@Override
public Object createGoodsOrderPay(String memberId){
@@ -328,6 +440,23 @@
goodsorder.setPayDate(new Date());
goodsorder.setEditDate(new Date());
goodsorderMapper.updateById(goodsorder);
+ //瀛樺偍浜ゆ槗娴佹按琛�
+ Transactions transactions = new Transactions();
+ transactions.setMemberId(goodsorder.getMemberId());
+ transactions.setCreateDate(new Date());
+ transactions.setIsdeleted(Constants.ZERO);
+ transactions.setOrderId(goodsorder.getId());
+ transactions.setMoney(goodsorder.getMoney());
+ transactions.setType(Constants.transactionsType.deposit);
+ transactions.setPreOrderid(goodsorder.getPreOrderid());
+ transactions.setOnlineOrderid(goodsorder.getOnlineOrderid());
+ transactions.setDoneDate(new Date());
+ transactions.setTitle("鏀粯");
+ transactions.setContent("鎶奸噾鏀粯");
+ transactions.setBalance(goodsorder.getMoney());
+ transactions.setObjId(goodsorder.getId());
+ transactions.setObjType(Constants.ZERO);
+ transactionsMapper.insert(transactions);
return WxPayNotifyResponse.success("澶勭悊鎴愬姛!");
}
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 d5aa6e3..2cc2a5e 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
@@ -4,12 +4,16 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberRidesMapper;
+import com.doumee.dao.business.join.MemberRidesJoinMapper;
+import com.doumee.dao.business.model.BaseParam;
+import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberRides;
import com.doumee.service.business.MemberRidesService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -26,6 +30,10 @@
@Autowired
private MemberRidesMapper memberRidesMapper;
+
+
+ @Autowired
+ private MemberRidesJoinMapper memberRidesJoinMapper;
@Override
public String create(MemberRides memberRides) {
@@ -83,136 +91,134 @@
QueryWrapper<MemberRides> wrapper = new QueryWrapper<>(memberRides);
return memberRidesMapper.selectList(wrapper);
}
-
+
@Override
public PageData<MemberRides> findPage(PageWrap<MemberRides> pageWrap) {
IPage<MemberRides> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<MemberRides> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<MemberRides> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
if (pageWrap.getModel().getId() != null) {
- queryWrapper.lambda().eq(MemberRides::getId, pageWrap.getModel().getId());
+ queryWrapper.eq(MemberRides::getId, pageWrap.getModel().getId());
}
if (pageWrap.getModel().getCreateDate() != null) {
- queryWrapper.lambda().ge(MemberRides::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
- queryWrapper.lambda().le(MemberRides::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ queryWrapper.ge(MemberRides::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.le(MemberRides::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
}
if (pageWrap.getModel().getCreator() != null) {
- queryWrapper.lambda().eq(MemberRides::getCreator, pageWrap.getModel().getCreator());
+ queryWrapper.eq(MemberRides::getCreator, pageWrap.getModel().getCreator());
}
if (pageWrap.getModel().getEditDate() != null) {
- queryWrapper.lambda().ge(MemberRides::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
- queryWrapper.lambda().le(MemberRides::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ queryWrapper.ge(MemberRides::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.le(MemberRides::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
}
if (pageWrap.getModel().getEditor() != null) {
- queryWrapper.lambda().eq(MemberRides::getEditor, pageWrap.getModel().getEditor());
+ queryWrapper.eq(MemberRides::getEditor, pageWrap.getModel().getEditor());
}
if (pageWrap.getModel().getIsdeleted() != null) {
- queryWrapper.lambda().eq(MemberRides::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ queryWrapper.eq(MemberRides::getIsdeleted, pageWrap.getModel().getIsdeleted());
}
if (pageWrap.getModel().getInfo() != null) {
- queryWrapper.lambda().eq(MemberRides::getInfo, pageWrap.getModel().getInfo());
+ queryWrapper.eq(MemberRides::getInfo, pageWrap.getModel().getInfo());
}
if (pageWrap.getModel().getMemberId() != null) {
- queryWrapper.lambda().eq(MemberRides::getMemberId, pageWrap.getModel().getMemberId());
+ queryWrapper.eq(MemberRides::getMemberId, pageWrap.getModel().getMemberId());
}
if (pageWrap.getModel().getBikeCode() != null) {
- queryWrapper.lambda().eq(MemberRides::getBikeCode, pageWrap.getModel().getBikeCode());
+ queryWrapper.eq(MemberRides::getBikeCode, pageWrap.getModel().getBikeCode());
}
if (pageWrap.getModel().getBalance() != null) {
- queryWrapper.lambda().eq(MemberRides::getBalance, pageWrap.getModel().getBalance());
+ queryWrapper.eq(MemberRides::getBalance, pageWrap.getModel().getBalance());
}
if (pageWrap.getModel().getParamId() != null) {
- queryWrapper.lambda().eq(MemberRides::getParamId, pageWrap.getModel().getParamId());
+ queryWrapper.eq(MemberRides::getParamId, pageWrap.getModel().getParamId());
}
if (pageWrap.getModel().getRentSiteId() != null) {
- queryWrapper.lambda().eq(MemberRides::getRentSiteId, pageWrap.getModel().getRentSiteId());
+ queryWrapper.eq(MemberRides::getRentSiteId, pageWrap.getModel().getRentSiteId());
}
if (pageWrap.getModel().getRentLockId() != null) {
- queryWrapper.lambda().eq(MemberRides::getRentLockId, pageWrap.getModel().getRentLockId());
+ queryWrapper.eq(MemberRides::getRentLockId, pageWrap.getModel().getRentLockId());
}
if (pageWrap.getModel().getRentDate() != null) {
- queryWrapper.lambda().ge(MemberRides::getRentDate, Utils.Date.getStart(pageWrap.getModel().getRentDate()));
- queryWrapper.lambda().le(MemberRides::getRentDate, Utils.Date.getEnd(pageWrap.getModel().getRentDate()));
+ queryWrapper.ge(MemberRides::getRentDate, Utils.Date.getStart(pageWrap.getModel().getRentDate()));
+ queryWrapper.le(MemberRides::getRentDate, Utils.Date.getEnd(pageWrap.getModel().getRentDate()));
}
if (pageWrap.getModel().getRentCommondD() != null) {
- queryWrapper.lambda().eq(MemberRides::getRentCommondD, pageWrap.getModel().getRentCommondD());
+ queryWrapper.eq(MemberRides::getRentCommondD, pageWrap.getModel().getRentCommondD());
}
if (pageWrap.getModel().getBackSiteId() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackSiteId, pageWrap.getModel().getBackSiteId());
+ queryWrapper.eq(MemberRides::getBackSiteId, pageWrap.getModel().getBackSiteId());
}
if (pageWrap.getModel().getBackLockId() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackLockId, pageWrap.getModel().getBackLockId());
+ queryWrapper.eq(MemberRides::getBackLockId, pageWrap.getModel().getBackLockId());
}
if (pageWrap.getModel().getBackDate() != null) {
- queryWrapper.lambda().ge(MemberRides::getBackDate, Utils.Date.getStart(pageWrap.getModel().getBackDate()));
- queryWrapper.lambda().le(MemberRides::getBackDate, Utils.Date.getEnd(pageWrap.getModel().getBackDate()));
+ queryWrapper.ge(MemberRides::getBackDate, Utils.Date.getStart(pageWrap.getModel().getBackDate()));
+ queryWrapper.le(MemberRides::getBackDate, Utils.Date.getEnd(pageWrap.getModel().getBackDate()));
}
if (pageWrap.getModel().getBackCommondId() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackCommondId, pageWrap.getModel().getBackCommondId());
+ queryWrapper.eq(MemberRides::getBackCommondId, pageWrap.getModel().getBackCommondId());
}
if (pageWrap.getModel().getBasePrice() != null) {
- queryWrapper.lambda().eq(MemberRides::getBasePrice, pageWrap.getModel().getBasePrice());
+ queryWrapper.eq(MemberRides::getBasePrice, pageWrap.getModel().getBasePrice());
}
if (pageWrap.getModel().getBaseTime() != null) {
- queryWrapper.lambda().eq(MemberRides::getBaseTime, pageWrap.getModel().getBaseTime());
+ queryWrapper.eq(MemberRides::getBaseTime, pageWrap.getModel().getBaseTime());
}
if (pageWrap.getModel().getUnitPrice() != null) {
- queryWrapper.lambda().eq(MemberRides::getUnitPrice, pageWrap.getModel().getUnitPrice());
+ queryWrapper.eq(MemberRides::getUnitPrice, pageWrap.getModel().getUnitPrice());
}
if (pageWrap.getModel().getUnitTime() != null) {
- queryWrapper.lambda().eq(MemberRides::getUnitTime, pageWrap.getModel().getUnitTime());
+ queryWrapper.eq(MemberRides::getUnitTime, pageWrap.getModel().getUnitTime());
}
if (pageWrap.getModel().getPrice() != null) {
- queryWrapper.lambda().eq(MemberRides::getPrice, pageWrap.getModel().getPrice());
+ queryWrapper.eq(MemberRides::getPrice, pageWrap.getModel().getPrice());
}
if (pageWrap.getModel().getActualPrice() != null) {
- queryWrapper.lambda().eq(MemberRides::getActualPrice, pageWrap.getModel().getActualPrice());
+ queryWrapper.eq(MemberRides::getActualPrice, pageWrap.getModel().getActualPrice());
}
if (pageWrap.getModel().getDuration() != null) {
- queryWrapper.lambda().eq(MemberRides::getDuration, pageWrap.getModel().getDuration());
+ queryWrapper.eq(MemberRides::getDuration, pageWrap.getModel().getDuration());
}
if (pageWrap.getModel().getCloseDate() != null) {
- queryWrapper.lambda().ge(MemberRides::getCloseDate, Utils.Date.getStart(pageWrap.getModel().getCloseDate()));
- queryWrapper.lambda().le(MemberRides::getCloseDate, Utils.Date.getEnd(pageWrap.getModel().getCloseDate()));
+ queryWrapper.ge(MemberRides::getCloseDate, Utils.Date.getStart(pageWrap.getModel().getCloseDate()));
+ queryWrapper.le(MemberRides::getCloseDate, Utils.Date.getEnd(pageWrap.getModel().getCloseDate()));
}
if (pageWrap.getModel().getCloseStatus() != null) {
- queryWrapper.lambda().eq(MemberRides::getCloseStatus, pageWrap.getModel().getCloseStatus());
+ queryWrapper.eq(MemberRides::getCloseStatus, pageWrap.getModel().getCloseStatus());
}
if (pageWrap.getModel().getOrdreId() != null) {
- queryWrapper.lambda().eq(MemberRides::getOrdreId, pageWrap.getModel().getOrdreId());
+ queryWrapper.eq(MemberRides::getOrdreId, pageWrap.getModel().getOrdreId());
}
if (pageWrap.getModel().getIsStandard() != null) {
- queryWrapper.lambda().eq(MemberRides::getIsStandard, pageWrap.getModel().getIsStandard());
+ queryWrapper.eq(MemberRides::getIsStandard, pageWrap.getModel().getIsStandard());
}
if (pageWrap.getModel().getPricingDetailId() != null) {
- queryWrapper.lambda().eq(MemberRides::getPricingDetailId, pageWrap.getModel().getPricingDetailId());
+ queryWrapper.eq(MemberRides::getPricingDetailId, pageWrap.getModel().getPricingDetailId());
}
if (pageWrap.getModel().getIsHoliday() != null) {
- queryWrapper.lambda().eq(MemberRides::getIsHoliday, pageWrap.getModel().getIsHoliday());
+ queryWrapper.eq(MemberRides::getIsHoliday, pageWrap.getModel().getIsHoliday());
}
if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.lambda().eq(MemberRides::getStatus, pageWrap.getModel().getStatus());
+ queryWrapper.eq(MemberRides::getStatus, pageWrap.getModel().getStatus());
}
if (pageWrap.getModel().getBackType() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackType, pageWrap.getModel().getBackType());
+ queryWrapper.eq(MemberRides::getBackType, pageWrap.getModel().getBackType());
}
if (pageWrap.getModel().getBackReason() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackReason, pageWrap.getModel().getBackReason());
+ queryWrapper.eq(MemberRides::getBackReason, pageWrap.getModel().getBackReason());
}
if (pageWrap.getModel().getBackInfo() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackInfo, pageWrap.getModel().getBackInfo());
+ queryWrapper.eq(MemberRides::getBackInfo, pageWrap.getModel().getBackInfo());
}
if (pageWrap.getModel().getBackUserid() != null) {
- queryWrapper.lambda().eq(MemberRides::getBackUserid, pageWrap.getModel().getBackUserid());
+ queryWrapper.eq(MemberRides::getBackUserid, pageWrap.getModel().getBackUserid());
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
- return PageData.from(memberRidesMapper.selectPage(page, queryWrapper));
+ queryWrapper.orderByDesc(MemberRides::getCreateDate);
+
+ queryWrapper.leftJoin(Member.class,Member::getId,MemberRides::getMemberId)
+ .leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
+ .leftJoin()
+ return PageData.from(memberRidesJoinMapper.selectPage(page, queryWrapper));
}
@Override
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 ef5e369..20b977d 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
@@ -19,6 +19,7 @@
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.web.request.RegisterRequest;
+import com.doumee.dao.business.web.request.WxPhoneRequest;
import com.doumee.dao.business.web.response.AccountResponse;
import com.doumee.dao.business.web.response.HomeResponse;
import com.doumee.dao.business.web.response.UserResponse;
@@ -285,17 +286,14 @@
/**
* 瑙f瀽寰俊鎵嬫満鍙�
- * @param memberId
- * @param encryptedData
- * @param iv
- * @param sessionKey
+ * @param wxPhoneRequest
* @return
*/
@Override
- public AccountResponse wxPhone(String memberId,String encryptedData, String iv,String sessionKey) {
+ public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest) {
try {
- Member member = memberMapper.selectById(memberId);
- WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
+ Member member = memberMapper.selectById(wxPhoneRequest.getMemberId());
+ WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
//鑾峰彇鎵嬫満鍙�
String mobile= userPhoneInfo.getPurePhoneNumber();
if(Objects.isNull(mobile)){
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java
new file mode 100644
index 0000000..91a34ba
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java
@@ -0,0 +1,103 @@
+package com.doumee.service.business.impl;
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.business.BaseParamMapper;
+import com.doumee.dao.business.MemberRidesMapper;
+import com.doumee.dao.business.PricingDetailMapper;
+import com.doumee.dao.business.PricingParamMapper;
+import com.doumee.dao.business.model.BaseParam;
+import com.doumee.dao.business.model.MemberRides;
+import com.doumee.dao.business.web.response.PricingRuleDTO;
+import com.doumee.service.business.PricingRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 鑾峰彇璁′环瑙勫垯
+ * @author T14
+ */
+
+@Service
+public class PricingRuleServiceImpl implements PricingRuleService {
+
+
+ @Autowired
+ PricingParamMapper pricingParamMapper;
+
+ @Autowired
+ PricingDetailMapper pricingParamMapper;
+
+
+ @Autowired
+ MemberRidesMapper memberRidesMapper;
+
+
+ @Autowired
+ BaseParamMapper baseParamMapper;
+
+
+ @Override
+ public PricingRuleDTO getPricingRule(String goodaorderId) {
+ QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(MemberRides::getOrdreId,goodaorderId);
+ List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
+ if (CollectionUtils.isEmpty(memberRides)){
+ return null;
+ }
+ PricingRuleDTO pricingRule = getPricingRule(memberRides);
+ return pricingRule;
+ }
+
+
+ @Override
+ public PricingRuleDTO getPricingRule(List<MemberRides> memberRidesList) {
+ if (!CollectionUtils.isEmpty(memberRidesList)){
+ List<String> collect = memberRidesList.stream()
+ .filter(s -> Objects.nonNull(s.getActualPrice()))
+ .map(s -> s.getParamId())
+ .collect(Collectors.toList());
+ QueryWrapper<BaseParam> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(BaseParam::getIsdeleted, Constants.ZERO)
+ .eq(BaseParam::getType, Constants.THREE)
+ .in(BaseParam::getId,collect)
+ .orderByDesc(BaseParam::getSortnum)
+ .last("limit 1");
+ BaseParam baseParam = baseParamMapper.selectOne(wrapper);
+
+ MemberRides memberRides = memberRidesList.stream()
+ .filter(s -> baseParam.getId().equals(s.getParamId()))
+ .findFirst().orElseThrow(() -> new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "娌℃湁杞﹁締绫诲瀷缂栫爜"));
+ PricingRuleDTO pricingRuleDTO = new PricingRuleDTO();
+ if (memberRides.getBaseTime() < 0){
+ //涓�鍙d环瀹氫环
+ pricingRuleDTO.setStartFare(memberRides.getBasePrice());
+ pricingRuleDTO.setPrice(new BigDecimal("0"));
+ pricingRuleDTO.setType(Constants.ONE);
+ pricingRuleDTO.setParamId(baseParam.getId());
+ pricingRuleDTO.setBikeType(baseParam.getName());
+ pricingRuleDTO.setMemberRides(memberRides);
+ }else {
+ pricingRuleDTO.setStartFare(memberRides.getBasePrice());
+ pricingRuleDTO.setPrice(memberRides.getUnitPrice());
+ pricingRuleDTO.setType(Constants.TWO);
+ pricingRuleDTO.setParamId(baseParam.getId());
+ pricingRuleDTO.setBikeType(baseParam.getName());
+ pricingRuleDTO.setMemberRides(memberRides);
+ }
+ return pricingRuleDTO;
+ }
+ return null;
+ }
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/AccountApi.java b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
index 995aca2..3b007c0 100644
--- a/server/web/src/main/java/com/doumee/api/web/AccountApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
@@ -4,6 +4,7 @@
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.dao.business.web.request.RegisterRequest;
+import com.doumee.dao.business.web.request.WxPhoneRequest;
import com.doumee.dao.business.web.response.AccountResponse;
import com.doumee.dao.business.web.response.UserResponse;
import com.doumee.service.business.MemberService;
@@ -32,31 +33,30 @@
@Autowired
private MemberService memberService;
- @ApiOperation(value = "鐢ㄦ埛娉ㄥ唽", notes = "灏忕▼搴忕")
- @PostMapping("/userRegister")
- public ApiResponse<AccountResponse> userRegister(@RequestBody RegisterRequest registerRequest) {
- return ApiResponse.success("鎿嶄綔鎴愬姛",memberService.userRegister(registerRequest));
- }
-
- @Trace
- @LoginRequired
- @ApiOperation(value = "寰俊鎺堟潈锛堢櫥褰曞悗锛�", notes = "灏忕▼搴忕")
- @GetMapping("/wxEmpower")
- @ApiImplicitParams({
- @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
- @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "寰俊code", required = true)
- })
- public ApiResponse wxEmpower(@RequestParam String code) {
- memberService.wxEmpower(code,getMemberId());
- return ApiResponse.success("鎿嶄綔鎴愬姛");
- }
+// @ApiOperation(value = "鐢ㄦ埛娉ㄥ唽", notes = "灏忕▼搴忕")
+// @PostMapping("/userRegister")
+// public ApiResponse<AccountResponse> userRegister(@RequestBody RegisterRequest registerRequest) {
+// return ApiResponse.success("鎿嶄綔鎴愬姛",memberService.userRegister(registerRequest));
+// }
+//
+// @Trace
+// @LoginRequired
+// @ApiOperation(value = "寰俊鎺堟潈锛堢櫥褰曞悗锛�", notes = "灏忕▼搴忕")
+// @GetMapping("/wxEmpower")
+// @ApiImplicitParams({
+// @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+// @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "寰俊code", required = true)
+// })
+// public ApiResponse wxEmpower(@RequestParam String code) {
+// memberService.wxEmpower(code,getMemberId());
+// return ApiResponse.success("鎿嶄綔鎴愬姛");
+// }
@Trace
@ApiOperation(value = "寰俊鎺堟潈", notes = "灏忕▼搴忕")
@GetMapping("/wxLogin")
@ApiImplicitParams({
- @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
@ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "寰俊code", required = true)
})
public ApiResponse<AccountResponse> wxLogin(@RequestParam String code) {
@@ -65,6 +65,18 @@
@LoginRequired
+ @ApiOperation(value = "瑙f瀽寰俊鎵嬫満鍙�", notes = "灏忕▼搴忕")
+ @PostMapping("/wxPhone")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse<AccountResponse> wxPhone(@RequestBody WxPhoneRequest wxPhoneRequest) {
+ wxPhoneRequest.setMemberId(getMemberId());
+ return ApiResponse.success("鎿嶄綔鎴愬姛",memberService.wxPhone(wxPhoneRequest));
+ }
+
+
+ @LoginRequired
@ApiOperation(value = "鑾峰彇鐢ㄦ埛淇℃伅", notes = "灏忕▼搴忕")
@GetMapping("/getUserInfo")
@ApiImplicitParams({
diff --git a/server/web/src/main/java/com/doumee/api/web/GoodsOrderApi.java b/server/web/src/main/java/com/doumee/api/web/GoodsOrderApi.java
new file mode 100644
index 0000000..c5ba7d8
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/GoodsOrderApi.java
@@ -0,0 +1,37 @@
+package com.doumee.api.web;
+
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.service.business.GoodsorderService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/10/9 10:15
+ */
+
+@Api(tags = "3銆佽鍗曚笟鍔�")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/goodsOrder")
+@Slf4j
+public class GoodsOrderApi extends ApiController{
+
+ @Autowired
+ private GoodsorderService goodsorderService;
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/HomeApi.java b/server/web/src/main/java/com/doumee/api/web/HomeApi.java
index 004bce6..6f71c5e 100644
--- a/server/web/src/main/java/com/doumee/api/web/HomeApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/HomeApi.java
@@ -1,9 +1,20 @@
package com.doumee.api.web;
+import com.doumee.core.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.web.response.HomeResponse;
+import com.doumee.dao.business.web.response.RidesDetailResponse;
+import com.doumee.service.business.GoodsorderService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -20,6 +31,33 @@
@Slf4j
public class HomeApi extends ApiController{
+ @Autowired
+ private GoodsorderService goodsorderService;
+
+
+ @LoginRequired
+ @ApiOperation(value = "棣栭〉淇℃伅", notes = "棣栭〉淇℃伅")
+ @GetMapping("/home")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse<HomeResponse> home() {
+ HomeResponse homeResponse = goodsorderService.getHome(getMemberId());
+ return ApiResponse.success("鏌ヨ鎴愬姛",homeResponse);
+ }
+
+
+ @LoginRequired
+ @ApiOperation(value = "楠戣鏄庣粏", notes = "楠戣鏄庣粏")
+ @GetMapping("/rideDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "String", name = "goodsOrderId", value = "璁㈠崟涓婚敭", required = true)
+ })
+ public ApiResponse<RidesDetailResponse> rideDetail(@RequestParam String goodsOrderId) {
+ RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
+ return ApiResponse.success("鏌ヨ鎴愬姛",ridesDetailResponse);
+ }
--
Gitblit v1.9.3