From c51de64d5ee334d914c90f5e4f82a13f159492ca Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 23 四月 2026 20:08:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/core/constants/Constants.java |  352 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 235 insertions(+), 117 deletions(-)

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 d49123b..fab08af 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -18,11 +18,8 @@
  */
 public class Constants {
 
-    public static final String HWY_OBS ="HWY_OBS" ;
-    public static final String HWY_OBS_ACCESSID ="HWY_OBS_ACCESSID" ;
-    public static final String HWY_OBS_ACCESSKEY ="HWY_OBS_ACCESSKEY" ;
-    public static final String HWY_OBS_ENDPOINT ="HWY_OBS_ENDPOINT" ;
-    public static final String HWY_OBS_BUCKET ="HWY_OBS_BUCKET" ;
+    public static final String OSS ="OSS" ;
+
     public static final String RESOURCE_PATH ="RESOURCE_PATH" ;
     public static final String QYWX_CORPID = "QYWX_CORPID";
     public static final String QYWX_SECRET = "QYWX_SECRET";
@@ -53,6 +50,11 @@
     public static final String USER_AGREEMENT ="USER_AGREEMENT" ;
     public static final String PRIVACY_AGREEMENT ="PRIVACY_AGREEMENT" ;
 
+    public static final String ACCESS_ID="ACCESS_ID";
+    public static final String BUCKETNAME = "BUCKETNAME";
+
+    public static final String ACCESS_KEY = "ACCESS_KEY";
+    public static final String ENDPOINT = "ENDPOINT";
 
     public static final String QYWX = "QYWX";
     public static final  Integer ONE = 1;
@@ -80,6 +82,8 @@
     public static final String OP_INSURANCE_RATE = "INSURANCE_RATE";
     public static final String OP_ORDER_ACCEPT_LIMIT = "ORDER_ACCEPT_LIMIT";
     public static final String OP_AUTO_CONFIRM_RECEIPT = "AUTO_CONFIRM_RECEIPT";
+    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 boolean WORKORDER_SHE_EMAIL_SENDING = false;
     public static  boolean DEALING_COMPANY_SYNC = false ;
     public static  boolean DEALING_MEMBER_SYNC = false ;
@@ -93,12 +97,6 @@
 
     public final static String GOODS_ORDER_CREATE_LOCK = "goods:order:create:lock:";
 
-    // 璁㈠崟鏃ュ織鎿嶄綔绫诲瀷
-    public static final int ORDER_LOG_DISPATCH = 1;         // 娲惧崟
-    public static final int ORDER_LOG_URGENT_FEE = 2;       // 鍔犳�ヨ垂
-    public static final int ORDER_LOG_ASSIGN_DRIVER = 3;    // 鎸囨淳鍙告満
-    public static final int ORDER_LOG_CANCEL = 4;           // 鍙栨秷璁㈠崟
-    public static final int ORDER_LOG_CONFIRM_ARRIVE = 5;   // 纭椤惧鍒板簵
 
     public static final String SUCCESS = "SUCCESS";
     public static final String FAIL = "FAIL";
@@ -274,97 +272,6 @@
 
 
 
-    public enum WorkOrderStatus{
-        waitConfirm( 0, "寰呭垎閰峎TS","{title}涓婃姤","","寰呭垎閰峎TS" ),
-        waitAllocation(1, "寰呭垎閰嶄换鍔�","寰呭垎閰嶄换鍔�","","寰呭垎閰嶄换鍔�"),
-        waitDeal(2, "寰呭鐞�","寰呭鐞�","","寰呭伐绋嬪笀澶勭悊"),
-        sheClose(3, "宸茶В鍐�","SHE宸插叧闂�","","SHE宸插叧闂�"),
-        wtsClose(4, "宸茶В鍐�","WTS宸插叧闂�","","WTS宸插叧闂�"),
-        close(5, "宸茶В鍐�","宸茶В鍐�","","宸ョ▼甯堝叧闂�"),
-        urge (6, "鍌績","","","")
-        ;
-
-        private int status;
-        private String statusInfo;
-        private String statusName;
-        private String logTitle;
-        private String noticeContent;
-
-        // 鏋勯�犳柟娉�
-        WorkOrderStatus(int status, String statusInfo,String logTitle,String noticeContent,String statusName ) {
-            this.status = status;
-            this.statusInfo = statusInfo;
-            this.logTitle = logTitle;
-            this.noticeContent = noticeContent;
-            this.statusName = statusName;
-        }
-        public static String getName(int index) {
-            for (WorkOrderStatus c : WorkOrderStatus.values()) {
-                if (c.getKey() == index) {
-                    return c.statusInfo;
-                }
-            }
-            return null;
-        }
-        public static String getStatusName(int index) {
-            for (WorkOrderStatus c : WorkOrderStatus.values()) {
-                if (c.getKey() == index) {
-                    return c.statusName;
-                }
-            }
-            return null;
-        }
-
-        public int getKey() {
-            return status;
-        }
-
-        public void setKey(int key) {
-            this.status = status;
-        }
-
-        public int getStatus() {
-            return status;
-        }
-
-        public void setStatus(int status) {
-            this.status = status;
-        }
-
-        public String getStatusName() {
-            return statusName;
-        }
-
-        public void setStatusName(String statusName) {
-            this.statusName = statusName;
-        }
-
-        public String getStatusInfo() {
-            return statusInfo;
-        }
-
-        public void setStatusInfo(String statusInfo) {
-            this.statusInfo = statusInfo;
-        }
-
-        public String getLogTitle() {
-            return logTitle;
-        }
-
-        public void setLogTitle(String logTitle) {
-            this.logTitle = logTitle;
-        }
-
-        public String getNoticeContent() {
-            return noticeContent;
-        }
-
-        public void setNoticeContent(String noticeContent) {
-            this.noticeContent = noticeContent;
-        }
-    }
-
-
     /**
      * 闄勪欢绫诲瀷锛堝搴� multifile.objType锛�
      */
@@ -385,8 +292,8 @@
         LABOR_CONTRACT(11, "鏈夋晥鍔冲姩鍚堝悓"),
         ORDER_FILE(12,"涓嬪崟鍥剧墖"),
         STORE_OUT(13,"闂ㄥ簵鍑哄簱鍥剧墖"),
-        REFUND_TAKE(14,"閫�娆惧彇浠跺浘鐗�")
-
+        REFUND_TAKE(14,"閫�娆惧彇浠跺浘鐗�"),
+        COMMENT_ATTACH(15,"璇勪环闄勪欢鍥剧墖")
         ;
 
         private final int key;
@@ -396,12 +303,36 @@
     @Getter
     @AllArgsConstructor
     public enum OrderLogType {
-        urgent(0, "骞冲彴鍔犳��", "骞冲彴鍔犳�ワ紝濂栧姳閲� {param} 鍏冦��"),
-        dispatch(1, "骞冲彴鎸囨淳", "骞冲彴鎸囨淳鍙告満 {param} 鎺ュ崟銆�")
+        urgent(2, "骞冲彴鍔犳��", "骞冲彴鍔犳�ワ紝濂栧姳閲戙�恵param}銆戝厓"),
+        assignDriver(3, "骞冲彴鎸囨淳", "骞冲彴鎸囨淳鍙告満銆恵param}銆戞帴鍗曪紝濂栧姳閲戙�恵param1}銆戝厓"),
+        memberCancel(4, "浼氬憳鍙栨秷璁㈠崟", "{param}"),
+        driverCancel(4, "鍙告満鍙栨秷璁㈠崟", "{param}"),
+        systemCancel(4, "绯荤粺鑷姩鍙栨秷", "{param}"),
+        systemComplete(4, "绯荤粺鑷姩瀹屾垚", "{param}"),
+        memberCancelToConvert(4, "浼氬憳鍙栨秷寮傚湴瀵勫瓨", "{param}"),
+        shopDeposit(8, "闂ㄥ簵纭瀵勫瓨", "闂ㄥ簵銆恵param}銆戠‘璁ゅ瘎瀛�"),
+        shopTake(9, "闂ㄥ簵纭鍙栦欢", "闂ㄥ簵銆恵param}銆戠‘璁ゅ彇浠讹紝璁㈠崟瀹屾垚"),
+        shopOutStock(10, "闂ㄥ簵纭鍑哄簱", "{param}"),
+        shopConfirmArriveOverdue(5, "纭椤惧鍒板簵锛堥�炬湡锛�", "{param}"),
+        shopConfirmArrive(5, "纭椤惧鍒板簵", "{param}"),
+        driverGrab(6, "鍙告満鎶㈠崟", "鍙告満銆恵param}銆戞姠鍗曟垚鍔�"),
+        driverPickup(6, "鍙告満瀹屾垚鍙栦欢", "鍙告満銆恵param}銆戝畬鎴愬彇浠讹紝寮�濮嬫淳閫�"),
+        driverDeliver(7, "鍙告満纭閫佽揪", "{param}"),
         ;
-        private int status;
-        private String title;
-        private String statusInfo;
+        private final int status;
+        private final String title;
+        private final String statusInfo;
+
+        public String format(String... params) {
+            String result = statusInfo;
+            if (params != null && params.length > 0) {
+                result = result.replace("{param}", params[0] != null ? params[0] : "");
+            }
+            for (int i = 1; i < params.length; i++) {
+                result = result.replace("{param" + i + "}", params[i] != null ? params[i] : "");
+            }
+            return result;
+        }
     }
 
     /**
@@ -413,7 +344,7 @@
         STORAGE_ORDER("storageOrder", "瀵勫瓨璁㈠崟"),
         SHOP_DEPOSIT("shopDeposit", "搴楅摵鎶奸噾璁㈠崟"),
         DRIVER_DEPOSIT("driverDeposit", "鍙告満鎶奸噾璁㈠崟"),
-        OVERDUE_FEE("overdueFee", "閫炬湡璐圭敤璁㈠崟")
+        OVERDUE_FEE("overdueFee", "璁㈠崟閫炬湡璐圭敤")
         ;
 
         private final String key;
@@ -437,9 +368,6 @@
         arrived(5, "宸插埌搴�/宸查�佽揪/寰呭彇浠�"),
         overdue(6, "瀛樺湪閫炬湡"), //寮冪敤
         finished(7, "宸插畬鎴�"),
-        closed(96, "璁㈠崟鍏抽棴锛堥��娆撅級"),
-        cancelOverdue(97, "鍙栨秷閫炬湡"), //寮冪敤
-        cancelling(98, "鍙栨秷涓�"),
         cancelled(99, "宸插彇娑�")
         ;
         private final int status;
@@ -457,9 +385,16 @@
             return null;
         }
 
-        public static String getDescByKey(int index) {
+        public static String getDescByKey(int index,int type) {
             for (OrderStatus c : OrderStatus.values()) {
                 if (c.getKey() == index) {
+                    if (c.getKey() == 5) {
+                        if(Constants.equalsInteger(type,Constants.ZERO)){
+                            return "寰呭彇浠�";
+                        }else{
+                            return Constants.equalsInteger(type,Constants.ONE)?"宸插埌搴�":"宸查�佽揪";
+                        }
+                    }
                     return c.getValue();
                 }
             }
@@ -475,10 +410,12 @@
     public enum OrderCombinedStatus {
         waitPay(0, "寰呮敮浠�", new int[]{OrderStatus.waitPay.status}),
         waitDeposit(1, "寰呮牳楠�", new int[]{OrderStatus.waitDeposit.status}),
-        waitDeliver(2, "寰呴厤閫�", new int[]{OrderStatus.deposited.status}),
-        waitReceive(3, "寰呮敹璐�", new int[]{OrderStatus.accepted.status, OrderStatus.delivering.status, OrderStatus.arrived.status}),
+        waitDeliver(2, "寰呴厤閫�", new int[]{OrderStatus.accepted.status}),
+        waitReceive(3, "寰呮敹璐�", new int[]{ OrderStatus.delivering.status, OrderStatus.arrived.status}),
         finished(4, "宸插畬鎴�", new int[]{OrderStatus.finished.status}),
-        refund(5, "閫�娆�", new int[]{OrderStatus.closed.status, OrderStatus.cancelling.status})
+        refund(5, "閫�娆�", new int[]{OrderStatus.cancelled.status}),
+        home(6, "棣栭〉鏌ヨ", new int[]{OrderStatus.waitPay.status, OrderStatus.waitDeposit.status, OrderStatus.deposited.status
+                , OrderStatus.accepted.status, OrderStatus.delivering.status, OrderStatus.arrived.status})
         ;
         private final int key;
         private final String desc;
@@ -495,6 +432,187 @@
     }
 
     /**
+     * 棣栭〉璁㈠崟鐘舵�佹彁绀烘灇涓�
+     * status: 璁㈠崟鐘舵�佸��
+     * desc: 鐘舵�佹弿杩�
+     * tipTemplate: 鎻愮ず鏂囨妯℃澘锛屽崰浣嶇鐢� {xxx} 琛ㄧず
+     */
+    @Getter
+    @AllArgsConstructor
+    public enum OrderStatusTip {
+        waitPay(0, "寰呮敮浠�", "璇峰湪{timeout}鍒嗛挓鍐呭畬鎴愭敮浠橈紝瓒呮椂璁㈠崟灏嗚嚜鍔ㄥ彇娑�"),
+        waitDeposit(1, "寰呭瘎瀛�", "璁㈠崟宸叉敮浠橈紝璇峰墠寰�闂ㄥ簵瀵勫瓨"),
+        deposited(2, "宸插瘎瀛�", null), // 灏卞湴/寮傚湴鏂囨涓嶅悓锛屽姩鎬佸鐞�
+        accepted(3, "宸叉帴鍗�", "宸叉湁鍙告満鎶㈠崟锛屾鍓嶅線鍙栦欢鍦扮偣"),
+        delivering(4, "娲鹃�佷腑", "鍙告満宸插彇浠讹紝姝h繍寰�鐩殑鍦�"),
+        arrived(5, "寰呭彇浠�", null), // 灏卞湴/寮傚湴/鏈夋棤鍙栦欢闂ㄥ簵鏂囨涓嶅悓锛屽姩鎬佸鐞�
+        ;
+
+        private final int status;
+        private final String desc;
+        private final String tipTemplate;
+
+        public static OrderStatusTip getByStatus(int status) {
+            for (OrderStatusTip t : OrderStatusTip.values()) {
+                if (t.status == status) {
+                    return t;
+                }
+            }
+            return null;
+        }
+    }
+
+    /**
+     * 璁㈠崟绔欏唴淇¢�氱煡鏋氫妇
+     * title: 閫氱煡鏍囬
+     * content: 閫氱煡鏂囨妯℃澘锛屽崰浣嶇鐢� {xxx} 琛ㄧず
+     */
+    @Getter
+    @AllArgsConstructor
+    public enum MemberOrderNotify {
+        WAIT_PAY("waitPay", "璁㈠崟寰呮敮浠�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插垱寤猴紝璇峰湪{timeout}鍒嗛挓鍐呭畬鎴愭敮浠橈紝瓒呮椂灏嗚嚜鍔ㄥ彇娑�"),
+        WAIT_VERIFY("waitVerify", "璁㈠崟寰呮牳楠�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸叉彁浜わ紝绛夊緟闂ㄥ簵鏍搁獙鐗╁搧淇℃伅锛屽瓨浠剁爜{storeCode}"),
+        WAIT_GRAB("waitGrab", "璁㈠崟寰呮姠鍗�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸叉牳楠岋紝姝e湪涓烘偍瀹夋帓鍙栦欢鍙告満"),
+        WAIT_PICKUP_REMIND("waitPickupRemind", "璁㈠崟寰呭彇浠�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插瘎瀛橈紝璇疯寰楀湪棰勭害鍙栦欢鏃堕棿鍑彇浠剁爜鍓嶅線{shopName}闂ㄥ簵鍙栧洖"),
+        WAIT_PICKUP_GRABBED("waitPickupGrabbed", "璁㈠崟宸叉姠鍗�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸叉湁鍙告満{driverName}鎶㈠崟锛屾鍓嶅線鍙栦欢鍦扮偣"),
+        DELIVERING("delivering", "璁㈠崟閰嶉�佷腑", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸茬敱鍙告満{driverName}鍙栦欢锛屾杩愬線鐩殑鍦�"),
+        ARRIVED_NO_SHOP("arrivedNoShop", "璁㈠崟宸查�佽揪", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸查�佽揪{destination},璇峰強鏃剁‘璁ゆ敹璐�"),
+        ARRIVED_HAS_SHOP("arrivedHasShop", "璁㈠崟宸查�佽揪", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸查�佽揪{destination},璇峰強鏃跺彇浠讹紝鍙栦欢鐮亄pickupCode}"),
+        FINISHED("finished", "璁㈠崟宸插畬鎴�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插畬鎴愶紝鎰熻阿鎮ㄧ殑鏀寔锛岃瀵规湰娆℃湇鍔″仛鍑鸿瘎浠�"),
+        EVALUATED("evaluated", "璁㈠崟宸茶瘎浠�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}璇勪环宸叉彁浜わ紝鎰熻阿鎮ㄧ殑鐢ㄥ績璇勪环锛岀鎮ㄥ嚭琛岄『鍒╋紝鏃呴�旀剦蹇�!"),
+        CANCELLED("cancelled", "璁㈠崟宸插彇娑�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插彇娑堬紝鎰熻阿鎮ㄧ殑鏀寔锛屾杩庝笅娆″啀浼�!"),
+        DRIVER_CHANGED("driverChanged", "鍙告満鍙樻洿鎻愰啋", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}鍘熷徃鏈哄凡鍙栨秷锛岀郴缁熸鍦ㄤ负鎮ㄥ尮閰嶆柊鍙告満锛岃鐣欐剰閫氱煡銆�"),
+        REFUNDING("refunding", "璁㈠崟閫�娆句腑", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}閫�娆剧敵璇峰凡鎻愪氦锛屽钩鍙颁細灏嗗敖蹇负鎮ㄥ鐞嗛��娆�"),
+        REFUNDED("refunded", "璁㈠崟宸查��娆�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}閫�娆惧凡瀹屾垚锛岄噾棰漿amount}鍏冨皢鍘熻矾閫�鍥烇紝璇锋敞鎰忔煡鏀�")
+        ;
+
+        private final String key;
+        private final String title;
+        private final String content;
+
+        /**
+         * 鏍煎紡鍖栭�氱煡鍐呭
+         * @param params 閿�煎锛屽 "orderNo","123" 浜ゆ浛浼犲叆
+         */
+        public String format(String... params) {
+            String result = this.content;
+            for (int i = 0; i < params.length - 1; i += 2) {
+                result = result.replace("{" + params[i] + "}", params[i + 1]);
+            }
+            return result;
+        }
+    }
+
+    /**
+     * 闂ㄥ簵璁㈠崟绔欏唴淇¢�氱煡鏋氫妇
+     * title: 閫氱煡鏍囬
+     * content: 閫氱煡鏂囨妯℃澘锛屽崰浣嶇鐢� {xxx} 琛ㄧず
+     */
+    @Getter
+    @AllArgsConstructor
+    public enum ShopOrderNotify {
+        WAIT_VERIFY("waitVerify", "璁㈠崟寰呮牳楠�", "鏂拌鏉庤鍗曪細{orderNo}宸叉敮浠橈紝璇峰敖蹇牳楠岀敤鎴风墿鍝佷俊鎭�"),
+        WAIT_PICKUP("waitPickup", "璁㈠崟寰呭彇浠�", "琛屾潕璁㈠崟锛歿orderNo}宸叉姠鍗曪紝绛夊緟{name}鍙栦欢"),
+        REFUNDING("refunding", "璁㈠崟閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛鎻愪氦閫�娆剧敵璇凤紝璇风煡鎮�"),
+        DELIVERING("delivering", "璁㈠崟閰嶉�佷腑", "琛屾潕璁㈠崟锛歿orderNo}宸茬敱鍙告満{driverName}鍙栦欢锛屾鍦ㄩ厤閫佷腑"),
+        ARRIVED("arrived", "璁㈠崟宸查�佽揪", "琛屾潕璁㈠崟锛歿orderNo}宸查�佽揪{destination},璇疯仈绯荤敤鎴风‘璁ょ鏀�"),
+        FINISHED("finished", "璁㈠崟宸插畬鎴�", "琛屾潕璁㈠崟锛歿orderNo}宸插畬鎴愶紝鐩稿叧璁㈠崟缁撶畻浼氬湪{settleDays}涓伐浣滄棩鍐呭畬鎴�"),
+        EVALUATED("evaluated", "璁㈠崟宸茶瘎浠�", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸插畬鎴愯瘎浠凤紝鍙煡鐪嬭瘎浠峰唴瀹�"),
+        SETTLED("settled", "璁㈠崟缁撶畻", "琛屾潕璁㈠崟锛歿orderNo}骞冲彴宸插畬鎴愮粨绠楋紝閲戦涓簕amount}鍏冿紝璇锋敞鎰忔煡鏀躲��")
+        ;
+
+        private final String key;
+        private final String title;
+        private final String content;
+
+        /**
+         * 鏍煎紡鍖栭�氱煡鍐呭
+         * @param params 閿�煎锛屽 "orderNo","123" 浜ゆ浛浼犲叆
+         */
+        public String format(String... params) {
+            String result = this.content;
+            for (int i = 0; i < params.length - 1; i += 2) {
+                result = result.replace("{" + params[i] + "}", params[i + 1]);
+            }
+            return result;
+        }
+    }
+
+    /**
+     * 鍙告満璁㈠崟绔欏唴淇¢�氱煡鏋氫妇
+     * title: 閫氱煡鏍囬
+     * content: 閫氱煡鏂囨妯℃澘锛屽崰浣嶇鐢� {xxx} 琛ㄧず
+     */
+    @Getter
+    @AllArgsConstructor
+    public enum DriverOrderNotify {
+        WAIT_DELIVER("waitDeliver", "璁㈠崟寰呴厤閫�", "鎮ㄥ凡鎶㈠崟鎴愬姛锛岃鏉庤鍗曪細{orderNo}璇锋寜鏃跺埌{shopName}鍙栦欢"),
+        DELIVERING("delivering", "璁㈠崟閰嶉�佷腑", "琛屾潕璁㈠崟锛歿orderNo}宸插彇浠讹紝姝e湪閰嶉�佷腑锛岃鎸夋椂閫佽揪"),
+        ARRIVED("arrived", "璁㈠崟宸查�佽揪", "琛屾潕璁㈠崟锛歿orderNo}宸查�佽揪{destination},璇疯仈绯荤敤鎴风‘璁ょ鏀�"),
+        FINISHED("finished", "璁㈠崟宸插畬鎴�", "琛屾潕璁㈠崟锛歿orderNo}宸插畬鎴愶紝鐩稿叧璁㈠崟缁撶畻浼氬湪{settleDays}涓伐浣滄棩鍐呯粨绠�"),
+        EVALUATED("evaluated", "璁㈠崟宸茶瘎浠�", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸插畬鎴愯瘎浠凤紝鍙墠寰�璁㈠崟鏌ョ湅璇勪环鍐呭"),
+        REFUNDING("refunding", "璁㈠崟閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸叉彁浜ら��娆剧敵璇凤紝璇ヨ鍗曚换鍔″凡鍙栨秷锛岃鍕垮墠寰�銆�"),
+        SETTLED("settled", "璁㈠崟宸茬粨绠�", "琛屾潕璁㈠崟锛歿orderNo}骞冲彴宸插畬鎴愮粨绠楋紝閲戦涓簕amount}鍏冿紝璇锋敞鎰忔煡鏀躲��"),
+        CANCELLED("cancelled", "璁㈠崟鍙栨秷鎴愬姛", "琛屾潕璁㈠崟锛歿orderNo}宸插府鎮ㄥ彇娑堬紝鎮ㄤ粖鏃ヨ繕鍙富鍔ㄥ彇娑坽cancelLimit}娆¤鍗曪紝璇峰悎鐞嗗畨鎺掓帴鍗曘��")
+        ;
+
+        private final String key;
+        private final String title;
+        private final String content;
+
+        /**
+         * 鏍煎紡鍖栭�氱煡鍐呭
+         * @param params 閿�煎锛屽 "orderNo","123" 浜ゆ浛浼犲叆
+         */
+        public String format(String... params) {
+            String result = this.content;
+            for (int i = 0; i < params.length - 1; i += 2) {
+                result = result.replace("{" + params[i] + "}", params[i + 1]);
+            }
+            return result;
+        }
+    }
+
+    /**
+     * 鐭俊閫氱煡妯℃澘鏋氫妇
+     * templateCode: 闃块噷浜戠煭淇℃ā鏉緾ode
+     * content: 鐭俊鏂囨妯℃澘锛屽崰浣嶇鐢� {xxx} 琛ㄧず
+     */
+    @Getter
+    @AllArgsConstructor
+    public enum SmsNotify {
+        PLATFORM_WAIT_GRAB("SMS_505790009", "骞冲彴绔�-寰呮姠鍗�", "鎮ㄥソ锛岃鍗曪細{orderNo}宸茶秴杩噞time}鍒嗛挓鏃犲徃鏈烘姠鍗曪紝璇峰敖蹇姞鎬ユ淳鍗曪紝閬垮厤瀹㈡埛杩囦箙绛夊緟銆�"),
+        SHOP_REFUNDING("SMS_505900008", "闂ㄥ簵绔�-閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}瀹㈡埛宸叉彁浜ら��娆剧敵璇凤紝璇峰敖蹇鐞嗐��"),
+        SHOP_WAIT_VERIFY("SMS_505925004", "闂ㄥ簵绔�-寰呮牳楠�", "鏂拌鏉庤鍗曪細{orderNo}瀹㈡埛宸叉敮浠橈紝璇峰敖蹇牳楠岀敤鎴风墿鍝佷俊鎭��"),
+        DRIVER_REFUNDING("SMS_505795005", "鍙告満绔�-閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸叉彁浜ら��娆剧敵璇凤紝璇ヨ鍗曚换鍔″凡鍙栨秷锛岃鍕垮墠寰�銆�"),
+        DRIVER_WAIT_PICKUP("SMS_505650038", "鍙告満绔�-寰呭彇浠�", "鎮ㄥ凡鎶㈠崟鎴愬姛锛岃鍗晎orderNo}锛岃鎸夋椂鍒皗address}鍙栦欢銆�"),
+        MEMBER_CANCELLED("SMS_505605028", "浼氬憳绔�-宸插彇娑�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸插彇娑堬紝鎰熻阿鎮ㄧ殑鏀寔锛屾杩庝笅娆″啀浼氥��"),
+        MEMBER_REFUNDED("SMS_505920002", "浼氬憳绔�-宸查��娆�", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}閫�娆惧凡瀹屾垚锛岄噾棰漿money}鍏冨皢鍘熻矾閫�鍥烇紝璇锋敞鎰忔煡鏀躲��"),
+        MEMBER_ARRIVED("SMS_505875004", "浼氬憳绔�-宸查�佽揪", "鎮ㄧ殑琛屾潕璁㈠崟锛歿orderNo}宸查�佸埌{address}锛岃鍙婃椂鍙栦欢锛屽彇浠剁爜锛歿code}銆�"),
+        MEMBER_DELIVERING("SMS_505935002", "浼氬憳绔�-閰嶉�佷腑", "鎮ㄧ殑琛屾潕璁㈠崟锛歿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_505885082", "鍙告満绔�-鍔犳�ユ淳鍗�", "鎮ㄥソ锛屾偍鏈変竴涓柊鐨勮鏉庤鍗曪紙缂栧彿锛歿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_505810110", "闂ㄥ簵绔�-鎴愬姛鍏ラ┗閫氱煡", "鎭枩鎮紒鎮ㄧ殑闂ㄥ簵\"{storeName}\"宸查�氳繃骞冲彴瀹℃牳锛屾寮忓叆椹绘垚鍔熴�傛偍鍙櫥褰曞晢瀹跺悗鍙板紑濮嬫帴鍗曪紝璐﹀彿锛歿phone}锛屽垵濮嬪瘑鐮侊細{password}锛堝缓璁娆$櫥褰曞悗淇敼锛夈��"),
+        ;
+
+        private final String templateCode;
+        private final String title;
+        private final String content;
+
+        public String format(String... params) {
+            String result = this.content;
+            for (int i = 0; i < params.length - 1; i += 2) {
+                result = result.replace("{" + params[i] + "}", params[i + 1]);
+            }
+            return result;
+        }
+    }
+
+    /**
      * 寰楀埌request瀵硅薄
      *
      * @return

--
Gitblit v1.9.3