From 33caf2bb79bb3c561916c91ae386ec772411e2e8 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 11 五月 2026 18:21:50 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java | 18
server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java | 17
server/web/src/main/java/com/doumee/api/web/PaymentCallback.java | 9
server/services/src/main/java/com/doumee/service/business/impl/SmsrecordServiceImpl.java | 5
server/web/src/main/java/com/doumee/api/web/ConfigApi.java | 23 +
server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 17
server/services/src/main/java/com/doumee/dao/dto/ShopLoginDTO.java | 4
server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java | 6
server/services/src/main/java/com/doumee/config/jwt/WebMvcConfig.java | 8
server/services/src/main/java/com/doumee/dao/dto/DriverActiveOrderDTO.java | 3
server/services/src/main/java/com/doumee/dao/business/model/DriverInfo.java | 6
server/services/src/main/java/com/doumee/core/constants/Constants.java | 40 +
server/web/src/main/java/com/doumee/api/web/MemberApi.java | 10
server/admin/src/main/java/com/doumee/api/business/PricingRuleController.java | 58 --
server/services/src/main/java/com/doumee/dao/dto/RevenueShareItemDTO.java | 2
server/services/src/main/java/com/doumee/service/business/impl/OrdersRefundServiceImpl.java | 2
server/services/src/main/java/com/doumee/service/business/MemberService.java | 3
server/services/src/main/java/com/doumee/dao/vo/RevenueShareVO.java | 2
server/services/src/main/java/com/doumee/service/business/OrdersService.java | 17
server/admin/src/main/resources/application.yml | 2
server/services/src/main/java/com/doumee/service/business/impl/PricingRuleServiceImpl.java | 14
server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java | 556 +++++++++++++++++-------
server/services/src/main/resources/application-dev.yml | 4
server/web/src/main/java/com/doumee/api/web/AccountApi.java | 5
server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java | 4
server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java | 18
server/services/src/main/java/com/doumee/dao/dto/MyOrderDTO.java | 3
server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java | 3
server/services/src/main/java/com/doumee/dao/dto/RevenueShareSaveDTO.java | 2
server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java | 12
server/services/db/db_change.sql | 37 +
server/services/src/main/java/com/doumee/dao/vo/UserCenterVO.java | 2
server/services/src/main/java/com/doumee/dao/business/model/Orders.java | 10
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 72 +++
server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java | 9
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 289 +++++++++++-
server/web/src/main/resources/application.yml | 2
server/services/src/main/java/com/doumee/dao/business/model/Member.java | 3
38 files changed, 999 insertions(+), 298 deletions(-)
diff --git a/server/admin/src/main/java/com/doumee/api/business/PricingRuleController.java b/server/admin/src/main/java/com/doumee/api/business/PricingRuleController.java
index d4e5950..14db44a 100644
--- a/server/admin/src/main/java/com/doumee/api/business/PricingRuleController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/PricingRuleController.java
@@ -42,64 +42,6 @@
@Autowired
private PricingRuleService pricingRuleService;
- /*@PreventRepeat
- @ApiOperation("鏂板缓")
- @PostMapping("/create")
- @RequiresPermissions("business:pricingRule:create")
- public ApiResponse create(@RequestBody PricingRule pricingRule) {
- return ApiResponse.success(pricingRuleService.create(pricingRule));
- }
-
- @ApiOperation("鏍规嵁ID鍒犻櫎")
- @GetMapping("/delete/{id}")
- @RequiresPermissions("business:pricingRule:delete")
- public ApiResponse deleteById(@PathVariable Integer id) {
- pricingRuleService.deleteById(id);
- return ApiResponse.success(null);
- }
-
- @ApiOperation("鎵归噺鍒犻櫎")
- @GetMapping("/delete/batch")
- @RequiresPermissions("business:pricingRule:delete")
- public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
- String[] idArray = ids.split(",");
- List<Integer> idList = new ArrayList<>();
- for (String id : idArray) {
- idList.add(Integer.valueOf(id));
- }
- pricingRuleService.deleteByIdInBatch(idList);
- return ApiResponse.success(null);
- }
-
- @ApiOperation("鏍规嵁ID淇敼")
- @PostMapping("/updateById")
- @RequiresPermissions("business:pricingRule:update")
- public ApiResponse updateById(@RequestBody PricingRule pricingRule) {
- pricingRuleService.updateById(pricingRule);
- return ApiResponse.success(null);
- }
-
- @ApiOperation("鍒嗛〉鏌ヨ")
- @PostMapping("/page")
- @RequiresPermissions("business:pricingRule:query")
- public ApiResponse<PageData<PricingRule>> findPage(@RequestBody PageWrap<PricingRule> pageWrap) {
- return ApiResponse.success(pricingRuleService.findPage(pageWrap));
- }
-
- @ApiOperation("瀵煎嚭Excel")
- @PostMapping("/exportExcel")
- @RequiresPermissions("business:pricingRule:exportExcel")
- public void exportExcel(@RequestBody PageWrap<PricingRule> pageWrap, HttpServletResponse response) {
- List<PricingRule> pricingRuleList = pricingRuleService.findPage(pageWrap).getRecords();
- ExcelExporter.build(PricingRule.class).export(pricingRuleList, "璁′环瑙勫垯閰嶇疆", response);
- }
-
- @ApiOperation("鏍规嵁ID鏌ヨ")
- @GetMapping("/{id}")
- @RequiresPermissions("business:pricingRule:query")
- public ApiResponse findById(@PathVariable Integer id) {
- return ApiResponse.success(pricingRuleService.findById(id));
- }*/
@PreventRepeat
@ApiOperation("鎵归噺淇濆瓨灏卞湴瀛樺彇瑙勫垯")
diff --git a/server/admin/src/main/resources/application.yml b/server/admin/src/main/resources/application.yml
index 2966e7d..a67904a 100644
--- a/server/admin/src/main/resources/application.yml
+++ b/server/admin/src/main/resources/application.yml
@@ -12,7 +12,7 @@
spring:
profiles:
- active: pro
+ active: dev
# JSON杩斿洖閰嶇疆
jackson:
# 榛樿鏃跺尯
diff --git a/server/services/db/db_change.sql b/server/services/db/db_change.sql
index 37d5d8a..e9ce016 100644
--- a/server/services/db/db_change.sql
+++ b/server/services/db/db_change.sql
@@ -5,6 +5,43 @@
-- ============================================================
+-- 2026/05/11 鍙告満鐗堟湰绫诲瀷瀛楁
+-- ============================================================
+ALTER TABLE `driver_info` ADD COLUMN `VERSION_TYPE` INT DEFAULT 0 COMMENT '鍙告満鐗堟湰绫诲瀷锛�0=姝e紡鐗堟湰锛�1=鍙樻洿鐗堟湰';
+ALTER TABLE `driver_info` ADD COLUMN `RELATION_DRIVER_ID` INT DEFAULT NULL COMMENT '鍏宠仈姝e紡鐗堟湰鍙告満涓婚敭锛堝彉鏇寸増鏈娇鐢級';
+
+
+-- ============================================================
+-- 2026/05/09 闂ㄥ簵鏀剁泭姣斾緥閰嶇疆瀛楁
+-- ============================================================
+ALTER TABLE `shop_info` ADD COLUMN `REVENUE_SHARE_CONFIG` TEXT COMMENT '鏀剁泭姣斾緥閰嶇疆(JSON): remoteCompanyDeposit/remotePersonalDeposit/remoteCompanyTake/remotePersonalTake/localCompanyDeposit/localPersonalDeposit';
+
+ALTER TABLE `member` ADD COLUMN `LOGIN_SHOP_ID` INT COMMENT '宸茬櫥褰曠殑闂ㄥ簵涓婚敭';
+
+ALTER TABLE `shop_info` ADD COLUMN `VERSION_TYPE` INT DEFAULT 0 COMMENT '闂ㄥ簵鐗堟湰绫诲瀷锛�0=姝e紡鐗堟湰锛�1=鍙樻洿鐗堟湰';
+ALTER TABLE `shop_info` ADD COLUMN `RELATION_SHOP_ID` INT COMMENT '鍏宠仈姝e紡鐗堟湰闂ㄥ簵涓婚敭锛堝彉鏇寸増鏈娇鐢級';
+
+
+-- ============================================================
+-- 2026/05/07 鎿嶄綔鍗婂緞鏍¢獙閰嶇疆
+-- ============================================================
+INSERT INTO `system_dict_data` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES ((SELECT `id` FROM `system_dict` WHERE `code` = 'OPERATION_CONFIG'), '500', 'OPERATION_RADIUS', '鍏佽鎿嶄綔鍗婂緞(m)', 0, 0, 1, NOW(), 0);
+
+
+-- ============================================================
+-- 2026/05/07 鍗冲皢鍒拌揪鍙栦欢鏃堕棿閫氱煡鐩稿叧鍙樻洿
+-- ============================================================
+-- 璁㈠崟琛ㄥ鍔犲彇浠堕�氱煡鐘舵�佸瓧娈�
+ALTER TABLE `orders` ADD COLUMN `PICK_UP_NOTIFY_STATUS` INT DEFAULT 0 COMMENT '鍙栦欢鏃堕棿鍗冲皢鍒拌揪閫氱煡鐘舵�侊細0=鏈�氱煡锛�1=宸查�氱煡';
+
+-- 杩愯惀閰嶇疆锛氬嵆灏嗗埌杈惧彇浠舵椂闂存彁鍓嶉�氱煡(鍒嗛挓)
+INSERT INTO `system_dict_data` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES ((SELECT `id` FROM `system_dict` WHERE `code` = 'OPERATION_CONFIG'), '30', 'ARRIVAL_PICK_UP_TIME', '鍗冲皢鍒拌揪鍙栦欢鏃堕棿鎻愬墠閫氱煡(鍒嗛挓)', 0, 0, 1, NOW(), 0);
+
+-- 瀹氭椂浠诲姟锛氬嵆灏嗗埌杈惧彇浠舵椂闂撮�氱煡锛堟瘡5鍒嗛挓鎵ц涓�娆★級
+INSERT INTO `system_job` (`JOB_NAME`, `HANDLER`, `CRON`, `WITH_LOG`, `WITH_ASYNC`, `STATUS`, `REMARK`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('鍗冲皢鍒拌揪鍙栦欢鏃堕棿閫氱煡', 'arrivalPickUpNotifyJob', '0 */5 * * * ?', 1, 0, 1, '鏌ヨ鍗冲皢鍒拌揪鍙栦欢鏃堕棿鐨勮鍗曪紝鍙戦�佺煭淇¢�氱煡浼氬憳', 1, NOW(), 1, NOW(), 0);
+
+
+-- ============================================================
-- 2026/04/30 APP鐗堟湰鏂囦欢涓婁紶瀛楀吀閰嶇疆
-- ============================================================
INSERT INTO `system_dict_data` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES ((SELECT `id` FROM `system_dict` WHERE `code` = 'OSS'), '', 'APP_FILES', 'APP鐗堟湰鏂囦欢瀛樺偍璺緞', 0, 0, 1, NOW(), 0);
diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
index ccf75ec..c9a2cdd 100644
--- a/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
@@ -37,6 +37,8 @@
dto.setNoGrabNotifyTime(getValue(Constants.OP_NO_GRAB_NOTIFY_TIME));
dto.setNoGrabNotifyUsers(getValue(Constants.OP_NO_GRAB_NOTIFY_USERS));
dto.setDefaultDeliveryRange(getValue(Constants.OP_DEFAULT_DELIVERY_RANGE));
+ dto.setArrivalPickUpTime(getValue(Constants.OP_ARRIVAL_PICK_UP_TIME));
+ dto.setOperationRadius(getValue(Constants.OP_OPERATION_RADIUS));
return dto;
}
@@ -55,6 +57,8 @@
saveOrUpdate(Constants.OP_NO_GRAB_NOTIFY_TIME, "鏃犱汉鎶㈠崟閫氱煡鏃堕棿", dto.getNoGrabNotifyTime());
saveOrUpdate(Constants.OP_NO_GRAB_NOTIFY_USERS, "鏃犱汉鎶㈠崟鐭俊閫氱煡浜哄憳", dto.getNoGrabNotifyUsers());
saveOrUpdate(Constants.OP_DEFAULT_DELIVERY_RANGE, "榛樿閰嶉�佽寖鍥�", dto.getDefaultDeliveryRange());
+ saveOrUpdate(Constants.OP_ARRIVAL_PICK_UP_TIME, "鍗冲皢鍒拌揪鍙栦欢鏃堕棿閫氱煡", dto.getArrivalPickUpTime());
+// saveOrUpdate(Constants.OP_OPERATION_RADIUS, "鍏佽鎿嶄綔鍗婂緞", dto.getOperationRadius());
}
private String getValue(String label) {
diff --git a/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
index 72097f8..e988f6c 100644
--- a/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
+++ b/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -85,6 +85,7 @@
public static String generateTokenForRedis(Integer userId, Integer userType, String userInfo, RedisTemplate<String,Object> redisTemplate) {
// 鍒犻櫎璇ョ敤鎴蜂箣鍓嶇櫥褰曠殑token
String userTokenMappingKey = Constants.REDIS_TOKEN_KEY + "user_" + userType + "_" + userId;
+
String oldToken = (String) redisTemplate.opsForValue().get(userTokenMappingKey);
if (StringUtils.isNotBlank(oldToken)) {
redisTemplate.delete(Constants.REDIS_TOKEN_KEY + oldToken);
@@ -98,6 +99,22 @@
}
+ public static String generateShopTokenForRedis(Integer userId, String userInfo, RedisTemplate<String,Object> redisTemplate) {
+ // 鍒犻櫎璇ョ敤鎴蜂箣鍓嶇櫥褰曠殑token
+ String userTokenMappingKey = Constants.REDIS_TOKEN_KEY + "user_" + Constants.TWO + "_" + userId;
+ String oldToken = (String) redisTemplate.opsForValue().get(userTokenMappingKey);
+ if (StringUtils.isNotBlank(oldToken)) {
+ redisTemplate.delete(Constants.REDIS_TOKEN_KEY + oldToken);
+ }
+ // 鐢熸垚鏂皌oken
+ String tokenKey = Constants.TWO +""+ UUID.randomUUID() + "_" + userId;
+ redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY + tokenKey, userInfo, redisExpire, TimeUnit.DAYS);
+ // 璁板綍鐢ㄦ埛涓巘oken鐨勬槧灏勫叧绯�
+ redisTemplate.opsForValue().set(userTokenMappingKey, tokenKey, redisExpire, TimeUnit.DAYS);
+ return tokenKey;
+ }
+
+
/**
* 鍒锋柊浠ょ墝
*
diff --git a/server/services/src/main/java/com/doumee/config/jwt/WebMvcConfig.java b/server/services/src/main/java/com/doumee/config/jwt/WebMvcConfig.java
index 06c4084..3b9f99d 100644
--- a/server/services/src/main/java/com/doumee/config/jwt/WebMvcConfig.java
+++ b/server/services/src/main/java/com/doumee/config/jwt/WebMvcConfig.java
@@ -162,16 +162,16 @@
throw new BusinessException(ResponseStatus.SHOP_BE_OVERDUE);
}
String openid = shop.getOpenid();
- Integer shopId = getTokenId(token);
- Integer isDeleted = dao.queryForObject(" select COALESCE(DELETED,0) from shop_info where id = ?", Integer.class, shopId);
+ Integer shopId = shop.getId();//getTokenId(token);
+ Integer isDeleted = dao.queryForObject(" select COALESCE(DELETED,0) from shop_info where VERSION_TYPE = 0 and id = ?", Integer.class, shopId);
if(isDeleted== Constants.ONE){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗘埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
}
- Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,0) from shop_info where id = ?", Integer.class, shopId);
+ Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,0) from shop_info where VERSION_TYPE = 0 and id = ?", Integer.class, shopId);
if(isForbidden == Constants.ONE){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗘埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
}
- Integer count = dao.queryForObject("select count(1) from shop_info where id = ?", Integer.class, shopId);
+ Integer count = dao.queryForObject("select count(1) from shop_info where VERSION_TYPE = 0 and id = ?", Integer.class, shopId);
if (count != null && count > 0) {
request.setAttribute(JwtTokenUtil.SHOP_ID, shop.getId());
return true;
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 35a15b7..77059bc 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
@@ -47,6 +47,8 @@
public static final String FEE_STANDARDS ="FEE_STANDARDS" ;
public static final String ABOUT_US ="ABOUT_US" ;
public static final String SERVER_PHONE ="SERVER_PHONE" ;
+ public static final String ARRIVAL_PICK_UP_TIME ="ARRIVAL_PICK_UP_TIME" ;//鍗冲皢鍒拌揪鍙栦欢鏃堕棿閰嶇疆(鍒嗛挓)
+
public static final String USER_AGREEMENT ="USER_AGREEMENT" ;
public static final String PRIVACY_AGREEMENT ="PRIVACY_AGREEMENT" ;
@@ -104,6 +106,8 @@
public static final String OP_NO_GRAB_NOTIFY_TIME = "NO_GRAB_NOTIFY_TIME";
public static final String OP_NO_GRAB_NOTIFY_USERS = "NO_GRAB_NOTIFY_USERS";
public static final String OP_DEFAULT_DELIVERY_RANGE = "DEFAULT_DELIVERY_RANGE";
+ public static final String OP_ARRIVAL_PICK_UP_TIME = "ARRIVAL_PICK_UP_TIME";
+ public static final String OP_OPERATION_RADIUS = "OPERATION_RADIUS";
// 鑺儴浜戞墦鍗版満閰嶇疆
public static final String XPYUN_CONFIG = "XPYUN_CONFIG";
@@ -393,7 +397,7 @@
deposited(2, "宸插瘎瀛�"),
accepted(3, "宸叉帴鍗�"),
delivering(4, "娲鹃�佷腑"),
- arrived(5, "宸插埌搴�/宸查�佽揪/寰呭彇浠�"),
+ arrived(5, "宸插埌搴�/宸查�佽揪"),
overdue(6, "瀛樺湪閫炬湡"), //寮冪敤
finished(7, "宸插畬鎴�"),
cancelled(99, "宸插彇娑�")
@@ -611,27 +615,29 @@
@Getter
@AllArgsConstructor
public enum SmsNotify {
- PLATFORM_WAIT_GRAB("SMS_505865290", "骞冲彴绔�-寰呮姠鍗�", "鎮ㄥソ锛岃鍗曪細{orderNo}宸茶秴杩噞time}鍒嗛挓鏃犲徃鏈烘姠鍗曪紝璇峰敖蹇姞鎬ユ淳鍗曪紝閬垮厤瀹㈡埛杩囦箙绛夊緟銆�"),
- SHOP_REFUNDING("SMS_505905263", "闂ㄥ簵绔�-閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}瀹㈡埛宸叉彁浜ら��娆剧敵璇凤紝璇峰敖蹇鐞嗐��"),
- SHOP_WAIT_VERIFY("SMS_505915292", "闂ㄥ簵绔�-寰呮牳楠�", "鏂拌鏉庤鍗曪細{orderNo}瀹㈡埛宸叉敮浠橈紝璇峰敖蹇牳楠岀敤鎴风墿鍝佷俊鎭��"),
- DRIVER_REFUNDING("SMS_505905264", "鍙告満绔�-閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸叉彁浜ら��娆剧敵璇凤紝璇ヨ鍗曚换鍔″凡鍙栨秷锛岃鍕垮墠寰�銆�"),
- DRIVER_WAIT_PICKUP("SMS_505960277", "鍙告満绔�-寰呭彇浠�", "鎮ㄥ凡鎶㈠崟鎴愬姛锛岃鍗晎orderNo}锛岃鎸夋椂鍒皗address}鍙栦欢銆�"),
- MEMBER_CANCELLED("SMS_505615328", "浼氬憳绔�-宸插彇娑�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插彇娑堬紝鎰熻阿鎮ㄧ殑鏀寔锛屾杩庝笅娆″啀浼氥��"),
- MEMBER_REFUNDED("SMS_505850299", "浼氬憳绔�-宸查��娆�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}閫�娆惧凡瀹屾垚锛岄噾棰漿money}鍏冨皢鍘熻矾閫�鍥烇紝璇锋敞鎰忔煡鏀躲��"),
- MEMBER_ARRIVED("SMS_505645328", "浼氬憳绔�-宸查�佽揪", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸查�佸埌{address}锛岃鍙婃椂鍙栦欢锛屽彇浠剁爜锛歿code}銆�"),
- MEMBER_DELIVERING("SMS_505715321", "浼氬憳绔�-閰嶉�佷腑", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸茬敱鍙告満{name}鍙栦欢锛屾杩愬線鐩殑鍦般��"),
- VERIFY_CODE("SMS_333770877", "楠岃瘉鐮佺煭淇�", "鎮ㄧ殑楠岃瘉鐮佷负锛歿code}锛岃鍕挎硠闇蹭簬浠栦汉锛�"),
- DRIVER_AUTH_REJECTED("SMS_505790115", "鍙告満绔�-鍙告満璁よ瘉琚嫆缁�", "灏婃暚鐨剓driver}锛屽緢閬楁喚锛屾偍鐨勫徃鏈鸿璇佹湭閫氳繃瀹℃牳銆傚師鍥狅細{reason}銆傛偍鍙慨鏀硅祫鏂欏悗閲嶆柊鎻愪氦銆�"),
- DRIVER_AUTH_APPROVED("SMS_505885083", "鍙告満绔�-鍙告満璁よ瘉閫氳繃", "灏婃暚鐨剓driver}锛屾伃鍠滄偍宸查�氳繃骞冲彴鍙告満璁よ瘉瀹℃牳銆傛偍鍙櫥褰曞徃鏈虹APP寮�濮嬫帴鍗曪紝閰嶉�佽繃绋嬩腑璇锋敞鎰忓畨鍏紝绁濇偍鎺ュ崟椤哄埄锛�"),
- DRIVER_URGENT_DISPATCH("SMS_505940293", "鍙告満绔�-鍔犳�ユ淳鍗�", "鎮ㄥソ锛屾偍鏈変竴涓柊鐨勮鏉庤鍗曪紙缂栧彿锛歿orderNo}锛夈�傝捣鐐癸細{address1}锛岀粓鐐癸細{address2}锛岄厤閫佽垂{money1}鍏冿紙鍚姞鎬ヨ垂{money2}鍏冿級銆傝灏藉揩纭璁㈠崟浠诲姟銆�"),
- SHOP_AUTH_REJECTED("SMS_505925106", "闂ㄥ簵绔�-璧勬枡瀹℃牳琚嫆缁�", "寰堥仐鎲撅紝鎮ㄧ殑闂ㄥ簵\"{storeName}\"鏈�氳繃瀹℃牳锛屽師鍥狅細{reason}锛屾偍鍙慨鏀硅祫鏂欏悗閲嶆柊鎻愪氦銆�"),
- SHOP_AUTH_APPROVED_DEPOSIT("SMS_505705111", "闂ㄥ簵绔�-瀹℃牳閫氳繃闇�缂寸撼鎶奸噾", "鎭枩鎮紒鎮ㄧ殑闂ㄥ簵\"{storeName}\"宸查�氳繃鍒濇瀹℃牳銆傝鏀粯鎶奸噾{money}鍏冧互瀹屾垚鍏ラ┗锛屾敮浠樺悗鍗冲彲鐧诲綍闂ㄥ簵鍚庡彴姝e紡鎺ュ崟銆�"),
- SHOP_AUTH_SUCCESS("SMS_505915289", "闂ㄥ簵绔�-鎴愬姛鍏ラ┗閫氱煡", "鎭枩鎮紒鎮ㄧ殑闂ㄥ簵\"{storeName}\"宸查�氳繃骞冲彴瀹℃牳锛屾寮忓叆椹绘垚鍔熴�� 鎮ㄥ彲鐧诲綍鍟嗗鍚庡彴寮�濮嬫帴鍗曪紝璐﹀彿锛氭敞鍐屾墜鏈哄彿锛屽垵濮嬪瘑鐮侊細锛歿password}锛堝缓璁娆$櫥褰曞悗淇敼锛夈��"),
+ PLATFORM_WAIT_GRAB("SMS_505865290", "骞冲彴绔�-寰呮姠鍗�", "鎮ㄥソ锛岃鍗曪細{orderNo}宸茶秴杩噞time}鍒嗛挓鏃犲徃鏈烘姠鍗曪紝璇峰敖蹇姞鎬ユ淳鍗曪紝閬垮厤瀹㈡埛杩囦箙绛夊緟銆�", true),
+ SHOP_REFUNDING("SMS_505905263", "闂ㄥ簵绔�-閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}瀹㈡埛宸叉彁浜ら��娆剧敵璇凤紝璇峰敖蹇鐞嗐��", false),
+ SHOP_WAIT_VERIFY("SMS_505915292", "闂ㄥ簵绔�-寰呮牳楠�", "鏂拌鏉庤鍗曪細{orderNo}瀹㈡埛宸叉敮浠橈紝璇峰敖蹇牳楠岀敤鎴风墿鍝佷俊鎭��", false),
+ DRIVER_REFUNDING("SMS_505905264", "鍙告満绔�-閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸叉彁浜ら��娆剧敵璇凤紝璇ヨ鍗曚换鍔″凡鍙栨秷锛岃鍕垮墠寰�銆�", true),
+ DRIVER_WAIT_PICKUP("SMS_505960277", "鍙告満绔�-寰呭彇浠�", "鎮ㄥ凡鎶㈠崟鎴愬姛锛岃鍗晎orderNo}锛岃鎸夋椂鍒皗address}鍙栦欢銆�", true),
+ MEMBER_CANCELLED("SMS_505615328", "浼氬憳绔�-宸插彇娑�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插彇娑堬紝鎰熻阿鎮ㄧ殑鏀寔锛屾杩庝笅娆″啀浼氥��", true),
+ MEMBER_REFUNDED("SMS_505850299", "浼氬憳绔�-宸查��娆�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}閫�娆惧凡瀹屾垚锛岄噾棰漿money}鍏冨皢鍘熻矾閫�鍥烇紝璇锋敞鎰忔煡鏀躲��", true),
+ MEMBER_ARRIVED("SMS_505645328", "浼氬憳绔�-宸查�佽揪", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸查�佸埌{address}锛岃鍙婃椂鍙栦欢锛屽彇浠剁爜锛歿code}銆�", true),
+ MEMBER_DELIVERING("SMS_505715321", "浼氬憳绔�-閰嶉�佷腑", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸茬敱鍙告満{name}鍙栦欢锛屾杩愬線鐩殑鍦般��", true),
+ VERIFY_CODE("SMS_333770877", "楠岃瘉鐮佺煭淇�", "鎮ㄧ殑楠岃瘉鐮佷负锛歿code}锛岃鍕挎硠闇蹭簬浠栦汉锛�", true),
+ DRIVER_AUTH_REJECTED("SMS_505790115", "鍙告満绔�-鍙告満璁よ瘉琚嫆缁�", "灏婃暚鐨剓driver}锛屽緢閬楁喚锛屾偍鐨勫徃鏈鸿璇佹湭閫氳繃瀹℃牳銆傚師鍥狅細{reason}銆傛偍鍙慨鏀硅祫鏂欏悗閲嶆柊鎻愪氦銆�", true),
+ DRIVER_AUTH_APPROVED("SMS_505885083", "鍙告満绔�-鍙告満璁よ瘉閫氳繃", "灏婃暚鐨剓driver}锛屾伃鍠滄偍宸查�氳繃骞冲彴鍙告満璁よ瘉瀹℃牳銆傛偍鍙櫥褰曞徃鏈虹APP寮�濮嬫帴鍗曪紝閰嶉�佽繃绋嬩腑璇锋敞鎰忓畨鍏紝绁濇偍鎺ュ崟椤哄埄锛�", true),
+ DRIVER_URGENT_DISPATCH("SMS_505940293", "鍙告満绔�-鍔犳�ユ淳鍗�", "鎮ㄥソ锛屾偍鏈変竴涓柊鐨勮鏉庤鍗曪紙缂栧彿锛歿orderNo}锛夈�傝捣鐐癸細{address1}锛岀粓鐐癸細{address2}锛岄厤閫佽垂{money1}鍏冿紙鍚姞鎬ヨ垂{money2}鍏冿級銆傝灏藉揩纭璁㈠崟浠诲姟銆�", true),
+ SHOP_AUTH_REJECTED("SMS_505925106", "闂ㄥ簵绔�-璧勬枡瀹℃牳琚嫆缁�", "寰堥仐鎲撅紝鎮ㄧ殑闂ㄥ簵\"{storeName}\"鏈�氳繃瀹℃牳锛屽師鍥狅細{reason}锛屾偍鍙慨鏀硅祫鏂欏悗閲嶆柊鎻愪氦銆�", true),
+ SHOP_AUTH_APPROVED_DEPOSIT("SMS_506135030", "闂ㄥ簵绔�-瀹℃牳閫氳繃闇�缂寸撼鎶奸噾", "鎭枩鎮紒鎮ㄧ殑闂ㄥ簵\"{storeName}\"宸查�氳繃鍒濇瀹℃牳銆傝鏀粯鎶奸噾{money}鍏冧互瀹屾垚鍏ラ┗锛屾敮浠樺悗鍗冲彲鐧诲綍闂ㄥ簵鍚庡彴姝e紡鎺ュ崟銆�", true),
+ SHOP_AUTH_SUCCESS("SMS_505885083", "闂ㄥ簵绔�-鎴愬姛鍏ラ┗閫氱煡", "鎭枩鎮紒鎮ㄧ殑闂ㄥ簵\"{storeName}\"宸查�氳繃骞冲彴瀹℃牳锛屾寮忓叆椹绘垚鍔熴�� 鎮ㄥ彲鐧诲綍鍟嗗鍚庡彴寮�濮嬫帴鍗曪紝璐﹀彿锛氭敞鍐屾墜鏈哄彿锛屽垵濮嬪瘑鐮侊細锛歿password}锛堝缓璁娆$櫥褰曞悗淇敼锛夈��", true),
+ MEMBER_TIME_OUT("SMS_506190182", "浼氬憳绔�-鍗冲皢瓒呮椂", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}鍗冲皢鍒拌揪棰勮鍙栦欢鏃堕棿锛岃灏藉揩鍙栦欢锛岃秴鏃跺皢浜х敓閫炬湡璐圭敤锛岃鐭ユ倝銆�", true),
;
private final String templateCode;
private final String title;
private final String content;
+ private final boolean enabled;
public String format(String... params) {
String result = this.content;
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/DriverInfo.java b/server/services/src/main/java/com/doumee/dao/business/model/DriverInfo.java
index c656970..abecd83 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/DriverInfo.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/DriverInfo.java
@@ -240,4 +240,10 @@
@ApiModelProperty(value = "鏋佸厜鎺ㄩ�佸埆鍚�")
private String jpushAlias;
+ @ApiModelProperty(value = "鍙告満鐗堟湰绫诲瀷锛�0=姝e紡鐗堟湰锛�1=鍙樻洿鐗堟湰", example = "0")
+ private Integer versionType;
+
+ @ApiModelProperty(value = "鍏宠仈姝e紡鐗堟湰鍙告満涓婚敭锛堝彉鏇寸増鏈娇鐢級", example = "1")
+ private Integer relationDriverId;
+
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Member.java b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
index 8e11bf3..296eac4 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
@@ -128,6 +128,9 @@
@ApiModelProperty(value = "鐢ㄦ埛绫诲瀷锛�0=浼氬憳鐢ㄦ埛锛�1=鍙告満锛�2=搴楅摵浜哄憳锛�(鍙告満涓庡簵閾哄潎鍜屼細鍛樿〃浣跨敤鍚屼富閿��)", example = "1")
private Integer userType;
+ @ApiModelProperty(value = "宸茬櫥褰曠殑闂ㄥ簵涓婚敭", example = "1")
+ private Integer loginShopId;
+
@ApiModelProperty(value = "涓氬姟鐘舵�侊細0=鏈璇侊紱1=璁よ瘉閫氳繃锛�2=璁よ瘉鏈�氳繃 锛�3=宸叉敮浠樻娂閲�", example = "1")
private Integer businessStatus;
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Orders.java b/server/services/src/main/java/com/doumee/dao/business/model/Orders.java
index eb14c99..ad38d6f 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Orders.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Orders.java
@@ -371,12 +371,12 @@
@TableField(exist = false)
@ApiModelProperty(value = "鍒涘缓寮�濮嬫椂闂�(鏌ヨ鐢�)", example = "2026-01-01 00:00:00")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private Date createStartTime;
@TableField(exist = false)
@ApiModelProperty(value = "鍒涘缓缁撴潫鏃堕棿(鏌ヨ鐢�)", example = "2026-12-31 23:59:59")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private Date createEndTime;
@TableField(exist = false)
@@ -448,6 +448,12 @@
private Integer shopId;
+ @ApiModelProperty(value = "搴楅摵璁㈠崟搴忓彿")
+ private Long autoNum;
+
+ @ApiModelProperty(value = "鍙栦欢鏃堕棿鍗冲皢鍒拌揪閫氱煡鐘舵�侊細0=鏈�氱煡锛�1=宸查�氱煡")
+ private Integer pickUpNotifyStatus;
+
@ApiModelProperty(value = "搴忓彿")
@TableField(exist = false)
private Integer sortNum;
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java b/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java
index b93c060..599ddb8 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java
@@ -189,6 +189,24 @@
@ApiModelProperty(value = "鑺儴浜戞墦鍗版満SN缂栧彿")
private String printerSn;
+ @ApiModelProperty(value = "鏀剁泭姣斾緥閰嶇疆(JSON)", notes = "{\n" +
+ " \"localDeposit\": 5,\n" +
+ " \"remoteDeposit\": 5,\n" +
+ " \"remoteTake\": 5\n" +
+ "}")
+ private String revenueShareConfig;
+
+ @ApiModelProperty(value = "闂ㄥ簵鐗堟湰绫诲瀷锛�0=姝e紡鐗堟湰锛�1=鍙樻洿鐗堟湰", example = "0")
+ private Integer versionType;
+
+ @ApiModelProperty(value = "鍏宠仈姝e紡鐗堟湰闂ㄥ簵涓婚敭锛堝彉鏇寸増鏈娇鐢級", example = "1")
+ private Integer relationShopId;
+
+
+ @ApiModelProperty(value = "褰撳墠鐧诲綍鐨勪細鍛樹富閿�", hidden = true)
+ @TableField(exist = false)
+ private Integer memberId;
+
// 闈炴寔涔呭寲锛氶檮浠跺垪琛�
@TableField(exist = false)
diff --git a/server/services/src/main/java/com/doumee/dao/dto/DriverActiveOrderDTO.java b/server/services/src/main/java/com/doumee/dao/dto/DriverActiveOrderDTO.java
index 4b6bbe9..8c2ce57 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/DriverActiveOrderDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/DriverActiveOrderDTO.java
@@ -19,4 +19,7 @@
@ApiModelProperty(value = "璁㈠崟鐘舵�侊細3=宸叉姠鍗曪紱4=娲鹃�佷腑", example = "3", required = true)
private Integer status;
+ @ApiModelProperty(value = "鎼滅储鍏抽敭璇嶏紙鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯�/璁㈠崟鍙风簿鍑嗭級")
+ private String keyword;
+
}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/MyOrderDTO.java b/server/services/src/main/java/com/doumee/dao/dto/MyOrderDTO.java
index fafc9ad..8bd533b 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/MyOrderDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/MyOrderDTO.java
@@ -21,4 +21,7 @@
@ApiModelProperty(value = "鍚堝苟鐘舵�侊紙鍙�夛紝涓嶄紶鏌ュ叏閮級: 0=寰呮敮浠� 1=寰呮牳楠� 2=寰呴厤閫� 3=寰呮敹璐� 4=宸插畬鎴� 5=閫�娆� 6浼氬憳棣栭〉 7闂ㄥ簵寰呭鐞嗚鍗�", example = "0")
private Integer combinedStatus;
+ @ApiModelProperty(value = "鎼滅储鍏抽敭璇嶏紙鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯�/璁㈠崟鍙风簿鍑嗭級")
+ private String keyword;
+
}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java b/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java
index 52d541d..a61acef 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/OperationConfigDTO.java
@@ -46,4 +46,10 @@
@ApiModelProperty(value = "榛樿閰嶉�佽寖鍥�(km)", required = true)
private String defaultDeliveryRange;
+ @ApiModelProperty(value = "鍗冲皢鍒拌揪鍙栦欢鏃堕棿鎻愬墠閫氱煡(鍒嗛挓)", required = true)
+ private String arrivalPickUpTime;
+
+ @ApiModelProperty(value = "鍏佽鎿嶄綔鍗婂緞(m)", required = true)
+ private String operationRadius;
+
}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/RevenueShareItemDTO.java b/server/services/src/main/java/com/doumee/dao/dto/RevenueShareItemDTO.java
index a06536b..d107fc0 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/RevenueShareItemDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/RevenueShareItemDTO.java
@@ -16,7 +16,7 @@
@ApiModel("鍒嗘垚姣斾緥瑙勫垯椤�")
public class RevenueShareItemDTO implements Serializable {
- @ApiModelProperty(value = "绫诲瀷(0=浼佷笟瀵�, 1=涓汉瀵�, 2=浼佷笟鍙�, 3=涓汉鍙�, 4=閰嶉�佸憳)", required = true, example = "0")
+ @ApiModelProperty(value = "绫诲瀷(0=寮傚湴浼佷笟瀵�, 1=寮傚湴涓汉瀵�, 2=寮傚湴浼佷笟鍙�, 3=寮傚湴涓汉鍙�, 4=閰嶉�佸憳, 5=灏卞湴浼佷笟瀛�, 6=灏卞湴涓汉瀛�)", required = true, example = "0")
@NotNull(message = "绫诲瀷涓嶈兘涓虹┖")
private Integer fieldType;
diff --git a/server/services/src/main/java/com/doumee/dao/dto/RevenueShareSaveDTO.java b/server/services/src/main/java/com/doumee/dao/dto/RevenueShareSaveDTO.java
index b34bfb2..31b2f3b 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/RevenueShareSaveDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/RevenueShareSaveDTO.java
@@ -23,7 +23,7 @@
@NotNull(message = "鍩庡競涓婚敭涓嶈兘涓虹┖")
private Integer cityId;
- @ApiModelProperty(value = "瑙勫垯鏄庣粏鍒楄〃(浼佷笟瀵�/涓汉瀵�/浼佷笟鍙�/涓汉鍙�/閰嶉�佸憳鍏�5鏉�)", required = true)
+ @ApiModelProperty(value = "瑙勫垯鏄庣粏鍒楄〃(寮傚湴浼佷笟瀵�/寮傚湴涓汉瀵�/寮傚湴浼佷笟鍙�/寮傚湴涓汉鍙�/閰嶉�佸憳/灏卞湴浼佷笟瀛�/灏卞湴涓汉瀛樺叡7鏉�)", required = true)
@NotEmpty(message = "瑙勫垯鏄庣粏涓嶈兘涓虹┖")
@Valid
private List<RevenueShareItemDTO> items;
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java
index a3d8b58..d36e7fc 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java
@@ -111,4 +111,13 @@
@ApiModelProperty(value = "鏀粯瀹濆疄鍚嶅鍚�", required = true)
@NotBlank(message = "鏀粯瀹濆疄鍚嶅鍚嶄笉鑳戒负绌�")
private String aliName;
+
+ @ApiModelProperty(value = "灏卞湴瀵勫瓨鍒嗘垚鍗犳瘮(%)", required = true, example = "5.5")
+ private Double localDeposit;
+
+ @ApiModelProperty(value = "寮傚湴瀛樹欢鍒嗘垚鍗犳瘮(%)", required = true, example = "5.5")
+ private Double remoteDeposit;
+
+ @ApiModelProperty(value = "寮傚湴鍙栦欢鍒嗘垚鍗犳瘮(%)", required = true, example = "5.5")
+ private Double remoteTake;
}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ShopLoginDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ShopLoginDTO.java
index 0692f05..833ef7b 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/ShopLoginDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/ShopLoginDTO.java
@@ -8,8 +8,8 @@
@ApiModel("闂ㄥ簵鐧诲綍璇锋眰瀵硅薄")
public class ShopLoginDTO {
- @ApiModelProperty(value = "openid")
- private String openid;
+ @ApiModelProperty(value = "浼氬憳涓婚敭")
+ private Integer memberId;
@ApiModelProperty(value = "鐧诲綍鎵嬫満鍙�")
private String telephone;
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java
index 079e950..c373464 100644
--- a/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java
@@ -118,4 +118,16 @@
@NotBlank(message = "鏀粯瀹濆疄鍚嶅鍚嶄笉鑳戒负绌�")
private String aliName;
+ @ApiModelProperty(value = "灏卞湴瀵勫瓨鍒嗘垚鍗犳瘮(%)", required = true, example = "5.5")
+ @NotNull(message = "灏卞湴瀵勫瓨鍒嗘垚鍗犳瘮涓嶈兘涓虹┖")
+ private Double localDeposit;
+
+ @ApiModelProperty(value = "寮傚湴瀛樹欢鍒嗘垚鍗犳瘮(%)", required = true, example = "5.5")
+ @NotNull(message = "寮傚湴瀛樹欢鍒嗘垚鍗犳瘮涓嶈兘涓虹┖")
+ private Double remoteDeposit;
+
+ @ApiModelProperty(value = "寮傚湴鍙栦欢鍒嗘垚鍗犳瘮(%)", required = true, example = "5.5")
+ @NotNull(message = "寮傚湴鍙栦欢鍒嗘垚鍗犳瘮涓嶈兘涓虹┖")
+ private Double remoteTake;
+
}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java b/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java
index 0c6f6af..783e31e 100644
--- a/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java
+++ b/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java
@@ -61,4 +61,7 @@
@ApiModelProperty(value = "绂佸瘎鐗╁搧")
private String prohibitedItems;
+
+ @ApiModelProperty(value = "鏈嶅姟鐢佃瘽")
+ private String serverPhone;
}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/RevenueShareVO.java b/server/services/src/main/java/com/doumee/dao/vo/RevenueShareVO.java
index e97a584..f15b618 100644
--- a/server/services/src/main/java/com/doumee/dao/vo/RevenueShareVO.java
+++ b/server/services/src/main/java/com/doumee/dao/vo/RevenueShareVO.java
@@ -21,7 +21,7 @@
@ApiModelProperty(value = "鍩庡競涓婚敭")
private Integer cityId;
- @ApiModelProperty(value = "绫诲瀷(0=浼佷笟瀵�, 1=涓汉瀵�, 2=浼佷笟鍙�, 3=涓汉鍙�, 4=閰嶉�佸憳)")
+ @ApiModelProperty(value = "绫诲瀷(0=寮傚湴浼佷笟瀵�, 1=寮傚湴涓汉瀵�, 2=寮傚湴浼佷笟鍙�, 3=寮傚湴涓汉鍙�, 4=閰嶉�佸憳, 5=灏卞湴浼佷笟瀛�, 6=灏卞湴涓汉瀛�)")
private Integer fieldType;
@ApiModelProperty(value = "绫诲瀷鍚嶇О")
diff --git a/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java b/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java
index 12f7721..f67e6d0 100644
--- a/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java
+++ b/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java
@@ -127,6 +127,9 @@
@ApiModelProperty(value = "闂ㄥ簵璇勫垎")
private BigDecimal score;
+ @ApiModelProperty(value = "閰嶉�佽窛绂�")
+ private BigDecimal deliveryRange;
+
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
private Date createTime;
@@ -172,4 +175,19 @@
@ApiModelProperty(value = "闂ㄥ簵澶村儚锛堝叏璺緞锛�")
private String shopAvatar;
+
+ @ApiModelProperty(value = "灏卞湴瀵勫瓨鍒嗘垚鍗犳瘮(%)", example = "5.5")
+ private Double localDeposit;
+
+ @ApiModelProperty(value = "寮傚湴瀛樹欢鍒嗘垚鍗犳瘮(%)", example = "5.5")
+ private Double remoteDeposit;
+
+ @ApiModelProperty(value = "寮傚湴鍙栦欢鍒嗘垚鍗犳瘮(%)", example = "5.5")
+ private Double remoteTake;
+
+ @ApiModelProperty(value = "闂ㄥ簵鐗堟湰绫诲瀷锛�0=姝e紡鐗堟湰锛�1=鍙樻洿鐗堟湰", example = "0")
+ private Integer versionType;
+
+ @ApiModelProperty(value = "鍏宠仈姝e紡鐗堟湰闂ㄥ簵涓婚敭")
+ private Integer relationShopId;
}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/UserCenterVO.java b/server/services/src/main/java/com/doumee/dao/vo/UserCenterVO.java
index 63ff222..d6cdc3c 100644
--- a/server/services/src/main/java/com/doumee/dao/vo/UserCenterVO.java
+++ b/server/services/src/main/java/com/doumee/dao/vo/UserCenterVO.java
@@ -45,7 +45,7 @@
@ApiModelProperty(value = "鎴戞敞鍐岀殑闂ㄥ簵涓婚敭锛堥棬搴楃敤鎴锋椂杩斿洖锛�")
private Integer shopId;
- @ApiModelProperty(value = "鎴戞敞鍐岀殑闂ㄥ簵瀹℃牳鐘舵�侊紙闂ㄥ簵鐢ㄦ埛鏃惰繑鍥烇級: 0=寰呭鏍� 1=宸查�氳繃 2=宸查┏鍥� 3=宸茬即绾充繚璇侀噾")
+ @ApiModelProperty(value = "鎴戞敞鍐岀殑闂ㄥ簵瀹℃牳鐘舵��: 0=寰呭鎵� 1=宸查�氳繃 2=宸查┏鍥� 3=宸叉敮浠樻娂閲� 4=鍙樻洿涓� 5=鍙樻洿鏈�氳繃")
private Integer shopAuditStatus;
@ApiModelProperty(value = "鎴戝綋鍓嶇粦瀹氱殑闂ㄥ簵")
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 5c45c70..9d57477 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
@@ -14,6 +14,7 @@
import com.doumee.dao.dto.UpdMobileRequest;
import com.doumee.dao.dto.WxPhoneRequest;
import com.doumee.dao.vo.AccountResponse;
+import com.doumee.dao.vo.MemberContactVO;
import com.doumee.dao.vo.MemberDetailVO;
import com.doumee.dao.vo.MemberListVO;
import com.doumee.dao.vo.PlatformAboutVO;
@@ -153,6 +154,8 @@
void logOff(String token,Integer memberId);
+ MemberContactVO getContactInfo(Integer memberId);
+
/**
* 楠岃瘉鎵嬫満鍙�
diff --git a/server/services/src/main/java/com/doumee/service/business/OrdersService.java b/server/services/src/main/java/com/doumee/service/business/OrdersService.java
index d990ee3..faf1a71 100644
--- a/server/services/src/main/java/com/doumee/service/business/OrdersService.java
+++ b/server/services/src/main/java/com/doumee/service/business/OrdersService.java
@@ -431,4 +431,21 @@
*/
void printOrderLabel(Integer orderId, Integer shopId);
+ /**
+ * 鍗冲皢鍒拌揪鍙栦欢鏃堕棿閫氱煡
+ * @return 閫氱煡鏁伴噺
+ */
+ int notifyArrivalPickUp();
+
+ /**
+ * 鏍¢獙鎿嶄綔鍗婂緞
+ * @param orderId 璁㈠崟涓婚敭
+ * @param userId 鎿嶄綔鐢ㄦ埛涓婚敭
+ * @param userType 鐢ㄦ埛绫诲瀷锛�0=闂ㄥ簵锛�1=鍙告満
+ * @param lng 鎿嶄綔浜虹粡搴�
+ * @param lat 鎿嶄綔浜虹含搴�
+ * @return true=鍦ㄥ厑璁告搷浣滆寖鍥村唴锛沠alse=瓒呭嚭鍏佽鎿嶄綔鑼冨洿
+ */
+ Boolean checkOperationRadius(Integer orderId, Integer userId, Integer userType, Double lng, Double lat);
+
}
\ No newline at end of file
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
index 3ef3ae7..8c8d14b 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
@@ -300,7 +300,9 @@
String code = RandomStringUtils.randomNumeric(6);
// 鍙戦�佺煭淇�
String templateParam = "{\"code\":\"" + code + "\"}";
- AliSmsService.sendSms(telephone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam);
+ if (Constants.SmsNotify.VERIFY_CODE.isEnabled()) {
+ AliSmsService.sendSms(telephone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam);
+ }
// 淇濆瓨鐭俊璁板綍
Smsrecord smsrecord = new Smsrecord();
smsrecord.setDeleted(Constants.ZERO);
@@ -406,6 +408,7 @@
driverInfo.setMemberId(member.getId());
driverInfo.setStatus(Constants.ZERO);
driverInfo.setAuditStatus(99);
+ driverInfo.setVersionType(Constants.ZERO);
driverInfo.setJpushAlias(org.springframework.util.DigestUtils.md5DigestAsHex(telephone.getBytes()));
driverInfoMapper.insert(driverInfo);
}
@@ -1143,6 +1146,13 @@
.eq(Objects.nonNull(dto.getStatus()),Orders::getStatus, dto.getStatus())
.eq(Orders::getDeleted, Constants.ZERO)
.orderByAsc(Orders::getAcceptTime);
+ // 鍏抽敭璇嶆悳绱細鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯娿�佽鍗曞彿绮惧噯
+ if (StringUtils.isNotBlank(dto.getKeyword())) {
+ String kw = dto.getKeyword().trim();
+ wrapper.and(w -> w.like(Orders::getTakeUser, kw)
+ .or().like(Orders::getTakePhone, kw)
+ .or().eq(Orders::getCode, kw));
+ }
List<Orders> ordersList = ordersMapper.selectJoinList(Orders.class, wrapper);
@@ -1876,6 +1886,9 @@
if (StringUtils.isBlank(phone)) {
return;
}
+ if (!smsNotify.isEnabled()) {
+ return;
+ }
String content = smsNotify.format(paramPairs);
try {
JSONObject templateParam = new JSONObject();
@@ -1996,7 +2009,7 @@
.select("s1.name", Orders::getDepositShopName)
.select("s1.address", Orders::getDepositShopAddress)
.select("s2.name", Orders::getTakeShopName)
- .select("s2.address", Orders::getDepositShopAddress)
+ .select("s2.address", Orders::getTakeShopAddress)
.select("s1.link_phone as takeShopLinkPhone")
.select("s2.link_phone as takeShopLinkPhone")
.select("c2.other_field as c2OtherField")
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 1d4bd15..d7fe3f3 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
@@ -25,6 +25,7 @@
import com.doumee.dao.dto.UpdMobileRequest;
import com.doumee.dao.dto.WxPhoneRequest;
import com.doumee.dao.vo.AccountResponse;
+import com.doumee.dao.vo.MemberContactVO;
import com.doumee.dao.vo.MemberDetailVO;
import com.doumee.dao.vo.MemberListVO;
import com.doumee.dao.vo.PlatformAboutVO;
@@ -353,13 +354,40 @@
* 闂ㄥ簵鐢ㄦ埛韬唤鏃讹紝濉厖闂ㄥ簵瀹℃牳鐘舵��
*/
private void fillShopInfo(UserCenterVO userCenterVO, Member member) {
- ShopInfo shopInfo = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ // 鏌ヨ姝e紡鐗堟湰闂ㄥ簵
+ ShopInfo official = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
.eq(ShopInfo::getRegionMemberId, member.getId())
+ .eq(ShopInfo::getVersionType, Constants.ZERO)
.eq(ShopInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
- if (shopInfo != null) {
- userCenterVO.setShopId(shopInfo.getId());
- userCenterVO.setShopAuditStatus(shopInfo.getAuditStatus());
+ if (official != null) {
+ userCenterVO.setShopId(official.getId());
+ if (Constants.equalsInteger(official.getAuditStatus(), Constants.THREE)) {
+ // 姝e紡鐗堟湰宸叉敮浠樻娂閲戯紝鏌ヨ鏈�鏂板彉鏇寸増鏈姸鎬�
+ ShopInfo changeVersion = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ .eq(ShopInfo::getRelationShopId, official.getId())
+ .eq(ShopInfo::getVersionType, Constants.ONE)
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .orderByDesc(ShopInfo::getCreateTime)
+ .last("limit 1"));
+ if (changeVersion != null) {
+ if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.THREE)) {
+ userCenterVO.setShopAuditStatus(Constants.THREE);
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.ZERO)) {
+ userCenterVO.setShopAuditStatus(4); // 鍙樻洿涓�
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.TWO)) {
+ userCenterVO.setShopAuditStatus(5); // 鍙樻洿鏈�氳繃
+ } else {
+ userCenterVO.setShopAuditStatus(Constants.THREE);
+ }
+ } else {
+ // 鏃犲彉鏇寸増鏈紝淇濇寔姝e紡鐗堟湰鐘舵��
+ userCenterVO.setShopAuditStatus(Constants.THREE);
+ }
+ } else {
+ // 姝e紡鐗堟湰鏈敮浠樻娂閲戯紝鐩存帴杩斿洖褰撳墠鐘舵��
+ userCenterVO.setShopAuditStatus(official.getAuditStatus());
+ }
}
// 鏍规嵁openid鏌ヨ褰撳墠缁戝畾鐨勯棬搴�
if (StringUtils.isNotBlank(member.getOpenid())) {
@@ -458,6 +486,7 @@
vo.setDriverPrivacyPolicy(getDictValue(Constants.DRIVER_PRIVACY_POLICY));
vo.setPriceDescription(getDictValue(Constants.PRICE_DESCRIPTION));
vo.setProhibitedItems(getDictValue(Constants.PROHIBITED_ITEMS));
+ vo.setServerPhone(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.SERVER_PHONE).getCode()));
return vo;
}
@@ -473,8 +502,14 @@
public void logOut(String token,Integer userId,Integer userType){
if(Constants.equalsInteger(userType,Constants.ZERO)){
memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,userId));
- }else if(Constants.equalsInteger(userType,Constants.TWO)){
- shopInfoMapper.update(new UpdateWrapper<ShopInfo>().lambda().setSql(" openid = null ").eq(ShopInfo::getId,userId));
+ }else if (Constants.equalsInteger(userType,Constants.TWO)){
+ try {
+ Integer lastIndex = token.lastIndexOf("_")+1;
+ Integer tokenId = Integer.valueOf(token.substring(lastIndex));
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" LOGIN_SHOP_ID = null ").eq(Member::getId,tokenId));
+ }catch (Exception e){
+
+ }
}
jwtTokenUtil.logout(token);
}
@@ -493,6 +528,31 @@
redisTemplate.delete(token);
}
+ @Override
+ public MemberContactVO getContactInfo(Integer memberId) {
+ MemberContactVO vo = new MemberContactVO();
+ // 浼樺厛浠庡巻鍙茶鍗曞彇鏀朵欢浜轰俊鎭�
+ Orders lastOrder = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getMemberId, memberId)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .isNotNull(Orders::getTakeUser)
+ .ne(Orders::getTakeUser, "")
+ .orderByDesc(Orders::getId)
+ .last("limit 1"));
+ if (lastOrder != null && StringUtils.isNotBlank(lastOrder.getTakeUser())) {
+ vo.setName(lastOrder.getTakeUser());
+ vo.setPhone(lastOrder.getTakePhone());
+ return vo;
+ }
+ // 鍙栫敤鎴蜂俊鎭�
+ Member member = memberMapper.selectById(memberId);
+ if (member != null) {
+ vo.setName(member.getName() != null ? member.getName() : "");
+ vo.setPhone(member.getTelephone() != null ? member.getTelephone() : "");
+ }
+ return vo;
+ }
+
/***************绠$悊绔細鍛樺垪琛ㄦ帴鍙�*************/
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersRefundServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersRefundServiceImpl.java
index de00b2b..e751eea 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersRefundServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersRefundServiceImpl.java
@@ -173,7 +173,7 @@
wrapper.ge(OrdersRefund::getCreateTime, model.getCreateStartTime());
}
if (model.getCreateEndTime() != null) {
- wrapper.le(OrdersRefund::getCreateTime, model.getCreateEndTime());
+ wrapper.le(OrdersRefund::getCreateTime, Utils.Date.getEnd(model.getCreateEndTime()));
}
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
index e5e9a24..13217de 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -21,6 +21,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.GeoUtils;
import com.doumee.core.utils.ID;
import com.doumee.core.utils.geocode.MapUtil;
import com.doumee.core.utils.Utils;
@@ -237,7 +238,7 @@
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTakeShopName()), "s2.name", pageWrap.getModel().getTakeShopName());
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsInfo()), Orders::getGoodsInfo, pageWrap.getModel().getGoodsInfo());
queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateStartTime());
- queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateEndTime());
+ queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
queryWrapper.eq(pageWrap.getModel().getDepositShopId() != null, Orders::getDepositShopId, pageWrap.getModel().getDepositShopId());
queryWrapper.eq(pageWrap.getModel().getType() != null, Orders::getType, pageWrap.getModel().getType());
queryWrapper.eq(pageWrap.getModel().getStatus() != null, Orders::getStatus, pageWrap.getModel().getStatus());
@@ -254,6 +255,9 @@
if (o.getStatus() != null) {
Constants.OrderStatus os = Constants.OrderStatus.getByKey(o.getStatus());
o.setStatusDesc(os != null ? os.getValue() : "");
+ }
+ if(Constants.equalsInteger(o.getIsUrgent(),Constants.ZERO)){
+ o.setUrgentAmount(Constants.ZERO.longValue());
}
}
return pageData;
@@ -504,6 +508,7 @@
// 3. 閫愰」璁$畻杩愯垂锛氳捣姝ヤ环 + 瓒呭嚭閮ㄥ垎闃舵浠�
List<ItemPriceVO> itemList = new ArrayList<>();
long itemPriceTotal = 0L;
+ long maxExtraFeeTotal = 0L; // 鏈�澶ц秴鍑鸿窛绂昏垂鐢紙鍗曚环脳鏁伴噺锛�
for (OrderItemDTO item : dto.getItems()) {
PricingRule rule = ruleMap.get(String.valueOf(item.getCategoryId()));
@@ -519,13 +524,15 @@
long extraPricePerUnit = Long.parseLong(rule.getFieldE());
// 闃舵璁′环锛氳窛绂� 鈮� 璧锋璺濈鍙栬捣姝ヤ环锛岃秴鍑烘寜 ceil(瓒呭嚭璺濈/鍗曚綅) 脳 鍗曚环绱姞
+ long extraFee = 0L;
long unitPrice;
if (distanceKm.compareTo(startDistance) <= 0) {
unitPrice = startPrice;
} else {
BigDecimal extraKm = distanceKm.subtract(startDistance);
BigDecimal extraCount = extraKm.divide(extraDistanceUnit, 0, RoundingMode.CEILING);
- unitPrice = startPrice + extraCount.longValue() * extraPricePerUnit;
+ extraFee = extraCount.longValue() * extraPricePerUnit;
+ unitPrice = startPrice + extraFee;
}
long subtotal = unitPrice * item.getQuantity();
@@ -548,8 +555,17 @@
vo.setExtraPrice(extraPricePerUnit);
itemList.add(vo);
- itemPriceTotal += subtotal;
+ // 鎵�鏈夌墿鍝佺殑璧锋浠访楁暟閲� 绱姞
+ itemPriceTotal += startPrice * item.getQuantity();
+ // 璁板綍鏈�澶х殑瓒呭嚭璺濈璐圭敤
+ long extraFeeTotal = extraFee * item.getQuantity();
+ if (extraFeeTotal > maxExtraFeeTotal) {
+ maxExtraFeeTotal = extraFeeTotal;
+ }
}
+
+ // 澶氱墿鍝佹椂鍙姞鏈�澶х殑瓒呭嚭璺濈璐圭敤
+ itemPriceTotal += maxExtraFeeTotal;
// 4. 淇濅环璐圭敤锛氭姤浠烽噾棰� 脳 淇濅环璐圭巼(瀛楀吀 INSURANCE_RATE)锛屽厓鈫掑垎锛堜繚浠烽噾棰�>0鏃惰璐癸級
long insuranceFeeFen = 0L;
@@ -1432,20 +1448,31 @@
return;
}
Integer cityId = Integer.valueOf(orders.getCityId());
+ boolean isRemote = Constants.equalsInteger(orders.getType(), Constants.ONE);
+ boolean isCompany = Constants.equalsInteger(depositShop.getCompanyType(), Constants.ONE);
- // 鍙告満鍗犳瘮锛歠ieldA=4锛堥厤閫佸憳锛�
+ // 鍙告満鍗犳瘮锛歠ieldA=4锛堥厤閫佸憳锛夛紝濮嬬粓浠庡煄甯傞厤缃彇
BigDecimal driverRata = getRevenueShareRata(cityId, Constants.FOUR);
- // 瀵勪欢闂ㄥ簵鍗犳瘮锛歠ieldA=0(浼佷笟瀵�)/1(涓汉瀵�)
- int depositFieldA = Constants.equalsInteger(depositShop.getCompanyType(), Constants.ONE) ? Constants.ZERO : Constants.ONE;
- BigDecimal depositShopRata = getRevenueShareRata(cityId, depositFieldA);
- // 鍙栦欢闂ㄥ簵鍗犳瘮锛氭棤鍙栦欢闂ㄥ簵鏃舵瘮渚嬩负0
- BigDecimal takeShopRata = BigDecimal.ZERO;
- if (takeShop != null) {
- int takeFieldA = Constants.equalsInteger(takeShop.getCompanyType(), Constants.ONE) ? Constants.TWO : Constants.THREE;
- takeShopRata = getRevenueShareRata(cityId, takeFieldA);
+
+ // 瀛樹欢闂ㄥ簵鍗犳瘮
+ BigDecimal depositShopRata;
+ if (isRemote) {
+ int fallbackFieldA = isCompany ? Constants.ZERO : Constants.ONE;
+ depositShopRata = getShopRevenueShare(depositShop, "remoteDeposit", cityId, fallbackFieldA);
+ } else {
+ int fallbackFieldA = isCompany ? Constants.FIVE : Constants.SIX;
+ depositShopRata = getShopRevenueShare(depositShop, "localDeposit", cityId, fallbackFieldA);
}
- // 璁$畻钖叕锛堝垎锛夛細totalAmount 涓哄垎锛宺ata 涓烘瘮渚嬪�硷紙濡� 0.15 琛ㄧず 15%锛�
+ // 鍙栦欢闂ㄥ簵鍗犳瘮
+ BigDecimal takeShopRata = BigDecimal.ZERO;
+ if (isRemote && takeShop != null) {
+ boolean takeIsCompany = Constants.equalsInteger(takeShop.getCompanyType(), Constants.ONE);
+ int fallbackFieldA = takeIsCompany ? Constants.TWO : Constants.THREE;
+ takeShopRata = getShopRevenueShare(takeShop, "remoteTake", cityId, fallbackFieldA);
+ }
+
+ // 璁$畻钖叕锛堝垎锛�
long driverFee = new BigDecimal(totalAmount).multiply(driverRata).longValue();
long depositShopFee = new BigDecimal(totalAmount).multiply(depositShopRata).longValue();
long takeShopFee = new BigDecimal(totalAmount).multiply(takeShopRata).longValue();
@@ -1462,7 +1489,7 @@
* 浠� pricing_rule 琛ㄨ幏鍙栧垎鎴愭瘮渚嬶紙type=4锛�
*
* @param cityId 鍩庡競涓婚敭
- * @param fieldA 绫诲瀷锛�0=浼佷笟瀵�, 1=涓汉瀵�, 2=浼佷笟鍙�, 3=涓汉鍙�, 4=閰嶉�佸憳
+ * @param fieldA 绫诲瀷锛�0=寮傚湴浼佷笟瀵�, 1=寮傚湴涓汉瀵�, 2=寮傚湴浼佷笟鍙�, 3=寮傚湴涓汉鍙�, 4=閰嶉�佸憳, 5=灏卞湴浼佷笟瀛�, 6=灏卞湴涓汉瀛�
* @return 鍒嗘垚姣斾緥锛堝 0.15 琛ㄧず 15%锛�
*/
private BigDecimal getRevenueShareRata(Integer cityId, int fieldA) {
@@ -1473,10 +1500,35 @@
.eq(PricingRule::getFieldA, String.valueOf(fieldA))
.last("limit 1"));
if (rule != null && StringUtils.isNotBlank(rule.getFieldB())) {
- // fieldB 瀛樺偍鐨勬槸鐧惧垎姣旀暣鏁帮紙濡�15琛ㄧず15%锛夛紝杞崲涓哄皬鏁版瘮渚嬶紙0.15锛�
+ // fieldB 瀛樺偍鐨勬槸鐧惧垎姣旀暟瀛楋紙濡�15琛ㄧず15%锛夛紝杞崲涓哄皬鏁版瘮渚嬶紙0.15锛�
return new BigDecimal(rule.getFieldB()).divide(new BigDecimal("100"), 4, BigDecimal.ROUND_HALF_UP);
}
return BigDecimal.ZERO;
+ }
+
+ /**
+ * 鑾峰彇闂ㄥ簵鏀剁泭鍗犳瘮锛氫紭鍏堜粠闂ㄥ簵 revenueShareConfig 鍙栵紝鏃犲垯鍏滃簳鍩庡競 pricing_rule
+ *
+ * @param shop 闂ㄥ簵淇℃伅
+ * @param jsonKey revenueShareConfig 涓殑閿悕
+ * @param cityId 鍩庡競涓婚敭锛堝厹搴曠敤锛�
+ * @param fallbackFieldA 鍏滃簳 pricing_rule fieldA 鍊�
+ * @return 鍒嗘垚姣斾緥
+ */
+ private BigDecimal getShopRevenueShare(ShopInfo shop, String jsonKey, Integer cityId, int fallbackFieldA) {
+ if (shop != null && StringUtils.isNotBlank(shop.getRevenueShareConfig())) {
+ try {
+ JSONObject config = JSONObject.parseObject(shop.getRevenueShareConfig());
+ if (config != null && config.containsKey(jsonKey)) {
+ Double value = config.getDouble(jsonKey);
+ if (value != null) {
+ return new BigDecimal(value).divide(new BigDecimal("100"), 4, BigDecimal.ROUND_HALF_UP);
+ }
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ return getRevenueShareRata(cityId, fallbackFieldA);
}
@Override
@@ -1516,6 +1568,13 @@
.eq(status != null, Orders::getStatus, status)
.in(statusList != null, Orders::getStatus, statusList)
.orderByDesc(Orders::getCreateTime);
+ // 鍏抽敭璇嶆悳绱細鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯娿�佽鍗曞彿绮惧噯
+ if (model != null && StringUtils.isNotBlank(model.getKeyword())) {
+ String kw = model.getKeyword().trim();
+ wrapper.and(w -> w.like(Orders::getTakeUser, kw)
+ .or().like(Orders::getTakePhone, kw)
+ .or().eq(Orders::getCode, kw));
+ }
IPage<Orders> orderPage = ordersMapper.selectJoinPage(p, Orders.class, wrapper);
List<MyOrderVO> voList = new ArrayList<>();
@@ -1665,8 +1724,20 @@
}
wrapper.eq(status != null, Orders::getStatus, status)
- .in(statusList != null && !Constants.equalsInteger(combinedStatus, Constants.SEVEN), Orders::getStatus, statusList)
- .orderByDesc(Orders::getId);
+ .in(statusList != null && !Constants.equalsInteger(combinedStatus, Constants.SEVEN), Orders::getStatus, statusList);
+ if(Objects.nonNull(model.getCombinedStatus())&&Constants.equalsInteger(model.getCombinedStatus(),Constants.OrderCombinedStatus.finished.getKey())){
+ wrapper.orderByDesc(Orders::getFinishTime);
+ }else{
+ wrapper.orderByDesc(Orders::getId);
+ }
+ // 鍏抽敭璇嶆悳绱細鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯娿�佽鍗曞彿绮惧噯
+ MyOrderDTO shopModel = pageWrap.getModel();
+ if (shopModel != null && StringUtils.isNotBlank(shopModel.getKeyword())) {
+ String kw = shopModel.getKeyword().trim();
+ wrapper.and(w -> w.like(Orders::getTakeUser, kw)
+ .or().like(Orders::getTakePhone, kw)
+ .or().eq(Orders::getCode, kw));
+ }
IPage<Orders> orderPage = ordersMapper.selectJoinPage(p, Orders.class, wrapper);
List<MyOrderVO> voList = new ArrayList<>();
@@ -2210,6 +2281,14 @@
order.setWxExternalNo(wxTradeNo);
order.setPayAmount(order.getTotalAmount());
order.setUpdateTime(now);
+ // 璁$畻搴楅摵璁㈠崟搴忓彿锛氬綋鍓嶅瓨浠堕棬搴楀綋澶╁凡鏀粯璁㈠崟鏁� + 1
+ Date todayStart = DateUtil.getStartOfDay(now);
+ Long currentCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getDepositShopId, order.getDepositShopId())
+ .eq(Orders::getPayStatus, Constants.ONE)
+ .ge(Orders::getPayTime, todayStart)
+ .eq(Orders::getDeleted, Constants.ZERO));
+ order.setAutoNum(currentCount + 1);
// 鐢熸垚浼氬憳鏍搁攢鐮�
order.setMemberVerifyCode(generateVerifyCode());
// 寮傚湴瀵勫瓨锛氳绠楅璁¢�佽揪鏃堕棿
@@ -2438,26 +2517,37 @@
otherOrders.setUpdateTime(now);
otherOrdersMapper.updateById(otherOrders);
- // 4. 鏌ヨ闂ㄥ簵淇℃伅锛堥�氳繃娉ㄥ唽浼氬憳涓婚敭鍏宠仈锛�
+ // 4. 鏌ヨ鍙樻洿鐗堟湰闂ㄥ簵淇℃伅锛堥�氳繃娉ㄥ唽浼氬憳涓婚敭鍏宠仈锛�
ShopInfo shopInfo = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
.eq(ShopInfo::getRegionMemberId, otherOrders.getMemberId())
.eq(ShopInfo::getDeleted, Constants.ZERO)
+ .eq(ShopInfo::getVersionType, Constants.ONE)
.last("limit 1"));
if (shopInfo == null) {
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "闂ㄥ簵涓嶅瓨鍦�");
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "闂ㄥ簵鍙樻洿璁板綍涓嶅瓨鍦�");
}
- // 5. 鏇存柊闂ㄥ簵鐘舵�侊細宸叉敮浠樻娂閲�
- shopInfo.setAuditStatus(Constants.THREE); // 3=宸叉敮浠樻娂閲�
+ // 5. 鏇存柊鍙樻洿鐗堟湰鏀粯鐘舵��
+ Member member = memberMapper.selectById(otherOrders.getMemberId());
+ shopInfo.setAuditStatus(Constants.THREE);
shopInfo.setPayStatus(Constants.ONE);
shopInfo.setPayTime(now);
shopInfo.setWxExternalNo(wxTradeNo);
shopInfo.setCode(otherOrders.getCode());
- Member member = memberMapper.selectById(otherOrders.getMemberId());
if (member != null) {
shopInfo.setPayMemberOpenId(member.getOpenid());
}
shopInfo.setUpdateTime(now);
shopInfoMapper.updateById(shopInfo);
+
+ // 6. 鍚屾鏇存柊姝e紡鐗堟湰鐘舵�佷负宸叉敮浠樻娂閲�
+ if (shopInfo.getRelationShopId() != null) {
+ ShopInfo officialShop = shopInfoMapper.selectById(shopInfo.getRelationShopId());
+ if (officialShop != null) {
+ officialShop.setAuditStatus(Constants.THREE);
+ officialShop.setUpdateTime(now);
+ shopInfoMapper.updateById(officialShop);
+ }
+ }
// 鐭俊閫氱煡闂ㄥ簵锛氭垚鍔熷叆椹�
String rawPassword = shopInfo.getTelephone() != null && shopInfo.getTelephone().length() >= 6
@@ -2804,6 +2894,10 @@
}
order.setMemberVerifyCode(generateVerifyCode());
ordersMapper.updateById(order);
+ // 瀵勫瓨鏃跺浘鐗囧繀濉�
+ if (images == null || images.isEmpty()) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇蜂笂浼犲瘎瀛樺浘鐗�");
+ }
// 淇濆瓨瀵勫瓨鍥剧墖锛坥bj_type=2 璁㈠崟瀵勫瓨鍥剧墖锛屾渶澶�3寮狅級
saveVerifyImages(order.getId(), images, Constants.FileType.ORDER_DEPOSIT.getKey(), shopId);
// 璁板綍璁㈠崟鏃ュ織
@@ -2841,6 +2935,12 @@
order.setStatus(Constants.OrderStatus.finished.getStatus());
order.setConfirmArriveTime(now);
ordersMapper.updateById(order);
+ // 灏卞湴瀵勫瓨(type=0)鍙栦欢鏃跺浘鐗囦笉蹇呭~锛屽叾浠栫被鍨嬪彇浠跺繀濉�
+ if (!Constants.equalsInteger(order.getType(), Constants.ZERO)) {
+ if (images == null || images.isEmpty()) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇蜂笂浼犲彇浠跺浘鐗�");
+ }
+ }
// 璁㈠崟瀹屾垚锛岄噴鏀炬牳閿�鐮�
String verifyCode = order.getMemberVerifyCode();
if (StringUtils.isNotBlank(verifyCode)) {
@@ -3534,7 +3634,12 @@
return "鍙告満宸插彇浠讹紝姝h繍寰�鐩殑鍦�";
}
if (Constants.equalsInteger(status, Constants.OrderStatus.arrived.getStatus())) {
- return "琛屾潕宸查�佽揪鏈嶅姟鐐癸紝璇峰強鏃跺墠寰�鍙栦欢";
+ if(Constants.equalsInteger(order.getType(),Constants.ZERO)){
+ return "琛屾潕宸插瘎瀛橈紝璇峰嚟鍙栦欢鐮佸墠寰�鎸囧畾闂ㄥ簵鍙栦欢~";
+ }else{
+ return "琛屾潕宸查�佽揪鏈嶅姟鐐癸紝璇峰強鏃跺墠寰�鍙栦欢";
+ }
+
}
if (Constants.equalsInteger(status, Constants.OrderStatus.finished.getStatus())) {
if (Constants.equalsInteger(order.getCommentStatus(), Constants.ONE)) {
@@ -4021,7 +4126,6 @@
"time", String.valueOf(noGrabMinutes));
}
// 鏍囪宸查�氱煡 + 璁板綍閫氱煡鏃堕棿
- order.setPlatformSmsNotified(Constants.ONE);
order.setPlatformSmsNotifiedTime(now);
order.setUpdateTime(now);
ordersMapper.updateById(order);
@@ -4134,6 +4238,9 @@
if (StringUtils.isBlank(phone)) {
return;
}
+ if (!smsNotify.isEnabled()) {
+ return;
+ }
String content = smsNotify.format(paramPairs);
try {
JSONObject templateParam = new JSONObject();
@@ -4200,8 +4307,10 @@
}
}
- //搴忓彿
- String sort = Constants.formatIntegerNum(shopId)+"-"+orders.getId();
+ //搴忓彿锛氬晢閾篒D-鏃ユ湡-鑷闀垮簭鍙凤紙濡� 32-06-001锛�
+ String dateStr = new SimpleDateFormat("dd").format(orders.getPayTime() != null ? orders.getPayTime() : new Date());
+ String autoNumStr = String.format("%03d", orders.getAutoNum() != null ? orders.getAutoNum() : 0);
+ String sort = shopId + "-" + dateStr + "-" + autoNumStr;
// String content = printService.getPrintContent(shop.getName(), detailList, userInfo, orders.getCode(), orders.getRemark(),
String content = printService.getPrintContent(shop.getName(), detailList, userInfo, orders.getCode(), sort,
orders.getTakeLocationRemark(),
@@ -4271,4 +4380,132 @@
JPushUtil.sendByAliases(aliases, title, content, extras);
}
+ @Override
+ public int notifyArrivalPickUp() {
+ String timeStr = operationConfigBiz.getConfig().getArrivalPickUpTime();
+ if (StringUtils.isBlank(timeStr)) {
+ return 0;
+ }
+ int minutes;
+ try {
+ minutes = Integer.parseInt(timeStr);
+ } catch (NumberFormatException e) {
+ log.warn("鍗冲皢鍒拌揪鍙栦欢鏃堕棿閰嶇疆寮傚父: {}", timeStr);
+ return 0;
+ }
+ if (minutes <= 0) {
+ return 0;
+ }
+ // 璁$畻鏃堕棿绐楀彛锛氬綋鍓嶆椂闂� + minutes 灏辨槸"鍗冲皢鍒拌揪"鐨勪复鐣岀偣
+ Date now = new Date();
+ Date threshold = new Date(now.getTime() + (long) minutes * 60 * 1000);
+ // 鏌ヨ锛歴tatus=5銆佹湭閫氱煡銆佸氨鍦板瘎瀛� or 寮傚湴(鏈夊彇浠堕棬搴�)銆侀璁″彇浠舵椂闂村湪 now~threshold 涔嬮棿
+ List<Orders> orders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getStatus, Constants.OrderStatus.arrived.getStatus())
+ .eq(Orders::getPayStatus, Constants.ONE)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .and(w -> w
+ .eq(Orders::getType, Constants.ZERO)
+ .or(w2 -> w2.eq(Orders::getType, Constants.ONE).isNotNull(Orders::getTakeShopId))
+ )
+ .ne(Orders::getPickUpNotifyStatus, Constants.ONE)
+ .isNotNull(Orders::getExpectedTakeTime)
+ .ge(Orders::getExpectedTakeTime, now)
+ .le(Orders::getExpectedTakeTime, threshold));
+ if (orders == null || orders.isEmpty()) {
+ return 0;
+ }
+ int count = 0;
+ for (Orders order : orders) {
+ Member member = memberMapper.selectById(order.getMemberId());
+ if (member != null && StringUtils.isNotBlank(member.getTelephone())) {
+ sendSmsNotify(member.getTelephone(), Constants.SmsNotify.MEMBER_TIME_OUT,
+ "orderNo", order.getCode());
+ }
+ order.setPickUpNotifyStatus(Constants.ONE);
+ ordersMapper.updateById(order);
+ count++;
+ }
+ return count;
+ }
+
+ @Override
+ public Boolean checkOperationRadius(Integer orderId, Integer userId, Integer userType, Double lng, Double lat) {
+ String radiusStr = operationConfigBiz.getConfig().getOperationRadius();
+ if (StringUtils.isBlank(radiusStr)) {
+ return true;
+ }
+ double radiusM;
+ try {
+ radiusM = Double.parseDouble(radiusStr);
+ } catch (NumberFormatException e) {
+ return true;
+ }
+ if (radiusM <= 0) {
+ return true;
+ }
+ Orders order = ordersMapper.selectById(orderId);
+ if (order == null) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璁㈠崟涓嶅瓨鍦�");
+ }
+ BigDecimal targetLat;
+ BigDecimal targetLgt;
+ if (Constants.equalsInteger(userType, Constants.ZERO)) {
+ // 闂ㄥ簵鎿嶄綔
+ if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.waitDeposit.getStatus())) {
+ // status=1 闂ㄥ簵瀵勫瓨鏍搁獙
+ if (!Constants.equalsInteger(order.getDepositShopId(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+ targetLat = order.getDepositLat();
+ targetLgt = order.getDepositLgt();
+ } else if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.arrived.getStatus())) {
+ // status=5 闂ㄥ簵瀹屾垚鏍搁攢
+ if (Constants.equalsInteger(order.getType(), Constants.ZERO)) {
+ // 灏卞湴瀛樺彇 鈫� 瀵规瘮瀛樹欢闂ㄥ簵
+ if (!Constants.equalsInteger(order.getDepositShopId(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+ targetLat = order.getDepositLat();
+ targetLgt = order.getDepositLgt();
+ } else {
+ // 寮傚湴瀛樺彇 鈫� 瀵规瘮鍙栦欢闂ㄥ簵
+ if (!Constants.equalsInteger(order.getTakeShopId(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+ targetLat = order.getTakeLat();
+ targetLgt = order.getTakeLgt();
+ }
+ } else {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璁㈠崟鐘舵�佷笉鍏佽姝ゆ搷浣�");
+ }
+ } else if (Constants.equalsInteger(userType, Constants.ONE)) {
+ // 鍙告満鎿嶄綔
+ if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.deposited.getStatus())) {
+ // status=2 鍙告満鍙栦欢
+ if (!Constants.equalsInteger(order.getAcceptDriver(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+ targetLat = order.getDepositLat();
+ targetLgt = order.getDepositLgt();
+ } else if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.delivering.getStatus())) {
+ // status=4 鍙告満閫佽揪
+ if (!Constants.equalsInteger(order.getAcceptDriver(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+ targetLat = order.getTakeLat();
+ targetLgt = order.getTakeLgt();
+ } else {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璁㈠崟鐘舵�佷笉鍏佽姝ゆ搷浣�");
+ }
+ } else {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐢ㄦ埛绫诲瀷涓嶅悎娉�");
+ }
+ if (targetLat == null || targetLgt == null) {
+ return true;
+ }
+ double distanceKm = GeoUtils.haversineDistance(lat, lng, targetLat.doubleValue(), targetLgt.doubleValue());
+ return distanceKm * 1000 <= radiusM;
+ }
+
}
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
index 88de2ea..da48d1e 100644
--- 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
@@ -576,15 +576,15 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void batchSaveRevenueShare(RevenueShareSaveDTO request) {
- // 鏍¢獙锛氬繀椤诲寘鍚� fieldType 0-4 鍚勪竴鏉�
+ // 鏍¢獙锛氬繀椤诲寘鍚� fieldType 0-6 鍚勪竴鏉�
Set<Integer> fieldTypes = request.getItems().stream()
.map(RevenueShareItemDTO::getFieldType)
.collect(Collectors.toSet());
- if (fieldTypes.size() != Constants.FIVE) {
+ if (fieldTypes.size() != Constants.SEVEN) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
- "蹇呴』鍖呭惈浼佷笟瀵�(0)銆佷釜浜哄瘎(1)銆佷紒涓氬彇(2)銆佷釜浜哄彇(3)銆侀厤閫佸憳(4)鍏�5鏉℃暟鎹�");
+ "蹇呴』鍖呭惈寮傚湴浼佷笟瀵�(0)銆佸紓鍦颁釜浜哄瘎(1)銆佸紓鍦颁紒涓氬彇(2)銆佸紓鍦颁釜浜哄彇(3)銆侀厤閫佸憳(4)銆佸氨鍦颁紒涓氬瓨(5)銆佸氨鍦颁釜浜哄瓨(6)鍏�7鏉℃暟鎹�");
}
- for (int i = 0; i <= Constants.FOUR; i++) {
+ for (int i = 0; i <= Constants.SIX; i++) {
if (!fieldTypes.contains(i)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
"缂哄皯绫诲瀷" + i + "鐨勬暟鎹�");
@@ -634,10 +634,10 @@
Map<String, PricingRule> existingMap = rules.stream()
.collect(Collectors.toMap(PricingRule::getFieldA, r -> r));
- // 鍥哄畾杩斿洖5鏉★細浼佷笟瀵�(0)銆佷釜浜哄瘎(1)銆佷紒涓氬彇(2)銆佷釜浜哄彇(3)銆侀厤閫佸憳(4)
+ // 鍥哄畾杩斿洖7鏉★細寮傚湴浼佷笟瀵�(0)銆佸紓鍦颁釜浜哄瘎(1)銆佸紓鍦颁紒涓氬彇(2)銆佸紓鍦颁釜浜哄彇(3)銆侀厤閫佸憳(4)銆佸氨鍦颁紒涓氬瓨(5)銆佸氨鍦颁釜浜哄瓨(6)
List<RevenueShareVO> result = new ArrayList<>();
- String[] typeNames = {"浼佷笟瀵�", "涓汉瀵�", "浼佷笟鍙�", "涓汉鍙�", "閰嶉�佸憳"};
- for (int i = 0; i <= Constants.FOUR; i++) {
+ String[] typeNames = {"寮傚湴浼佷笟瀵勪欢", "寮傚湴涓汉瀵勪欢", "寮傚湴浼佷笟鍙栦欢", "寮傚湴涓汉鍙栦欢", "閰嶉�佸憳", "灏卞湴浼佷笟瀛樹欢", "灏卞湴涓汉瀛樹欢"};
+ for (int i = 0; i <= Constants.SIX; i++) {
RevenueShareVO vo = new RevenueShareVO();
vo.setFieldType(i);
vo.setFieldTypeName(typeNames[i]);
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
index 87cd2c6..149dd06 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
@@ -258,10 +258,105 @@
public void applyShop(ShopApplyDTO request) {
Member member = memberMapper.selectById(request.getMemberId());
+ // 鏍规嵁绫诲瀷鏍¢獙闄勪欢
+ validateCompanyTypeFields(request);
- // 2. 鏍规嵁绫诲瀷鏍¢獙闄勪欢
+ Date now = new Date();
+
+ // 鏌ヨ璇ヤ細鍛樻渶鏂扮殑鍙樻洿鐗堟湰璁板綍
+ QueryWrapper<ShopInfo> changeQw = new QueryWrapper<>();
+ changeQw.lambda()
+ .eq(ShopInfo::getRegionMemberId, member.getId())
+ .eq(ShopInfo::getVersionType, Constants.ONE)
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .orderByDesc(ShopInfo::getCreateTime)
+ .last("limit 1");
+ ShopInfo changeVersion = shopInfoMapper.selectOne(changeQw);
+
+ if (changeVersion == null) {
+ // 棣栨鐢宠锛氬垱寤烘寮忕増鏈� + 鍙樻洿鐗堟湰
+ checkTelephoneUnique(request.getTelephone(), null);
+
+ String rawPassword = generateDefaultPassword(request.getTelephone());
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ String encryptedPassword = Utils.Secure.encryptPassword(rawPassword, salt);
+
+ // 姝e紡鐗堟湰
+ ShopInfo official = new ShopInfo();
+ applyFieldsFromRequest(official, request, member, encryptedPassword, salt, now);
+ official.setVersionType(Constants.ZERO);
+ official.setAuditStatus(Constants.ZERO);
+ official.setStatus(Constants.ZERO);
+ official.setDeleted(Constants.ZERO);
+ official.setCreateTime(now);
+ official.setUpdateTime(now);
+ official.setRegionMemberId(member.getId());
+ setDepositAmountFromPricingRule(official);
+ setDefaultDeliveryRange(official);
+ shopInfoMapper.insert(official);
+
+ // 淇濆瓨姝e紡鐗堟湰闄勪欢
+ saveShopAttachments(official.getId(), request, now);
+
+ // 鍒涘缓鍙樻洿鐗堟湰锛堟嫹璐濇寮忕増鏈暟鎹級
+ createChangeVersion(official, official.getId(), now);
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.ONE)) {
+ // 瀹℃壒閫氳繃寰呮敮浠樻娂閲�
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "闂ㄥ簵宸插鎵归�氳繃锛岃瀹屾垚鎶奸噾鏀粯");
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.THREE)) {
+ // 鏈�鏂板彉鏇寸増鏈凡鏀粯鎶奸噾(status=3)锛氱敓鎴愭柊鐨勫彉鏇寸増鏈�
+ Integer relationShopId = changeVersion.getRelationShopId();
+
+ // 鏍¢獙鎵嬫満鍙峰敮涓�鎬э紙鎺掗櫎姝e紡鐗堟湰鍜屽彉鏇寸増鏈級
+ checkTelephoneUnique(request.getTelephone(), relationShopId);
+
+ String rawPassword = generateDefaultPassword(request.getTelephone());
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ String encryptedPassword = Utils.Secure.encryptPassword(rawPassword, salt);
+
+ ShopInfo newChange = new ShopInfo();
+ applyFieldsFromRequest(newChange, request, member, encryptedPassword, salt, now);
+ newChange.setVersionType(Constants.ONE);
+ newChange.setRelationShopId(relationShopId);
+ newChange.setAuditStatus(Constants.ZERO);
+ newChange.setStatus(Constants.ZERO);
+ newChange.setDeleted(Constants.ZERO);
+ newChange.setCreateTime(now);
+ newChange.setUpdateTime(now);
+ newChange.setRegionMemberId(member.getId());
+ setDepositAmountFromPricingRule(newChange);
+ shopInfoMapper.insert(newChange);
+
+ // 淇濆瓨鏂板彉鏇寸増鏈檮浠�
+ saveShopAttachments(newChange.getId(), request, now);
+ } else {
+ // 鏈�鏂板彉鏇寸増鏈� status=0(寰呭鎵�) 鎴� 2(琚┏鍥�)锛氱洿鎺ユ洿鏂�
+ Integer relationShopId = changeVersion.getRelationShopId();
+
+ // 鏍¢獙鎵嬫満鍙峰敮涓�鎬�
+ checkTelephoneUnique(request.getTelephone(), relationShopId);
+
+ String rawPassword = generateDefaultPassword(request.getTelephone());
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ String encryptedPassword = Utils.Secure.encryptPassword(rawPassword, salt);
+
+ applyFieldsFromRequest(changeVersion, request, member, encryptedPassword, salt, now);
+ changeVersion.setAuditStatus(Constants.ZERO);
+ changeVersion.setAuditRemark(null);
+ changeVersion.setAuditTime(null);
+ changeVersion.setAuditUserId(null);
+ changeVersion.setUpdateTime(now);
+ setDepositAmountFromPricingRule(changeVersion);
+ shopInfoMapper.updateById(changeVersion);
+
+ // 鍒犻櫎鏃ч檮浠� + 淇濆瓨鏂伴檮浠�
+ deleteShopAttachments(changeVersion.getId());
+ saveShopAttachments(changeVersion.getId(), request, now);
+ }
+ }
+
+ private void validateCompanyTypeFields(ShopApplyDTO request) {
if (Constants.equalsInteger(request.getCompanyType(), Constants.ZERO)) {
- // 涓汉绫诲瀷锛氬繀椤讳笂浼犲姵鍔ㄥ悎鍚屽拰绀句繚璇佹槑
if (CollectionUtils.isEmpty(request.getLaborContractImgs())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓汉绫诲瀷蹇呴』涓婁紶鏈夋晥鍔冲姩鍚堝悓");
}
@@ -269,7 +364,6 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓汉绫诲瀷蹇呴』涓婁紶绀句繚缂寸撼璇佹槑");
}
} else if (Constants.equalsInteger(request.getCompanyType(), Constants.ONE)) {
- // 浼佷笟绫诲瀷锛氬繀椤诲~鍐欐硶浜轰俊鎭拰钀ヤ笟鎵х収
if (StringUtils.isBlank(request.getBusinessImg())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』涓婁紶钀ヤ笟鎵х収");
}
@@ -283,104 +377,43 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉韬唤璇佸彿鐮�");
}
}
+ }
- Date now = new Date();
- String rawPassword = generateDefaultPassword(request.getTelephone());
- String salt = RandomStringUtils.randomAlphabetic(6);
- String encryptedPassword = Utils.Secure.encryptPassword(rawPassword, salt);
+ private void applyFieldsFromRequest(ShopInfo shop, ShopApplyDTO request, Member member,
+ String password, String salt, Date now) {
+ shop.setCompanyType(request.getCompanyType());
+ shop.setName(request.getName());
+ shop.setTelephone(request.getTelephone());
+ shop.setLinkName(request.getLinkName());
+ shop.setLinkPhone(request.getLinkPhone());
+ shop.setIdcard(request.getIdcard());
+ shop.setAreaId(request.getAreaId());
+ shop.setLongitude(request.getLongitude());
+ shop.setLatitude(request.getLatitude());
+ shop.setAddress(request.getAddress());
+ shop.setIdcardImg(request.getIdcardImg());
+ shop.setIdcardImgBack(request.getIdcardImgBack());
+ shop.setBusinessImg(request.getBusinessImg());
+ shop.setLegalPersonName(request.getLegalPersonName());
+ shop.setLegalPersonPhone(request.getLegalPersonPhone());
+ shop.setLegalPersonCard(request.getLegalPersonCard());
+ shop.setPassword(password);
+ shop.setSalt(salt);
+ shop.setAliAccount(request.getAliAccount());
+ shop.setAliName(request.getAliName());
+ shop.setRevenueShareConfig(buildRevenueShareConfig(request.getLocalDeposit(), request.getRemoteDeposit(), request.getRemoteTake()));
+ shop.setOpenid(member.getOpenid());
+ }
- // 3. 鏌ヨ璇ヤ細鍛樻槸鍚﹀凡鏈夐棬搴楄褰�
- QueryWrapper<ShopInfo> existQw = new QueryWrapper<>();
- existQw.lambda()
- .eq(ShopInfo::getRegionMemberId, member.getId())
- .eq(ShopInfo::getDeleted, Constants.ZERO)
- .last("limit 1");
- ShopInfo existing = shopInfoMapper.selectOne(existQw);
+ private void saveShopAttachments(Integer shopId, ShopApplyDTO request, Date now) {
+ saveMultifileList(shopId, Constants.FileType.STORE_FRONT.getKey(), request.getStoreFrontImgs(), now);
+ saveMultifileList(shopId, Constants.FileType.STORE_INTERIOR.getKey(), request.getStoreInteriorImgs(), now);
+ saveMultifileList(shopId, Constants.FileType.OTHER_MATERIAL.getKey(), request.getOtherMaterialImgs(), now);
+ saveMultifileList(shopId, Constants.FileType.LABOR_CONTRACT.getKey(), request.getLaborContractImgs(), now);
+ saveMultifileList(shopId, Constants.FileType.SOCIAL_SECURITY.getKey(), request.getSocialSecurityImgs(), now);
+ }
- Integer shopId;
- if (existing != null) {
- // 鏍¢獙鐘舵�侊細鍙湁寰呭鎵�(0)鍜岃椹冲洖(2)鍙慨鏀�
- if (!Constants.equalsInteger(existing.getAuditStatus(), Constants.TWO)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠闂ㄥ簵鐘舵�佷笉鍏佽淇敼");
- }
- // 鏍¢獙openid鍖归厤锛氬綋鍓嶇櫥褰曚細鍛樼殑openid蹇呴』涓庨棬搴楃殑openid涓�鑷�
- if (existing.getOpenid() != null && !existing.getOpenid().equals(member.getOpenid())) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈闄愭搷浣滃綋鍓嶉棬搴椾俊鎭�");
- }
- // 鏍¢獙鎵嬫満鍙峰敮涓�鎬э紙鎺掗櫎鑷韩锛�
- if (!request.getTelephone().equals(existing.getTelephone())) {
- checkTelephoneUnique(request.getTelephone(), existing.getId());
- }
- // 鏇存柊
- existing.setCompanyType(request.getCompanyType());
- existing.setName(request.getName());
- existing.setTelephone(request.getTelephone());
- existing.setLinkName(request.getLinkName());
- existing.setLinkPhone(request.getLinkPhone());
- existing.setIdcard(request.getIdcard());
- existing.setAreaId(request.getAreaId());
- existing.setLongitude(request.getLongitude());
- existing.setLatitude(request.getLatitude());
- existing.setAddress(request.getAddress());
- existing.setIdcardImg(request.getIdcardImg());
- existing.setIdcardImgBack(request.getIdcardImgBack());
- existing.setBusinessImg(request.getBusinessImg());
- existing.setLegalPersonName(request.getLegalPersonName());
- existing.setLegalPersonPhone(request.getLegalPersonPhone());
- existing.setLegalPersonCard(request.getLegalPersonCard());
- existing.setPassword(encryptedPassword);
- existing.setSalt(salt);
- existing.setAliAccount(request.getAliAccount());
- existing.setAliName(request.getAliName());
- existing.setUpdateTime(now);
- existing.setAuditRemark(null);
- existing.setAuditTime(null);
- existing.setAuditUserId(null);
- existing.setAuditStatus(Constants.ZERO);
- // 璇诲彇鎶奸噾閲戦
- setDepositAmountFromPricingRule(existing);
- shopInfoMapper.updateById(existing);
- shopId = existing.getId();
- } else {
- // 1. 鏍¢獙闂ㄥ簵鎵嬫満鍙峰敮涓�鎬э紙shop_info.telephone锛�
- checkTelephoneUnique(request.getTelephone(), null);
- // 鏂板缓
- ShopInfo shopInfo = new ShopInfo();
- shopInfo.setCompanyType(request.getCompanyType());
- shopInfo.setName(request.getName());
- shopInfo.setTelephone(request.getTelephone());
- shopInfo.setLinkName(request.getLinkName());
- shopInfo.setLinkPhone(request.getLinkPhone());
- shopInfo.setIdcard(request.getIdcard());
- shopInfo.setAreaId(request.getAreaId());
- shopInfo.setLongitude(request.getLongitude());
- shopInfo.setLatitude(request.getLatitude());
- shopInfo.setAddress(request.getAddress());
- shopInfo.setIdcardImg(request.getIdcardImg());
- shopInfo.setIdcardImgBack(request.getIdcardImgBack());
- shopInfo.setBusinessImg(request.getBusinessImg());
- shopInfo.setLegalPersonName(request.getLegalPersonName());
- shopInfo.setLegalPersonPhone(request.getLegalPersonPhone());
- shopInfo.setLegalPersonCard(request.getLegalPersonCard());
- shopInfo.setPassword(encryptedPassword);
- shopInfo.setSalt(salt);
- shopInfo.setAliAccount(request.getAliAccount());
- shopInfo.setAliName(request.getAliName());
- shopInfo.setAuditStatus(Constants.ZERO);
- shopInfo.setStatus(Constants.ZERO);
- shopInfo.setDeleted(Constants.ZERO);
- shopInfo.setCreateTime(now);
- shopInfo.setUpdateTime(now);
- shopInfo.setRegionMemberId(member.getId());
- // 璇诲彇鎶奸噾閲戦
- setDepositAmountFromPricingRule(shopInfo);
- // 璁剧疆榛樿閰嶉�佽寖鍥�
- setDefaultDeliveryRange(shopInfo);
- shopInfoMapper.insert(shopInfo);
- shopId = shopInfo.getId();
- }
-
- // 4. 鍒犻櫎鏃ч檮浠惰褰�
+ private void deleteShopAttachments(Integer shopId) {
multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
.eq(Multifile::getObjId, shopId)
.in(Multifile::getObjType,
@@ -389,13 +422,6 @@
Constants.FileType.OTHER_MATERIAL.getKey(),
Constants.FileType.LABOR_CONTRACT.getKey(),
Constants.FileType.SOCIAL_SECURITY.getKey()));
-
- // 5. 淇濆瓨鏂伴檮浠惰褰�
- saveMultifileList(shopId, Constants.FileType.STORE_FRONT.getKey(), request.getStoreFrontImgs(), now);
- saveMultifileList(shopId, Constants.FileType.STORE_INTERIOR.getKey(), request.getStoreInteriorImgs(), now);
- saveMultifileList(shopId, Constants.FileType.OTHER_MATERIAL.getKey(), request.getOtherMaterialImgs(), now);
- saveMultifileList(shopId, Constants.FileType.LABOR_CONTRACT.getKey(), request.getLaborContractImgs(), now);
- saveMultifileList(shopId, Constants.FileType.SOCIAL_SECURITY.getKey(), request.getSocialSecurityImgs(), now);
}
@Override
@@ -409,12 +435,25 @@
@Override
public ShopDetailVO getMyShop(Integer memberId) {
+ // 鏌ヨ鏈�鏂扮殑鍙樻洿鐗堟湰
QueryWrapper<ShopInfo> qw = new QueryWrapper<>();
qw.lambda()
.eq(ShopInfo::getRegionMemberId, memberId)
+ .eq(ShopInfo::getVersionType, Constants.ONE)
.eq(ShopInfo::getDeleted, Constants.ZERO)
+ .orderByDesc(ShopInfo::getCreateTime)
.last("limit 1");
ShopInfo shopInfo = shopInfoMapper.selectOne(qw);
+ if (shopInfo == null) {
+ // 鏃犲彉鏇寸増鏈垯鏌ユ寮忕増鏈�
+ QueryWrapper<ShopInfo> officialQw = new QueryWrapper<>();
+ officialQw.lambda()
+ .eq(ShopInfo::getRegionMemberId, memberId)
+ .eq(ShopInfo::getVersionType, Constants.ZERO)
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .last("limit 1");
+ shopInfo = shopInfoMapper.selectOne(officialQw);
+ }
if (shopInfo == null) {
return null;
}
@@ -431,52 +470,153 @@
|| (auditDTO.getAuditStatus() != 0 && auditDTO.getAuditStatus() != 1)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀹℃壒鐘舵�佸弬鏁伴敊璇�");
}
- ShopInfo shopInfo = shopInfoMapper.selectById(auditDTO.getId());
- if (shopInfo == null || Constants.equalsInteger(shopInfo.getDeleted(), Constants.ONE)) {
+ // 瀹℃壒鐨勬槸鍙樻洿鐗堟湰
+ ShopInfo changeVersion = shopInfoMapper.selectById(auditDTO.getId());
+ if (changeVersion == null || Constants.equalsInteger(changeVersion.getDeleted(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- if (!Constants.equalsInteger(shopInfo.getAuditStatus(), Constants.ZERO)) {
+ if (!Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.ZERO)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠鐘舵�佷笉鍏佽瀹℃壒");
}
Date now = new Date();
- // auditDTO.auditStatus: 0=閫氳繃 鈫� auditStatus=1, 1=椹冲洖 鈫� auditStatus=2
+ // auditDTO.auditStatus: 0=閫氳繃 鈫� 1, 1=椹冲洖 鈫� 2
Integer newAuditStatus = Constants.equalsInteger(auditDTO.getAuditStatus(), Constants.ZERO) ? Constants.ONE : Constants.TWO;
- shopInfo.setAuditStatus(newAuditStatus);
- shopInfo.setAuditTime(now);
- shopInfo.setAuditRemark(auditDTO.getAuditRemark());
- shopInfo.setAuditUserId(auditDTO.getAuditUser());
- shopInfo.setUpdateTime(now);
- // 瀹℃壒閫氳繃鏃讹紝鏍¢獙鍩庡競pricing_rule閰嶇疆锛岃鍙栨娂閲戦噾棰�
- if (Constants.equalsInteger(newAuditStatus, Constants.ONE)) {
- // 1. 瑙f瀽闂ㄥ簵鎵�鍦ㄥ煄甯�
- Areas area = areasBiz.resolveArea(shopInfo.getAreaId());
- if (area == null || area.getParentId() == null) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "闂ㄥ簵鍖哄垝淇℃伅寮傚父锛屾棤娉曠‘瀹氭墍鍦ㄥ煄甯�");
- }
- Integer cityId = area.getParentId();
- // 2. 鏍¢獙 pricing_rule 閰嶇疆锛堝煄甯傚紑閫氬湪鎶奸噾鏀粯瀹屾垚鍚庡鐞嗭級
- Areas cityArea = areasService.findById(cityId, Constants.ONE);
- if (cityArea == null) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍩庡競淇℃伅涓嶅瓨鍦�");
+ // 鏌ユ壘姝e紡鐗堟湰
+ Integer officialId = changeVersion.getRelationShopId();
+ ShopInfo official = officialId != null ? shopInfoMapper.selectById(officialId) : null;
+ boolean hasPaidOfficial = official != null
+ && Constants.equalsInteger(official.getAuditStatus(), Constants.THREE);
+
+ if (!hasPaidOfficial) {
+ // 鍦烘櫙1锛氫笉瀛樺湪auditStatus=3鐨勬寮忕増鏈紙棣栨瀹℃壒锛�
+ changeVersion.setAuditStatus(newAuditStatus);
+ changeVersion.setAuditTime(now);
+ changeVersion.setAuditRemark(auditDTO.getAuditRemark());
+ changeVersion.setAuditUserId(auditDTO.getAuditUser());
+ changeVersion.setUpdateTime(now);
+
+ if (Constants.equalsInteger(newAuditStatus, Constants.ONE)) {
+ validateCityAndSetDeposit(changeVersion);
}
- if (!Constants.equalsInteger(cityArea.getStatus(), Constants.ONE)) {
- List<String> errors = validateCityPricingRules(cityId);
- if (!errors.isEmpty()) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
- "鍩庡競[" + cityArea.getName() + "]灏氭湭寮�閫氾紝瀹氫环瑙勫垯鏈厤缃畬鏁达細" + String.join("锛�", errors));
+ shopInfoMapper.updateById(changeVersion);
+
+ // 鍚屾鏇存柊姝e紡鐗堟湰瀹℃壒鐘舵��
+ if (official != null) {
+ official.setAuditStatus(newAuditStatus);
+ official.setAuditTime(now);
+ official.setAuditRemark(auditDTO.getAuditRemark());
+ official.setAuditUserId(auditDTO.getAuditUser());
+ official.setUpdateTime(now);
+ if (Constants.equalsInteger(newAuditStatus, Constants.ONE)) {
+ official.setDepositAmount(changeVersion.getDepositAmount());
}
+ shopInfoMapper.updateById(official);
}
- // 3. 浠嶱ricingRule璇诲彇鎶奸噾閲戦锛堝鎵规椂鏇存柊锛�
- setDepositAmountFromPricingRule(shopInfo);
- }
- shopInfoMapper.updateById(shopInfo);
+ // 鐭俊閫氱煡
+ sendAuditSms(changeVersion, newAuditStatus, auditDTO.getAuditRemark());
+ } else {
+ // 鍦烘櫙2锛氬瓨鍦╝uditStatus=3鐨勬寮忕増鏈紙鍙樻洿瀹℃壒锛�
+ if (Constants.equalsInteger(newAuditStatus, Constants.ONE)) {
+ // 瀹℃壒閫氳繃锛氬彉鏇寸増鏈洿鎺ユ爣璁癮uditStatus=3锛屽悓姝ユ暟鎹埌姝e紡鐗堟湰
+ changeVersion.setAuditStatus(Constants.THREE);
+ changeVersion.setAuditTime(now);
+ changeVersion.setAuditRemark(auditDTO.getAuditRemark());
+ changeVersion.setAuditUserId(auditDTO.getAuditUser());
+ changeVersion.setUpdateTime(now);
+ shopInfoMapper.updateById(changeVersion);
- // 鐭俊閫氱煡
+ // 鍚屾鍙樻洿鐗堟湰鏁版嵁鍒版寮忕増鏈�
+ syncChangeToOfficial(changeVersion, official, now);
+ } else {
+ // 瀹℃壒椹冲洖锛氫粎鏍囪鍙樻洿鐗堟湰鐘舵��
+ changeVersion.setAuditStatus(Constants.TWO);
+ changeVersion.setAuditTime(now);
+ changeVersion.setAuditRemark(auditDTO.getAuditRemark());
+ changeVersion.setAuditUserId(auditDTO.getAuditUser());
+ changeVersion.setUpdateTime(now);
+ shopInfoMapper.updateById(changeVersion);
+ }
+ }
+ }
+
+ private void validateCityAndSetDeposit(ShopInfo shopInfo) {
+ Areas area = areasBiz.resolveArea(shopInfo.getAreaId());
+ if (area == null || area.getParentId() == null) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "闂ㄥ簵鍖哄垝淇℃伅寮傚父锛屾棤娉曠‘瀹氭墍鍦ㄥ煄甯�");
+ }
+ Integer cityId = area.getParentId();
+ Areas cityArea = areasService.findById(cityId, Constants.ONE);
+ if (cityArea == null) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍩庡競淇℃伅涓嶅瓨鍦�");
+ }
+ if (!Constants.equalsInteger(cityArea.getStatus(), Constants.ONE)) {
+ List<String> errors = validateCityPricingRules(cityId);
+ if (!errors.isEmpty()) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
+ "鍩庡競[" + cityArea.getName() + "]灏氭湭寮�閫氾紝瀹氫环瑙勫垯鏈厤缃畬鏁达細" + String.join("锛�", errors));
+ }
+ }
+ setDepositAmountFromPricingRule(shopInfo);
+ }
+
+ private void syncChangeToOfficial(ShopInfo changeVersion, ShopInfo official, Date now) {
+ official.setCompanyType(changeVersion.getCompanyType());
+ official.setName(changeVersion.getName());
+ official.setTelephone(changeVersion.getTelephone());
+ official.setLinkName(changeVersion.getLinkName());
+ official.setLinkPhone(changeVersion.getLinkPhone());
+ official.setIdcard(changeVersion.getIdcard());
+ official.setAreaId(changeVersion.getAreaId());
+ official.setLongitude(changeVersion.getLongitude());
+ official.setLatitude(changeVersion.getLatitude());
+ official.setAddress(changeVersion.getAddress());
+ official.setIdcardImg(changeVersion.getIdcardImg());
+ official.setIdcardImgBack(changeVersion.getIdcardImgBack());
+ official.setBusinessImg(changeVersion.getBusinessImg());
+ official.setLegalPersonName(changeVersion.getLegalPersonName());
+ official.setLegalPersonPhone(changeVersion.getLegalPersonPhone());
+ official.setLegalPersonCard(changeVersion.getLegalPersonCard());
+ official.setPassword(changeVersion.getPassword());
+ official.setSalt(changeVersion.getSalt());
+ official.setAliAccount(changeVersion.getAliAccount());
+ official.setAliName(changeVersion.getAliName());
+ official.setRevenueShareConfig(changeVersion.getRevenueShareConfig());
+ official.setDepositAmount(changeVersion.getDepositAmount());
+ official.setUpdateTime(now);
+ shopInfoMapper.updateById(official);
+
+ // 鍚屾闄勪欢锛氬厛鍒犳寮忕増鏈棫闄勪欢锛屽啀浠庡彉鏇寸増鏈嫹璐�
+ deleteShopAttachments(official.getId());
+ List<Multifile> changeFiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId, changeVersion.getId())
+ .eq(Multifile::getIsdeleted, Constants.ZERO)
+ .in(Multifile::getObjType,
+ Constants.FileType.STORE_FRONT.getKey(),
+ Constants.FileType.STORE_INTERIOR.getKey(),
+ Constants.FileType.OTHER_MATERIAL.getKey(),
+ Constants.FileType.LABOR_CONTRACT.getKey(),
+ Constants.FileType.SOCIAL_SECURITY.getKey()));
+ for (Multifile f : changeFiles) {
+ Multifile copy = new Multifile();
+ copy.setCreator(f.getCreator());
+ copy.setCreateDate(now);
+ copy.setIsdeleted(Constants.ZERO);
+ copy.setName(f.getName());
+ copy.setInfo(f.getInfo());
+ copy.setObjId(official.getId());
+ copy.setType(f.getType());
+ copy.setObjType(f.getObjType());
+ copy.setFileurl(f.getFileurl());
+ copy.setSortnum(f.getSortnum());
+ multifileMapper.insert(copy);
+ }
+ }
+
+ private void sendAuditSms(ShopInfo shopInfo, Integer newAuditStatus, String auditRemark) {
if (Constants.equalsInteger(newAuditStatus, Constants.ONE)) {
- // 瀹℃牳閫氳繃 鈫� 閫氱煡缂寸撼鎶奸噾
String depositMoney = shopInfo.getDepositAmount() != null
? new java.math.BigDecimal(shopInfo.getDepositAmount())
.divide(new java.math.BigDecimal(100), 2, java.math.RoundingMode.HALF_UP).toPlainString() : "0";
@@ -485,11 +625,10 @@
"storeName", shopInfo.getName(),
"money", depositMoney);
} else if (Constants.equalsInteger(newAuditStatus, Constants.TWO)) {
- // 瀹℃牳椹冲洖
sendSmsNotify(shopInfo.getTelephone(),
Constants.SmsNotify.SHOP_AUTH_REJECTED,
"storeName", shopInfo.getName(),
- "reason", auditDTO.getAuditRemark() != null ? auditDTO.getAuditRemark() : "");
+ "reason", auditRemark != null ? auditRemark : "");
}
}
@@ -590,6 +729,7 @@
shopInfo.setLegalPersonCard(request.getLegalPersonCard());
shopInfo.setAliAccount(request.getAliAccount());
shopInfo.setAliName(request.getAliName());
+ shopInfo.setRevenueShareConfig(buildRevenueShareConfig(request.getLocalDeposit(), request.getRemoteDeposit(), request.getRemoteTake()));
shopInfo.setUpdateTime(now);
shopInfoMapper.updateById(shopInfo);
@@ -621,6 +761,81 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎵嬫満鍙锋牸寮忓紓甯革紝鏃犳硶鐢熸垚榛樿瀵嗙爜");
}
return telephone.substring(telephone.length() - 6) + "@123456";
+ }
+
+ private String buildRevenueShareConfig(Double localDeposit, Double remoteDeposit, Double remoteTake) {
+ if (localDeposit == null && remoteDeposit == null && remoteTake == null) {
+ return null;
+ }
+ JSONObject config = new JSONObject();
+ if (localDeposit != null) {
+ config.put("localDeposit", localDeposit);
+ }
+ if (remoteDeposit != null) {
+ config.put("remoteDeposit", remoteDeposit);
+ }
+ if (remoteTake != null) {
+ config.put("remoteTake", remoteTake);
+ }
+ return config.toJSONString();
+ }
+
+ private void createChangeVersion(ShopInfo origin, Integer originShopId, Date now) {
+ ShopInfo changeShop = new ShopInfo();
+ changeShop.setCompanyType(origin.getCompanyType());
+ changeShop.setName(origin.getName());
+ changeShop.setTelephone(origin.getTelephone());
+ changeShop.setLinkName(origin.getLinkName());
+ changeShop.setLinkPhone(origin.getLinkPhone());
+ changeShop.setIdcard(origin.getIdcard());
+ changeShop.setAreaId(origin.getAreaId());
+ changeShop.setLongitude(origin.getLongitude());
+ changeShop.setLatitude(origin.getLatitude());
+ changeShop.setAddress(origin.getAddress());
+ changeShop.setIdcardImg(origin.getIdcardImg());
+ changeShop.setIdcardImgBack(origin.getIdcardImgBack());
+ changeShop.setBusinessImg(origin.getBusinessImg());
+ changeShop.setLegalPersonName(origin.getLegalPersonName());
+ changeShop.setLegalPersonPhone(origin.getLegalPersonPhone());
+ changeShop.setLegalPersonCard(origin.getLegalPersonCard());
+ changeShop.setAliAccount(origin.getAliAccount());
+ changeShop.setAliName(origin.getAliName());
+ changeShop.setDepositAmount(origin.getDepositAmount());
+ changeShop.setRevenueShareConfig(origin.getRevenueShareConfig());
+ changeShop.setVersionType(Constants.ONE);
+ changeShop.setRelationShopId(originShopId);
+ changeShop.setRegionMemberId(origin.getRegionMemberId());
+ changeShop.setOpenid(origin.getOpenid());
+ changeShop.setStatus(Constants.ZERO);
+ changeShop.setDeleted(Constants.ZERO);
+ changeShop.setCreateTime(now);
+ changeShop.setUpdateTime(now);
+ shopInfoMapper.insert(changeShop);
+
+ // 鎷疯礉闄勪欢鍒板彉鏇寸増鏈�
+ List<Multifile> originFiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId, originShopId)
+ .eq(Multifile::getIsdeleted, Constants.ZERO)
+ .in(Multifile::getObjType,
+ Constants.FileType.STORE_FRONT.getKey(),
+ Constants.FileType.STORE_INTERIOR.getKey(),
+ Constants.FileType.OTHER_MATERIAL.getKey(),
+ Constants.FileType.LABOR_CONTRACT.getKey(),
+ Constants.FileType.SOCIAL_SECURITY.getKey()));
+ for (Multifile f : originFiles) {
+ Multifile copy = new Multifile();
+ copy.setCreator(f.getCreator());
+ copy.setCreateDate(now);
+ copy.setIsdeleted(Constants.ZERO);
+ copy.setName(f.getName());
+ copy.setInfo(f.getInfo());
+ copy.setObjId(changeShop.getId());
+ copy.setType(f.getType());
+ copy.setObjType(f.getObjType());
+ copy.setFileurl(f.getFileurl());
+ copy.setSortnum(f.getSortnum());
+ multifileMapper.insert(copy);
+ }
}
private void checkTelephoneUnique(String telephone, Integer excludeId) {
@@ -696,6 +911,21 @@
vo.setAliAccount(shopInfo.getAliAccount());
vo.setAliName(shopInfo.getAliName());
vo.setDepositAmount(shopInfo.getDepositAmount());
+ vo.setDeliveryRange(shopInfo.getDeliveryArea());
+ vo.setVersionType(shopInfo.getVersionType());
+ vo.setRelationShopId(shopInfo.getRelationShopId());
+ // 瑙f瀽鏀剁泭姣斾緥閰嶇疆
+ if (StringUtils.isNotBlank(shopInfo.getRevenueShareConfig())) {
+ try {
+ JSONObject config = JSONObject.parseObject(shopInfo.getRevenueShareConfig());
+ if (config != null) {
+ vo.setLocalDeposit(config.getDouble("localDeposit"));
+ vo.setRemoteDeposit(config.getDouble("remoteDeposit"));
+ vo.setRemoteTake(config.getDouble("remoteTake"));
+ }
+ } catch (Exception ignored) {
+ }
+ }
// 鎷兼帴鍥剧墖鍓嶇紑
String imgPrefix = "";
@@ -795,6 +1025,7 @@
qw.lambda()
.eq(ShopInfo::getDeleted, Constants.ZERO)
.eq(ShopInfo::getStatus, Constants.ZERO)
+ .eq(ShopInfo::getVersionType, Constants.ZERO)
.eq(ShopInfo::getAuditStatus, Constants.THREE);
// 闂ㄥ簵钀ヤ笟绫诲瀷绛涢��
@@ -869,7 +1100,7 @@
@Override
public ShopWebDetailVO getShopWebDetail(ShopDetailQueryDTO dto) {
ShopInfo shop = shopInfoMapper.selectById(dto.getId());
- if (Objects.isNull(shop) || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) {
+ if (Objects.isNull(shop) || Constants.equalsInteger(shop.getDeleted(), Constants.ONE) || Constants.equalsInteger(shop.getVersionType(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
@@ -1019,7 +1250,7 @@
@Override
public ShopCenterVO getShopCenterInfo(Integer shopId) {
ShopInfo shop = shopInfoMapper.selectById(shopId);
- if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) {
+ if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE) || Constants.equalsInteger(shop.getVersionType(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
ShopCenterVO vo = new ShopCenterVO();
@@ -1173,6 +1404,7 @@
}
ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda().eq(ShopInfo::getTelephone, dto.getTelephone())
.eq(ShopInfo::getDeleted,Constants.ZERO)
+ .eq(ShopInfo::getVersionType,Constants.ZERO)
.last("limit 1")
);
if(shop==null){
@@ -1192,31 +1424,26 @@
if(!pwd.equals(shop.getPassword())){
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
-
- // 鏇存柊褰撳墠鐧诲綍浼氬憳鐨刼penid鍒伴棬搴�
- if(StringUtils.isNotBlank(dto.getOpenid())){
- shopInfoMapper.update(null,new UpdateWrapper<ShopInfo>().lambda()
- .set(ShopInfo::getOpenid,dto.getOpenid())
- .eq(ShopInfo::getId,shop.getId())
- );
- // 娓呯┖鍏朵粬闂ㄥ簵鐨勫悓涓�openid锛屼繚璇佸敮涓�
- shopInfoMapper.update(null,new UpdateWrapper<ShopInfo>().lambda()
- .set(ShopInfo::getOpenid,null)
- .eq(ShopInfo::getOpenid,dto.getOpenid())
- .ne(ShopInfo::getId,shop.getId())
- );
- shop.setOpenid(dto.getOpenid());
+ if(Objects.nonNull(dto.getMemberId())){
+ Member member = memberMapper.selectById(dto.getMemberId());
+ if(Objects.nonNull(member)){
+ memberMapper.update(new UpdateWrapper<Member>().lambda()
+ .set(Member::getLoginShopId,shop.getId())
+ .eq(Member::getId,member.getId())
+ );
+ shop.setMemberId(member.getId());
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼氬憳淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�");
+ }
}
-
// 鍒涘缓token锛坓enerateTokenForRedis 宸茶嚜鍔ㄦ竻闄よ鐢ㄦ埛鏃oken锛屼繚璇佸敮涓�鏈夋晥锛�
- String token = JwtTokenUtil.generateTokenForRedis(shop.getId(), Constants.TWO, JSONObject.toJSONString(shop), redisTemplate);
+ String token = JwtTokenUtil.generateShopTokenForRedis(shop.getMemberId(), JSONObject.toJSONString(shop), redisTemplate);
// 鏋勫缓鍝嶅簲
ShopLoginVO vo = new ShopLoginVO();
vo.setToken(token);
vo.setShopId(shop.getId());
vo.setShopName(shop.getName());
vo.setCompanyType(shop.getCompanyType());
-
// 鎵�灞炲煄甯傚悕绉�
Areas area = areasBiz.resolveArea(shop.getAreaId());
if (area != null) {
@@ -1228,11 +1455,15 @@
@Override
public ShopLoginVO shopSilentLogin(Integer memberId) {
Member member = memberMapper.selectById(memberId);
- if(Objects.isNull(member)||StringUtils.isBlank(member.getOpenid())){
+ if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鐧诲綍浼氬憳韬唤寮傚父,璇疯仈绯荤鐞嗗憳!");
}
+ if (Objects.isNull(member.getLoginShopId())) {
+ return null;
+ }
ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
- .eq(ShopInfo::getOpenid, member.getOpenid())
+ .eq(ShopInfo::getId, member.getLoginShopId())
+ .eq(ShopInfo::getVersionType,Constants.ZERO)
.eq(ShopInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (shop == null) {
@@ -1242,7 +1473,7 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闂ㄥ簵宸茬鐢紝璇疯仈绯荤鐞嗗憳");
}
// 鍒涘缓token锛坓enerateTokenForRedis 宸茶嚜鍔ㄦ竻闄よ鐢ㄦ埛鏃oken锛屼繚璇佸敮涓�鏈夋晥锛�
- String token = JwtTokenUtil.generateTokenForRedis(shop.getId(), Constants.TWO, JSONObject.toJSONString(shop), redisTemplate);
+ String token = JwtTokenUtil.generateShopTokenForRedis(member.getId(), JSONObject.toJSONString(shop), redisTemplate);
ShopLoginVO vo = new ShopLoginVO();
vo.setToken(token);
@@ -1380,6 +1611,9 @@
if (StringUtils.isBlank(phone)) {
return;
}
+ if (!smsNotify.isEnabled()) {
+ return;
+ }
String content = smsNotify.format(paramPairs);
try {
JSONObject templateParam = new JSONObject();
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/SmsrecordServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/SmsrecordServiceImpl.java
index 018e9df..6777ea0 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/SmsrecordServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/SmsrecordServiceImpl.java
@@ -178,7 +178,10 @@
String digits = Strings.randomNumeric(4);
//鍙戦�侀獙璇佺爜
String templateParam = "{\"code\":\"" + digits + "\"}";
- String error = AliSmsService.sendSms(phone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam);
+ String error = null;
+ if (Constants.SmsNotify.VERIFY_CODE.isEnabled()) {
+ error = AliSmsService.sendSms(phone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam);
+ }
if (error != null) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐭俊鍙戦�佸け璐ワ紝璇风◢鍚庨噸璇�");
}
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index d31d65f..8136219 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -95,8 +95,8 @@
apiV3Key: NJTLJSTZYXZRGScaiwubuzichanbu666 #apiV3Key
serialNumer: 25D19D18217F4588841E5CD1AA0D1533DE8AF84A #鍟嗘埛璇佷功搴忓垪鍙�
privateKeyPath: pay/pro/wx/apiclient_key.pem
- v3NotifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxPayV3Notify
- v3RefundNotifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxRefundV3Notify
+ v3NotifyUrl: https://test.doumee.cn/gtzxljc_web/web/api/wxPayV3Notify
+ v3RefundNotifyUrl: https://test.doumee.cn/gtzxljc_web/web/api/wxRefundV3Notify
alipay:
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 993e5ad..150f491 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
@@ -65,9 +65,14 @@
}
+ @LoginRequired
@ApiOperation(value = "闂ㄥ簵璐﹀彿瀵嗙爜鐧诲綍", notes = "灏忕▼搴忕锛岄棬搴楃敤鎴烽�氳繃鎵嬫満鍙�+瀵嗙爜鐧诲綍")
@PostMapping("/shopLogin")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
public ApiResponse<ShopLoginVO> shopLogin(@RequestBody @Validated ShopLoginDTO dto) {
+ dto.setMemberId(getMemberId());
return ApiResponse.success("鎿嶄綔鎴愬姛", shopInfoService.shopPasswordLogin(dto));
}
diff --git a/server/web/src/main/java/com/doumee/api/web/ConfigApi.java b/server/web/src/main/java/com/doumee/api/web/ConfigApi.java
index 85570ff..17d2ddd 100644
--- a/server/web/src/main/java/com/doumee/api/web/ConfigApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/ConfigApi.java
@@ -19,6 +19,8 @@
import com.doumee.dao.dto.AreasDto;
import com.doumee.dao.dto.CalculateLocalPriceDTO;
import com.doumee.dao.dto.CalculateRemotePriceDTO;
+import com.doumee.dao.dto.DriverCheckRadiusDTO;
+import com.doumee.dao.dto.ShopCheckRadiusDTO;
import com.doumee.dao.dto.DirectionInfoDTO;
import com.doumee.dao.dto.SameCityCheckDTO;
import com.doumee.dao.vo.PriceCalculateVO;
@@ -299,5 +301,26 @@
return ApiResponse.success("鏌ヨ鎴愬姛", appVersion);
}
+ @LoginShopRequired
+ @ApiOperation(value = "闂ㄥ簵鏍¢獙鎿嶄綔鍗婂緞", notes = "鏍¢獙闂ㄥ簵鎿嶄綔浜哄綋鍓嶄綅缃槸鍚﹀湪鐩爣鐐瑰厑璁告搷浣滃崐寰勫唴")
+ @PostMapping("/checkShopOperationRadius")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse<Boolean> checkShopOperationRadius(@RequestBody @Valid ShopCheckRadiusDTO dto) {
+ Boolean result = ordersService.checkOperationRadius(dto.getOrderId(), this.getShopId(), Constants.ZERO, dto.getLng(), dto.getLat());
+ return ApiResponse.success("鎿嶄綔鎴愬姛", result);
+ }
+
+ @LoginDriverRequired
+ @ApiOperation(value = "鍙告満鏍¢獙鎿嶄綔鍗婂緞", notes = "鏍¢獙鍙告満褰撳墠浣嶇疆鏄惁鍦ㄧ洰鏍囩偣鍏佽鎿嶄綔鍗婂緞鍐�")
+ @PostMapping("/checkDriverOperationRadius")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse<Boolean> checkDriverOperationRadius(@RequestBody @Valid DriverCheckRadiusDTO dto) {
+ Boolean result = ordersService.checkOperationRadius(dto.getOrderId(), this.getDriverId(), Constants.ONE, dto.getLng(), dto.getLat());
+ return ApiResponse.success("鎿嶄綔鎴愬姛", result);
+ }
}
diff --git a/server/web/src/main/java/com/doumee/api/web/MemberApi.java b/server/web/src/main/java/com/doumee/api/web/MemberApi.java
index b49cade..8ff3d4e 100644
--- a/server/web/src/main/java/com/doumee/api/web/MemberApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/MemberApi.java
@@ -5,6 +5,7 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.dto.UpdMobileRequest;
+import com.doumee.dao.vo.MemberContactVO;
import com.doumee.dao.vo.UserCenterVO;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.SmsrecordService;
@@ -111,6 +112,15 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @LoginRequired
+ @ApiOperation("鑾峰彇鐢ㄦ埛鏀朵欢淇℃伅")
+ @GetMapping("/getContactInfo")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse<MemberContactVO> getContactInfo() {
+ return ApiResponse.success("鏌ヨ鎴愬姛", memberService.getContactInfo(getMemberId()));
+ }
}
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 c26dbaa..9aaece4 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
@@ -231,9 +231,12 @@
templateParam.put("orderNo", refundOrder.getCode());
templateParam.put("money", String.valueOf(Constants.getFormatMoney(
refundOrder.getRefundAmount() != null ? refundOrder.getRefundAmount() : 0L)));
- String smsError = AliSmsService.sendSms(refundMember.getTelephone(),
- Constants.SmsNotify.MEMBER_REFUNDED.getTemplateCode(),
- templateParam.toJSONString());
+ String smsError = null;
+ if (Constants.SmsNotify.MEMBER_REFUNDED.isEnabled()) {
+ smsError = AliSmsService.sendSms(refundMember.getTelephone(),
+ Constants.SmsNotify.MEMBER_REFUNDED.getTemplateCode(),
+ templateParam.toJSONString());
+ }
if (smsError == null) {
log.info("閫�娆剧煭淇″彂閫佹垚鍔�: phone={}", refundMember.getTelephone());
} else {
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index 54d0705..d4b2c60 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -12,7 +12,7 @@
spring:
profiles:
- active: pro
+ active: dev
# JSON杩斿洖閰嶇疆
jackson:
# 榛樿鏃跺尯
--
Gitblit v1.9.3