diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..0170c3d6e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+# Created by .ignore support plugin (hsz.mobi)
+### Java template
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.war
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+.idea
+*.iml
+target
+/.idea/
diff --git a/.m2/settings.xml b/.m2/settings.xml
new file mode 100644
index 000000000..027ac8221
--- /dev/null
+++ b/.m2/settings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ nexus
+ developer
+ 123456
+
+
+
+
+ alimaven
+ aliyun maven
+ http://maven.aliyun.com/nexus/content/groups/public/
+ central
+
+
+ nexus
+ collcollege
+ http://nexus.coolcollege.cn/repository/maven-public/
+ central
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index fda606505..dce7dc15e 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
-# custom_xfsg
+# coolstore-partner-manage
diff --git a/coolstore-partner-common/pom.xml b/coolstore-partner-common/pom.xml
new file mode 100644
index 000000000..a6081765b
--- /dev/null
+++ b/coolstore-partner-common/pom.xml
@@ -0,0 +1,120 @@
+
+
+
+ coolstore-partner-manage
+ com.coolstore
+ 1.0.0
+
+ 4.0.0
+
+ coolstore-partner-common
+
+
+ 8
+ 8
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.projectlombok
+ lombok
+
+
+ com.alibaba
+ fastjson
+
+
+ org.apache.commons
+ commons-collections4
+
+
+ org.apache.commons
+ commons-pool2
+
+
+ redis.clients
+ jedis
+
+
+ org.apache.tika
+ tika-core
+ 1.9
+
+
+ xerces
+ xercesImpl
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ cn.hutool
+ hutool-all
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+
+
+ com.google.guava
+ guava
+
+
+ commons-codec
+ commons-codec
+ 1.11
+
+
+ com.aliyun.openservices
+ ons-client
+
+
+ com.aliyun
+ ons20190214
+
+
+ com.aliyun
+ tea-openapi
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ com.github.tencentyun
+ tls-sig-api-v2
+ 2.0
+
+
+
+ com.github.librepdf
+ openpdf
+ 1.3.30
+
+
+
+ org.icepdf.os
+ icepdf-core
+ 6.2.2
+
+
+ javax.media
+ jai_core
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/annotation/Excel.java b/coolstore-partner-common/src/main/java/com/cool/store/annotation/Excel.java
new file mode 100644
index 000000000..1b8d4970a
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/annotation/Excel.java
@@ -0,0 +1,169 @@
+package com.cool.store.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.math.BigDecimal;
+
+/**
+ * 自定义导出Excel数据注解
+ *
+ * @author ruoyi
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface Excel
+{
+ /**
+ * 导出时在excel中排序
+ */
+ int sort() default Integer.MAX_VALUE;
+
+ /**
+ * 导出到Excel中的名字.
+ */
+ String name() default "";
+
+ /**
+ * 日期格式, 如: yyyy-MM-dd
+ */
+ String dateFormat() default "";
+
+ /**
+ * 读取内容转表达式 (如: 0=男,1=女,2=未知)
+ */
+ String readConverterExp() default "";
+
+ /**
+ * 分隔符,读取字符串组内容
+ */
+ String separator() default ",";
+
+ /**
+ * BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
+ */
+ int scale() default -1;
+
+ /**
+ * BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
+ */
+ int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
+
+ /**
+ * 导出类型(0数字 1字符串)
+ */
+ ColumnType cellType() default ColumnType.STRING;
+
+ /**
+ * 导出时在excel中每个列的高度 单位为字符
+ */
+ double height() default 14;
+
+ /**
+ * 导出时在excel中每个列的宽 单位为字符
+ */
+ double width() default 16;
+
+ /**
+ * 文字后缀,如% 90 变成90%
+ */
+ String suffix() default "";
+
+ /**
+ * 当值为空时,字段的默认值
+ */
+ String defaultValue() default "";
+
+ /**
+ * 提示信息
+ */
+ String prompt() default "";
+
+ /**
+ * 设置只能选择不能输入的列内容.
+ */
+ String[] combo() default {};
+
+ /**
+ * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写.
+ */
+ boolean isExport() default true;
+
+ /**
+ * 另一个类中的属性名称,支持多级获取,以小数点隔开
+ */
+ String targetAttr() default "";
+
+ /**
+ * 是否自动统计数据,在最后追加一行统计数据总和
+ */
+ boolean isStatistics() default false;
+ /**
+ * 列颜色(列头与列内容) IndexedColors.SKY_BLUE.getIndex()
+ */
+ short columnsColor() default 0;
+
+ /**
+ * 须比较列 注解所在列顺序与比较列属性的值进行比较
+ */
+ String compareColName() default "";
+ /**
+ * 导出错误信息
+ */
+ String compareExportInfo() default "";
+ /**
+ * 字段类型(0:导出导入;1:仅导出;2:仅导入)
+ */
+ Type type() default Type.ALL;
+
+ enum Type
+ {
+ /**
+ * 导出导入
+ */
+ ALL(0),
+ /**
+ * 仅导出
+ */
+ EXPORT(1),
+ /**
+ * 仅导入
+ */
+ IMPORT(2);
+ private final int value;
+
+ Type(int value)
+ {
+ this.value = value;
+ }
+
+ public int value()
+ {
+ return this.value;
+ }
+ }
+
+ enum ColumnType
+ {
+ /**
+ * 数字
+ */
+ NUMERIC(0),
+ /**
+ * 字符串
+ */
+ STRING(1);
+ private final int value;
+
+ ColumnType(int value)
+ {
+ this.value = value;
+ }
+
+ public int value()
+ {
+ return this.value;
+ }
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/annotation/Excels.java b/coolstore-partner-common/src/main/java/com/cool/store/annotation/Excels.java
new file mode 100644
index 000000000..a1c7c6e0d
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/annotation/Excels.java
@@ -0,0 +1,18 @@
+package com.cool.store.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Excel注解集
+ *
+ * @author ruoyi
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Excels
+{
+ Excel[] value();
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java b/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java
new file mode 100644
index 000000000..97e5a9e1a
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java
@@ -0,0 +1,14 @@
+package com.cool.store.common;
+
+import lombok.Data;
+
+@Data
+public class PageBasicInfo {
+
+ //页码
+ private Integer pageNum;
+
+ //分页大小
+ private Integer pageSize;
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
new file mode 100644
index 000000000..d38ff3fe9
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
@@ -0,0 +1,189 @@
+package com.cool.store.constants;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: CommonConstatns
+ * @Description:
+ * @date 2023-05-18 14:47
+ */
+public class CommonConstants {
+
+ public static final String REQUEST_ID = "requestId";
+
+ public static final String MESSAGE_ID = "messageId";
+
+ public static final String ACCESS_TOKEN_KEY = "access_token:{0}";
+
+ public static final String REFRESH_TOKEN_KEY = "refresh_token";
+
+ public static final String DEFAULT_AVATAR = "DefaultAvatar";
+
+ public static final int ACCESS_TOKEN_EXPIRE = 14400;
+
+ public static final int THREE_DAY_SECONDS = 60 * 60 * 24 * 3;
+
+ public static final int NORMAL_LOCK_TIMES = 60 * 1000;
+
+ public static final int AN_HOUR_SECONDS = 3600;
+
+ /**
+ * 跟进任务通知缓存时间 1小时
+ */
+ public static final int FOLLOW_TASK_NOTICE_LOCK_TIMES = 60 * 60 * 1000;
+
+ public static final int ONE_DAY_SECONDS = 24 * 60 * 60;
+
+ /**
+ * 系统用户id
+ */
+ public static final String SYSTEM_USER_ID = "system";
+ public static final String COMMA = ",";
+ public static final String MOSAICS = "#";
+
+ public static final String WX_APP_SECRET_KEY = "wx_app_secret_key:{0}";
+ public static final String MINI_PROGRAM_SESSION_KEY = "mini_program_session_key:{0}:{1}";
+
+ public static final String ROOT_DEPT_ID_STR = "1";
+
+ public static final Integer DEAL_RECORD_MAX_SIZE = 1000;
+
+ /**
+ * 未分组区域id
+ */
+ public static final Long UNGROUPED_DEPT_ID = -2L;
+
+ /**
+ * 未分组区域名称
+ */
+ public static final String UNGROUPED_DEPT_NAME = "默认分组";
+
+ /**
+ * 拼接符 [
+ */
+ public static final String SQUAREBRACKETSLEFT = "[";
+
+ /**
+ * 拼接符 ]
+ */
+ public static final String SQUAREBRACKETSRIGHT = "]";
+
+ public static final String PATH_SPILT = "/";
+ public static final String PATH_BAR = "-";
+ public static final String COLON = ":";
+ public static final String ROOT_REGION_PATH = "/1/";
+
+ /**
+ * rocketmq 消息最大重试次数
+ */
+ public static final String MaxReconsumeTimes = "2";
+
+ public static final String ZERO_STR = "0";
+ public static final String DELETE_DEPT_ID = "-1";
+ public static final String AI_USER_ID = "a100000001";
+
+ public static final long ZERO_LONG = 0L;
+
+ public static final int MINUS_ONE = -1;
+ public static final int ZERO = 0;
+ public static final int ONE = 1;
+ public static final int TWO = 2;
+ public static final int THREE = 3;
+ public static final int FOUR = 4;
+ public static final int FIVE = 5;
+ public static final int SIX = 6;
+ public static final int SEVEN = 7;
+ public static final int EIGHT = 8;
+ public static final int NINE = 9;
+ public static final int TEN = 10;
+ public static final int TWENTY = 20;
+ public static final int THIRTY = 30;
+ public static final int FORTY = 40;
+ public static final int FIFTY = 50;
+ public static final int SIXTY = 60;
+ public static final int SEVENTY = 70;
+ public static final int EIGHTY = 80;
+ public static final int NINETY = 90;
+ public static final int HUNDRED = 100;
+ public static final int FIVE_HUNDRED = 100;
+ public static final int ONE_THOUSAND = 1000;
+ public static final int FIFTY_FIVE = 55;
+ public static final int SIXTY_FIVE = 65;
+ public static final int MIN_CODE = 10000000;
+ public static final int MAX_CODE = 89999999;
+
+
+ public static final String ONE_STR = "1";
+ public static final String TWO_STR = "2";
+ public static final String THREE_STR = "3";
+ public static final String FOUR_STR = "4";
+ public static final String FIVE_STR = "5";
+ public static final String SIX_STR = "6";
+ public static final String SEVEN_STR = "7";
+ public static final String EIGHT_STR = "8";
+ public static final String NINE_STR = "9";
+ public static final String TEN_STR = "10";
+
+ public static final String FOLLOW = "follow";
+ public static final String PENDING = "pending";
+
+
+ public static final String CLOSE = "close";
+ public static final String OPEN = "open";
+
+
+ public static final String ALLOCATION = "allocation";
+
+ public static final String TRANSFER = "transfer";
+
+ // 短信模版-意向申请审批通过
+ public static final String SMS_TEMPLATE_CODE_INTENT = "SMS_461990823";
+ // 短信模版-资质审核通过
+ public static final String SMS_TEMPLATE_CODE_VERIFY = "SMS_461980876";
+
+ public static final String DAY_END_TIME_SUFFIX = " 23:59:59";
+
+ public static final String DAY_START_TIME_SUFFIX = " 00:00:00";
+
+ public static final String FOLLOW_TASK_NOTICE_KEY = "follow_task_notice:{0}:{1}";
+
+ public static final Long LONG_ONE = 1L;
+ // 线索选择的意向区域没有绑定战区,线索分配给【拓展经理胡德龙】
+ public static final String DEAULT_INVESTMENT_JOBNUMBER_ONLINE = "17021329";
+ public static final String DEAULT_INVESTMENT_JOBNUMBER_TEST = "23483622251259165";
+ public static final String DEAULT_SELECT_SITE_MANAGER_ONLINE = "09080211";
+ public static final String DEAULT_SELECT_SITE_MANAGER_TEST = "23483622251259165";
+ // 【铺位1】所属战区没有战区经理、营运经理和大区经理,开店负责人展示【王磊】
+ public static final String DEAULT_SHOP_MANAGER_USER_ID_ONLINE = "19060164";
+ public static final String DEAULT_SHOP_MANAGER_USER_ID_TEST = "23483622251259165";
+ public static final int MAX_LENGTH_ONE_HUNDRED = 100;
+
+ public static final String YUN_XUE_TANG_SUC_CODE = "10000";
+ //鲜丰
+ //设计阶段+施工阶段
+ public static final String CONSTRUCTION_PHASE = "施工阶段";
+ public static final String MEASURING_THE_ROOM = "量房";
+ public static final String CONSTRUCTION_DRAWING = "施工图+预算";
+ public static final String FLOOR_PLAN = "平面图+门头效果图";
+ public static final String BUDGET_BOOK = "工程预算";
+ public static final String APPROACH="进场";
+ public static final String ONE_DAY="第一天-进场拆除、基础材料下单、物料设备下单";
+ public static final String TWO_DAY="第二天-水电预埋、地砖铺贴";
+ public static final String THREE_DAY="第三天-橱窗隔断、木工包柱、电工布线";
+ public static final String FOUR_DAY="第四天-护墙板安装、空调安装";
+ public static final String FIVE_DAY="第五天-吊顶隔断、木工铝塑板";
+ public static final String SIX_DAY="第六天-灯具安装、室内广告安装、冷柜安装、道具卸货";
+ public static final String SEVEN_DAY="第七天-道具安装、室外招牌安装";
+ public static final String EIGHT_DAY="第八天-卫生保洁、网络及收银设备安装、撤场交接";
+ public static final String WITHDRAWAL="撤场";
+ public static final String TRANSCODE_VIDEO = "mp4";
+ public static final String PRODUCT_REMIND = "product_remind";
+
+ /**
+ * 返回成功描述
+ */
+ public static final String SUCCESS_STR = "success";
+
+ public static final String HD_ENV = "hd";
+ public static final String ONLINE_ENV = "online";
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java
new file mode 100644
index 000000000..f461fb4e0
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java
@@ -0,0 +1,34 @@
+package com.cool.store.constants;
+
+/**
+ * hxd
+ */
+public class ExcelErrorConstants {
+
+ public static final String NAME_LOSE = "姓名缺失";
+
+ public static final String NAME_OVER_LENGTH = "姓名过长";
+
+ public static final String MOBILE_LOSE= "手机号缺失";
+
+ public static final String MOBILE_ERROR= "手机号有误";
+
+ public static final String MOBILE_EXIST= "手机号已存在";
+
+ public static final String LIVE_AREA_LOSE = "常驻区域缺失";
+
+ public static final String LIVE_AREA_FORMAT_ERROR = "常驻区域格式错误";
+
+ public static final String WANT_SHOP_AREA_LOSE = "意向区域缺失";
+
+ public static final String WANT_SHOP_AREA_FORMAT_ERROR = "意向区域格式错误";
+
+ public static final String ACCEPT_ADJUST_TYPE_LOSE = "是否接受调剂缺失";
+
+ public static final String INVESTMENT_MANAGER_LOSE = "未找到此招商经理,请核实";
+
+ public static final String COUNT_MORE = "每次数据最多导入500条,请分批上传";
+
+ public static final String MOBILE_REPEAT = "手机号重复";
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/MessageConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/MessageConstants.java
new file mode 100644
index 000000000..4e5e4287d
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/MessageConstants.java
@@ -0,0 +1,17 @@
+package com.cool.store.constants;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: MessageConstants
+ * @Description:通知消息常量
+ * @date 2023-08-14 14:41
+ */
+public class MessageConstants {
+
+ public static final String FOLLOW_TASK_MESSAGE_TITLE = "线索跟进任务";
+ public static final String FOLLOW_TASK_MESSAGE_CONTENT = "您有一个线索跟进任务将于{0}截止 ,线索信息{1}手机号{2},请及时跟进";
+ public static final String FOLLOW_TASK_MESSAGE_CONTENT_1 = "您有{0}个线索跟进任务将于今日截止,及{1}个跟进任务已逾期,请及时跟进";
+ public static final String FOLLOW_TASK_MESSAGE_CONTENT_2 = "您有{0}个跟进任务已逾期,请及时跟进";
+ public static final String FOLLOW_TASK_MESSAGE_CONTENT_3 = "您有{0}个线索跟进任务将于今日截止,请及时跟进";
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
new file mode 100644
index 000000000..e72023d47
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
@@ -0,0 +1,280 @@
+package com.cool.store.constants;
+
+/**
+ * redis key 类
+ * @author byd
+ * @date 2021-03-11 14:55
+ */
+public class RedisConstant {
+
+ public static final String TB_DISPLAY_HANDLE = "tb_display_handle_";
+ /**
+ * 新陈列审核
+ */
+ public static final String TB_DISPLAY_APPROVE = "tb_display_approve_";
+
+ /**
+ * 新陈列复核
+ */
+ public static final String TB_DISPLAY_RECHECK = "tb_display_recheck";
+
+ /**
+ * 新陈列三级审批
+ */
+ public static final String TB_DISPLAY_THIRD_APPROVE = "tb_display_third_approve";
+
+ /**
+ * 新陈列四级审批
+ */
+ public static final String TB_DISPLAY_FOUR_APPROVE = "tb_display_four_approve";
+
+ /**
+ * 新陈列五级审批
+ */
+ public static final String TB_DISPLAY_FIVE_APPROVE = "tb_display_five_approve";
+
+ /**
+ * 区域/组织同步锁key 点击同步锁key
+ */
+ public static final String REGION_SYNC_LOCK = "region_sync_lock_";
+
+ /**
+ * 问题工单key
+ */
+ public static final String QUESTION_TASK_LOCK = "question_task_lock_";
+
+ /**
+ * 店务工单key
+ */
+ public static final String STORE_WORK_QUESTION_TASK_LOCK = "store_work_question_task_lock_";
+
+ /**
+ * 企业同步key 有效拦截
+ */
+ public static final String EID_SYNC_EFFECTIVE = "eid_sync_effective_";
+
+ /**
+ * 通知key做为拦截
+ */
+ public static final String TASK_STAGE_NOTICE = "task_stage_notice_";
+
+ public static final String TASK_DEL_FLAG = "task_del_flag_";
+
+
+
+ /**
+ * 系统内区域key
+ */
+ public static final String REGION_SYNC_ALL= "region_sync_all_";
+
+ /**
+ * 系统内区域key
+ */
+ public static final String STORE_SYNC_ALL= "store_sync_all_";
+
+ /**
+ * 企业广告配置信息key前缀
+ */
+ public static final String ADVERT_SETTING_PREFIX= "advert_setting_";
+
+ /**
+ * 企业广告配置信息value
+ */
+ public static final String ADVERT_SETTING_VALUE= "1";
+
+ /**
+ * 企业广告配置信息value
+ */
+ public static final String COOL_TOKEN_PREFIX= "cool_token_";
+
+ /**
+ * 用户企业token前缀
+ */
+ public static final String ACCESS_TOKEN_PREFIX ="access_token:";
+
+ /**
+ * refresh token
+ */
+ public static final String REFRESH_TOKEN_PREFIX ="refresh_token:";
+
+ /**
+ * 用户账号密码错误次数key
+ */
+ public static final String ERROR_PASSWORD_COUNT_KEY = "errorPasswordCount_{0}_{1}";
+
+ /**
+ * 未完成转码
+ */
+ public static final String VIDEO_NOT_COMPLETE_CACHE = "video_not_complete_cache";
+ /**
+ * 任务抓拍状态记录
+ */
+ public static final String CAPTURE_PICTURE_STATUS_PREFIX ="capture_picture_status:";
+
+ /**
+ * 视频转码回调
+ */
+ public static final String VIDEO_CALLBACK_CACHE = "video_callback_cache_";
+
+ /**
+ * 任务重新分配 防止重复提交
+ */
+ public static final String TASK_STORE_REALLOCATE = "task_store_reallocate_";
+
+ /**
+ * 是否返回区域对应门店权限redis控制key
+ */
+ public static final String SHOW_STORE_AUTH = "show_store_auth";
+
+ /**
+ * 是否返回区域对应门店权限redis控制key
+ */
+ public static final String FIRST_LOGIN = "first_login_";
+
+ /**
+ * 区域全路径名称缓存
+ */
+ public static final String REGION_ALL_NAME_CACHE = "region_all_name_cache_";
+
+ /**
+ * 获取菜单引导key
+ */
+ public static final String GUIDE_INFO = "guide_info_";
+
+ /**
+ * 组织架构模块是否第一次登录
+ */
+ public static final String OrgModuleFirstLogin = "OrgModuleFirstLogin:{0}:{1}";
+
+ /**
+ * 历史企业key
+ */
+ public static final String HISTORY_ENTERPRISE = "historyEnterprise";
+
+ /**
+ * 留资企业key
+ */
+ public static final String LEAVE_ENTERPRISE = "leaveEnterprise";
+
+ /**
+ * 留资开关
+ */
+ public static final String LEAVE_OPEN = "leaveOpen";
+
+ /**
+ * 工单分享key
+ */
+ public static final String QUESTION_SHARE_KEY = "question_share:{0}";
+
+ /**
+ * 企业配置信息
+ */
+ public static final String ENTERPRISE_CONFIG_KEY = "enterpriseConfig:{0}";
+
+ public static final String ENTERPRISE_KEY = "enterpriseInfo:{0}";
+
+
+ public static final String ENTERPRISE_DB_SERVER = "enterpriseDBServer:{0}";
+
+ public static final String QUESTION_SETTING_CACHE_KEY = "questionSettingCacheKey:{0}";
+
+ public static final String ENTERPRISE_SETTING_CACHE_KEY = "enterpriseSettingCacheKey:{0}";
+
+ public static final String ENTERPRISE_STORE_SETTING_CACHE_KEY = "enterpriseStoreSettingCacheKey:{0}";
+
+ public static final String QUESTION_CACHE_KEY = "questionDataCache:{0}:{1}:{2}_{3}";
+
+
+ public static final String QUESTION_NOTICE_KEY = "questionNoticeCache:{0}:{1}:{2}:{3}_{4}_{5}_{6}";
+
+ public static final String STOREWORK_NOTICE_KEY = "storeWorkNoticeCache:{0}:{1}:{2}:{3}";
+
+ /**
+ * 冷静期内是否首次登录 冷静期首次登录 是-true 否-false
+ */
+ public static final String COOLINGPERIOD_FIRSTLOGIN_KEY = "coolingPeriodFirstLoginCache:{0}";
+
+ /**
+ * 七天
+ */
+ public static final int SEVEN_DAY = 7 * 24 * 60 * 60;
+
+ /**
+ * 1天
+ */
+ public static final int ONE_DAY_SECONDS = 24 * 60 * 60;
+
+ /**
+ * 3天
+ */
+ public static final int THREE_DAY = 3 * 24 * 60 * 60 * 1000;
+
+ public static final String UPCOMING_BACKLOG_ID = "upcoming_backlog:{0}:{1}:{2}";
+
+
+ public static final String ENTERPRISE_OPEN_STATUS_KEY = "enterprise_open_status:{0}_{1}";
+
+ public static final String PARTNER_BASEINFO_CACHE_KEY = "partnerBaseInfoCache:{0}:{1}";
+
+ public static final String PARTNER_CLERKINFO_CACHE_KEY = "partnerClerkInfoCache:{0}:{1}";
+
+ public static final String PARTNER_INTENTINFO_CACHE_KEY = "partnerIntentInfoCache:{0}:{1}";
+
+ public static final String PARTNER_WANTSHOPINFO_CACHE_KEY = "partnerWantShopInfoCache:{0}:{1}";
+
+ public static final String PARTNER_INDUSTRYCOGNITIONINFO_CACHE_KEY = "partnerIndustryCognitionInfoCache:{0}:{1}";
+
+
+ public static final String DEVICE_OPEN_TOKEN = "device_open_token:{0}:{1}:{2}";
+
+ public static final String PHONE_NUMBER= "phone_number_";
+
+ /**
+ * MDM 省市区数据缓存
+ */
+
+ /**
+ * 省级数据缓存
+ */
+ public static final String MDM_AREA_PROVINCE = "mdm:area:province";
+
+ /**
+ * 其他区域数据缓存
+ */
+ public static final String MDM_AREA_OTHERS = "mdm:area:others:{0}";
+
+ /**
+ * MDM 所属大区缓存
+ */
+ public static final String MDM_BELONG_REGION = "mdm:belongRegion";
+
+ /**
+ * MDM 业务区域缓存
+ */
+ public static final String MDM_BUSINESS_REGION = "mdm:businessRegion";
+
+ /**
+ * 动态标题
+ */
+ public static final String CONTENT_TITLES = "content:titles";
+
+ /**
+ * 用户预约面试锁
+ */
+ public static final String PARTNER_APPOINTMENT_LOCK = "partner:appointment:lock:{0}";
+
+ /**
+ * 用户意向区域key
+ */
+ public static final String USER_WANT_AREA_CACHE = "user_want_area_cache_";
+
+ /**
+ * 招商经理轮询key
+ */
+ public static final String INVESTMENT_MANAGER_CACHE = "investment_manager_cache_";
+
+ /**
+ * 招商经理轮询key
+ */
+ public static final String YUN_XUE_TANG_ACCESS_TOKEN = "yun_xue_tang_access_token_";
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AIEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AIEnum.java
new file mode 100644
index 000000000..e977c71e2
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AIEnum.java
@@ -0,0 +1,26 @@
+package com.cool.store.enums;
+
+public enum AIEnum {
+
+ AI_NAME("AI用户"),
+ AI_USERID("a100000001"),
+ AI_ID("a100000000"),
+ AI_DEPARTMENT("[1]"),
+ AI_ROLES("20000000"),
+ AI_UUID("a100000002"),
+ AI_MOBILE("AIAdminUser");
+
+
+
+ private void setCode(String code) {
+ this.code = code;
+ }
+
+ private String code;
+ AIEnum(String code){
+ this.code=code;
+ }
+ public String getCode() {
+ return code;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AcceptAdjustTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AcceptAdjustTypeEnum.java
new file mode 100644
index 000000000..8a706971e
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AcceptAdjustTypeEnum.java
@@ -0,0 +1,63 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/6/19 19:48
+ * @Version 1.0
+ */
+public enum AcceptAdjustTypeEnum {
+
+ NOT_ACCEPT(0,"不接受调剂"),
+ NATIONAL_ADJUSTMENT(1,"全国调剂"),
+ PROVINCIAL_ADJUSTMENT(2,"省内调剂"),
+ LOCAL_ADJUSTMENT(3,"市内调剂"),
+
+
+
+
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ AcceptAdjustTypeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+
+ public String getMessage(String enums) {
+ return AcceptAdjustTypeEnum.valueOf(enums).getMessage();
+ }
+
+
+ public Integer getCode(String enums) {
+ return AcceptAdjustTypeEnum.valueOf(enums).getCode();
+ }
+
+
+ /**
+ * 根据name查找
+ * @param message 枚举message
+ * @return 枚举对象
+ */
+ public static Integer findEnumByName(String message) {
+ for (AcceptAdjustTypeEnum statusEnum : AcceptAdjustTypeEnum.values()) {
+ if (statusEnum.getMessage().equals(message)) {
+ //如果需要直接返回code则更改返回类型为String,return statusEnum.code;
+ return statusEnum.getCode();
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ApiErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ApiErrorCodeEnum.java
new file mode 100644
index 000000000..4eda76877
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ApiErrorCodeEnum.java
@@ -0,0 +1,41 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public enum ApiErrorCodeEnum {
+ LINE_INFO("lineInfoDO","线索信息缺失"),
+ FRANCHISE_FEE("franchiseFeeDO","缴费信息缺失"),
+ SIGNING_BASE_INFO("signingBaseInfoDO","签约信息缺失"),
+ LINE_PAY("linePayDO","缴款信息缺失"),
+ POINT_INFO("pointInfoDO","铺位信息缺失"),
+ SYSTEM_BUILDING_SHOP("systemBuildingShopDO","建店数据缺失"),
+ LICENSE_TRANSACT("licenseTransactDO","证照办理数据缺失"),
+ THIRD_DEPARTMENT("thirdDepartmentDO","三方部门表缺失"),
+ ;
+
+
+ private String errorMessage;
+ private String code;
+
+ ApiErrorCodeEnum(String code, String errorMessage) {
+ this.code = code;
+ this.errorMessage = errorMessage;
+ }
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+ public String getCode() {
+ return code;
+ }
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(ApiErrorCodeEnum::getCode, Function.identity(), (a, b)->a));
+
+ public static ApiErrorCodeEnum getByCode(String code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AppointmentStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AppointmentStatusEnum.java
new file mode 100644
index 000000000..852787e37
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AppointmentStatusEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: AppointmentStatusEnum
+ * @Description:预约状态
+ * @date 2024-03-15 16:15
+ */
+public enum AppointmentStatusEnum {
+
+ //状态 0:不可预约 1:已被预约 2:可预约
+ NOT_APPOINTMENT(0, "不可预约"),
+ APPOINTMENT(1, "已被预约"),
+ CAN_APPOINTMENT(2, "可预约"),
+ ;
+ private Integer code;
+ private String message;
+
+
+ AppointmentStatusEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AreaStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AreaStatusEnum.java
new file mode 100644
index 000000000..360f94192
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AreaStatusEnum.java
@@ -0,0 +1,35 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/6/19 19:44
+ * @Version 1.0
+ */
+public enum AreaStatusEnum {
+
+
+ OPEN("open","开放"),
+ KEY_OPEN("keyOpen","重点开放"),
+
+
+
+ ;
+
+ private String code;
+
+ private String message;
+
+ AreaStatusEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AssessmentTemplateType.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AssessmentTemplateType.java
new file mode 100644
index 000000000..298c9e4ef
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AssessmentTemplateType.java
@@ -0,0 +1,40 @@
+package com.cool.store.enums;
+
+/**
+ * @author byd
+ * @date 2024-04-30 15:54
+ */
+public enum AssessmentTemplateType {
+
+ TRAINER(0, "教练员"),
+ STORE_MANAGER(1, "店长"),
+ CLERK(2, "店员"),
+ TRIPARTITE_ACCEPTANCE(3, "三方验收"),
+ ;
+
+ private Integer code;
+
+ private String name;
+
+ private AssessmentTemplateType(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public static AssessmentTemplateType getByCode(Integer code) {
+ for (AssessmentTemplateType auditStatusEnum : AssessmentTemplateType.values()) {
+ if (auditStatusEnum.getCode().equals(code)) {
+ return auditStatusEnum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditEnum.java
new file mode 100644
index 000000000..8b9deab90
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditEnum.java
@@ -0,0 +1,44 @@
+package com.cool.store.enums;
+
+public enum AuditEnum {
+
+ CONTRACT_INTENTION("intention", "意向加盟合同API","intentAgreementServiceImpl"),
+ SYS_BUILD("sysBuild", "系统建店API","sysStoreAppServiceImpl"),
+ SIGN_FRANCHISE("signFranchise", "加盟合同签约","signFranchiseServiceImpl"),
+
+ ;
+
+ private String code;
+
+ private String message;
+
+ private String clazz;
+
+ AuditEnum(String code, String message, String clazz) {
+ this.code = code;
+ this.message = message;
+ this.clazz = clazz;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public String getClazz() {
+ return clazz;
+ }
+
+ public static AuditEnum getWorkflowSubStageEnum(String flag) {
+ for (AuditEnum auditEnum : AuditEnum.values()) {
+ if (auditEnum.getCode().equals(flag)) {
+ return auditEnum;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditResultTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditResultTypeEnum.java
new file mode 100644
index 000000000..476eca229
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditResultTypeEnum.java
@@ -0,0 +1,31 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: AuditResultTypeEnum
+ * @Description:
+ * @date 2024-03-20 14:55
+ */
+public enum AuditResultTypeEnum {
+
+ PASS(0, "通过"),
+ REJECT(1, "拒绝"),
+ CLOSE(2, "结束跟进");
+
+ private Integer code;
+
+ private String name;
+
+ private AuditResultTypeEnum(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditStageEnum.java
new file mode 100644
index 000000000..12559b2f4
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditStageEnum.java
@@ -0,0 +1,39 @@
+package com.cool.store.enums;
+
+public enum AuditStageEnum {
+
+ ONE(1, "一审稽核"),
+ TWO(2, "二审稽核"),
+
+
+ ;
+
+
+ private Integer code;
+
+ private String name;
+
+ AuditStageEnum(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public static AuditStageEnum getByCode(Integer code) {
+ for (AuditStageEnum auditStatusEnum : AuditStageEnum.values()) {
+ if (auditStatusEnum.getCode().equals(code)) {
+ return auditStatusEnum;
+ }
+ }
+ return null;
+ }
+
+}
+
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditStatusEnum.java
new file mode 100644
index 000000000..430b6db24
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditStatusEnum.java
@@ -0,0 +1,40 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: AuditStatusEnum
+ * @Description:
+ * @date 2024-03-20 14:55
+ */
+public enum AuditStatusEnum {
+
+ TODO(0, "待处理"),
+ PASS(1, "通过"),
+ REJECT(2, "拒绝");
+
+ private Integer code;
+
+ private String name;
+
+ private AuditStatusEnum(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public static AuditStatusEnum getByCode(Integer code) {
+ for (AuditStatusEnum auditStatusEnum : AuditStatusEnum.values()) {
+ if (auditStatusEnum.getCode().equals(code)) {
+ return auditStatusEnum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java
new file mode 100644
index 000000000..f94a2dc29
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java
@@ -0,0 +1,31 @@
+package com.cool.store.enums;
+
+public enum AuditTypeEnum {
+ VISUAL_ACCEPTANCE(0, "视觉验收"),
+ TRAINING_REGISTRATION_APPROVAL(1, "培训登记审批"),
+ OPENING_OPERATION_PLAN(2, "开业运营方案"),
+ LICENSE_APPROVAL(3, "证照审批"),
+ SYS_BUILD(4, "系统建店"),
+ SITE_SELECTION(5, "选址"),
+ UPLOAD_RENT_CONTRACT(6, "上传租赁合同"),
+ PAY_FRANCHISE_FEE(7,"缴纳加盟费"),
+ SIGN_FRANCHISE(8,"加盟合同签约"),
+ ;
+
+ private Integer code;
+
+ private String name;
+
+ private AuditTypeEnum(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java
new file mode 100644
index 000000000..f2507fce6
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java
@@ -0,0 +1,58 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * describe:
+ *
+ * @author zhouyiping
+ * @date 2020/10/13
+ */
+public enum AuthRoleEnum {
+ /**
+ * 全企业数据
+ */
+ ALL("all", "全企业数据"),
+
+ /**
+ * 所在组织架构包含下级
+ */
+ INCLUDE_SUBORDINATE("include_subordinate","所在组织架构包含下级"),
+
+
+// /**
+// * 所在的组织架构不包含下级
+// */
+ NOT_INCLUDE_SUBORDINATE("not_include_subordinate","所在的组织架构不包含下级"),
+
+ /**
+ * 仅自己的数据
+ */
+ PERSONAL("personal","仅自己的数据");
+
+ private String code;
+ private String msg;
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(AuthRoleEnum::getCode, Function.identity()));
+
+ AuthRoleEnum(String code, String msg){
+ this.code=code;
+ this.msg=msg;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+ public static AuthRoleEnum getByCode(String code) {
+ return map.get(code);
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/CallStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/CallStatusEnum.java
new file mode 100644
index 000000000..03f88f11e
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/CallStatusEnum.java
@@ -0,0 +1,25 @@
+package com.cool.store.enums;
+
+public enum CallStatusEnum {
+
+ PENDING_CALL(0, "待呼叫"),
+ CALL_ANSWERED(1, "呼叫接听"),
+ CALL_MISSED(2, "呼叫未接听"),
+ CALL_FAILED(3, "呼叫失败");
+
+ private final int code;
+ private final String message;
+
+ CallStatusEnum(int code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ConstructionPhaseEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ConstructionPhaseEnum.java
new file mode 100644
index 000000000..95b952a70
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ConstructionPhaseEnum.java
@@ -0,0 +1,31 @@
+package com.cool.store.enums;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/28/下午7:25
+ * @Version 1.0
+ * @注释:
+ */
+public enum ConstructionPhaseEnum {
+ //施工阶段
+ NOT_SHOWN(-1,"不显示"),
+ NOT_START(0,"未开工"),
+ construction_ING(1,"施工中"),
+ construction_FINSH(2,"已完工");
+ private Integer code;
+
+ private String message;
+
+ ConstructionPhaseEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java
new file mode 100644
index 000000000..a5a7a6c7d
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java
@@ -0,0 +1,17 @@
+package com.cool.store.enums;
+
+/**
+ * 动态栏目枚举类
+ */
+public enum ContentSubjectEnum {
+ HY_CULTURE("沪姨文化"),
+ PARTNER_SAYS("加盟商说"),
+ BRAND_NEWS("品牌动态")
+ ;
+
+ private String subjectName;
+
+ ContentSubjectEnum(String subjectName) {
+ this.subjectName = subjectName;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java
new file mode 100644
index 000000000..3246f3f38
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java
@@ -0,0 +1,16 @@
+package com.cool.store.enums;
+
+/**
+ * 动态类型(图文/视频)
+ */
+public enum ContentTypeEnum {
+ VIDEO("视频"),
+ IMAGE("图文")
+ ;
+
+ private String type;
+
+ ContentTypeEnum(String type) {
+ this.type = type;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java
new file mode 100644
index 000000000..f47e126ac
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java
@@ -0,0 +1,30 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: DataSourceEnum
+ * @Description:
+ * @date 2023-06-08 15:34
+ */
+public enum DataSourceEnum {
+
+ SYNC(0, "EC同步"),
+ CREATE(1, "小程序创建");
+
+ private Integer code;
+
+ private String message;
+
+ DataSourceEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/DesignPhaseEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/DesignPhaseEnum.java
new file mode 100644
index 000000000..3a6ef5387
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/DesignPhaseEnum.java
@@ -0,0 +1,41 @@
+package com.cool.store.enums;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/28/下午6:46
+ * @Version 1.0
+ * @注释:
+ */
+
+public enum DesignPhaseEnum {
+ //设计阶段,平面图,施工图
+ DESIGN_PHASE_ACCEPTANCE_FAILED(0,"验收未通过"),
+ DESIGN_PHASE_NOT_START(1, "未开始"),
+ DESIGN_PHASE_ACCEPTANCE_DESIGNING(2, "设计中"),
+ DESIGN_PHASE_ACCEPTED_NOT(3, "未验收"),
+ DESIGN_PHASE_ACCEPTANCE_FAILEDS(0,"验收未通过"),
+ DESIGN_PHASE_AUDIT_WAIT(5,"待审批"),
+ DESIGN_PHASE_AUDIT_FAIL(6,"审批驳回"),
+ DESIGN_PHASE_AUDIT_ING(7,"审批中"),
+ DESIGN_PHASE_AUDIT_DISCARD (8,"审批作废"),
+ DESIGN_PHASE_AUDIT_PASS(9,"审批通过"),
+ DESIGN_PHASE_AUDIT_ACCEPTANCE_FAIL(10,"审批验收未通过"),
+ DESIGN_PHASE_ACCEPTANCE_PASS (11,"验收通过");
+
+ private Integer code;
+
+ private String message;
+
+ DesignPhaseEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
new file mode 100644
index 000000000..8b7a65ec4
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
@@ -0,0 +1,250 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * * 通用错误返回处理,后续全部将使用这个返回,请遵守以下规范。
+ * * 1.枚举名必须要大写。
+ * * 2.枚举中包含属性:code,msg,en(英文尽量写)
+ * * 3.code的命名以系统模块划分,前三位为模块划分。逐级细分。(7位数字先到先取原则,细化不浪费)
+ * @author zhangchenbiao
+ * @FileName: ErrorCodeEnum
+ * @Description: 返回响应状态和文案枚举
+ * @date 2023-05-19 04:30
+ */
+public enum ErrorCodeEnum {
+
+ PARTNER_MOBILE_INCORRECT(418, "请输入正确的手机号", null),
+ PUBLIC_LINE_NOT_FOLLOW(419, "该线索已存在公海,无跟进人", null),
+ LINE_EXIST_FOLLOW(420, "该线索已存在,跟进人为【{0},{1}】", null),
+
+ ERROR_MESSAGE(421, "{0}", null),
+
+
+ /**
+ * 000000 未知错误
+ */
+ UNKNOWN(000000, "未知错误", null),
+ /**
+ * 2000001 token与当前登录企业不匹配
+ */
+ TOKEN_ERROR(2000001,"请求异常,与当前登录企业不匹配",null),
+ FAIL(400000, "FAIL", null),
+ ACCESS_TOKEN_INVALID(400005, "Invalid token", null),
+ PARAMS_VALIDATE_ERROR(400003, "参数校验失败!", null),
+ LOGIN_ERROR(400004, "登录失败", null),
+ ENTERPRISE_INIT(400006, "企业正在初始化,请稍后访问!",null),
+ NOT_AUTH(400007, "暂无权限,请联系管理员!", null),
+ USER_FREEZE(1021019,"账号被冻结,请联系管理员",null),
+ ENTERPRISE_NOT_EXIST(1021020,"企业不存在",null),
+ USER_NOT_EXIST(1021021,"用户不存在",null),
+ JOBNUMBER_NOT_EXIST(1021017,"用户工号不存在",null),
+ USER_WAIT_AUDIT(1021018,"账号审核中,请联系企业管理员",null),
+ OPERATION_OVER_TIME(1021019, "您的操作过于频繁,休息一下~", null),
+ GET_APP_SECRET_ERROR(1021020, "获取secret异常", null),
+ WX_SERVICE_ERROR(1021021, "调用微信服务异常", null),
+ SESSION_KEY_ERROR(1021022, "sessionKey过期", null),
+ GET_WECHAT_USER_INFO_FAIL(1021023,"获取小程序用户信息失败", null),
+ USER_GROUP_NAME_EXIST(1021076, "用户分组名称已存在", null),
+ USER_GROUP_NOT_EXIST(1021077, "用户分组不存在", null),
+ GET_INFO_ERROR(1021078, "获取信息异常", null),
+ GET_PHONENUMBER_INFO_ERROR(1021079, "手机号归属地获取异常", null),
+ IDENTITY_CARD_PARSE_FAIL(1021080, "身份证解析失败", null),
+ WECHAT_BIND_OTHER_MOBILE(1021081, "授权号码有误,请核对", null),
+ BUSINESS_LICENSE_PARSE_FAIL(1021082, "营业证照解析失败", null),
+ BUSINESS_LICENSE_OR_ID_CARD_REPEAT(1021083, "身份证或企业信用编码重复", null),
+ PARAMS_REQUIRED(400002, "参数缺失!", null),
+ DATA_CONVERT_ERROR(400002, "日期转换异常!", null),
+ PARENT_NODE_NOT_EXIST(400002, "父节点不存在", null),
+
+
+ LINE_ID_IS_NOT_EXIST(500001, "线索信息不存在!", null),
+ WORK_FLOW_STAGE_PASS_ERROR(500002, "审核失败,非对应阶段!", null),
+ PARTNER_USER_NOT_EXIST(500003, "加盟商用户信息不存在!", null),
+ ZONE_NOT_EXIST(500004, "战区不存在!", null),
+ PARTNER_BASEINFO_NOT_EXIST(500005, "基本信息不存在!", null),
+ INTENT_INFO_NOT_EXIST(500006, "意向信息不存在!", null),
+ INTENT_WHAT_NOT_EXIST(500016, "加盟问卷信息不存在!", null),
+ INTENT_AREA_NOT_BING_ZONE(500007, "意向区域没有绑定战区 分配招商经理失败!", null),
+ PUBLIC_LINE_NOT_OPERATE(500008, "公海线索不允许操作!", null),
+ PARTNER_BASE_INFO_NOT_EXIST(500009, "加盟商信息不存在!", null),
+ LINE_STATUS_NOT_ALLOW_OPERATE(500010, "当前线索状态不允许该操作!", null),
+ TASK_STATUS_NOT_ALLOW_OPERATE(500011, "当前任务状态不允许该操作!", null),
+ DATELINE_BEFORE_NOW(500012, "截止时间不能早于当前时间!", null),
+ NO_TRANSFER_REQUIRED(500013, "招商经理现有私海线索无需转让,请检查后重试!", null),
+ NO_BATCH_TRANSFER_REQUIRED(500014, "已选线索包含此招商经理现有私海线索,无需转让,请检查后重试!", null),
+ PARTNER_MOBILE_EXIST(500010, "手机号码已存在,请核实!", null),
+ MOBILE_EXIST(500015, "此手机号码已存在,请修改后重试", null),
+ INVESTMENT_MANAGER_NOT_EXIST(500016, "当前招商经理不存在", null),
+ PARTNER_MOBILE_EXIST_0(500017, "手机号码已存在", null),
+ TIME_OCCUPIED(500018, "预约时间被占用", null),
+ LINE_PAY_IS_NOT_EXIST(500019, "意向金信息不存在!", null),
+ INTENT_PASS(500020, "审核已通过,请刷新页面!", null),
+ APPOINTMENT_TIME_FAIL(500020, "预约失败,请刷新后再试", null),
+
+ POINT_NOT_COMPLETE(600000, "铺位信息未填写完全,请完善后生成评估报告", null),
+ POINT_NOT_EXIST(600001, "铺位信息不存在", null),
+ POINT_SIGNED(600002, "操作失败,铺位已签约", null),
+ NOT_ALLOW_OPERATE(600003, "当前状态不允许该操作", null),
+ POINT_AUDIT_NOT_SETTING(600004, "选址审批未设置", null),
+ NO_PERMISSION(600004, "暂无处理审批任务权限", null),
+ POINT_AUDIT_NODE_ERROR(600005, "当前审批任务异常", null),
+ USER_NOT_TODO_AUDIT(600005, "当前用户没有待审批的任务", null),
+ NOT_ALLOW_MODIFY_WANT_SHOP_NUM(600006, "当前阶段不允许直接修改意向开店数量", null),
+ USER_NOT_ALLOW_ENTER_ROOM(600007, "当前用户不允许进入面试房间", null),
+
+ SHOP_STAGE_ERROR(600008, "店铺阶段错误", null),
+ SHOP_NOT_EXIST(600009, "店铺不存在", null),
+ POINT_IS_SELECTED(600010, "该铺位已被其他人选择", null),
+ POINT_ALREADY_SELECT(600011, "该铺位已被您选择", null),
+ SHOP_IS_SELECTED(600012, "该店铺已选址", null),
+ SHOP_STAGE_NOT_OPERATE(600013, "当前店铺所处阶段不允许该操作", null),
+ POINT_IS_LOCK(600014, "当前铺位已被锁定,刷新后再试", null),
+ POINT_IS_INVALID(600015, "该铺位已失效", null),
+ POINT_SELECTED(600016, "该铺位已被选择", null),
+ NOT_EXIST_UNSELECT_POINT(600017, "当前没有未选择的铺位", null),
+ SELECT_POINT_ERROR(600018, "铺位选中失败", null),
+
+ OPEN_NEW_SHOP_RECORD_NOT_EXIST(700001, "开店申请记录不存在", null),
+ OPEN_NEW_SHOP_RECORD_AUDITED(700002, "开店申请已审核", null),
+ OPEN_NEW_SHOP_RECORD_WAIT_AUDIT(700003, "提交失败,您有开店申请正在审核中", null),
+
+ INTERVIEW_ENTER_FAIL(1021101, "进入面审间失败", null),
+ DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null),
+ INTERVIEW_NOT_EXIST(1021103, "面审信息不存在!", null),
+ INTERVIEW_AND_PARTNER_ID_IS_NULL(1021104, "加盟商用户ID&线索ID和面审官ID不能同时为空!", null),
+ INTERVIEW_PLAN_IS_NULL(1021105, "未查询到相关面审安排!", null),
+ DATE_PARAMS_IS_ERROR(1021106, "日期参数错误!", null),
+ INTERVIEW_PLAN_NOT_EXIST(1021107, "面审计划不存在!", null),
+ FEISHU_DELETE_SCHEDULE_ERROR(1021108, "删除原面审安排失败!", null),
+ CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面审安排失败!", null),
+ FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "开始前10分钟不允许修改时间!", null),
+ INTERVIEW_STATUS_ERROR(1021111, "当前面审状态不允许该操作!", null),
+ INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面审计划已存在,请勿重复申请!", null),
+ INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
+ INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面审人:{0} 手机号:{1}", null),
+ INTERVIEW_PARTNER_NOT_EXIST(1021115, "线索下的加盟商不存在!", null),
+ INTERVIEW_STATUS_NOT_TRANSFER(1021116, "当前面审状态不允许转让! 面审状态:{0}", null),
+ MOBILE_WECHAT_EXIST(1021116, "此号码已绑定其他微信", null),
+ INTERVIEW_STATUS_WAS_AUDITED(1021117, "当前面审已审核", null),
+
+ ROOM_STATUS_ERROR(10211156, "当前面审房间状态不允许进行该操作!", null),
+ MOBILE_APP_NOT_ONLINE_ERROR(10211157, "呼叫失败,请确认呼出号码正确并检查是否安装并打开呼叫插件", null),
+ CALL_RECORD_NOT_EXIST_ERROR(10211158, "通话记录不存在!", null),
+ CALL_UP_ERROR(10211159, "拨出电话异常!", null),
+ CREATE_CALL_REQUEST_ERROR(10211160, "创建电话请求失败!", null),
+
+ CREATE_APPOINTMENT_TIME_ERROR(10211161, "当前时间不可预约面审,请选择其他时间", null),
+
+ USER_CHANNEL_NOT_EXISTS(10211162, "当前用户渠道不存在", null),
+ LINE_ALREADY_EXISTS(10211163, "该线索已存在,跟进人为{0}", null),
+ LINE_EXISTS_IN_PUBLIC_SEA(10211164, "该线索已存在,请前往公海认领", null),
+ CONTENT_DUPLICATED(10211200, "动态标题重复!", null),
+ SIGN_FAIL(600000, "验签失败", null),
+ GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
+ NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
+ INSPECTION_USER_OCCUPY(600003,"当前稽核人已经配置其他战区",null),
+ INSPECTION_INFO_NOT_EXIST(600005, "稽核信息不存在!", null),
+ OPEN_AREA_NULL(600006,"归属地区不能为空",null),
+ NOT_IN_PUBLIC_SEA(600007,"当前线索不在公海 不支持分配招商经理",null),
+
+ LABEL_GROUP_IN_USE(120001, "该标签组下存在标签,不可删除;请确保该标签组下标签数量为0后再进行删除", null),
+ LABEL_GROUP_EXIST(120002, "该标签组已存在,请重新输入", null),
+ LABEL_EXIST(120003, "该标签已存在,请重新输入", null),
+
+
+ OPEN_AREA_IS_NOT_EXISTS(107006, "意向区域城市不存在", null),
+
+ REGION_NOT_EXIST(108001, "区域不存在",null),
+ ONLY_WAR_REGION_CONFIG(108002, "意向省市只能配置到战区",null),
+
+ NOT_APPROVE_NODE(109001, "不是审批节点",null),
+
+
+ TIME_FALSE(109002, "结束时间不能早于开始时间",null),
+
+ BUSINESS_ID_NOT_EXIST(109003, "kdzBusinessId解析异常,请检查",null),
+
+ VERIFY_MD5_FALSE(109004, "验签失败,请检查",null),
+
+ LINE_PAY_FALSE(109005, "付款信息查询失败",null),
+
+ LICENSE_NOT_EXIST(109006, "证照不存在",null),
+
+ FOOD_BUSINESS_LICENSE_PARSE_FAIL(109007, "食营证照解析失败", null),
+
+
+ STORE_NUM_NOT_FOUND(109008, "未找到门店编码", null),
+
+ SIGN_FRANCHISE_NOT_FOUND(109009, "加盟合同签约信息为空", null),
+
+ UNISSUED_STATEMENT(109010, "该门店未发布账单,无法付款", null),
+
+ FRANCHISE_AGREEMENT_FALSE(109011, "特许经营合同API调用失败", null),
+
+ NEW_STORE_FALSE(109011, "新店开业流程API调用失败", null),
+
+ AUDIT_RESULT_FALSE(109012, "意向加盟合同API本次调用结果与上一次不一致", null),
+
+
+ TIME_NULL_FALSE(109013, "有时间为空", null),
+
+ UNISSUED_STATEMENT_2(109014, "该门店已发布账单", null),
+
+
+ INSERT_OPENING_OPERATION_PLAN_AUDIT_FALSE(103001,"插入运营方案审核信息失败",null),
+ INSERT_OPENING_OPERATION_PLAN_FALSE(103002,"插入运营方案失败",null),
+ SHOP_ID_IS_NULL(103003,"验参shopId失败,为空",null),
+ ACTIVITY_THEME_LENGTH_FALSE(103004,"活动主题长度大于100",null),
+ SURVEYRESULT_LENGTH_FALSE(103005,"调研结果长度大于100",null),
+ ID_IS_NULL(103006,"验参Id失败,为空",null),
+ UPDATE_AUDIT_PLAN_FALSE(103007,"修改AUDIT_PLAN失败",null),
+ UPDATE_PLAN_FALSE(103008,"修改PLAN失败",null),
+ UPDATE_SHOP_SUB_STAGE_STATUS_FALSE(103009,"修改开业运营方案阶段状态失败",null),
+ SHOP_ID_NOT_EXIST(103010,"shopId不存在",null),
+ FIRST_ORDER_PARAM_NULL(103020,"首批订货金参数为空",null),
+ USER_NOT_LOGIN(103021,"用户未登录",null),
+ XFSG_SERVICE_ERROR(103099,"鲜丰服务调用失败",null),
+ GET_FIRST_ORDER(103021,"获取鲜丰首批订货金失败",null),
+ YLF_ERROR(110001, "云立方接口异常!异常信息:{0}", null),
+ //装修
+ THREE_ACCEPTANCE(121001,"提交三方验收失败",null),
+ CHECK_ITEM(12002,"插入检查项失败",null),
+ FITMENT_FAIL(12003,"装修款阶段未完成",null),
+ SEE_ACCEPTANCE_ERROR(12004,"获取鲜丰撤场数据失败",null),
+ SEE_ACCEPTANCE_AUDIT_NULL(12005,"视觉验收结果为空",null),
+ ;
+
+
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(ErrorCodeEnum::getCode, Function.identity(), (a, b)->a));
+ private int code;
+
+ private String message;
+ private String en;
+
+ ErrorCodeEnum(int code, String message, String en) {
+ this.code = code;
+ this.message = message;
+ this.en=en;
+ }
+
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public static ErrorCodeEnum getByCode(Integer code) {
+ return map.get(code);
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExamStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExamStatusEnum.java
new file mode 100644
index 000000000..1e1e3056c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExamStatusEnum.java
@@ -0,0 +1,46 @@
+package com.cool.store.enums;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @author Fun Li
+ * @version 1.0
+ * @date 2023/7/19 17:55
+ */
+public enum ExamStatusEnum {
+
+ NOT_START(0, "未开始"),
+ PASS(1, "正考通过"),
+ NOT_PASS(2, "不通过");
+
+ private Integer code;
+
+ private String desc;
+
+ ExamStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static Integer matchCodeByDesc(String desc) {
+ if(StringUtils.isBlank(desc)){
+ return null;
+ }
+ for (ExamStatusEnum statusEnum : ExamStatusEnum.values()) {
+ if (statusEnum.getDesc().equals(desc)) {
+ return statusEnum.code;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExhibitionPartnerStatus.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExhibitionPartnerStatus.java
new file mode 100644
index 000000000..26244741b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExhibitionPartnerStatus.java
@@ -0,0 +1,36 @@
+package com.cool.store.enums;
+
+/**
+ * @author Fun Li 2023/12/6 13:48
+ * @version 1.0
+ */
+public enum ExhibitionPartnerStatus {
+
+ REGISTERED(0, "已报名"),
+ SIGNED(1, "已签到"),
+ APPLIED(2, "已提交意向申请"),
+ INTERVIEWING(3, "面试中"),
+ INTERVIEWED(4, "面试完成"),
+ INTERVIEW_PASS(5, "面试通过"),
+ INTERVIEW_REJECT(6, "面试不通过"),
+ SIGN_CANCELED(7, "取消报名")
+ ;
+
+
+ private Integer code;
+
+ private String status;
+
+ ExhibitionPartnerStatus(Integer code, String status) {
+ this.code = code;
+ this.status = status;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExperienceStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExperienceStatusEnum.java
new file mode 100644
index 000000000..f5f12b31b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExperienceStatusEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+public enum ExperienceStatusEnum {
+ DONE(0,"完成体验"),
+ ABANDON(1,"放弃体验"),
+
+ ;
+
+ private Integer experienceStatus;
+
+ private String message;
+
+ ExperienceStatusEnum(Integer experienceStatus, String message) {
+ this.experienceStatus = experienceStatus;
+ this.message = message;
+ }
+
+ public Integer getExperienceStatus() {
+ return experienceStatus;
+ }
+
+ public void setExperienceStatus(Integer experienceStatus) {
+ this.experienceStatus = experienceStatus;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FSEventTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FSEventTypeEnum.java
new file mode 100644
index 000000000..4480d4065
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FSEventTypeEnum.java
@@ -0,0 +1,59 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author Admin
+ * @ClassName FsEventTypeEnum
+ * @Description fs的事件类型
+ */
+public enum FSEventTypeEnum {
+
+ //
+ USER_CREATED("contact.user.created_v3","员工入职"),
+ USER_DELETED("contact.user.deleted_v3", "员工离职"),
+ USER_UPDATED("contact.user.updated_v3", "员工信息被修改"),
+
+ DEPARTMENT_CREATED("contact.department.created_v3", "部门被创建"),
+ DEPARTMENT_UPDATED("contact.department.updated_v3", "部门信息被修改"),
+ DEPARTMENT_DELETED("contact.department.deleted_v3", "部门被删除"),
+
+ APP_OPEN("app_open", "首次启用应用"),
+ APP_STATUS_CHANGE("app_status_change", "应用停启用"),
+ APP_TICKET("app_ticket", "app_ticket 事件"),
+ APP_UNINSTALLED("app_uninstalled", "应用卸载"),
+
+ CONTACT_SCOPE_UPDATE("contact.scope.updated_v3", "通讯录范围权限被更新"),
+ ORDER_PAID("order_paid", "应用商店应用购买"),
+ ;
+
+
+ private final String value;
+ private final String remark;
+
+ private static final Map map = Arrays.stream(values()).collect(Collectors.toMap(FSEventTypeEnum::getValue, Function.identity()));
+
+ FSEventTypeEnum(String value, String remark) {
+ this.value = value;
+ this.remark = remark;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public static FSEventTypeEnum parseValue(String value) {
+ return map.get(value);
+ }
+
+ public static boolean isUserEvent(String eventType){
+ return FSEventTypeEnum.USER_CREATED.getValue().equals(eventType) || FSEventTypeEnum.USER_UPDATED.getValue().equals(eventType) || FSEventTypeEnum.USER_DELETED.getValue().equals(eventType);
+ }
+
+ public static boolean isDepartmentEvent(String eventType){
+ return FSEventTypeEnum.DEPARTMENT_CREATED.getValue().equals(eventType) || FSEventTypeEnum.DEPARTMENT_UPDATED.getValue().equals(eventType) || FSEventTypeEnum.DEPARTMENT_DELETED.getValue().equals(eventType);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java
new file mode 100644
index 000000000..0e595171c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java
@@ -0,0 +1,89 @@
+package com.cool.store.enums;
+
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * @Author: young.yu
+ * @Date: 2023-07-19 16:49
+ * @Description:
+ */
+public enum FeiShuNoticeMsgEnum {
+
+ common_notice("工作台通知", "{0}", "img_v2_45d7a901-1eab-498b-a760-b38d287f0c1g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ ALLOCATION_INVESTMENT_MANAGER("分配招商经理", "有新的线索于 {0} 分配给您,线索信息 {1} 手机号 {2},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ TRANS_INVESTMENT_MANAGER("转让招商经理", "有新的线索于 {0} 转让给您,线索信息 {1} 手机号 {2},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ BATCH_TRANS_INVESTMENT_MANAGER("收到新线索", "有{0}条新线索于 {1} 转让给您,请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ EC_RECEIVE_LINE("收到EC新线索", "有{0}条新线索于EC同步给您,线索信息 {1},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人 {0} 手机号 {1} 于 {2} 提交加盟意向申请,请及时处理", "img_v2_c909097d-67d1-4c11-a911-a2584b67ca6g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_1960b7ef-8c4e-4c3d-8b67-3d918a85578g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {2} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g", "1567d83b966f2d312fd7fcd2e72dbce9"),
+ EXHIBITION_COLLABORATOR("会销协作通知", "{0} 已将您添加为【{1}】的会销协作人,日期为 {2},地点为“{3}” ","img_v3_026c_d561bb71-f085-40ca-9c36-5fe134cacd2g", "1567d83b966f2d312fd7fcd2e72dbce9", "/joint-sales/manage-detail?id={0}", "/mobile/joint-sales/manage-detail?id={0}"),
+ PARTNER_SIGNUP_EXHIBITION("线索已报名会销", "您跟进的线索客户{0} {1} 已报名于 {2} 举办的【{3}】 ,地点为“{4}”","img_v3_026c_5bcf178d-19e6-4445-9677-f748a3f916fg", "1567d83b966f2d312fd7fcd2e72dbce9", "/clue/details?lineId={0}&clueType=private&partnerId={1}"),
+ ;
+
+ private String title;
+ private String content;
+ private String imageMediaId;
+ private String templateCode;
+ //卡片对应的跳转地址
+ private String PCPath;
+ private String mobilePath;
+
+ FeiShuNoticeMsgEnum(String title, String content, String imageMediaId, String templateCode, String pcPath) {
+ this.title = title;
+ this.content = content;
+ this.imageMediaId = imageMediaId;
+ this.templateCode = templateCode;
+ this.PCPath = pcPath;
+ this.mobilePath = "/mobile";
+ }
+
+ FeiShuNoticeMsgEnum(String title, String content, String imageMediaId, String templateCode) {
+ this.title = title;
+ this.content = content;
+ this.imageMediaId = imageMediaId;
+ this.templateCode = templateCode;
+ this.PCPath = "/work/bench";
+ this.mobilePath = "/mobile";
+ }
+
+ FeiShuNoticeMsgEnum(String title, String content, String imageMediaId, String templateCode, String pcPath, String mobilePath) {
+ this.title = title;
+ this.content = content;
+ this.imageMediaId = imageMediaId;
+ this.templateCode = templateCode;
+ this.PCPath = pcPath;
+ this.mobilePath = mobilePath;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public String getImageMediaId() {
+ return imageMediaId;
+ }
+
+ public String getTemplateCode() {
+ return templateCode;
+ }
+
+ public String getPCPath() {
+ return PCPath;
+ }
+
+ public String getMobilePath() {
+ return mobilePath;
+ }
+
+ public JSONObject getMessageObject() {
+ JSONObject object = new JSONObject();
+ object.put("name", this.title);
+ object.put("imageMediaId", this.imageMediaId);
+ return object;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FollowTaskStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FollowTaskStatusEnum.java
new file mode 100644
index 000000000..387d4154a
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FollowTaskStatusEnum.java
@@ -0,0 +1,36 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: FollowTaskStatusEnum
+ * @Description:
+ * @date 2023-08-10 10:47
+ */
+public enum FollowTaskStatusEnum {
+
+ TODO(0, "待完成"),
+ FINISHED(1, "已完成"),
+ OVERDUE(2, "已逾期"),
+ CANCELLED(3, "作废"),
+ OVERDUE_FINISH(4, "逾期完成"),
+ OVERDUE_CANCELLED(5, "逾期作废"),
+ ;
+ //任务状态:0:待完成、1:已完成、2:已逾期、3:作废
+
+ private Integer code;
+
+ private String remark;
+
+ FollowTaskStatusEnum(Integer code, String remark) {
+ this.code = code;
+ this.remark = remark;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseeTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseeTypeEnum.java
new file mode 100644
index 000000000..105aa5f90
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseeTypeEnum.java
@@ -0,0 +1,50 @@
+package com.cool.store.enums;
+
+/**
+ * 加盟商类型" +
+ * "0-新加盟商开单店;1-老加盟商开单店;" +
+ * "2-新加盟商开新区域单店;" +
+ * "3-新加盟商开老区域单店;" +
+ * "4-老加盟商开新区域单店;" +
+ * "5-老加盟商开老区域单店;" +
+ * "6-直营门店;" +
+ * "7-同异业转化;" +
+ * "8-老加盟商迁址开新店
+ */
+public enum FranchiseeTypeEnum {
+ ONE(0,"新加盟商开单店"),
+ TWO(1,"老加盟商开单店"),
+ THREE(2,"新加盟商开新区域单店"),
+ FOUR(4,"新加盟商开老区域单店"),
+ FIVE(5,"老加盟商开老区域单店"),
+ SIX(6,"直营门店"),
+ SEVEN(7,"同异业转化"),
+ EIGHT(8,"老加盟商迁址开新店"),
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ FranchiseeTypeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public static FranchiseeTypeEnum getByCode(Integer code) {
+ for (FranchiseeTypeEnum franchiseeTypeEnum : FranchiseeTypeEnum.values()) {
+ if (franchiseeTypeEnum.getCode().equals(code)) {
+ return franchiseeTypeEnum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/IDCardSideEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/IDCardSideEnum.java
new file mode 100644
index 000000000..ce4f76114
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/IDCardSideEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: IDCardSideEnum
+ * @Description: 身份证正反面类型
+ * @date 2023-06-16 16:49
+ */
+public enum IDCardSideEnum {
+
+ FACE("face", "正面"),
+ BACK("back", "反面")
+ ;
+
+ private String code;
+
+ private String message;
+
+ IDCardSideEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionOperationTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionOperationTypeEnum.java
new file mode 100644
index 000000000..2656b91e1
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionOperationTypeEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+/**
+ * @author Fun Li
+ * @version 1.0
+ * @date 2023/7/19 17:55
+ */
+//稽核操作类型
+public enum InspectionOperationTypeEnum {
+
+ PASS(0, "合格"),
+ NOT_PASS(1, "不合格"),
+ REVOCATION(2, "撤销");
+
+ private Integer code;
+
+ private String type;
+
+ InspectionOperationTypeEnum(Integer code, String type) {
+ this.code = code;
+ this.type = type;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionStatusEnum.java
new file mode 100644
index 000000000..b86464259
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionStatusEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @author Fun Li
+ * @version 1.0
+ * @date 2023/7/19 17:22
+ */
+//稽核信息状态
+public enum InspectionStatusEnum {
+
+ NOT_INSPECT(0, "未稽核"),
+ PASS(1, "合格"),
+ NOT_PASS(2, "不合格");
+
+ private Integer code;
+
+ private String type;
+
+ InspectionStatusEnum(Integer code, String type) {
+ this.code = code;
+ this.type = type;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionTyeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionTyeEnum.java
new file mode 100644
index 000000000..712db6357
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InspectionTyeEnum.java
@@ -0,0 +1,29 @@
+package com.cool.store.enums;
+
+/**
+ * @author Fun Li
+ * @version 1.0
+ * @date 2023/7/19 17:16
+ */
+//稽核类型
+public enum InspectionTyeEnum {
+
+ INTERVIEW_INSPECTION(0, "面试稽核");
+
+ private Integer code;
+
+ private String type;
+
+ InspectionTyeEnum(Integer code, String type) {
+ this.code = code;
+ this.type = type;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getType() {
+ return type;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewStatusEnum.java
new file mode 100644
index 000000000..41d8d3add
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewStatusEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @Author: young.yu
+ * @Date: 2023-06-13 20:22
+ * @Description: 面试状态枚举
+ */
+public enum InterviewStatusEnum {
+ // 0-待预约 1-待面审 2-待审核 3-审批通过 4-不通过
+ WAIT_APPOINTMENT(0, "待预约"),
+ WAIT_INTERVIEW(1, "待面审"),
+ WAIT_AUDIT(2, "待审核"),
+ PASS(3, "审批通过"),
+ NOT_PASS(4, "不通过");
+
+ private Integer code;
+
+ private String message;
+
+ InterviewStatusEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewTypeEnum.java
new file mode 100644
index 000000000..75dd2d6dc
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewTypeEnum.java
@@ -0,0 +1,107 @@
+package com.cool.store.enums;
+
+import com.cool.store.constants.CommonConstants;
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: InterviewTypeEnum
+ * @Description:
+ * @date 2024-03-15 16:12
+ */
+public enum InterviewTypeEnum {
+
+ MEET(0, "面谈", 120, 9, 19),
+
+ INTERVIEW(1, "一面", 30, 9, 18),
+
+ SECOND_INTERVIEW(2, "二面", 30, 9, 18),
+
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ private Integer minute;
+
+ private Integer startHour;
+
+ private Integer endHour;
+
+ InterviewTypeEnum(Integer code, String message, Integer minute, Integer startHour, Integer endHour) {
+ this.code = code;
+ this.message = message;
+ this.minute = minute;
+ this.startHour = startHour;
+ this.endHour = endHour;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public Integer getMinute() {
+ return minute;
+ }
+
+ public static InterviewTypeEnum match(Integer code) {
+ for (InterviewTypeEnum type : InterviewTypeEnum.values()) {
+ if (type.getCode().equals(code)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static List> getTimeSlots(InterviewTypeEnum interviewType, LocalDate localDate) {
+ switch (interviewType) {
+ case MEET:
+ return getTimeSlots(localDate, InterviewTypeEnum.MEET);
+ case INTERVIEW:
+ case SECOND_INTERVIEW:
+ return getTimeSlots(localDate, InterviewTypeEnum.INTERVIEW);
+ default:
+ break;
+ }
+ return null;
+ }
+
+ private static List> getTimeSlots(LocalDate date, InterviewTypeEnum interviewTypeEnum) {
+ List> result = new ArrayList<>();
+ LocalDateTime start = LocalDateTime.of(date, LocalTime.of(interviewTypeEnum.startHour, CommonConstants.ZERO));
+ LocalDateTime now = LocalDateTime.now();
+ while (start.getHour() < interviewTypeEnum.endHour){
+ String time = start.getHour() + CommonConstants.COLON + (start.getMinute() < CommonConstants.TEN ? "0"+ start.getMinute() : start.getMinute());
+ boolean isAvailable = start.isAfter(now);
+ start = start.plusMinutes(interviewTypeEnum.minute);
+ time = time + CommonConstants.PATH_BAR + start.getHour() + CommonConstants.COLON + (start.getMinute() < CommonConstants.TEN ? "0"+ start.getMinute() : start.getMinute());
+ result.add(Pair.of(time, isAvailable));
+ }
+ return result;
+ }
+
+ public static WorkflowSubStageStatusEnum getWorkflowSubStageStatus(InterviewTypeEnum interviewType){
+ if(MEET.equals(interviewType)){
+ return WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_15;
+ }
+ if(INTERVIEW.equals(interviewType)){
+ return WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30;
+ }
+ if(SECOND_INTERVIEW.equals(interviewType)){
+ return WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105;
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewUserTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewUserTypeEnum.java
new file mode 100644
index 000000000..1572788c9
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InterviewUserTypeEnum.java
@@ -0,0 +1,23 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: InterviewUserTypeEnum
+ * @Description:
+ * @date 2024-03-20 9:53
+ */
+public enum InterviewUserTypeEnum {
+
+ LINE("加盟商线索"),
+ INTERVIEWER("面试官"),;
+
+ private String message;
+
+ InterviewUserTypeEnum(String message) {
+ this.message = message;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinInterviewStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinInterviewStatusEnum.java
new file mode 100644
index 000000000..a8c7bed47
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinInterviewStatusEnum.java
@@ -0,0 +1,45 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: JoinInterviewStatusEnum
+ * @Description:
+ * @date 2024-03-20 11:05
+ */
+public enum JoinInterviewStatusEnum {
+
+ NO_JOIN(0, "未参加"),
+ LINE_JOIN(1,"加盟商先进入"),
+ INTERVIEW_JOIN(2,"面试官先进入"),
+ JOIN(3,"双方都参加");
+
+ private Integer code;
+
+ private String message;
+
+ JoinInterviewStatusEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public static Integer getJoinInterviewStatus(Integer joinInterviewStatus, InterviewUserTypeEnum userType){
+ if(NO_JOIN.getCode().equals(joinInterviewStatus)){
+ return InterviewUserTypeEnum.LINE.equals(userType) ? LINE_JOIN.getCode() : INTERVIEW_JOIN.getCode();
+ }
+ if(LINE_JOIN.getCode().equals(joinInterviewStatus)){
+ return InterviewUserTypeEnum.LINE.equals(userType) ? LINE_JOIN.getCode() : JOIN.getCode();
+ }
+ if(INTERVIEW_JOIN.getCode().equals(joinInterviewStatus)){
+ return InterviewUserTypeEnum.LINE.equals(userType) ? JOIN.getCode() : INTERVIEW_JOIN.getCode();
+ }
+ return JOIN.getCode();
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinTypeEnum.java
new file mode 100644
index 000000000..afdf4e9b7
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinTypeEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+public enum JoinTypeEnum {
+ JOIN_TYPE_ONE(1,"个人加盟"),
+ JOIN_TYPE_TWO(2,"企业加盟"),
+
+ ;
+
+ private Integer code;
+
+ private String typeName;
+
+ JoinTypeEnum(Integer code, String typeName) {
+ this.code = code;
+ this.typeName = typeName;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/LicenseTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/LicenseTypeEnum.java
new file mode 100644
index 000000000..2d53c6bdf
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/LicenseTypeEnum.java
@@ -0,0 +1,46 @@
+package com.cool.store.enums;
+
+/**
+ * 营业执照类型 0.个体工商户 1.有限责任公司 2.独资企业 3.自然人经营
+ */
+public enum LicenseTypeEnum {
+ ZERO(0, "个体工商户"),
+ ONE(1,"有限责任公司"),
+ TWO(2,"独资企业"),
+ THREE(3,"自然人经营");
+
+ private Integer code;
+
+ private String message;
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ LicenseTypeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public static LicenseTypeEnum match(Integer code) {
+ for (LicenseTypeEnum type : LicenseTypeEnum.values()) {
+ if (type.getCode().equals(code)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static LicenseTypeEnum matchName(String name) {
+ for (LicenseTypeEnum type : LicenseTypeEnum.values()) {
+ if (type.getMessage().equals(name)) {
+ return type;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/LineStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/LineStatusEnum.java
new file mode 100644
index 000000000..08fec64a1
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/LineStatusEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/6/13 11:45
+ * @Version 1.0
+ */
+public enum LineStatusEnum {
+
+ PUBLIC_SEAS(0,"公海线索"),
+ PRIVATE_SEAS(1,"私海线索"),
+ COOPERATION(2,"合作"),
+ BLACKLIST(3,"黑名单"),
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ LineStatusEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/MenuTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/MenuTypeEnum.java
new file mode 100644
index 000000000..c5ee0d090
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/MenuTypeEnum.java
@@ -0,0 +1,31 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: MentTypeEnum
+ * @Description:
+ * @date 2021-09-23 17:59
+ */
+public enum MenuTypeEnum {
+
+
+ MENU(1,"菜单"),
+ AUTH(2,"权限");
+
+ private Integer code;
+
+ private String message;
+
+ MenuTypeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java
new file mode 100644
index 000000000..c6c7fdbc2
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java
@@ -0,0 +1,177 @@
+package com.cool.store.enums;
+
+import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: MessageEnum
+ * @Description:
+ * @date 2024-03-27 10:50
+ */
+public enum MessageEnum {
+
+ MESSAGE_1("您有一份加盟意向申请,请查收。", "##### 加盟商姓名:${partnerUsername}\n##### 手机号码:${partnerMobile}\n##### 意向加盟区域:${wantShopName}\n"),
+ MESSAGE_2("您收到一份邀约面谈预约,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 预约时间:${appointmentTime}\n"),
+ MESSAGE_3("您收到一份一次面审预约,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 预约时间:${appointmentTime}\n"),
+ MESSAGE_3_1("您的线索已预约一次面审,请关注", "##### 加盟商姓名:${partnerUsername}\n面审官:${interviewUsername}\n##### 预约时间:${appointmentTime}\n"),
+ MESSAGE_4("您有线索未通过面审,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 面审时间:${interviewTime}\n##### 面审官:${interviewUsername}\n"),
+ MESSAGE_5("您收到一份缴纳意向金审核,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 缴费时间:${payTime}\n"),
+ MESSAGE_6("您收到一份加盟意向协议信息审核,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 手机号码:${partnerMobile}\n##### 信息提交时间:${submitTime}\n"),
+ MESSAGE_7("您提交的一份加盟意向协议OA审核未通过,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 审批提交时间:${submitTime}\n"),
+ MESSAGE_8("您有一位加盟商待安排体验门店及体验时间,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 手机号码:${partnerMobile}\n"),
+ MESSAGE_9("您有一位加盟商已放弃门店体验,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 手机号码:${partnerMobile}\n"),
+ MESSAGE_10("您收到一份二次面审预约,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 预约时间:${appointmentTime}\n"),
+ MESSAGE_10_1("您的线索已预约二次面审,请关注", "##### 加盟商姓名:${partnerUsername}\n面审官:${interviewUsername}\n##### 预约时间:${appointmentTime}\n"),
+ MESSAGE_11("您的一个铺位已审核通过,请查收", "##### 铺位名称:${pointName}\n##### 铺位地址:${pointAddress}\n"),
+ MESSAGE_12("您的一个铺位审核未通过,请查收", "##### 铺位名称:${pointName}\n##### 铺位地址:${pointAddress}\n##### 未通过原因:${reason}\n"),
+ MESSAGE_13("您有一个铺位需要审核,请查收", "##### 铺位名称:${pointName}\n##### 铺位地址:${pointAddress}\n"),
+ MESSAGE_14("已为您分配一位加盟商,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 手机号码:${partnerMobile}\n##### 意向加盟区域:${wantShopName}\n"),
+ MESSAGE_15("您有一份加盟商上传的租赁合同待审核,请查收", "##### 加盟商姓名:${partnerUsername}\n##### 提交时间:${submitTime}\n"),
+ MESSAGE_16("您有一家门店待提交系统建店申请,请查收", "##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_16_1("您有一家门店待提交系统建店申请,请查收", "##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_17("您收到一份证照信息审核申请,请查收", "##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_18("您有一个门店已缴纳加盟费/保证金,请审核", "##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_19("您有一个门店待提交加盟合同审核,请查收", "##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_20("您有一个门店的加盟合同审核未通过,请查收", "##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_21("加盟商已登记一位员工,请及时安排培训", "##### 员工姓名:【${userName}】,员工手机号码:【${mobile}】,登记时间:【${registerTime}】"),
+ MESSAGE_22("您收到一位员工由您带教,请查收", "##### 员工姓名:【${userName}】,员工手机号码:【${mobile}】,登记时间:【${registerTime}】"),
+ MESSAGE_23("您有一个门店待发布加盟费/保证金账单,请查收", "##### 加盟商姓名:${partnerName}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_24("您有一个门店待预约三方验收时间,请查收", "##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_25("您有一个门店待进行三方验收,请查收","##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_26("您有一个门店需要上传开业运营方案,请查收","##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_27("您有一个门店需要上传首批订货清单,请查收","##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_28("您有一个门店需要进行视觉验收,请查收","##### 门店名称:${storeName}\n##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+
+ MESSAGE_29("您有一份加盟申请书,请查收","##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n##### 意向加盟区域:${regionName}\n"),
+ MESSAGE_30("您收到一份加盟意向协议信息审核,请查收","##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n##### 信息提交时间:${submitTime}\n"),
+ MESSAGE_31("您提交的一份加盟意向协议OA审核未通过,请查收","##### 加盟商姓名:${partnerUsername}\n##### 信息提交时间:${submitTime}\n"),
+ MESSAGE_32("您有一位加盟商待安排体验门店及体验时间,请查收","##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+ MESSAGE_33("您有一位加盟商已放弃门店体验,请查收","##### 加盟商姓名:${partnerUsername}\n##### 加盟商手机号码:${partnerMobile}\n"),
+
+
+
+
+ ;
+
+ private String title;
+
+ private String content;
+
+ MessageEnum(String title, String content) {
+ this.title = title;
+ this.content = content;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public String getContent(Map paramMap) {
+ String result = this.content;
+ for (String key : paramMap.keySet()) {
+ result = result.replace("${" + key + "}", paramMap.get(key));
+ }
+ return result;
+ }
+
+ public String getImageUrl() {
+ return "https://oss-store.coolcollege.cn/xfsg_notice.png";
+ }
+
+
+ public String getMessageUrl(String domainUrl, String appId, String corpId, Map paramMap) {
+ if (StringUtils.isAnyBlank(domainUrl, appId, corpId) || Objects.isNull(paramMap)) {
+ return "";
+ }
+ try {
+ switch (this) {
+ case MESSAGE_1:
+ case MESSAGE_2:
+ case MESSAGE_3_1:
+ case MESSAGE_4:
+ case MESSAGE_5:
+ case MESSAGE_6:
+ case MESSAGE_7:
+ case MESSAGE_8:
+ case MESSAGE_9:
+ case MESSAGE_29:
+ case MESSAGE_30:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=clue×tamp=" + System.currentTimeMillis() + "&lineId=" + paramMap.get("lineId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_3:
+ case MESSAGE_10:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=interview×tamp=" + System.currentTimeMillis() + "&lineId=" + paramMap.get("lineId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_11:
+ case MESSAGE_12:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=point×tamp=" + System.currentTimeMillis() + "&pointId=" + paramMap.get("pointId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_13:
+ return "dingtalk://dingtalkclient/action/open_micro_app?appId=" + appId + "&corpId=" + corpId + "&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=point×tamp=" + System.currentTimeMillis() + "&pointId=" + paramMap.get("pointId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_14:
+ return "dingtalk://dingtalkclient/action/open_micro_app?appId=" + appId + "&corpId=" + corpId + "&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=franchiseeDetails×tamp=" + System.currentTimeMillis() + "&lineId=" + paramMap.get("lineId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_15:
+ case MESSAGE_10_1:
+ case MESSAGE_31:
+ case MESSAGE_32:
+ case MESSAGE_33:
+ //跳转我的加盟商的加盟商详情都可以使用这个
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=franchiseeDetails×tamp=" + System.currentTimeMillis() + "&lineId=" + paramMap.get("lineId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_21:
+ return domainUrl + "/dd-noticemsg?appId="+appId+"&corpId="+corpId+"&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=employeeTraining×tamp="+System.currentTimeMillis()+"&userDetailId="+ paramMap.get("userDetailId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_22:
+ return "dingtalk://dingtalkclient/action/open_micro_app?appId="+appId+"&corpId="+corpId+"&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=trainerUser×tamp="+System.currentTimeMillis()+"&userDetailId="+ paramMap.get("userDetailId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_24:
+ return "dingtalk://dingtalkclient/action/open_micro_app?appId="+appId+"&corpId="+corpId+"&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=threeAcceptance×tamp="+System.currentTimeMillis(), StandardCharsets.UTF_8.name());
+ case MESSAGE_25:
+ return "dingtalk://dingtalkclient/action/open_micro_app?appId="+appId+"&corpId="+corpId+"&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=threeAcceptance×tamp="+System.currentTimeMillis(), StandardCharsets.UTF_8.name());
+ case MESSAGE_26:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=openPlan×tamp=" + System.currentTimeMillis() +"&lineId="+ paramMap.get("lineId")+"&shopId="+ paramMap.get("shopId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_27:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=orderList×tamp=" + System.currentTimeMillis() +"&lineId="+ paramMap.get("lineId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_28:
+ return "dingtalk://dingtalkclient/action/open_micro_app?appId="+appId+"&corpId="+corpId+"&page=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=eyeAcceptance×tamp="+System.currentTimeMillis()+"&shopId="+ paramMap.get("shopId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_16:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=sysStoreSchedule×tamp=" + System.currentTimeMillis() +"&lineId="+ paramMap.get("lineId")+"&shopId="+ paramMap.get("shopId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_17:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=licenseSchedule×tamp=" + System.currentTimeMillis() +"&lineId="+ paramMap.get("lineId")+"&shopId="+ paramMap.get("shopId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_18:
+ case MESSAGE_23:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=franchiseeSchedule×tamp=" + System.currentTimeMillis() +"&lineId="+ paramMap.get("lineId")+"&shopId="+ paramMap.get("shopId"), StandardCharsets.UTF_8.name());
+ case MESSAGE_19:
+ case MESSAGE_20:
+ return domainUrl + "/dd-noticemsg?appId=" + appId + "&corpId=" + corpId + "&appUrl=" +
+ URLEncoder.encode("pages/common-web-view/index?noticeType=xfsg&routerUrl=notice&target=contractSchedule×tamp=" + System.currentTimeMillis() +"&lineId="+ paramMap.get("lineId")+"&shopId="+ paramMap.get("shopId"), StandardCharsets.UTF_8.name());
+ default:
+ return "";
+ }
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/NodeNoEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/NodeNoEnum.java
new file mode 100644
index 000000000..92aca8ffa
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/NodeNoEnum.java
@@ -0,0 +1,76 @@
+package com.cool.store.enums;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+public enum NodeNoEnum {
+ NODE_NO_0(0,"提交任务"),
+ NODE_NO_1(1,"第一级审批"),
+ NODE_NO_2(2,"第二级审批"),
+ NODE_NO_3(3,"第三级审批"),
+ NODE_NO_4(4,"第四级审批"),
+ NODE_NO_5(5,"第五级审批"),
+ NODE_NO_100(100,"结束"),
+
+ ;
+
+ private Integer code;
+
+ private String typeName;
+
+ NodeNoEnum(Integer code, String typeName) {
+ this.code = code;
+ this.typeName = typeName;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+
+ /**
+ * 获取之后的审批节点集合
+ * @param nodeNo
+ * @return
+ */
+ public static List getNextNodeNoList(Integer nodeNo){
+ if(NodeNoEnum.NODE_NO_0.getCode().equals(nodeNo)){
+ return Lists.newArrayList(NodeNoEnum.NODE_NO_1, NodeNoEnum.NODE_NO_2, NodeNoEnum.NODE_NO_3, NodeNoEnum.NODE_NO_4, NodeNoEnum.NODE_NO_5);
+ }
+ if(NodeNoEnum.NODE_NO_1.getCode().equals(nodeNo)){
+ return Lists.newArrayList(NodeNoEnum.NODE_NO_2, NodeNoEnum.NODE_NO_3, NodeNoEnum.NODE_NO_4, NodeNoEnum.NODE_NO_5);
+ }
+ if(NodeNoEnum.NODE_NO_2.getCode().equals(nodeNo)){
+ return Lists.newArrayList(NodeNoEnum.NODE_NO_3, NodeNoEnum.NODE_NO_4, NodeNoEnum.NODE_NO_5);
+ }
+ if(NodeNoEnum.NODE_NO_3.getCode().equals(nodeNo)){
+ return Lists.newArrayList(NodeNoEnum.NODE_NO_4, NodeNoEnum.NODE_NO_5);
+ }
+ if(NodeNoEnum.NODE_NO_4.getCode().equals(nodeNo)){
+ return Lists.newArrayList(NodeNoEnum.NODE_NO_5);
+ }else {
+ return Lists.newArrayList();
+ }
+ }
+
+ public static NodeNoEnum getByCode(Integer code){
+ for(NodeNoEnum nodeNoEnum : NodeNoEnum.values()){
+ if(nodeNoEnum.getCode().equals(code)){
+ return nodeNoEnum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OpeningOperationPlanResultTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OpeningOperationPlanResultTypeEnum.java
new file mode 100644
index 000000000..484f67cc1
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OpeningOperationPlanResultTypeEnum.java
@@ -0,0 +1,28 @@
+package com.cool.store.enums;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/23/下午2:50
+ * @Version 1.0
+ * @注释:
+ */
+public enum OpeningOperationPlanResultTypeEnum {
+ WAIT_AUDIT(0,"待审核"),
+ PASS_AUDIT(1,"审核通过"),
+ REJECT_AUDIT(2,"审核未通过");
+ private Integer code;
+ private String desc;
+
+ OpeningOperationPlanResultTypeEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OpeningOperationPlanSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OpeningOperationPlanSourceEnum.java
new file mode 100644
index 000000000..557dac269
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OpeningOperationPlanSourceEnum.java
@@ -0,0 +1,28 @@
+package com.cool.store.enums;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/22/下午5:15
+ * @Version 1.0
+ * @注释:
+ */
+public enum OpeningOperationPlanSourceEnum {
+ NEW(0,"新增"),
+ SYNCHRONIZATION(1,"同步");
+
+
+ private Integer code;
+ private String desc;
+ OpeningOperationPlanSourceEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java
new file mode 100644
index 000000000..cdb3cd459
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java
@@ -0,0 +1,79 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: OperateLogFieldValue
+ * @Description:
+ * @date 2023-06-27 10:44
+ */
+public enum OperateLogFieldValueEnum {
+
+ ALLOCATION_USERID("allocationUserId","分配人ID"),
+ ALLOCATION_USERNAME("allocationUsername","分配人姓名"),
+ MOBILE("mobile","手机号"),
+ OPERATE_TIME("operateTime","操作时间"),
+ OPERATE_USER_ID("operateUserId","操作人id"),
+ OPERATE_USER_NAME("operateUsername","操作人姓名"),
+ REASON("reason","原因"),
+ PASS_REASON("passReason","通过原因"),
+ REJECT_PUBLIC_REASON("rejectPublicReason", "公开拒绝原因"),
+ REJECT_REAL_REASON("rejectRealReason", "真实拒绝原因"),
+ CERTIFY_FILE("certifyFile", "上传的证明文件或凭证"),
+ BEFORE_INVESTMENT_MANAGER_USERNAME("beforeInvestmentManagerUsername", "转让前的招商经理姓名"),
+ BEFORE_INVESTMENT_MANAGER_MOBILE("beforeInvestmentManagerMobile", "转让前的招商经理手机号"),
+ AFTER_INVESTMENT_MANAGER_USERNAME("afterInvestmentManagerUsername", "转让后的招商经理姓名"),
+ AFTER_INVESTMENT_MANAGER_MOBILE("afterInvestmentManagerMobile", "转让后的招商经理手机好"),
+
+ INTERVIEW_AGREEMENT_RAW_DATETIME("rawInterviewDateTime", "同意的面试预约原始申请时间"),
+ INTERVIEW_PLAN_ID("interviewPlanId", "面试计划id"),
+
+ BEFORE_INTERVIEW_TIME("beforeInterviewTime", "修改前的面试时间"),
+ AFTER_INTERVIEW_TIME("afterInterviewTime", "修改后的面试时间"),
+
+ BEFORE_INTERVIEWR_NAME("beforeInterviewrName", "委托前的面试官姓名"),
+ AFTER_INTERVIEWR_NAME("afterInterviewrName", "委托后的面试官姓名"),
+ BEFORE_INTERVIEWR_MOBILE("beforeInterviewrMobile", "委托前的面试官手机号"),
+ AFTER_INTERVIEWR_MOBILE("afterInterviewrMobile", "委托后的面试官手机号"),
+
+ SUMMARY("summary", "面试总结"),
+ QUALI_VERIFY_CONTENT("qualiVerifyContent", "资质审核内容"),
+
+ BEFORE_USERINFO_UPDATE("beforeUserinfoUpdate", "修改前的用户信息"),
+ AFTER_USERINFO_UPDATE("afterUserinfoUpdate", "修改后的用户信息"),
+
+ BEFORE_BASE_INFO_UPDATE("beforeBaseInfoUpdate", "修改前的意向书基本信息"),
+ AFTER_BASE_INFO_UPDATE("afterBaseInfoUpdate", "修改后的意向书基本信息"),
+
+ BEFORE_INTENT_INFO_UPDATE("beforeIntentInfoUpdate", "修改前的意向行业信息"),
+ AFTER_INTENT_INFO_UPDATE("afterIntentInfoUpdate", "修改后的意向行业信息"),
+
+ BEFORE_CLERK_INFO_UPDATE("beforeClerkUpdate", "修改前的意向书员工信息"),
+ AFTER_CLERK_INFO_UPDATE("afterClerkUpdate", "修改后的意向书员工信息"),
+ FOLLOW_LOG("followLog", "跟进日志"),
+ FOLLOW_TASK_ID("followTaskId", "跟进任务id"),
+ ADD_LABELS("addLabels", "新增标签"),
+ REMOVE_LABELS("removeLabels", "移除标签"),
+ CALL_TRANS_NO("transNo", "呼叫请求编号"),
+ INCOMING_USER_ID("incomingUserId", "接听人用户id"),
+ INCOMING_USER_NAME("incomingUserName", "接听人用户姓名"),
+ ;
+
+
+ private String code;
+
+ private String name;
+
+
+ OperateLogFieldValueEnum(String code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java
new file mode 100644
index 000000000..c9d50e645
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java
@@ -0,0 +1,89 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.cool.store.enums.OperateLogFieldValueEnum.*;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: OperateTypeEnum
+ * @Description:
+ * @date 2023-06-27 10:41
+ */
+public enum OperateTypeEnum {
+
+ EC_SYNC_ADD_LINE("ec_sync_add_line", "ec同步新增线索", Arrays.asList(MOBILE,OPERATE_TIME, OPERATE_USER_ID, OPERATE_USER_NAME)),
+ ADD_LINE("add_line", "新增线索", Arrays.asList(MOBILE,OPERATE_TIME, OPERATE_USER_ID, OPERATE_USER_NAME)),
+ ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERID,ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)),
+ ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
+ REMOVE_BLACKLIST("remove_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
+ CLOSE_FOLLOW("close_follow", "结束跟进", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON, REJECT_REAL_REASON, CERTIFY_FILE)),
+ TRANSFER_INVESTMENT_MANAGER("transfer_investment_manager", "转让招商经理", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INVESTMENT_MANAGER_USERNAME, BEFORE_INVESTMENT_MANAGER_MOBILE, AFTER_INVESTMENT_MANAGER_USERNAME, AFTER_INVESTMENT_MANAGER_MOBILE)),
+ INTERVIEW_APPOINTMENT("interview_appointment", "预约面试时间", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)),
+ INTERVIEW_APPOINTMENT_AGREEMENT("interview_appointment_agreement", "同意面试预约申请", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, INTERVIEW_AGREEMENT_RAW_DATETIME, INTERVIEW_PLAN_ID)),
+ AUTO_OPEN_INTERVIEW("auto_open_interview", "自动打开面试房间", Arrays.asList(OPERATE_TIME)),
+ INTERVIEWER_BOOK_INTERVIEW("interviewer_book_interview", "招商经理主动预约面试时间", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)),
+ MODIFY_INTERVIEW_TIME("modify_interview_time", "修改面试时间", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INTERVIEW_TIME, AFTER_INTERVIEW_TIME)),
+ ENTRUST_OTHERS("entrust_others", "委托他人", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, BEFORE_INTERVIEWR_NAME, AFTER_INTERVIEWR_NAME, BEFORE_INTERVIEWR_MOBILE, AFTER_INTERVIEWR_MOBILE)),
+
+ FINISH_INTERVIEW("finish_interview", "合作资格面试-结束面试", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)),
+
+ REINTERVIEW("reinterview", "合作资格面试-重新预约面试", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,REJECT_REAL_REASON, CERTIFY_FILE)),
+
+ REJECT_INTERVIEW("reject_interview", "合作资格面试-拒绝并结束跟进", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON,REJECT_REAL_REASON, CERTIFY_FILE)),
+ CREATE_QUALIFYVERIFY("create_qualifyverify", "合作资格面试-创建资格审核", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,SUMMARY,QUALI_VERIFY_CONTENT)),
+ EXHIBITION_CREATE_QUALIFYVERIFY("exhibition_create_qualifyverify", "会销资格面试-创建资格审核", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,SUMMARY,QUALI_VERIFY_CONTENT)),
+ QUALIFYVERIFY_PASS("qualifyverify_pass", "合作资格面试-审核通过", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,SUMMARY,QUALI_VERIFY_CONTENT)),
+ QUALIFYVERIFY_REJECT("qualifyverify_reject", "合作资格面试-审核拒绝", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,SUMMARY,QUALI_VERIFY_CONTENT)),
+
+ USERINFO_UPDATE("userinfo_update", "修改(修改意向信息)", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_USERINFO_UPDATE, AFTER_USERINFO_UPDATE)),
+ INTENT_INFO_SUBMIT("intent_info_submit", "提交意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, AFTER_BASE_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE, AFTER_CLERK_INFO_UPDATE)),
+ INTENT_INFO_UPDATE("intent_info_update", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_BASE_INFO_UPDATE, AFTER_BASE_INFO_UPDATE, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE, BEFORE_CLERK_INFO_UPDATE, AFTER_CLERK_INFO_UPDATE)),
+ ADD_TAGS("add_tags", "修改用户画像", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, ADD_LABELS, REMOVE_LABELS)),
+ ADD_FOLLOW_LOG("add_follow_log", "新增根据日志", Arrays.asList(FOLLOW_LOG)),
+ ADD_FOLLOW_TASK("add_follow_task", "新增跟进任务", Arrays.asList(FOLLOW_TASK_ID)),
+
+ CALL_UP("call_up", "拨打电话", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, OPERATE_TIME, CALL_TRANS_NO,INCOMING_USER_ID,INCOMING_USER_NAME)),
+
+ ;
+
+ private String code;
+
+ private String name;
+
+ private List filedList;
+
+ private static Map operateTypeEnumMap;
+
+ static {
+ operateTypeEnumMap = new HashMap<>();
+ for (OperateTypeEnum operateTypeEnum : OperateTypeEnum.values()) {
+ operateTypeEnumMap.put(operateTypeEnum.getCode(), operateTypeEnum);
+ }
+ }
+
+ OperateTypeEnum(String code, String name, List filedList) {
+ this.code = code;
+ this.name = name;
+ this.filedList = filedList;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List getFiledList() {
+ return filedList;
+ }
+
+ public static OperateTypeEnum getOperateTypeEnum(String code) {
+ return operateTypeEnumMap.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java
new file mode 100644
index 000000000..54ed24023
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2024/3/29 18:06
+ * @Version 1.0
+ */
+public enum OperationLogTypeEnum {
+
+ TRANSFER_INVESTMENT_MANAGER(1, "转让招商经理_线索"),
+ ENTRUST_INTERVIEW(2, "委托面试"),
+ TRANSFER_INVESTMENT_MANAGER_3(3, "转让招商经理_加盟商");
+
+ private final int code;
+ private final String description;
+
+ OperationLogTypeEnum(int code, String description) {
+ this.code = code;
+ this.description = description;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/PageTurnTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/PageTurnTypeEnum.java
new file mode 100644
index 000000000..5341a25b5
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/PageTurnTypeEnum.java
@@ -0,0 +1,23 @@
+package com.cool.store.enums;
+
+
+public enum PageTurnTypeEnum {
+
+ PREVIOUS("previous"),
+ NEXT("next");
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ private String text;
+
+ PageTurnTypeEnum(String text) {
+ this.text = text;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatFormTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatFormTypeEnum.java
new file mode 100644
index 000000000..e472f7d2d
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatFormTypeEnum.java
@@ -0,0 +1,43 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PlatFormTypeEnum
+ * @Description:
+ * @date 2023-06-08 16:43
+ */
+public enum PlatFormTypeEnum {
+
+ /**
+ * 菜单类型
+ */
+ PC("PC","pc端菜单"),
+ ;
+
+ private String code;
+ private String msg;
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(PlatFormTypeEnum::getCode, Function.identity()));
+
+ PlatFormTypeEnum(String code, String msg){
+ this.code=code;
+ this.msg=msg;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+ public static PlatFormTypeEnum getByCode(String code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ReceivingBankEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ReceivingBankEnum.java
new file mode 100644
index 000000000..b1e29c3ea
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ReceivingBankEnum.java
@@ -0,0 +1,44 @@
+package com.cool.store.enums;
+
+public enum ReceivingBankEnum {
+
+ XFSG_RECEIVING_BANK("鲜丰水果股份有限公司","33050161642700001117","中国建设银行浙江省分行文晖支行"),
+
+
+ ;
+
+
+ private String accountName;
+ private String accountNum;
+ private String bank;
+
+ ReceivingBankEnum(String accountName, String accountNum, String bank) {
+ this.accountName = accountName;
+ this.accountNum = accountNum;
+ this.bank = bank;
+ }
+
+ public String getAccountName() {
+ return accountName;
+ }
+
+ public void setAccountName(String accountName) {
+ this.accountName = accountName;
+ }
+
+ public String getAccountNum() {
+ return accountNum;
+ }
+
+ public void setAccountNum(String accountNum) {
+ this.accountNum = accountNum;
+ }
+
+ public String getBank() {
+ return bank;
+ }
+
+ public void setBank(String bank) {
+ this.bank = bank;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RentTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RentTypeEnum.java
new file mode 100644
index 000000000..d24137da4
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RentTypeEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: RentTypeEnum
+ * @Description:
+ * @date 2024-04-16 11:47
+ */
+public enum RentTypeEnum {
+
+ RENT(1,"铺位直租"),
+ OWN(2,"自有铺位"),
+ ;
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ RentTypeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ResponseCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ResponseCodeEnum.java
new file mode 100644
index 000000000..3305b8d0d
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ResponseCodeEnum.java
@@ -0,0 +1,38 @@
+package com.cool.store.enums;
+
+
+/**
+ * @author Aaron
+ * @Description 业务统一返回码
+ * @date 2019/12/20
+ */
+public enum ResponseCodeEnum {
+ /**
+ * 成功返回
+ */
+ SUCCESS(200000, "SUCCESS");
+
+ /**
+ * 返回码
+ */
+ private int code;
+
+ /**
+ * 返回信息
+ */
+ private String message;
+
+ ResponseCodeEnum(int code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java
new file mode 100644
index 000000000..a96ff34ff
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java
@@ -0,0 +1,60 @@
+package com.cool.store.enums;
+
+import com.cool.store.utils.CommonContextUtil;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: RocketMqGroupEnum
+ * @Description:
+ * @date 2021-12-22 17:28
+ */
+public enum RocketMqGroupEnum {
+
+ /**
+ * 写在前面 读在前面
+ * 同一个group 监听的topic 和 tag必须一致 不然会出现消息丢失问题
+ * 即不能以下情况
+ * 实例1:
+ * 服务A中某个Listener的groupId为GroupA 监听topicA 过滤的消息tagA
+ * 服务B中某个Listener的groupId为GroupA 监听topicB 过滤的消息tagA
+ * 实例2:
+ * 服务A中某个Listener的groupId为GroupA 监听topicA 过滤的消息tagA
+ * 服务B中某个Listener的groupId为GroupA 监听topicA 过滤的消息tagB
+ */
+ /**
+ * 事件消息监听
+ */
+ FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE, RocketMqTagEnum.DEPT_EVENT))),
+ SYNC_TRAINING_PERSON("sync_training_person", new ArrayList<>(Arrays.asList(RocketMqTagEnum.SYNC_TRAINING_PERSON, RocketMqTagEnum.SYNC_TRAINING_SHOP_PERSON))),
+
+ ;
+
+ private final String group;
+
+ private final List tagList;
+
+
+ RocketMqGroupEnum(String group,List tagList) {
+ this.group = group;
+ this.tagList = tagList;
+ }
+
+ public String getDefaultGroup() {
+ return group;
+ }
+
+ public static String getGroupId(RocketMqGroupEnum groupEnum){
+ return groupEnum.group + "_" + CommonContextUtil.getProfileName();
+ }
+
+ public static String getTag(RocketMqGroupEnum groupEnum){
+ return StringUtils.join(groupEnum.tagList.stream().map(RocketMqTagEnum::getTag).collect(Collectors.toList()),"||");
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java
new file mode 100644
index 000000000..7d63426bd
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java
@@ -0,0 +1,53 @@
+package com.cool.store.enums;
+
+
+import com.cool.store.utils.CommonContextUtil;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: RocketMqTagEnum
+ * @Description:
+ * @date 2021-12-23 16:14
+ */
+public enum RocketMqTagEnum {
+
+ AUTH_SCOPE_CHANGE("auth_scope_change","授权范围变更"),
+ USER_EVENT("user_event","钉钉通讯录变更事件"),
+ DEPT_EVENT("dept_event","部门事件"),
+ STORE_DING_QUEUE("store_ding_queue", "微应用钉钉消息发送"),
+ SYNC_TRAINING_PERSON("sync_training_person", "建店完成后拉取培训人员"),
+
+ SYNC_TRAINING_SHOP_PERSON("sync_training_shop_person", "建店完成后拉取店下的培训人员"),
+ ;
+
+
+ private final String tag;
+
+ private final String remark;
+
+ RocketMqTagEnum(String tag, String remark) {
+ this.tag = tag;
+ this.remark = remark;
+ }
+
+ public String getDefaultTag() {
+ return tag;
+ }
+
+ public String getTag() {
+ return tag + "_" + CommonContextUtil.getProfileName();
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public static RocketMqTagEnum getByTag(String tag){
+ for (RocketMqTagEnum value : values()) {
+ if(value.getTag().equals(tag)){
+ return value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/Role.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/Role.java
new file mode 100644
index 000000000..8de661ab7
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/Role.java
@@ -0,0 +1,116 @@
+package com.cool.store.enums;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public enum Role {
+
+ /**
+ * 管理员
+ */
+ MASTER("20000000", "管理员", 1,"master"),
+ /**
+ * 子管理员
+ */
+ SUB_MASTER("80000000", "子管理员", 2,"sub_master"),
+ /**
+ * 普通员工
+ */
+ EMPLOYEE("30000000", "未分配", 99999999,"employee"),
+ /**
+ * 部门负责人
+ */
+ DEPT_LEADER("40000000", "部门负责人", 10,"dept_leader"),
+ /**
+ * 店长
+ */
+ SHOPOWNER("50000000", "店长", 3,"shopowner"),
+ /**
+ * 运营
+ */
+ OPERATOR("60000000", "运营", 4,"operator"),
+ /**
+ * 店员
+ */
+ CLERK("70000000", "店员", 5,"clerk"),
+
+ MYSTERIOUS_GUEST("90000000", "神秘访客", 6,"mysterious_guest");
+
+
+ private static final Map MAP = Arrays.stream(values()).collect(
+ Collectors.toMap(Role::getRoleEnum, Function.identity()));
+
+ private static final Map ROLE_ID_MAP = Arrays.stream(values()).collect(
+ Collectors.toMap(Role::getId, Function.identity()));
+
+ private String id;
+ private String name;
+ @Getter
+ @Setter
+ private Integer priority;
+
+ private String roleEnum;
+
+
+ Role(String id, String name, Integer priority, String roleEnum) {
+ this.id = id;
+ this.name = name;
+ this.priority = priority;
+ this.roleEnum=roleEnum;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getRoleEnum() {
+ return roleEnum;
+ }
+
+ public static Role getByCode(String code) {
+ return MAP.get(code);
+ }
+
+ /**
+ * 是否是管理员 及 子管理员
+ * @param code
+ * @return
+ */
+ public static boolean isAdmin(String code){
+ if(MASTER.getRoleEnum().equals(code) || SUB_MASTER.getRoleEnum().equals(code)){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 根据id 判断 是否是管理员 及 子管理员
+ * @param id
+ * @return
+ */
+ public static boolean isAdminById(String id){
+ if(MASTER.getId().equals(id) || SUB_MASTER.getId().equals(id)){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 是否包含角色id
+ * @param roleId
+ * @return
+ */
+ public static boolean isContainsRoleId(String roleId){
+ return ROLE_ID_MAP.containsKey(roleId);
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleSourceEnum.java
new file mode 100644
index 000000000..7d6299072
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleSourceEnum.java
@@ -0,0 +1,45 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * describe:职位来源枚举
+ *
+ * @author zhouyiping
+ * @date 2020/12/30
+ */
+public enum RoleSourceEnum {
+ /**
+ * 职位来源
+ */
+ CREATE("create", "自建"),
+ EHR("ehr", "EHR"),
+ SYNC("sync", "钉钉同步");
+
+ private static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(RoleSourceEnum::getCode, Function.identity()));
+
+
+ private String code;
+ private String desc;
+
+ RoleSourceEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static RoleSourceEnum getByCode(String code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RoomStatus.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RoomStatus.java
new file mode 100644
index 000000000..562e1c281
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RoomStatus.java
@@ -0,0 +1,23 @@
+package com.cool.store.enums;
+
+public enum RoomStatus {
+ WAIT_FOR_OPEN(0, "待开放"),
+ OPEN(1, "已开放"),
+ CLOSED(2, "已关闭");
+
+ private final int code;
+ private final String description;
+
+ RoomStatus(int code, String description) {
+ this.code = code;
+ this.description = description;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java
new file mode 100644
index 000000000..93423cb2e
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java
@@ -0,0 +1,63 @@
+package com.cool.store.enums;
+
+/**
+ * @Author: young.yu
+ * @Date: 2023-09-14 14:27
+ * @Description:
+ */
+public enum SMSMsgEnum {
+
+ INTERVIEW_APPOINTMENT_SUCCESS("邀约面谈成功", "", "SMS_465930408"),
+ INTERVIEW_TIME_MODIFY("面谈时间修改", "", "SMS_467410046"),
+ FIRST_INTERVIEW_APPOINTMENT_SUCCESS("一次面审待预约", "", "SMS_465915456"),
+ FIRST_INTERVIEW_REMIND("一次面审1小时提醒", "", "SMS_465935440"),
+ FIRST_INTERVIEW_TIME_MODIFY("一审时间修改", "","SMS_467515078"),
+ FIRST_INTERVIEW_REAPPOINTMENT("一次面审重新预约", "", "SMS_465935442"),
+ INTENTION_PAYMENT("意向金待缴费", "", "SMS_465950414"),
+ INTENTION_PAYMENT_FAIL("意向金缴费失败", "", "SMS_465975442"),
+ INTENTION_PAYMENT_PASS("签署意向协议OA审核完成后进入门店体验阶段", "", "SMS_467400057"),
+ INTENTION_PAYMENT_SUCCESS("意向金审核通过", "", "SMS_465885415"),
+ INTENTION_PROTOCOL_FAIL("意向协议审核未通过", "", "SMS_465910434"),
+ SECOND_INTERVIEW_APPOINTMENT("二审面审待预约", "", "SMS_465950416"),
+ SECOND_INTERVIEW_REMIND("二审前1小时提醒", "", "SMS_465925428"),
+ SECOND_INTERVIEW_REAPPOINTMENT("二审重新预约", "", "SMS_465940421"),
+ SECOND_INTERVIEW_SUCCESS("二审面审成功", "", "SMS_465980397"),
+ SECOND_INTERVIEW_TIME_MODIFY("二审时间修改", "", "SMS_467365053"),
+ SELECT_SUCCESS("选铺成功", "", "SMS_465950846"),
+ RENT_CONTRACT_AUDIT_FAIL("租赁合同上传未通过", "", "SMS_465955429"),
+ SHOP_EXPERIENCE("门店体验安排", "", "SMS_465905828"),
+ SYS_BUILD_STORE_DONE("系统建店已完成", "", "SMS_465916277"),
+ LICENSE_SUBMITTED("证照待提交", "", "SMS_465981218"),
+ LICENSE_NOT_PASS("证照未通过", "", "SMS_465971250"),
+ FRANCHISE_FEE_SUBMITTED("缴纳加盟费待缴纳", "", "SMS_465921311"),
+ FRANCHISE_FEE_NOT_PASS("缴纳加盟费缴纳失败", "", "SMS_465896262"),
+ DECORATION_MODEL_PAY("装修款待缴费", "","SMS_465961253"),
+ THREE_ACCEPTANCE_WAIT("三方验收待验收","","SMS_465961257"),
+ FIRST_ORDER("首批订货金代缴费","","SMS_467585281"),
+ TRAINING_REGISTER_SUCCESS("培训登记中", "", "SMS_466035101"),
+ TRAINING_ASSESSMENT_SUCCESS("员工培训已完成", "", "SMS_465901266"),
+
+ ;
+
+ private String title;
+ private String content;
+ private String templateCode;
+
+ SMSMsgEnum(String title, String content, String templateCode) {
+ this.title = title;
+ this.content = content;
+ this.templateCode = templateCode;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public String getTemplateCode() {
+ return templateCode;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAuditInfoDeletedEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAuditInfoDeletedEnum.java
new file mode 100644
index 000000000..f9a966a15
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAuditInfoDeletedEnum.java
@@ -0,0 +1,27 @@
+package com.cool.store.enums;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/22/下午5:04
+ * @Version 1.0
+ * @注释:
+ */
+public enum ShopAuditInfoDeletedEnum {
+ NO_DELETED(0,"不删除"),
+ DELETED(1,"删除");
+
+ private Byte code;
+ private String desc;
+ ShopAuditInfoDeletedEnum(Integer code, String desc) {
+ this.code = code.byteValue();
+ this.desc = desc;
+ }
+
+ public Byte getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopRentTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopRentTypeEnum.java
new file mode 100644
index 000000000..9d862b98c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopRentTypeEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: RentTypeEnum
+ * @Description:
+ * @date 2024-04-16 11:47
+ */
+public enum ShopRentTypeEnum {
+
+ FIXED(1,"固定租金"),
+ NOT_FIXED(2,"非固定租金"),
+ ;
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ ShopRentTypeEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SignTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SignTypeEnum.java
new file mode 100644
index 000000000..bd5bd8e53
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SignTypeEnum.java
@@ -0,0 +1,63 @@
+package com.cool.store.enums;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public enum SignTypeEnum {
+ TRANSFER(0,"转让","A104"),
+ NEW_SIGNING(1,"新签","A101"),
+ RENEWAL(2,"续签","A102"),
+ RELOCATION (3,"迁址","A103"),
+ NEW_SIGNING_INDUSTRIES(5,"新签同异业转化","A105"),
+
+ ;
+
+ private Integer code;
+ private String desc;
+ private String sap;
+
+
+ SignTypeEnum(Integer code, String desc,String sap) {
+ this.code = code;
+ this.desc = desc;
+ this.sap =sap;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public String getSap() {
+ return sap;
+ }
+
+ public void setSap(String sap) {
+ this.sap = sap;
+ }
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(SignTypeEnum::getCode, Function.identity()));
+
+ public static SignTypeEnum getWorkflowStageByCode(Integer code) {
+ if(code == null) {
+ return null;
+ }
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SignUpStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SignUpStatusEnum.java
new file mode 100644
index 000000000..11cb135fe
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SignUpStatusEnum.java
@@ -0,0 +1,39 @@
+package com.cool.store.enums;
+
+import java.text.MessageFormat;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/12/11 13:56
+ * @Version 1.0
+ */
+public enum SignUpStatusEnum {
+
+ Sign_UP_FAIL_1("会销结束","你报名的展会已结束 请确认!"),
+ Sign_UP_FAIL_2("不符合报名条件","该线索已录入系统但不符合报名要求,当前处于【{0}:{1}】状态,建议客户经理以当前状态正常推进,勿占用展会名额。"),
+ Sign_UP_FAIL_3("报名同一个会销组内会销","线索已报名本批次会销组中的“{0}”场次,切勿重复录入"),
+ Sign_UP_FAIL_4("不符合报名条件—黑名单","该线索已录入系统但不符合报名要求,当前处于【黑名单】状态,建议客户经理以当前状态正常推进,勿占用展会名额。");
+
+ private String signUpTitle;
+ private String signUpFailMsg;
+
+
+ SignUpStatusEnum(String signUpTitle, String signUpFailMsg) {
+ this.signUpTitle = signUpTitle;
+ this.signUpFailMsg = signUpFailMsg;
+ }
+
+ public String getSignUpTitle() {
+ return signUpTitle;
+ }
+
+ public String getSignUpFailMsg() {
+ return signUpFailMsg;
+ }
+
+ public static String getSignUpFailMsg(SignUpStatusEnum signUpStatusEnum,Object... objects) {
+ return MessageFormat.format(signUpStatusEnum.getSignUpFailMsg(),objects);
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java
new file mode 100644
index 000000000..b439c20e5
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java
@@ -0,0 +1,43 @@
+package com.cool.store.enums;
+
+
+public enum SmsCodeTypeEnum {
+
+ LOGIN("SMS_220325070","验证码登录", 10 * 60),
+ FORGOT_PWD("SMS_220325070","忘记密码", 10 * 60),
+ MODIFY_PWD("SMS_220325070","修改密码", 10 * 60),
+ IMPROVE_INFO("SMS_220325070","完善用户信息", 10 * 60),
+ USER_REGISTER("SMS_220325070","用户注册", 10 * 60),
+ ENTERPRISE_REGISTER("SMS_220325070","企业注册", 10 * 60),
+ LOGIN2("SMS_232163403","验证码登录", 10 * 60),
+
+
+
+
+
+ ;
+
+ private String templateCode;
+
+ private String message;
+
+ private int cacheSeconds;
+
+ SmsCodeTypeEnum(String templateCode, String message, int cacheSeconds) {
+ this.templateCode = templateCode;
+ this.message = message;
+ this.cacheSeconds = cacheSeconds;
+ }
+
+ public String getTemplateCode() {
+ return templateCode;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public int getCacheSeconds() {
+ return cacheSeconds;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/StorageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/StorageStatusEnum.java
new file mode 100644
index 000000000..c471a388b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/StorageStatusEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: StorageStatusEnum
+ * @Description:
+ * @date 2024-04-30 13:47
+ */
+public enum StorageStatusEnum {
+
+ //入库状态1已入库 2暂未入库
+ IN_STORAGE(1, "已入库"),
+ NOT_IN_STORAGE(2, "暂未入库"),
+ ;
+
+
+
+ private Integer code;
+ private String desc;
+
+ StorageStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ThirdRegionTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ThirdRegionTypeEnum.java
new file mode 100644
index 000000000..132ef30c6
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ThirdRegionTypeEnum.java
@@ -0,0 +1,44 @@
+package com.cool.store.enums;
+
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 区域类型 0-根;1=大区;2=战区;3=小区(督导区);4=门店
+ * @author wxp
+ */
+public enum ThirdRegionTypeEnum {
+
+ ROOT("0","根"),
+ LARGE_REGION("1","大区"),
+ WAR_REGION("2","战区"),
+ COMMUNITY_REGION("3","小区"),
+ STORE("4","门店");
+
+ private String code;
+ private String desc;
+
+ public static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(ThirdRegionTypeEnum::getCode, Function.identity()));
+
+ ThirdRegionTypeEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static ThirdRegionTypeEnum getByCode(String code) {
+ return map.get(code);
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/TrajectoryTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/TrajectoryTypeEnum.java
new file mode 100644
index 000000000..54170e08b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/TrajectoryTypeEnum.java
@@ -0,0 +1,130 @@
+package com.cool.store.enums;
+
+/**
+ * @author hxd
+ */
+
+public enum TrajectoryTypeEnum {
+
+ /**
+ * 联系轨迹类型*
+ */
+ SEND_NOTE(1001, "发送短信",""),
+ DIAL_MOBILE(1002, "拨打对方电话",""),
+ WEBSITE_CUSTOMER_MOBILE(1003, "网站客服会话",""),
+ EC_SESSION(1004, "EC会话",""),
+ QQ_SESSION(1005, "QQ会话",""),
+ SEND_EMAIL(1006, "发送邮件",""),
+ ANSWER_MOBILE(1007, "接听对方电话",""),
+ ANSWER_EMAIL(1008, "接收邮件",""),
+ CALL_MEETING(1009, "电话会议",""),
+ DIAL_CLOUD_MOBILE(1010, "拨打云总机电话",""),
+ ANSWER_CLOUD_MOBILE(1011, "接听云总机电话",""),
+
+ /**
+ * 提醒类
+ */
+ REGULARLY_REMIND(2001, "定时提醒",""),
+ REMINDER_SALES_PROGRAM(2002, "提醒销售计划",""),
+ CALENDAR_REMINDER(2003, "日历提醒",""),
+
+
+
+
+ /**
+ * 文本类型
+ */
+ ADD_CUSTOMER(3001, "新增客户",""),
+ ADD_CUSTOMER_DATA(3002, "新增客户资料",""),
+ UPDATE_CUSTOMER_DATA(3003, "更新客户资料",""),
+ UPDATE_CUSTOMER_LABEL(3004, "更新客户标签",""),
+ RELEVANCE_EC(3005, "关联EC",""),
+ CANCEL_RELEVANCE_EC(3006, "取消EC关联",""),
+ RELEVANCE_QQ(3007, "关联QQ",""),
+ CANCEL_RELEVANCE_QQ(3008, "取消QQ关联",""),
+ TRANSFER_CUSTOMER(3009, "转让客户","将此客户转换了给"),
+ MERGE_CUSTOMER(3010, "合并客户",""),
+ ALLOCATION_CUSTOMER(3011, "分配客户","分配此客户给"),
+ GET_CUSTOMER(3012, "领取客户","领取了此客户"),
+ ABANDON_CUSTOMER(3013, "放弃客户",""),
+ ADD_MARKER_PLAN(3014, "添加销售计划",""),
+ UPDATE_MARKER_PLAN(3015, "修改销售计划",""),
+ USE_MARKER_TEMPLATE(3016, "使用销售模板",""),
+ UPDATE_CUSTOMER_STAGE(3017, "更新客户阶段",""),
+ RELEVANCE_COMPANY(3018, "关联公司",""),
+ CANCEL_RELEVANCE_COMPANY(3019, "取消公司关联",""),
+ UPLOAD_PHOTO_AVATAR(3020, "上传头像",""),
+ ADD_SHARE_COLLEAGUE(3021, "新增共享同事",""),
+ CANCEL_SHARE_COLLEAGUE(3022, "取消共享同事",""),
+ CANCEL_RELEVANCE(3023, "退出共享关系",""),
+ TRANSFER_COMPANY_IMPORT(3024, "转为公司导入",""),
+ ADD_CONTACT_DATA(3036, "新增联系人资料",""),
+ UPDATE_CONTACT_DATA(3037, "更新联系人资料",""),
+ ADD_CONTACT(3038, "新增联系人",""),
+ DELETE_CONTACT(3039, "删除联系人",""),
+ DELETE_ORDERS(3040, "删除订单",""),
+ DELETE_CUSTOMER(3041, "删除客户",""),
+ TRANSFER_CUSTOMER_TYPE(3042, "转换客户类型",""),
+
+ /**
+ * 跟进记录类
+ */
+ ADD_FOLLOW_RECORD(4000, "添加跟进记录",""),
+
+ /**
+ * 微信类
+ */
+ WECHAT_ACTIVITY(6000, "微信活动",""),
+ /**
+ * 拜访客户类
+ */
+ VISITING_CLIENTS(7000, "拜访客户类","");
+
+
+ private final Integer value;
+ private final String showText;
+ private final String jointText;
+
+ TrajectoryTypeEnum(Integer value, String showText,String jointText) {
+ this.value = value;
+ this.showText = showText;
+ this.jointText = jointText;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public String getShowText() {
+ return showText;
+ }
+
+
+ public String getJointText() {
+ return jointText;
+ }
+
+
+ public static String getShowText(Integer value) {
+ for (TrajectoryTypeEnum trajectoryTypeEnum : TrajectoryTypeEnum.values()) {
+ if (trajectoryTypeEnum.getValue().equals(value)) {
+ return trajectoryTypeEnum.getShowText();
+ }
+ }
+ return "";
+ }
+
+
+ public static String getJointText(Integer value) {
+ for (TrajectoryTypeEnum trajectoryTypeEnum : TrajectoryTypeEnum.values()) {
+ if (trajectoryTypeEnum.getValue().equals(value)) {
+ return trajectoryTypeEnum.getJointText();
+ }
+ }
+ return "";
+ }
+
+
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java
new file mode 100644
index 000000000..7623ef611
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java
@@ -0,0 +1,44 @@
+package com.cool.store.enums;
+
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author zyp
+ */
+public enum UserAuthMappingTypeEnum {
+ /**
+ * 区域
+ */
+ REGION("region","区域"),
+ /**
+ * 门店
+ */
+ STORE("store","门店");
+
+ private String code;
+ private String desc;
+ public static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(UserAuthMappingTypeEnum::getCode, Function.identity()));
+
+ UserAuthMappingTypeEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static UserAuthMappingTypeEnum getByCode(String code) {
+ return map.get(code);
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java
new file mode 100644
index 000000000..e07b1346c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java
@@ -0,0 +1,35 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/7/18 17:01
+ * @Version 1.0
+ */
+public enum UserChannelEnum {
+
+ EXHIBITION("EXHIBITION","北京展会"),
+ RECOMMENDED("RECOMMENDED","李德龙推荐"),
+
+ ADD("46919","人工创建"),
+
+ SMS_INVATE("","短信邀约");
+
+
+
+ private final String code;
+ private final String desc;
+
+ UserChannelEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPlatformTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPlatformTypeEnum.java
new file mode 100644
index 000000000..c8867b97f
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPlatformTypeEnum.java
@@ -0,0 +1,43 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author wxp
+ * @FileName: UserPlatformTypeEnum
+ * @Description: 用户平台类型
+ * @date 2023-06-13 17:12
+ */
+public enum UserPlatformTypeEnum {
+
+ WECHAT("wechat", "微信"),
+ DOUYIN("douyin", "抖音"),
+ WEIBO("weibo", "微博");
+
+ private String code;
+
+ private String msg;
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(UserPlatformTypeEnum::getCode, Function.identity()));
+
+ UserPlatformTypeEnum(String code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public static UserPlatformTypeEnum getByCode(String code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java
new file mode 100644
index 000000000..b119a5300
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: UserPositionEnum
+ * @Description:用户身份
+ * @date 2023-06-19 16:37
+ */
+public enum UserPositionEnum {
+
+ INVESTMENT_MANAGER("investment_manager", "招商经理"),
+ INVESTMENT_LEADER("investment_leader", "招商负责人"),
+ DEVELOPMENT_DIRECTOR("development_director", "开发主管"),
+ DEVELOPMENT_MANAGER("development_manager", "开发经理"),
+ ;
+
+ private String code;
+
+ private String message;
+
+ UserPositionEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java
new file mode 100644
index 000000000..b9cc8e095
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: UserRoleEnum
+ * @Description: 用户职位
+ * @date 2024-03-22 16:37
+ */
+public enum UserRoleEnum {
+ INVESTMENT_COMMISSIONER(100000000L, "招商专员"),
+ SELECT_SITE_COMMISSIONER(110000000L, "选址专员"),
+ REGION_MANAGER(120000000L, "大区执行总经理"),
+ THEATER_MANAGER(130000000L, "战区经理"),
+ OPERATIONS_MANAGER(140000000L, "营运经理"),
+ TRAINER(150000000L, "训练"),
+ XFSG_CLERK(160000000L, "店员"),
+ XFSG_SHOPOWNER(170000000L, "店长"),
+ SUPERVISION(180000000L, "督导"),
+ SELECT_SITE_LEADER(190000000L, "选址组长"),
+ SELECT_SITE_MANAGER(200000000L, "选址经理"),
+ INVESTMENT_MANAGER(210000000L, "招商经理"),
+ HEADQUARTERS_LEADER(220000000L, "总部负责人"),
+ HR(230000000L, "HR"),
+ DESIGN_MANAGER(240000000L, "品牌设计高级经理"),
+ ENGINEER_DEP_SUPERVISOR(250000000L, "工程部监理"),
+ ENGINEER_DEP_MANAGER(260000000L, "工程部高级经理"),
+ ;
+
+ private Long code;
+ private String desc;
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(UserRoleEnum::getDesc, Function.identity()));
+
+ UserRoleEnum(Long code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Long getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static UserRoleEnum getByDesc(String desc) {
+ return map.get(desc);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserStatusEnum.java
new file mode 100644
index 000000000..1484022e5
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserStatusEnum.java
@@ -0,0 +1,52 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: UserStatusEnum
+ * @Description: 用户状态枚举
+ * @date 2021-07-19 16:27
+ */
+public enum UserStatusEnum {
+ //用户状态 0待审核 1正常 2冻结
+ WAIT_AUDIT(0,"待审核"),
+ NORMAL(1,"正常"),
+ FREEZE(2, "冻结")
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ UserStatusEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public static String getMessageByCode(Integer code){
+ for(UserStatusEnum Enum: UserStatusEnum.values()){
+ if(Enum.code.equals(code)){
+ return Enum.message;
+ }
+ }
+ return null;
+ }
+
+ public static Integer getCodeByMessage(String message){
+ for(UserStatusEnum Enum: UserStatusEnum.values()){
+ if(Enum.message.equals(message)){
+ return Enum.code;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java
new file mode 100644
index 000000000..fb9595acd
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java
@@ -0,0 +1,46 @@
+package com.cool.store.enums;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/6/9 16:17
+ * @Version 1.0
+ */
+public enum WorkflowStageEnum {
+
+ INTENT(1,"意向申请阶段"),
+ STORE(2,"新店进展"),
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ WorkflowStageEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(WorkflowStageEnum::getCode, Function.identity()));
+
+ public static WorkflowStageEnum getWorkflowStageByCode(String code) {
+ if(StringUtils.isBlank(code)) {
+ return null;
+ }
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowSubStageEnum.java
new file mode 100644
index 000000000..ba7acf82b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowSubStageEnum.java
@@ -0,0 +1,126 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2024/3/19 16:53
+ * @Version 1.0
+ */
+public enum WorkflowSubStageEnum{
+
+ /**
+ * 流程子阶段枚举
+ */
+ INTEND(1, "加盟意向申请", WorkflowSubStageStatusEnum.INTENT_0,"joinIntentionServiceImpl",0),
+ INVITING_INTERVIEWS(5, "邀约面谈", WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_10, "lineInterviewServiceImpl",2),
+ FIRST_INTERVIEWS(10, "一审面试", WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_25, "lineInterviewServiceImpl",4),
+ PAY_DEPOSIT(15, "缴纳意向金", WorkflowSubStageStatusEnum.PAY_DEPOSIT_45, "bankServiceImpl",4),
+ SIGN_INTENT_AGREEMENT(20, "签署意向协议", WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_60, "intentAgreementServiceImpl",6),
+ STORE_EXPERIENCE(25, "门店体验", WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85, "trainingExperienceServiceImpl",9),
+ SECOND_INTERVIEWS(30, "二审面试", WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_100, "lineInterviewServiceImpl",10);
+
+ private Integer code;
+
+ private String message;
+
+ private Integer progress;
+
+ private WorkflowSubStageStatusEnum initStatus;
+
+ private WorkflowSubStageEnum nextStage;
+
+ private String clazz;
+
+ WorkflowSubStageEnum(Integer code, String message, WorkflowSubStageStatusEnum initStatus, String clazz,Integer progress) {
+ this.code = code;
+ this.message = message;
+ this.initStatus = initStatus;
+ this.clazz = clazz;
+ this.progress = progress;
+ }
+
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public Integer getProgress() {
+ return progress;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public WorkflowSubStageStatusEnum getInitStatus() {
+ return initStatus;
+ }
+
+ public String getClazz() {
+ return clazz;
+ }
+
+ public WorkflowSubStageEnum getNextStage() {
+ switch (this) {
+ case INTEND:
+ this.nextStage = INVITING_INTERVIEWS;
+ break;
+ case INVITING_INTERVIEWS:
+ this.nextStage = FIRST_INTERVIEWS;
+ break;
+ case FIRST_INTERVIEWS:
+ this.nextStage = PAY_DEPOSIT;
+ break;
+ case PAY_DEPOSIT:
+ this.nextStage = SIGN_INTENT_AGREEMENT;
+ break;
+ case SIGN_INTENT_AGREEMENT:
+ this.nextStage = STORE_EXPERIENCE;
+ break;
+ case STORE_EXPERIENCE:
+ case SECOND_INTERVIEWS:
+ this.nextStage = null;
+ break;
+ }
+ return nextStage;
+ }
+
+ public static WorkflowSubStageEnum getWorkflowSubStageEnum(Integer workflowSubStage) {
+ for (WorkflowSubStageEnum workflowSubStageEnum : WorkflowSubStageEnum.values()) {
+ if (workflowSubStageEnum.getCode().equals(workflowSubStage)) {
+ return workflowSubStageEnum;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 是否是面试阶段
+ * @param workflowSubStage
+ * @return
+ */
+ public static boolean isInterviewStage(Integer workflowSubStage) {
+ return INVITING_INTERVIEWS.getCode().equals(workflowSubStage) || FIRST_INTERVIEWS.getCode().equals(workflowSubStage) || SECOND_INTERVIEWS.getCode().equals(workflowSubStage);
+ }
+
+ /**
+ * 是否是重新预约面试阶段
+ * @param workflowSubStage
+ * @return
+ */
+ public static boolean isReappointmentStage(Integer workflowSubStage) {
+ return FIRST_INTERVIEWS.getCode().equals(workflowSubStage) || SECOND_INTERVIEWS.getCode().equals(workflowSubStage);
+ }
+
+ public static InterviewTypeEnum getInterviewType(Integer workflowSubStage){
+ if(INVITING_INTERVIEWS.getCode().equals(workflowSubStage)){
+ return InterviewTypeEnum.MEET;
+ }
+ if(FIRST_INTERVIEWS.getCode().equals(workflowSubStage)){
+ return InterviewTypeEnum.INTERVIEW;
+ }
+ if(SECOND_INTERVIEWS.getCode().equals(workflowSubStage)){
+ return InterviewTypeEnum.SECOND_INTERVIEW;
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowSubStageStatusEnum.java
new file mode 100644
index 000000000..00f515530
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowSubStageStatusEnum.java
@@ -0,0 +1,102 @@
+package com.cool.store.enums;
+
+/**
+ * @Author suzhuhong
+ * @Date 2024/3/19 17:00
+ * @Version 1.0
+ */
+public enum WorkflowSubStageStatusEnum {
+
+ //意向申请
+ INTENT_0(0,"待提交"),
+ INTENT_5(5,"待审核"),
+ INTENT_7(7,"未通过"),
+
+ //邀约面谈
+ INVITING_INTERVIEWS_10(10,"待预约"),
+ INVITING_INTERVIEWS_15(15,"待面谈"),
+ INVITING_INTERVIEWS_20(20,"待审核"),
+
+ //一审面试
+ FIRST_INTERVIEWS_25(25,"待预约"),
+ FIRST_INTERVIEWS_30(30,"待面试"),
+ FIRST_INTERVIEWS_35(35,"待审核"),
+ FIRST_INTERVIEWS_40(40,"一审未通过"),
+ FIRST_INTERVIEWS_42(42,"一审重新预约"),
+
+ //缴纳意向金,装修款
+ PAY_DEPOSIT_45(45,"待缴费"),
+ PAY_DEPOSIT_50(50,"已缴费"),
+ PAY_FAIL_55(55,"审核未通过"),
+
+ //签署意向协议
+ SIGN_INTENT_AGREEMENT_60(60,"待补充"),
+ SIGN_INTENT_AGREEMENT_63(63,"待审核"),
+ SIGN_INTENT_AGREEMENT_65(65,"不通过"),
+ SIGN_INTENT_AGREEMENT_70(70,"待提交"),
+ SIGN_INTENT_AGREEMENT_75(75,"待OA审核"),
+ SIGN_INTENT_AGREEMENT_80(80,"签约失败"),
+
+
+ //门店体验
+ STORE_EXPERIENCE_85(85,"待体验"),
+ STORE_EXPERIENCE_90(90,"体验中"),
+ STORE_EXPERIENCE_95(95,"放弃体验"),
+
+
+ //二审面试
+ SECOND_INTERVIEWS_100(100,"待预约"),
+ SECOND_INTERVIEWS_105(105,"待面试"),
+ SECOND_INTERVIEWS_110(110,"待审核"),
+ SECOND_INTERVIEWS_115(115,"二审未通过"),
+ SECOND_INTERVIEWS_120(120,"二审重新预约"),
+ SECOND_INTERVIEWS_125(125,"二审通过"),
+
+ ;
+
+ private Integer code;
+
+ private String message;
+
+ WorkflowSubStageStatusEnum(Integer code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public static boolean isReappointmentStatus(Integer workflowSubStageStatus){
+ return FIRST_INTERVIEWS_42.getCode().equals(workflowSubStageStatus) || SECOND_INTERVIEWS_120.getCode().equals(workflowSubStageStatus);
+ }
+
+ public static boolean isModifyAppointmentTime(Integer workflowSubStageStatus){
+ return INVITING_INTERVIEWS_15.getCode().equals(workflowSubStageStatus) || FIRST_INTERVIEWS_30.getCode().equals(workflowSubStageStatus) || SECOND_INTERVIEWS_105.getCode().equals(workflowSubStageStatus);
+ }
+
+ public WorkflowSubStageStatusEnum getNextStatus(WorkflowSubStageStatusEnum workflowSubStageStatusEnum) {
+ switch (workflowSubStageStatusEnum) {
+ case INTENT_0:
+ return INTENT_5;
+ default:
+ return null;
+ }
+ }
+
+ public static WorkflowSubStageStatusEnum getInterviewRejectStatus(InterviewTypeEnum interviewType){
+ if(InterviewTypeEnum.INTERVIEW.equals(interviewType)){
+ return FIRST_INTERVIEWS_40;
+ }
+ if(InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType)){
+ return SECOND_INTERVIEWS_115;
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/BussinessStateEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/BussinessStateEnum.java
new file mode 100644
index 000000000..cf0c70698
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/BussinessStateEnum.java
@@ -0,0 +1,47 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: BussinessStateEnum
+ * @Description:目前经营情况
+ * @date 2024-03-26 16:08
+ */
+public enum BussinessStateEnum {
+
+ // 1:营业中 2:空铺
+ BUSSINESS_STATE_1(1, "营业中"),
+ BUSSINESS_STATE_2(2, "空铺"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ BussinessStateEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static BussinessStateEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (BussinessStateEnum bussinessStateEnum : BussinessStateEnum.values()) {
+ if (bussinessStateEnum.getCode().equals(code)) {
+ return bussinessStateEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CompeteBusinessCapacityEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CompeteBusinessCapacityEnum.java
new file mode 100644
index 000000000..fc9df948d
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CompeteBusinessCapacityEnum.java
@@ -0,0 +1,57 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: CompeteBusinessCapacityEnum
+ * @Description:竞争对手经营能力
+ * @date 2024-03-26 16:08
+ */
+public enum CompeteBusinessCapacityEnum {
+
+ // 1.非常好 2.好 3.一般 4.差
+ COMPETITOR_BUSINESS_CAPACITY_1(1, "非常好", 0),
+ COMPETITOR_BUSINESS_CAPACITY_2(2, "好", 1),
+ COMPETITOR_BUSINESS_CAPACITY_3(3, "一般", 3),
+ COMPETITOR_BUSINESS_CAPACITY_4(4, "差", 4),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ CompeteBusinessCapacityEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static CompeteBusinessCapacityEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (CompeteBusinessCapacityEnum value : CompeteBusinessCapacityEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CompeteTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CompeteTypeEnum.java
new file mode 100644
index 000000000..629a49354
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CompeteTypeEnum.java
@@ -0,0 +1,57 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: CompeteTypeEnum
+ * @Description:竞争对手性质
+ * @date 2024-03-26 16:08
+ */
+public enum CompeteTypeEnum {
+
+ // 1.连锁店 2.强势单店 3.经营散户 4.小型摊贩
+ WANT_SHOP_SIZE_1(1, "连锁店", 1),
+ WANT_SHOP_SIZE_2(2, "强势单店", 2),
+ WANT_SHOP_SIZE_3(3, "经营散户", 3),
+ WANT_SHOP_SIZE_4(4, "小型摊贩", 5),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ CompeteTypeEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+
+ public static CompeteTypeEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (CompeteTypeEnum value : CompeteTypeEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ConsumerAbilityEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ConsumerAbilityEnum.java
new file mode 100644
index 000000000..6ca9b3213
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ConsumerAbilityEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ConsumerAbilityEnum
+ * @Description:消费能力
+ * @date 2024-03-26 16:08
+ */
+public enum ConsumerAbilityEnum {
+
+ //1.高端 2.中高端 3.中端 4.低端
+ CONSUMER_ABILITY_1(1, "高端", 10),
+ CONSUMER_ABILITY_2(2, "中高端", 8),
+ CONSUMER_ABILITY_3(3, "中端", 6),
+ CONSUMER_ABILITY_4(4, "低端", 4),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ ConsumerAbilityEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static ConsumerAbilityEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (ConsumerAbilityEnum consumerAbilityEnum : ConsumerAbilityEnum.values()) {
+ if (consumerAbilityEnum.getCode().equals(code)) {
+ return consumerAbilityEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CoverCommunityEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CoverCommunityEnum.java
new file mode 100644
index 000000000..439d88cda
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/CoverCommunityEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: CoverCommunityEnum
+ * @Description:覆盖社区(半径500米内)
+ * @date 2024-03-26 16:08
+ */
+public enum CoverCommunityEnum {
+
+ //1.800户以下 2.800-1200户 3.1200-2000户 4.2000户以上
+ COVER_COMMUNITY_1(1, "800户以下", 5),
+ COVER_COMMUNITY_2(2, "800户-1200户", 10),
+ COVER_COMMUNITY_3(3, "1200户-2000户", 12),
+ COVER_COMMUNITY_4(4, "2000户以上", 15),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ CoverCommunityEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static CoverCommunityEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (CoverCommunityEnum coverCommunityEnum : CoverCommunityEnum.values()) {
+ if (coverCommunityEnum.getCode().equals(code)) {
+ return coverCommunityEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java
new file mode 100644
index 000000000..daa66b6bc
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java
@@ -0,0 +1,98 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: FlowRateCalculateEnum
+ * @Description:人流测算(18点-20点)
+ * @date 2024-03-26 16:08
+ */
+public enum FlowRateCalculateEnum {
+
+ //1.>400人/时以上, 2.300~400人/时, 3.200~300人/时, 4.100~200人/时
+ FLOW_RATE_CALCULATE_1(1, ">400人/时以上", 8),
+ FLOW_RATE_CALCULATE_2(2, "300~400人/时", 6),
+ FLOW_RATE_CALCULATE_3(3, "200~300人/时", 5),
+ FLOW_RATE_CALCULATE_4(4, "100~200人/时", 3),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ FlowRateCalculateEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static FlowRateCalculateEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (FlowRateCalculateEnum value : FlowRateCalculateEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 获取人流测算
+ * @param nineFlowRate
+ * @param tenFlowRate
+ * @param eighteenFlowRate
+ * @param nineteenFlowRate
+ * @return
+ */
+ public static FlowRateCalculateEnum getByFlowRate(Integer nineFlowRate, Integer tenFlowRate, Integer eighteenFlowRate, Integer nineteenFlowRate){
+ Integer flowRate = 0, count = 0;
+ if(Objects.nonNull(nineFlowRate)){
+ flowRate += nineFlowRate;
+ count++;
+ }
+ if(Objects.nonNull(tenFlowRate)){
+ flowRate += tenFlowRate;
+ count++;
+ }
+ if(Objects.nonNull(eighteenFlowRate)){
+ flowRate += eighteenFlowRate;
+ count++;
+ }
+ if(Objects.nonNull(nineteenFlowRate)){
+ flowRate += nineteenFlowRate;
+ count++;
+ }
+ if(count == 0){
+ count = 1;
+ }
+ flowRate = flowRate / count;
+ if(flowRate > 400){
+ return FLOW_RATE_CALCULATE_1;
+ }
+ if(flowRate > 300 && flowRate <= 400){
+ return FLOW_RATE_CALCULATE_2;
+ }
+ if(flowRate > 200 && flowRate <= 300){
+ return FLOW_RATE_CALCULATE_3;
+ }
+ return FLOW_RATE_CALCULATE_4;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateEnum.java
new file mode 100644
index 000000000..2ea51d105
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateEnum.java
@@ -0,0 +1,49 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: FlowRateEnum
+ * @Description:高峰期人流
+ * @date 2024-03-26 16:08
+ */
+public enum FlowRateEnum {
+
+ //1:200以下 2:200~300 3:300~400 4:400以上
+ FLOW_RATE_1(1, "200以下"),
+ FLOW_RATE_2(2, "200~300"),
+ FLOW_RATE_3(3, "300~400"),
+ FLOW_RATE_4(4, "400以上"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ FlowRateEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+
+ public static FlowRateEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (FlowRateEnum value : FlowRateEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestFarmerMarketEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestFarmerMarketEnum.java
new file mode 100644
index 000000000..ba810f9bd
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestFarmerMarketEnum.java
@@ -0,0 +1,54 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: FarmerMarketEnum
+ * @Description:聚客点农贸市场
+ * @date 2024-03-26 16:08
+ */
+public enum GatherGuestFarmerMarketEnum {
+
+ //1.是 2.否
+ GATHER_GUEST_FARMER_MARKET_1(1, "是", 5),
+ GATHER_GUEST_FARMER_MARKET_2(2, "否", 3),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ GatherGuestFarmerMarketEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static GatherGuestFarmerMarketEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (GatherGuestFarmerMarketEnum value : GatherGuestFarmerMarketEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestHospitalEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestHospitalEnum.java
new file mode 100644
index 000000000..4ab5ca8f7
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestHospitalEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: GatherGuestHospitalEnum
+ * @Description:聚客点医院
+ * @date 2024-03-26 16:08
+ */
+public enum GatherGuestHospitalEnum {
+
+ //1.甲等医院 2.市级医院 3.县区级医院 4.无医院
+ GATHER_GUEST_HOSPITAL_1(1, "甲等医院", 5),
+ GATHER_GUEST_HOSPITAL_2(2, "市级医院", 3),
+ GATHER_GUEST_HOSPITAL_3(3, "县区级医院", 2),
+ GATHER_GUEST_HOSPITAL_4(4, "无医院", 1)
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ GatherGuestHospitalEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static GatherGuestHospitalEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (GatherGuestHospitalEnum value : GatherGuestHospitalEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestSchoolEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestSchoolEnum.java
new file mode 100644
index 000000000..a4b537d57
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GatherGuestSchoolEnum.java
@@ -0,0 +1,57 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: GatherGuestSchoolEnum
+ * @Description:聚客点学校
+ * @date 2024-03-26 16:08
+ */
+public enum GatherGuestSchoolEnum {
+
+ // 1.幼儿园/小学 2.大学/学院 3.初中/高中 4.无学校
+ GATHER_GUEST_SCHOOL_1(1, "幼儿园/小学", 4),
+ GATHER_GUEST_SCHOOL_2(2, "大学/学院", 3),
+ GATHER_GUEST_SCHOOL_3(3, "初中/高中", 2),
+ GATHER_GUEST_SCHOOL_4(4, "无学校", 1)
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ GatherGuestSchoolEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static GatherGuestSchoolEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (GatherGuestSchoolEnum value : GatherGuestSchoolEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GreenBeltEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GreenBeltEnum.java
new file mode 100644
index 000000000..abbbb3a11
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GreenBeltEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: IntendPositionEnum
+ * @Description:绿化带
+ * @date 2024-03-26 16:08
+ */
+public enum GreenBeltEnum {
+
+ //1.门口无绿化带阻挡 2.门口有绿化带阻挡
+ GREEN_BELT_1(1, "门口无绿化带阻挡", 3),
+ GREEN_BELT_2(2, "门口有绿化带阻挡", 1),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ GreenBeltEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+
+ public static GreenBeltEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (GreenBeltEnum value : GreenBeltEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GuestConvenienceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GuestConvenienceEnum.java
new file mode 100644
index 000000000..31182c52e
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/GuestConvenienceEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: StoreOutlookEnum
+ * @Description:门店观赡
+ * @date 2024-03-26 16:08
+ */
+public enum GuestConvenienceEnum {
+
+ // 1.门口5米有人行横道 2.门口15米有人行横道 3.无人行横道
+ GUEST_CONVENIENCE_1(1, "门口5米有人行横道", 3),
+ GUEST_CONVENIENCE_2(2, "门口15米有人行横道", 2),
+ GUEST_CONVENIENCE_3(3, "无人行横道", 1),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ GuestConvenienceEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static GuestConvenienceEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (GuestConvenienceEnum value : GuestConvenienceEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/IntendPositionEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/IntendPositionEnum.java
new file mode 100644
index 000000000..f3fa3f569
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/IntendPositionEnum.java
@@ -0,0 +1,57 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: IntendPositionEnum
+ * @Description:意向店所处位置
+ * @date 2024-03-26 16:08
+ */
+public enum IntendPositionEnum {
+
+ //1.十字路口 2.居民生活中心 3.社区出入口
+ INTEND_POSITION_1(1, "十字路口", 6),
+ INTEND_POSITION_2(2, "居民生活中心", 5),
+ INTEND_POSITION_3(3, "社区出入口", 5),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ IntendPositionEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+
+ public static IntendPositionEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (IntendPositionEnum value : IntendPositionEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearBusinessConditionEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearBusinessConditionEnum.java
new file mode 100644
index 000000000..687fade5c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearBusinessConditionEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: NearBusinessConditionEnum
+ * @Description:周边业态经营情况(100米内)
+ * @date 2024-03-26 16:08
+ */
+public enum NearBusinessConditionEnum {
+
+ //1.运营状况良好 2.运营状况一般 3.运营状况差
+ NEAR_BUSINESS_CONDITION_1(1, "经营状况良好", 3),
+ NEAR_BUSINESS_CONDITION_2(2, "经营状况一般", 2),
+ NEAR_BUSINESS_CONDITION_3(3, "经营状况差", 1)
+ ;
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ NearBusinessConditionEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static NearBusinessConditionEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (NearBusinessConditionEnum value : NearBusinessConditionEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearCompeteEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearCompeteEnum.java
new file mode 100644
index 000000000..d7bf27dee
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearCompeteEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: NearCompeteEnum
+ * @Description:周边(100m内)餐饮店
+ * @date 2024-03-26 16:08
+ */
+public enum NearCompeteEnum {
+
+ //1.品牌水果店2家以上 2.品牌水果店1家及以上 3.夫妻水果店1家及以上 4.无水果店
+ NEAR_COMPETITOR_1(1, "品牌水果店2家以上", 1),
+ NEAR_COMPETITOR_2(2, "品牌水果店1家及以上", 2),
+ NEAR_COMPETITOR_3(3, "夫妻水果店1家及以上", 2),
+ NEAR_COMPETITOR_4(4, "无水果店", 3)
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ NearCompeteEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static NearCompeteEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (NearCompeteEnum nearCompeteEnum : NearCompeteEnum.values()) {
+ if (nearCompeteEnum.getCode().equals(code)) {
+ return nearCompeteEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearNeighborEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearNeighborEnum.java
new file mode 100644
index 000000000..e82bc232f
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearNeighborEnum.java
@@ -0,0 +1,58 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: NearRepastEnum
+ * @Description:周边(100m内)餐饮店
+ * @date 2024-03-26 16:08
+ */
+public enum NearNeighborEnum {
+
+ //1.小业态品牌店3家以上 2.小业态普通店3家以上 3.普通小业态店3家以下 4.无小业态店
+ NEAR_NEIGHBOR_1(1, "小业态品牌店3家以上", 4),
+ NEAR_NEIGHBOR_2(2, "小业态普通店3家以上", 2),
+ NEAR_NEIGHBOR_3(3, "普通小业态店3家以下", 1),
+ NEAR_NEIGHBOR_4(4, "无小业态店", 1),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ NearNeighborEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static NearNeighborEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (NearNeighborEnum nearNeighborEnum : NearNeighborEnum.values()) {
+ if (nearNeighborEnum.getCode().equals(code)) {
+ return nearNeighborEnum;
+ }
+ }
+ return null;
+ }
+
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearRepastEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearRepastEnum.java
new file mode 100644
index 000000000..07a6c8e31
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/NearRepastEnum.java
@@ -0,0 +1,55 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: NearRepastEnum
+ * @Description:周边(100m内)餐饮店
+ * @date 2024-03-26 16:08
+ */
+public enum NearRepastEnum {
+
+ //1.餐饮连锁店或6家以上餐饮店 2.普通餐饮店 3.无餐饮店
+ NEAR_REPAST_1(1, "餐饮连锁店或6家以上餐饮店", 4),
+ NEAR_REPAST_2(2, "普通餐饮店", 3),
+ NEAR_REPAST_3(3, "无餐饮店", 1),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ NearRepastEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static NearRepastEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (NearRepastEnum value : NearRepastEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayBusinessTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayBusinessTypeEnum.java
new file mode 100644
index 000000000..df12f5be2
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayBusinessTypeEnum.java
@@ -0,0 +1,31 @@
+package com.cool.store.enums.point;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/29/上午9:33
+ * @Version 1.0
+ * @注释:
+ */
+public enum PayBusinessTypeEnum {
+
+
+ INTENT_MONEY(0,"缴纳意向金"),
+ FRANCHISE_FEE(1,"缴纳加盟费"),
+ DECORATION_MODEL(2,"装修款");
+ private Integer code;
+
+ private String desc;
+
+ PayBusinessTypeEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java
new file mode 100644
index 000000000..36b5967a2
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java
@@ -0,0 +1,28 @@
+package com.cool.store.enums.point;
+
+/**
+ * @Auther: WangShuo
+ * @Date: 2024/04/29/上午9:45
+ * @Version 1.0
+ * @注释:
+ */
+public enum PayTypeEnum {
+ WX_PAY(1,"微信支付"),
+ BANK_PAY(2,"银行转账");
+ private Integer code;
+
+ private String desc;
+
+ PayTypeEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java
new file mode 100644
index 000000000..241718a17
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java
@@ -0,0 +1,50 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PaymentMethodEnum
+ * @Description:付款方式
+ * @date 2024-03-26 16:08
+ */
+public enum PaymentMethodEnum {
+
+ //1.月付 2.季付 3.半年付 4.年付
+ PAYMENT_METHOD_1(1, "月付"),
+ PAYMENT_METHOD_2(2, "季付"),
+ PAYMENT_METHOD_3(3, "半年付"),
+ PAYMENT_METHOD_4(4, "年付"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ PaymentMethodEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+
+ public static PaymentMethodEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (PaymentMethodEnum paymentMethodEnum : PaymentMethodEnum.values()) {
+ if (paymentMethodEnum.getCode().equals(code)) {
+ return paymentMethodEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointDirectionEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointDirectionEnum.java
new file mode 100644
index 000000000..16f4a9b2f
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointDirectionEnum.java
@@ -0,0 +1,47 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PointDirectionEnum
+ * @Description:店铺方位
+ * @date 2024-03-26 16:08
+ */
+public enum PointDirectionEnum {
+
+ //1.主要动线 2.次要动线
+ POINT_DIRECTION_1(1, "主要动线"),
+ POINT_DIRECTION_2(2, "次要动线"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ PointDirectionEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static PointDirectionEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (PointDirectionEnum value : PointDirectionEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointRecommendStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointRecommendStatusEnum.java
new file mode 100644
index 000000000..3c269d265
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointRecommendStatusEnum.java
@@ -0,0 +1,66 @@
+package com.cool.store.enums.point;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PointRecommendStatus
+ * @Description:
+ * @date 2024-04-01 14:38
+ */
+public enum PointRecommendStatusEnum {
+
+ //状态 1.待选择 2.已选择 3.已被他人选择 4.已签约 5.已拒绝 6.已失效
+ POINT_RECOMMEND_STATUS_1(1, "待选择"),
+ POINT_RECOMMEND_STATUS_2(2, "已选择"),
+ POINT_RECOMMEND_STATUS_3(3, "已被他人选择"),
+ POINT_RECOMMEND_STATUS_4(4, "已签约"),
+ POINT_RECOMMEND_STATUS_5(5, "已拒绝"),
+ POINT_RECOMMEND_STATUS_6(6, "已失效"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ PointRecommendStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static PointRecommendStatusEnum getByCode(Integer code) {
+ for (PointRecommendStatusEnum pointRecommendStatusEnum : PointRecommendStatusEnum.values()) {
+ if (pointRecommendStatusEnum.getCode().equals(code)) {
+ return pointRecommendStatusEnum;
+ }
+ }
+ return null;
+ }
+
+ public static String getDescByCode(Integer code) {
+ for (PointRecommendStatusEnum pointRecommendStatusEnum : PointRecommendStatusEnum.values()) {
+ if (pointRecommendStatusEnum.getCode().equals(code)) {
+ return pointRecommendStatusEnum.getDesc();
+ }
+ }
+ return null;
+ }
+
+ public static List getSelectStatus(){
+ List resultList = new ArrayList<>();
+ resultList.add(POINT_RECOMMEND_STATUS_2.code);
+ resultList.add(POINT_RECOMMEND_STATUS_4.code);
+ return resultList;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointSourceEnum.java
new file mode 100644
index 000000000..dbee316dd
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointSourceEnum.java
@@ -0,0 +1,30 @@
+package com.cool.store.enums.point;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PointSourceEnum
+ * @Description:店铺来源
+ * @date 2024-04-18 15:12
+ */
+public enum PointSourceEnum {
+ //店铺来源:1、鲜丰选址人员寻铺 2、加盟商自采
+ POINT_SOURCE_1(1, "鲜丰选址人员寻铺"),
+ POINT_SOURCE_2(2, "加盟商自采");
+
+ private Integer code;
+ private String name;
+
+ PointSourceEnum(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointStatusEnum.java
new file mode 100644
index 000000000..a18022e49
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointStatusEnum.java
@@ -0,0 +1,37 @@
+package com.cool.store.enums.point;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PointStatusEnum
+ * @Description:
+ * @date 2024-04-01 10:37
+ */
+public enum PointStatusEnum {
+
+ //1.采集中、2.已评估、3.待审核、4.待审核可推荐、5.已审核、6.已签约、7.已失效
+ POINT_STATUS_1(1, "采集中"),
+ POINT_STATUS_2(2, "已评估"),
+ POINT_STATUS_3(3, "待审核"),
+ POINT_STATUS_4(4, "待审核可推荐"),
+ POINT_STATUS_5(5, "已审核"),
+ POINT_STATUS_6(6, "已签约"),
+ POINT_STATUS_7(7, "已失效")
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ PointStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PropertyStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PropertyStatusEnum.java
new file mode 100644
index 000000000..21ed2622b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PropertyStatusEnum.java
@@ -0,0 +1,50 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: PropertyStatusEnum
+ * @Description:物业状态
+ * @date 2024-03-26 16:08
+ */
+public enum PropertyStatusEnum {
+
+ //1.原始房东 2.二房东 3.三房东 4.招投标性质
+ PROPERTY_STATUS_1(1, "原始房东"),
+ PROPERTY_STATUS_2(2, "二房东"),
+ PROPERTY_STATUS_3(3, "三房东"),
+ PROPERTY_STATUS_4(4, "招投标性质"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ PropertyStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+
+ public static PropertyStatusEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (PropertyStatusEnum propertyStatusEnum : PropertyStatusEnum.values()) {
+ if (propertyStatusEnum.getCode().equals(code)) {
+ return propertyStatusEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SelectStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SelectStatusEnum.java
new file mode 100644
index 000000000..0c8d91814
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SelectStatusEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums.point;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: SelectStatusEnum
+ * @Description:
+ * @date 2024-04-01 10:37
+ */
+public enum SelectStatusEnum {
+
+ //选择状态0.未选择, 1.已被选择
+ SELECT_STATUS_0(0, "未选择"),
+ SELECT_STATUS_1(1, "已被选择"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ SelectStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopAreaTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopAreaTypeEnum.java
new file mode 100644
index 000000000..40835c254
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopAreaTypeEnum.java
@@ -0,0 +1,54 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ShopAreaTypeEnum
+ * @Description:商圈类型
+ * @date 2024-03-26 16:08
+ */
+public enum ShopAreaTypeEnum {
+
+ //1.社区商圈 2.综合商圈 3.商业商圈 4.学校商圈 5.医院商圈 6.农贸商圈 7.纯人流商圈 8.办公商圈
+ SHOP_AREA_TYPE_1(1, "社区商圈"),
+ SHOP_AREA_TYPE_2(2, "综合商圈"),
+ SHOP_AREA_TYPE_3(3, "商业商圈"),
+ SHOP_AREA_TYPE_4(4, "学校商圈"),
+ SHOP_AREA_TYPE_5(5, "医院商圈"),
+ SHOP_AREA_TYPE_6(6, "农贸商圈"),
+ SHOP_AREA_TYPE_7(7, "纯人流商圈"),
+ SHOP_AREA_TYPE_8(8, "办公商圈"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ ShopAreaTypeEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+
+ public static ShopAreaTypeEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (ShopAreaTypeEnum shopAreaTypeEnum : ShopAreaTypeEnum.values()) {
+ if (shopAreaTypeEnum.getCode().equals(code)) {
+ return shopAreaTypeEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopStageEnum.java
new file mode 100644
index 000000000..dbdb39bd4
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopStageEnum.java
@@ -0,0 +1,48 @@
+package com.cool.store.enums.point;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ShopStageEnum
+ * @Description:店铺阶段
+ * @date 2024-04-10 17:34
+ */
+public enum ShopStageEnum {
+
+ //1选址 2筹建 3开业
+ SHOP_STAGE_1(1, "选址"),
+ SHOP_STAGE_2(2, "筹建"),
+ SHOP_STAGE_3(3, "开业验收"),
+ SHOP_STAGE_4(4, "新店开业"),
+ ;
+
+ //店铺阶段
+ private Integer shopStage;
+
+ //阶段名称
+ private String stageName;
+
+
+
+ ShopStageEnum(Integer shopStage, String stageName) {
+ this.shopStage = shopStage;
+ this.stageName = stageName;
+ }
+
+ public static ShopStageEnum getShopStageEnum(Integer shopStage) {
+ for (ShopStageEnum shopStageEnum : ShopStageEnum.values()) {
+ if (shopStageEnum.getShopStage().equals(shopStage)) {
+ return shopStageEnum;
+ }
+ }
+ return null;
+ }
+
+ public Integer getShopStage() {
+ return shopStage;
+ }
+
+ public String getStageName() {
+ return stageName;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java
new file mode 100644
index 000000000..d37b6474a
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java
@@ -0,0 +1,153 @@
+package com.cool.store.enums.point;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ShopStageEnum
+ * @Description:店铺阶段
+ * @date 2024-04-10 17:34
+ */
+public enum ShopSubStageEnum {
+
+ SHOP_STAGE_1(ShopStageEnum.SHOP_STAGE_1, 10, "选址", 12),
+ SHOP_STAGE_2(ShopStageEnum.SHOP_STAGE_1, 20, "上传租赁合同", 14),
+ SHOP_STAGE_3(ShopStageEnum.SHOP_STAGE_2, 30, "系统建店", 19),
+ SHOP_STAGE_4(ShopStageEnum.SHOP_STAGE_2, 40, "证照办理", 24),
+ SHOP_STAGE_5(ShopStageEnum.SHOP_STAGE_2, 50, "员工招聘", 23),
+ SHOP_STAGE_6(ShopStageEnum.SHOP_STAGE_2, 60, "加盟商/员工培训", 30),
+ SHOP_STAGE_7(ShopStageEnum.SHOP_STAGE_2, 70, "缴纳加盟费/保证金", 1),
+ SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约", 4),
+ SHOP_STAGE_9(ShopStageEnum.SHOP_STAGE_2, 90, "设计阶段", 21),
+ SHOP_STAGE_10(ShopStageEnum.SHOP_STAGE_2, 100, "装修款", 24),
+ SHOP_STAGE_11(ShopStageEnum.SHOP_STAGE_2, 110, "施工阶段", 31),
+ SHOP_STAGE_12(ShopStageEnum.SHOP_STAGE_2, 120, "三方验收", 32),
+ SHOP_STAGE_13(ShopStageEnum.SHOP_STAGE_2, 130, "视觉验收", 32),
+ SHOP_STAGE_14(ShopStageEnum.SHOP_STAGE_2, 140, "开业运营方案", 23),
+ SHOP_STAGE_15(ShopStageEnum.SHOP_STAGE_2, 150, "首批订货清单", 20),
+ SHOP_STAGE_16(ShopStageEnum.SHOP_STAGE_3, 160, "开业验收", null),
+ SHOP_STAGE_17(ShopStageEnum.SHOP_STAGE_4, 170, "新店开业", null),
+ ;
+
+ //阶段
+ private ShopStageEnum shopStageEnum;
+
+ //子阶段
+ private Integer shopSubStage;
+
+ //子阶段名称
+ private String shopSubStageName;
+
+ //计划完成天数
+ private Integer planCompleteDays;
+
+ ShopSubStageEnum(ShopStageEnum shopStageEnum, Integer shopSubStage, String shopSubStageName, Integer planCompleteDays) {
+ this.shopStageEnum = shopStageEnum;
+ this.shopSubStage = shopSubStage;
+ this.shopSubStageName = shopSubStageName;
+ this.planCompleteDays = planCompleteDays;
+ }
+
+ public static List getShopStageEnum(Integer shopStage) {
+ List resultList = new ArrayList<>();
+ for (ShopSubStageEnum shopStageEnum : ShopSubStageEnum.values()) {
+ if (shopStageEnum.getShopStageEnum().getShopStage().equals(shopStage)) {
+ resultList.add(shopStageEnum);
+ }
+ }
+ return resultList;
+ }
+
+ public ShopStageEnum getShopStageEnum() {
+ return shopStageEnum;
+ }
+
+ public Integer getShopSubStage() {
+ return shopSubStage;
+ }
+
+ public String getShopSubStageName() {
+ return shopSubStageName;
+ }
+
+ public Integer getPlanCompleteDays() {
+ return planCompleteDays;
+ }
+
+ /**
+ * 获取各阶段的初始状态
+ * @return
+ */
+ public ShopSubStageStatusEnum getInitStatus() {
+ switch (this){
+ case SHOP_STAGE_1:
+ return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_10;
+ case SHOP_STAGE_5:
+ return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_50;
+ case SHOP_STAGE_7:
+ return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70;
+ case SHOP_STAGE_2:
+ case SHOP_STAGE_3:
+ case SHOP_STAGE_4:
+ case SHOP_STAGE_6:
+ case SHOP_STAGE_8:
+ case SHOP_STAGE_9:
+ case SHOP_STAGE_10:
+ case SHOP_STAGE_11:
+ case SHOP_STAGE_12:
+ case SHOP_STAGE_13:
+ case SHOP_STAGE_14:
+ case SHOP_STAGE_15:
+ case SHOP_STAGE_16:
+ case SHOP_STAGE_17:
+ return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00;
+ default:
+ return null;
+ }
+ }
+
+ public static Integer getSelectStageMaxDays() {
+ return Math.max(ShopSubStageEnum.SHOP_STAGE_1.getPlanCompleteDays(), ShopSubStageEnum.SHOP_STAGE_2.getPlanCompleteDays());
+
+ }
+
+ public String getPlanCompleteTime(LocalDate planCompleteTime, LocalDate planSelectPointCompleteDate) {
+ switch (this){
+ case SHOP_STAGE_1:
+ case SHOP_STAGE_2:
+ case SHOP_STAGE_5:
+ case SHOP_STAGE_6:
+ case SHOP_STAGE_7:
+ case SHOP_STAGE_8:
+ return planCompleteTime.plusDays(getPlanCompleteDays()).toString();
+ case SHOP_STAGE_3:
+ case SHOP_STAGE_4:
+ case SHOP_STAGE_9:
+ case SHOP_STAGE_10:
+ case SHOP_STAGE_11:
+ case SHOP_STAGE_12:
+ case SHOP_STAGE_13:
+ case SHOP_STAGE_14:
+ case SHOP_STAGE_15:
+ return planSelectPointCompleteDate.plusDays(getPlanCompleteDays()).toString();
+ default:
+ return null;
+ }
+ }
+
+ public static ShopSubStageEnum getByShopSubStage(Integer shopSubStage) {
+ if(Objects.isNull(shopSubStage)){
+ return null;
+ }
+ for (ShopSubStageEnum value : ShopSubStageEnum.values()) {
+ if (value.getShopSubStage().equals(shopSubStage)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageFieldEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageFieldEnum.java
new file mode 100644
index 000000000..be82c7ec7
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageFieldEnum.java
@@ -0,0 +1,67 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ShopStageEnum
+ * @Description:店铺阶段
+ * @date 2024-04-10 17:34
+ */
+public enum ShopSubStageFieldEnum {
+
+ SHOP_STAGE_3(30, "系统建店", "systemSetup"),
+ SHOP_STAGE_4(40, "证照办理", "licenseProcessing"),
+ SHOP_STAGE_5(50, "员工招聘", "trainingRegistration"),
+ SHOP_STAGE_6(60, "加盟商/员工培训", "trainingForFranchisee"),
+ SHOP_STAGE_7(70, "缴纳加盟费/保证金", "franchiseFeeDeposit"),
+ SHOP_STAGE_8( 80, "加盟合同签约", "contractSigning"),
+ SHOP_STAGE_9( 90, "设计阶段", "storeDesign"),
+ SHOP_STAGE_11(110, "施工阶段", "construction"),
+ SHOP_STAGE_12(120, "三方验收", "tripleAcceptance"),
+ SHOP_STAGE_13(130, "视觉验收", "visualAcceptance"),
+ SHOP_STAGE_14(140, "开业运营方案", "marketPlanning"),
+ SHOP_STAGE_15(150, "首批订货清单", "initialDeliveryList"),
+ ;
+
+ //子阶段
+ private Integer shopSubStage;
+
+ //子阶段名称
+ private String shopSubStageName;
+
+ //属性名称
+ private String filed;
+
+ ShopSubStageFieldEnum(Integer shopSubStage, String shopSubStageName, String planCompleteDays) {
+ this.shopSubStage = shopSubStage;
+ this.shopSubStageName = shopSubStageName;
+ this.filed = planCompleteDays;
+ }
+
+
+ public Integer getShopSubStage() {
+ return shopSubStage;
+ }
+
+ public String getShopSubStageName() {
+ return shopSubStageName;
+ }
+
+
+ public String getFiled() {
+ return filed;
+ }
+
+ public static ShopSubStageFieldEnum getByShopSubStage(Integer shopSubStage) {
+ if(Objects.isNull(shopSubStage)){
+ return null;
+ }
+ for (ShopSubStageFieldEnum value : ShopSubStageFieldEnum.values()) {
+ if (value.getShopSubStage().equals(shopSubStage)) {
+ return value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java
new file mode 100644
index 000000000..a9c93b86c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java
@@ -0,0 +1,151 @@
+package com.cool.store.enums.point;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ShopStageStatusEnum
+ * @Description:店铺阶段状态
+ * @date 2024-04-10 17:34
+ */
+public enum ShopSubStageStatusEnum {
+
+ SHOP_SUB_STAGE_STATUS_00(null, -100, "未开始", Boolean.FALSE),
+
+ //选址
+ SHOP_SUB_STAGE_STATUS_10(ShopSubStageEnum.SHOP_STAGE_1, 100, "待选址", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_11(ShopSubStageEnum.SHOP_STAGE_1, 110, "待审核", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_12(ShopSubStageEnum.SHOP_STAGE_1, 120, "已选址", Boolean.TRUE),
+
+ //上传租赁合同
+ SHOP_SUB_STAGE_STATUS_20(ShopSubStageEnum.SHOP_STAGE_2, 200, "待上传", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_21(ShopSubStageEnum.SHOP_STAGE_2, 210, "待审核", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_22(ShopSubStageEnum.SHOP_STAGE_2, 220, "审核未通过", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_23(ShopSubStageEnum.SHOP_STAGE_2, 230, "审核通过", Boolean.TRUE),
+
+ //系统建店
+ SHOP_SUB_STAGE_STATUS_30(ShopSubStageEnum.SHOP_STAGE_3, 300, "待建店", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_31(ShopSubStageEnum.SHOP_STAGE_3, 310, "审核中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_32(ShopSubStageEnum.SHOP_STAGE_3, 320, "未通过", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_33(ShopSubStageEnum.SHOP_STAGE_3, 330, "已通过", Boolean.TRUE),
+
+ //证照办理
+ SHOP_SUB_STAGE_STATUS_40(ShopSubStageEnum.SHOP_STAGE_4, 400, "待提交", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_41(ShopSubStageEnum.SHOP_STAGE_4, 410, "待审核", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_42(ShopSubStageEnum.SHOP_STAGE_4, 420, "审核未通过", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_43(ShopSubStageEnum.SHOP_STAGE_4, 430, "审核通过", Boolean.TRUE),
+
+ //培训登记
+ SHOP_SUB_STAGE_STATUS_50(ShopSubStageEnum.SHOP_STAGE_5, 500, "登记中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_51(ShopSubStageEnum.SHOP_STAGE_5, 510, "已完成", Boolean.TRUE),
+
+ //加盟商/员工培训
+ SHOP_SUB_STAGE_STATUS_60(ShopSubStageEnum.SHOP_STAGE_6, 600, "培训中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_61(ShopSubStageEnum.SHOP_STAGE_6, 610, "已完成", Boolean.TRUE),
+
+ //缴纳加盟费/保证金
+ SHOP_SUB_STAGE_STATUS_70(ShopSubStageEnum.SHOP_STAGE_7, 700, "待发布账单", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_71(ShopSubStageEnum.SHOP_STAGE_7, 710, "待缴费", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_72(ShopSubStageEnum.SHOP_STAGE_7, 720, "待审核", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_73(ShopSubStageEnum.SHOP_STAGE_7, 730, "已缴费", Boolean.TRUE),
+ SHOP_SUB_STAGE_STATUS_74(ShopSubStageEnum.SHOP_STAGE_7, 740, "审核不通过", Boolean.FALSE),
+
+ //加盟合同签约
+ SHOP_SUB_STAGE_STATUS_80(ShopSubStageEnum.SHOP_STAGE_8, 800, "待提交", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_83(ShopSubStageEnum.SHOP_STAGE_8, 830, "审核中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_84(ShopSubStageEnum.SHOP_STAGE_8, 840, "已签约", Boolean.TRUE),
+ SHOP_SUB_STAGE_STATUS_85(ShopSubStageEnum.SHOP_STAGE_8, 850, "退回", Boolean.FALSE),
+
+ //设计阶段
+ SHOP_SUB_STAGE_STATUS_90(ShopSubStageEnum.SHOP_STAGE_9, 900, "进行中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_91(ShopSubStageEnum.SHOP_STAGE_9, 910, "已完成", Boolean.TRUE),
+
+ //装修款
+ SHOP_SUB_STAGE_STATUS_100(ShopSubStageEnum.SHOP_STAGE_10, 1000, "待缴费", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_101(ShopSubStageEnum.SHOP_STAGE_10, 1010, "待审批", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_102(ShopSubStageEnum.SHOP_STAGE_10, 1020, "已缴费", Boolean.TRUE),
+
+ //施工阶段
+ SHOP_SUB_STAGE_STATUS_110(ShopSubStageEnum.SHOP_STAGE_11, 1100, "待施工", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_111(ShopSubStageEnum.SHOP_STAGE_11, 1110, "施工中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_112(ShopSubStageEnum.SHOP_STAGE_11, 1120, "已完成", Boolean.TRUE),
+
+ //三方验收
+ SHOP_SUB_STAGE_STATUS_120(ShopSubStageEnum.SHOP_STAGE_12, 1200, "待预约", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_121(ShopSubStageEnum.SHOP_STAGE_12, 1210, "待验收", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_122(ShopSubStageEnum.SHOP_STAGE_12, 1220, "验收中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_123(ShopSubStageEnum.SHOP_STAGE_12, 1230, "已验收", Boolean.TRUE),
+
+ //视觉验收
+ SHOP_SUB_STAGE_STATUS_130(ShopSubStageEnum.SHOP_STAGE_13, 1300, "待验收", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_131(ShopSubStageEnum.SHOP_STAGE_13, 1310, "验收不通过", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_132(ShopSubStageEnum.SHOP_STAGE_13, 1320,"验收通过", Boolean.TRUE),
+
+ //开业运营方案
+ SHOP_SUB_STAGE_STATUS_140(ShopSubStageEnum.SHOP_STAGE_14, 1400, "待上传", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_141(ShopSubStageEnum.SHOP_STAGE_14, 1420, "待审核", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_142(ShopSubStageEnum.SHOP_STAGE_14, 1430,"审核不通过", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_143(ShopSubStageEnum.SHOP_STAGE_14, 1440, "已完成", Boolean.TRUE),
+
+ //首批订货清单
+ SHOP_SUB_STAGE_STATUS_150(ShopSubStageEnum.SHOP_STAGE_15, 1500, "待上传", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_152(ShopSubStageEnum.SHOP_STAGE_15, 1505, "待缴纳", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_151(ShopSubStageEnum.SHOP_STAGE_15, 1510, "已完成", Boolean.TRUE),
+
+
+ SHOP_SUB_STAGE_STATUS_160(ShopSubStageEnum.SHOP_STAGE_16, 1600, "验收中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_161(ShopSubStageEnum.SHOP_STAGE_16, 1610, "已完成", Boolean.TRUE),
+
+ SHOP_SUB_STAGE_STATUS_170(ShopSubStageEnum.SHOP_STAGE_17, 1700, "试运营中", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_171(ShopSubStageEnum.SHOP_STAGE_17, 1710, "已完成", Boolean.TRUE),
+
+ ;
+
+ private ShopSubStageEnum shopSubStageEnum;
+
+ private Integer shopSubStageStatus;
+
+ private String shopSubStageStatusName;
+
+ private boolean isTerminated;
+
+
+ ShopSubStageStatusEnum(ShopSubStageEnum shopSubStageEnum, Integer shopSubStageStatus, String shopSubStageStatusName, Boolean isTerminated) {
+ this.shopSubStageEnum = shopSubStageEnum;
+ this.shopSubStageStatus = shopSubStageStatus;
+ this.shopSubStageStatusName = shopSubStageStatusName;
+ this.isTerminated = isTerminated;
+ }
+
+ public static List getShopSubStageStatusEnum(ShopSubStageEnum shopSubStage) {
+ List resultList = new ArrayList<>();
+ for (ShopSubStageStatusEnum stageStatusEnum : ShopSubStageStatusEnum.values()) {
+ if (Objects.nonNull(stageStatusEnum.getShopSubStageEnum()) && stageStatusEnum.getShopSubStageEnum().equals(shopSubStage)) {
+ resultList.add(stageStatusEnum);
+ }
+ }
+ return resultList;
+ }
+
+ public ShopSubStageEnum getShopSubStageEnum() {
+ return shopSubStageEnum;
+ }
+
+ public Integer getShopSubStageStatus() {
+ return shopSubStageStatus;
+ }
+
+ public String getShopSubStageStatusName() {
+ return shopSubStageStatusName;
+ }
+
+ public String getShopSubStageName() {
+ return shopSubStageEnum.getShopSubStageName();
+ }
+
+ public boolean isTerminated() {
+ return isTerminated;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SiteConditionsEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SiteConditionsEnum.java
new file mode 100644
index 000000000..fbbbbea9a
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SiteConditionsEnum.java
@@ -0,0 +1,50 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: SiteConditionsEnum
+ * @Description:立地条件
+ * @date 2024-03-26 16:08
+ */
+public enum SiteConditionsEnum {
+
+ //1.单门面 2.双门面 3.多门面 4.转角
+ SITE_CONDITIONS_1(1, "单门面"),
+ SITE_CONDITIONS_2(2, "双门面"),
+ SITE_CONDITIONS_3(3, "多门面"),
+ SITE_CONDITIONS_4(4, "转角"),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ SiteConditionsEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+
+ public static SiteConditionsEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (SiteConditionsEnum value : SiteConditionsEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/StoreFlowTrendEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/StoreFlowTrendEnum.java
new file mode 100644
index 000000000..85865b7d0
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/StoreFlowTrendEnum.java
@@ -0,0 +1,54 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: StoreFlowTrendEnum
+ * @Description:门店人流动向
+ * @date 2024-03-26 16:08
+ */
+public enum StoreFlowTrendEnum {
+
+ //1.主要流动路线 2.次要流动路线
+ STORE_FLOW_TREND_1(1, "主要流动路线", 7),
+ STORE_FLOW_TREND_2(2, "次要流动路线", 4),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ StoreFlowTrendEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static StoreFlowTrendEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (StoreFlowTrendEnum value : StoreFlowTrendEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/StoreOutlookEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/StoreOutlookEnum.java
new file mode 100644
index 000000000..bce51b206
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/StoreOutlookEnum.java
@@ -0,0 +1,55 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: StoreOutlookEnum
+ * @Description:门店观赡
+ * @date 2024-03-26 16:08
+ */
+public enum StoreOutlookEnum {
+
+ //1.观赡非常好 2.观赡一般 3.观赡差
+ STORE_OUTLOOK_1(1, "观赡非常好", 4),
+ STORE_OUTLOOK_2(2, "观赡一般", 3),
+ STORE_OUTLOOK_3(2, "观赡差", 2),
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ StoreOutlookEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static StoreOutlookEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (StoreOutlookEnum value : StoreOutlookEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/WantShopSizeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/WantShopSizeEnum.java
new file mode 100644
index 000000000..6ec0b2fd8
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/WantShopSizeEnum.java
@@ -0,0 +1,57 @@
+package com.cool.store.enums.point;
+
+import java.util.Objects;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: WantShopSizeEnum
+ * @Description:意向门店开间尺寸
+ * @date 2024-03-26 16:08
+ */
+public enum WantShopSizeEnum {
+
+ //1.转角 2.12米以上 3.8-12米 4.4-8米 5.4米以下
+ WANT_SHOP_SIZE_1(1, "转角", 6),
+ WANT_SHOP_SIZE_2(2, "12米以上", 2),
+ WANT_SHOP_SIZE_3(3, "8-12米", 3),
+ WANT_SHOP_SIZE_4(4, "4-8米", 5),
+ WANT_SHOP_SIZE_5(5, "4米以下", 3)
+ ;
+
+ private Integer code;
+
+ private String desc;
+
+ private Integer score;
+
+ WantShopSizeEnum(Integer code, String desc, Integer score) {
+ this.code = code;
+ this.desc = desc;
+ this.score = score;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public Integer getScore() {
+ return score;
+ }
+
+ public static WantShopSizeEnum getByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return null;
+ }
+ for (WantShopSizeEnum value : WantShopSizeEnum.values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/BusinessDistrictEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/BusinessDistrictEnum.java
new file mode 100644
index 000000000..23cde3970
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/BusinessDistrictEnum.java
@@ -0,0 +1,55 @@
+package com.cool.store.enums.prepare.newStore;
+
+import com.cool.store.enums.ThirdRegionTypeEnum;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 社区类型
+ */
+public enum BusinessDistrictEnum {
+
+ COMMUNITY(10,"社区型"),
+ COMMERCIAL_STREET(20,"商业街边型"),
+ SCHOOL(30,"学校型"),
+ CBD_OFFICE(40,"CBD/办公型"),
+ HOSPITAL(60,"医院型"),
+ VEGETABLE_MARKET(70,"-菜场型"),
+
+
+ ;
+
+ private Integer code;
+ private String desc;
+
+ BusinessDistrictEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static final Map map
+ = Arrays.stream(values()).collect(Collectors.toMap(BusinessDistrictEnum::getCode, Function.identity()));
+
+ public static BusinessDistrictEnum getByCode(Integer code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/OfflineCompetitorEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/OfflineCompetitorEnum.java
new file mode 100644
index 000000000..79a11a826
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/OfflineCompetitorEnum.java
@@ -0,0 +1,52 @@
+package com.cool.store.enums.prepare.newStore;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 线下竞争对手
+ */
+public enum OfflineCompetitorEnum {
+ BRAND_FRUIT(10,"品牌水果店"),
+ COUPLES_FRUIT(20,"夫妻水果店"),
+ VEGETABLE_MARKET(30,"菜场店"),
+ BIG_BUSINESS(40,"大商超"),
+ FRESH_FOOD(50,"生鲜店"),
+ NONE(60,"无"),
+
+
+ ;
+
+ private Integer code;
+ private String desc;
+
+ OfflineCompetitorEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static final Map map
+ = Arrays.stream(values()).collect(Collectors.toMap(OfflineCompetitorEnum::getCode, Function.identity()));
+
+ public static OfflineCompetitorEnum getByCode(Integer code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/PassengerFlowEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/PassengerFlowEnum.java
new file mode 100644
index 000000000..9f7960b17
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/PassengerFlowEnum.java
@@ -0,0 +1,57 @@
+package com.cool.store.enums.prepare.newStore;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public enum PassengerFlowEnum {
+ BELOW_1000(0,"1000以下",10),
+ TO_1000_10000(1,"1千-1万",20),
+ MORE_THAN_10000(2,"1万以上",30),
+
+
+
+ ;
+
+ private Integer code;
+ private String desc;
+ private Integer type;
+
+ PassengerFlowEnum(Integer code, String desc,Integer type) {
+ this.code = code;
+ this.desc = desc;
+ this.type = type;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public Integer getType() {
+ return type;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public static final Map map
+ = Arrays.stream(values()).collect(Collectors.toMap(PassengerFlowEnum::getCode, Function.identity()));
+
+ public static PassengerFlowEnum getByCode(Integer code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/StoreOperatorEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/StoreOperatorEnum.java
new file mode 100644
index 000000000..3deb4c10b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/prepare/newStore/StoreOperatorEnum.java
@@ -0,0 +1,46 @@
+package com.cool.store.enums.prepare.newStore;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public enum StoreOperatorEnum {
+ FRANCHISEE(10,"加盟商"),
+ STORE_MANAGER(20,"店长"),
+
+
+
+ ;
+
+ private Integer code;
+ private String desc;
+
+ StoreOperatorEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static final Map map
+ = Arrays.stream(values()).collect(Collectors.toMap(StoreOperatorEnum::getCode, Function.identity()));
+
+ public static StoreOperatorEnum getByCode(Integer code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/video/AlarmTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/video/AlarmTypeEnum.java
new file mode 100644
index 000000000..e373205a9
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/video/AlarmTypeEnum.java
@@ -0,0 +1,40 @@
+package com.cool.store.enums.video;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+public enum AlarmTypeEnum {
+
+ /**
+ * 区域入侵
+ */
+ REGION_INTRUSION("region_intrusion","区域入侵"),
+ /**
+ * 排队告警
+ */
+ WAITING_ALARM("waiting_alarm","排队告警");
+
+ private String code;
+ private String msg;
+
+ protected static final Map map = Arrays.stream(values()).collect(
+ Collectors.toMap(AlarmTypeEnum::getCode, Function.identity()));
+
+ AlarmTypeEnum(String code, String msg){
+ this.code=code;
+ this.msg=msg;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+ public static AlarmTypeEnum getByCode(String code) {
+ return map.get(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/video/ResourceStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/video/ResourceStatusEnum.java
new file mode 100644
index 000000000..b7083778a
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/video/ResourceStatusEnum.java
@@ -0,0 +1,29 @@
+package com.cool.store.enums.video;
+
+/**
+ * video status
+ */
+public enum ResourceStatusEnum {
+
+ UPLOADING(0),// 上传中
+
+ TRANSCODING(1),// 转码中
+
+ SCREENSHOT_FINISHED(2),//截图完成
+
+ TRANSCODE_FINISH(3),//完成
+
+ TRANSCODE_FAILED(4);//失败
+
+
+ private final Integer value;
+
+ ResourceStatusEnum(Integer value) {
+ this.value = value;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/video/UploadTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/video/UploadTypeEnum.java
new file mode 100644
index 000000000..904296eb8
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/video/UploadTypeEnum.java
@@ -0,0 +1,88 @@
+package com.cool.store.enums.video;
+
+/**
+ * video status
+ */
+public enum UploadTypeEnum {
+
+ /**
+ * 检查项提交
+ */
+ TB_DATA_STA_TABLE_COLUMN(1),
+
+ /**
+ * 巡店记录总结
+ */
+ TB_PATROL_STORE_RECORD(2),
+
+ /**
+ * 工单创建
+ */
+ QUESTION_CREATE(3),
+
+ /**
+ *工单处理审核提交
+ */
+ QUESTION_SUMMIT(4),
+
+ /**
+ * 父工单创建
+ */
+ QUESTION_PARENT_CREATE(5),
+
+ /**
+ * 店务提交
+ */
+ STORE_WORK_SUBMIT(6),
+
+ /**
+ * 运营手册
+ */
+ TASK_SOP_ADD(7),
+
+ DEVICE_CAPTURE(8),
+
+
+ /**
+ * 巡店自定义检查项提交
+ */
+ TB_DATA_DEF_TABLE_COLUMN(9),
+
+
+ /**
+ * 督导自定义检查项提交
+ */
+ SUPERVISION_DATA_DEF_TABLE_COLUMN(10),
+
+ ACTIVITY_COMMENT(11),
+
+ WEEKLY_NEWSPAPER_LIST(12),
+
+ /**
+ * 陈列检查项提交
+ */
+ TB_DISPLAY_TABLE_DATA_COLUMN(13),
+ /**
+ * 陈列检查内容提交
+ */
+ TB_DISPLAY_TABLE_DATA_CONTENT(14),
+
+
+ /**
+ * 考核數據
+ */
+ ASSESSMENT_DATA_CONTENT(201),
+ ;
+
+
+ private final Integer value;
+
+ UploadTypeEnum(Integer value) {
+ this.value = value;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java b/coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java
new file mode 100644
index 000000000..b6e12b983
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java
@@ -0,0 +1,92 @@
+package com.cool.store.exception;
+
+import com.cool.store.enums.ErrorCodeEnum;
+import lombok.Data;
+
+import java.text.MessageFormat;
+
+/**
+ * @Description 业务异常类返回
+ * @author Aaron
+ * @date 2019/12/20
+ */
+@Data
+public class ApiException extends Exception{
+ private static final long serialVersionUID = -5068776742356414959L;
+
+ /**
+ * 返回码
+ */
+ private Integer errorCode;
+
+ /**
+ * 返回信息
+ */
+ private String errorMessage;
+
+ private Object data;
+
+ /**
+ * 构造函数
+ * @param errorCode
+ * @param errorMessage
+ */
+ @Deprecated
+ public ApiException(Integer errorCode, String errorMessage) {
+ super(errorMessage);
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ }
+
+
+ /**
+ * 构造函数
+ * @param errorCode
+ * @param errorMessage
+ */
+ @Deprecated
+ public ApiException(Integer errorCode, String errorMessage, Object data) {
+ super(errorMessage);
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ this.data = data;
+ }
+
+ /**
+ * 构造函数
+ * @param errorMessage
+ */
+ public ApiException(String errorMessage) {
+ super(errorMessage);
+ this.errorMessage = errorMessage;
+ }
+
+ /**
+ * 构造函数
+ * @param errorCode
+ * @param errorMessage
+ * @param cause
+ */
+ @Deprecated
+ public ApiException(Integer errorCode, String errorMessage, Throwable cause) {
+ super(errorMessage, cause);
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ }
+
+ public ApiException(ErrorCodeEnum responseEnum) {
+ super(responseEnum.getMessage());
+ this.errorCode = responseEnum.getCode();
+ this.errorMessage = responseEnum.getMessage();
+ }
+
+ public ApiException(ErrorCodeEnum responseEnum, Object... objects) {
+ super(responseEnum.getMessage());
+ String message = MessageFormat.format(responseEnum.getMessage(), objects);
+ this.errorCode = responseEnum.getCode();
+ this.errorMessage = message;
+ }
+
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java b/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java
new file mode 100644
index 000000000..6685e0a14
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java
@@ -0,0 +1,92 @@
+package com.cool.store.exception;
+
+import com.cool.store.enums.ErrorCodeEnum;
+import lombok.Data;
+
+import java.text.MessageFormat;
+
+/**
+ * @Description 业务异常类返回
+ * @author Aaron
+ * @date 2019/12/20
+ */
+@Data
+public class ServiceException extends RuntimeException{
+ private static final long serialVersionUID = -5068776742356414959L;
+
+ /**
+ * 返回码
+ */
+ private Integer errorCode;
+
+ /**
+ * 返回信息
+ */
+ private String errorMessage;
+
+ private Object data;
+
+ /**
+ * 构造函数
+ * @param errorCode
+ * @param errorMessage
+ */
+ @Deprecated
+ public ServiceException(Integer errorCode, String errorMessage) {
+ super(errorMessage);
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ }
+
+
+ /**
+ * 构造函数
+ * @param errorCode
+ * @param errorMessage
+ */
+ @Deprecated
+ public ServiceException(Integer errorCode, String errorMessage, Object data) {
+ super(errorMessage);
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ this.data = data;
+ }
+
+ /**
+ * 构造函数
+ * @param errorMessage
+ */
+ public ServiceException(String errorMessage) {
+ super(errorMessage);
+ this.errorMessage = errorMessage;
+ }
+
+ /**
+ * 构造函数
+ * @param errorCode
+ * @param errorMessage
+ * @param cause
+ */
+ @Deprecated
+ public ServiceException(Integer errorCode, String errorMessage, Throwable cause) {
+ super(errorMessage, cause);
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ }
+
+ public ServiceException(ErrorCodeEnum responseEnum) {
+ super(responseEnum.getMessage());
+ this.errorCode = responseEnum.getCode();
+ this.errorMessage = responseEnum.getMessage();
+ }
+
+ public ServiceException(ErrorCodeEnum responseEnum, Object... objects) {
+ super(responseEnum.getMessage());
+ String message = MessageFormat.format(responseEnum.getMessage(), objects);
+ this.errorCode = responseEnum.getCode();
+ this.errorMessage = message;
+ }
+
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/response/ResponseResult.java b/coolstore-partner-common/src/main/java/com/cool/store/response/ResponseResult.java
new file mode 100644
index 000000000..c8d9740b0
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/response/ResponseResult.java
@@ -0,0 +1,95 @@
+package com.cool.store.response;
+
+import com.cool.store.constants.CommonConstants;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.ResponseCodeEnum;
+import lombok.Data;
+import lombok.ToString;
+import org.slf4j.MDC;
+
+import java.text.MessageFormat;
+
+/**
+ * 统一返回结果
+ *
+ * @author Aaron
+ * @date 2019/12/20
+ */
+@Data
+@ToString
+public class ResponseResult implements Result {
+ private static final long serialVersionUID = -2217360460304088285L;
+
+ public ResponseResult(int code, String message, T data) {
+ this.code = code;
+ this.message = message;
+ this.data = data;
+ this.requestId = MDC.get(CommonConstants.REQUEST_ID);
+ }
+
+ public ResponseResult(int code, String message, T data, String stackTrace) {
+ this.code = code;
+ this.message = message;
+ this.data = data;
+ this.stackTrace = stackTrace;
+ this.requestId = MDC.get(CommonConstants.REQUEST_ID);
+ }
+
+ public ResponseResult(int code, String message) {
+ this.code = code;
+ this.message = message;
+ this.requestId = MDC.get(CommonConstants.REQUEST_ID);
+ }
+
+ /**
+ * 返回码
+ */
+ private int code;
+
+ /**
+ * 返回信息
+ */
+ private String message;
+
+ /**
+ * 返回数据
+ */
+ private T data;
+
+ /**
+ * 异常堆栈信息
+ */
+ private String stackTrace;
+
+ private String requestId;
+
+ public long getSystemCurrentTime() {
+ return System.currentTimeMillis();
+ }
+
+ public static ResponseResult success(T data) {
+ return new ResponseResult(ResponseCodeEnum.SUCCESS.getCode(), "操作成功", data);
+ }
+
+ public static ResponseResult success() {
+ return new ResponseResult(ResponseCodeEnum.SUCCESS.getCode(), "操作成功");
+ }
+
+ public static ResponseResult fail(int code, String msg) {
+ return new ResponseResult(code, msg, false);
+ }
+
+ public static ResponseResult fail(int code, String msg, String stackTrace) {
+ return new ResponseResult(code, msg, false, stackTrace);
+ }
+
+ public static ResponseResult fail(ErrorCodeEnum responseEnum){
+ return new ResponseResult(responseEnum.getCode(), responseEnum.getMessage(), false);
+ }
+
+ public static ResponseResult fail(ErrorCodeEnum responseEnum, Object... objects){
+ String message = MessageFormat.format(responseEnum.getMessage(), objects);
+ return new ResponseResult(responseEnum.getCode(), message, false);
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/response/Result.java b/coolstore-partner-common/src/main/java/com/cool/store/response/Result.java
new file mode 100644
index 000000000..986c4dfe0
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/response/Result.java
@@ -0,0 +1,11 @@
+package com.cool.store.response;
+
+import java.io.Serializable;
+
+/**
+ * @Description 响应格式父接口
+ * @author Aaron
+ * @date 2019/12/20
+ */
+public interface Result extends Serializable {
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/AESDecryptor.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/AESDecryptor.java
new file mode 100644
index 000000000..39f7107fb
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/AESDecryptor.java
@@ -0,0 +1,139 @@
+package com.cool.store.utils;
+
+import com.cool.store.exception.ServiceException;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * https://cloud.tencent.com/developer/article/1823249
+ * 前后端约定
+ */
+public class AESDecryptor {
+
+ private static String Algorithm = "AES";
+ private static String AlgorithmProvider = "AES/CBC/PKCS5Padding"; //算法/模式/补码方式
+
+ public static byte[] generatorKey() throws NoSuchAlgorithmException {
+ KeyGenerator keyGenerator = KeyGenerator.getInstance(Algorithm);
+ keyGenerator.init(256);//默认128,获得无政策权限后可为192或256
+ SecretKey secretKey = keyGenerator.generateKey();
+ return secretKey.getEncoded();
+ }
+
+ public static IvParameterSpec getIv(byte[] ivstr) throws UnsupportedEncodingException {
+ IvParameterSpec ivParameterSpec = new IvParameterSpec(ivstr);
+ return ivParameterSpec;
+ }
+
+ public static String encrypt(String src, String keystr, IvParameterSpec iv) throws
+ NoSuchAlgorithmException,
+ NoSuchPaddingException,
+ InvalidKeyException,
+ IllegalBlockSizeException,
+ BadPaddingException,
+ UnsupportedEncodingException,
+ InvalidAlgorithmParameterException {
+ byte[] key = keystr.getBytes("utf-8");
+ SecretKey secretKey = new SecretKeySpec(key, Algorithm);
+ IvParameterSpec ivParameterSpec = iv;
+ Cipher cipher = Cipher.getInstance(AlgorithmProvider);
+ cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
+ byte[] cipherBytes = cipher.doFinal(src.getBytes(Charset.forName("utf-8")));
+ return byteToHexString(cipherBytes);
+ }
+
+ public static String decrypt(String src, String keystr) {
+ try {
+ byte[] key = keystr.getBytes("utf-8");
+ SecretKey secretKey = new SecretKeySpec(key, Algorithm);
+ IvParameterSpec ivParameterSpec = getIv(Arrays.copyOfRange(keystr.getBytes("utf-8"), 0, 16));
+ Cipher cipher = Cipher.getInstance(AlgorithmProvider);
+ cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
+ byte[] hexBytes = hexStringToBytes(src);
+ byte[] plainBytes = cipher.doFinal(hexBytes);
+ return new String(plainBytes, "utf-8");
+ } catch (Exception e) {
+ throw new ServiceException(e.getMessage());
+ }
+ }
+
+ /**
+ * 将byte转换为16进制字符串
+ *
+ * @param src
+ * @return
+ */
+ public static String byteToHexString(byte[] src) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < src.length; i++) {
+ int v = src[i] & 0xff;
+ String hv = Integer.toHexString(v);
+ if (hv.length() < 2) {
+ sb.append("0");
+ }
+ sb.append(hv);
+ }
+ return sb.toString();
+ }
+
+ /**
+ * 将16进制字符串装换为byte数组
+ *
+ * @param hexString
+ * @return
+ */
+ public static byte[] hexStringToBytes(String hexString) {
+ hexString = hexString.toUpperCase();
+ int length = hexString.length() / 2;
+ char[] hexChars = hexString.toCharArray();
+ byte[] b = new byte[length];
+ for (int i = 0; i < length; i++) {
+ int pos = i * 2;
+ b[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
+ }
+ return b;
+ }
+
+ private static byte charToByte(char c) {
+ return (byte) "0123456789ABCDEF".indexOf(c);
+ }
+
+ public static void main(String[] args) {
+ try {
+ /* // 密钥必须是16的倍数
+ String keystr = "0123456789ABCDEF";
+ String ivstr = "0123456789101112";
+ String src = "Hello World";
+
+ System.out.println("密钥:" + keystr);
+ System.out.println("偏移量:" + ivstr);
+ System.out.println("原字符串:" + src);
+ IvParameterSpec iv = getIv(ivstr);
+ String enc = encrypt(src, keystr, iv);
+ System.out.println("加密:" + enc);
+*/
+ String enc = "38395651e391c4b8ca327c4742b7f52f";
+ String keystr = "77fea013c3a6459685b83c21a2fc3411";
+ String ivstr = "77fea013c3a64596";
+ // IvParameterSpec iv = getIv(ivstr);
+ String dec = decrypt(enc, keystr);
+ System.out.println("解密:" + dec);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/AesUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/AesUtil.java
new file mode 100644
index 000000000..5aef25b12
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/AesUtil.java
@@ -0,0 +1,77 @@
+package com.cool.store.utils;
+
+import com.cool.store.exception.ServiceException;
+import org.springframework.util.Assert;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.security.AlgorithmParameters;
+import java.util.Arrays;
+import java.util.Base64;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: AesUtil
+ * @Description:
+ * @date 2023-05-29 14:28
+ */
+
+public class AesUtil {
+
+ private static final Charset utf8 = StandardCharsets.UTF_8;
+
+
+ public static String genAesKey() {
+ return StringUtil.random(32);
+ }
+
+ public static String encrypt(String content, String aesTextKey) {
+ return Base64.getEncoder().encodeToString(encrypt(content.getBytes(utf8), aesTextKey.getBytes(utf8)));
+ }
+
+ public static String decrypt(String content, String aesTextKey) {
+ byte[] buffer = Base64.getDecoder().decode(content);
+ return new String(decrypt(buffer, aesTextKey.getBytes(utf8)), utf8);
+ }
+
+ public static byte[] encrypt(byte[] content, byte[] aesKey) {
+ Assert.isTrue(aesKey.length == 32, "IllegalAesKey, aesKey's length must be 32");
+ try {
+ Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+ SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
+ IvParameterSpec iv = new IvParameterSpec(aesKey, 0, 16);
+ cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
+ return cipher.doFinal(Pkcs7Encoder.encode(content));
+ } catch (Exception e) {
+ throw new ServiceException(e.getMessage());
+ }
+ }
+
+ public static byte[] decrypt(byte[] encrypted, byte[] aesKey) {
+ Assert.isTrue(aesKey.length == 32, "IllegalAesKey, aesKey's length must be 32");
+ try {
+ Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+ SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
+ IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16));
+ cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);
+ return Pkcs7Encoder.decode(cipher.doFinal(encrypted));
+ } catch (Exception e) {
+ throw new ServiceException(e.getMessage());
+ }
+ }
+
+ public static String decryptWechat(String sessionKey, String encryptedData, String ivStr) {
+ try {
+ AlgorithmParameters params = AlgorithmParameters.getInstance("AES");
+ params.init(new IvParameterSpec(Base64.getDecoder().decode(ivStr)));
+ Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+ cipher.init(2, new SecretKeySpec(Base64.getDecoder().decode(sessionKey), "AES"), params);
+ return new String(Pkcs7Encoder.decode(cipher.doFinal(Base64.getDecoder().decode(encryptedData))), StandardCharsets.UTF_8);
+ } catch (Exception var5) {
+ throw new ServiceException("AES解密失败");
+ }
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java
new file mode 100644
index 000000000..37008e617
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java
@@ -0,0 +1,111 @@
+package com.cool.store.utils;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CommonContextUtil implements ApplicationContextAware {
+
+ private static ApplicationContext applicationContext; //Spring应用上下文环境
+
+ /**
+ * 实现ApplicationContextAware接口的回调方法,设置上下文环境
+ *
+ * @param applicationContext
+ * @throws BeansException
+ */
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ CommonContextUtil.applicationContext = applicationContext;
+ }
+
+ /**
+ * @return ApplicationContext
+ */
+ public static ApplicationContext getApplicationContext() {
+ return applicationContext;
+ }
+
+ /**
+ * 获取对象
+ *
+ * @param name
+ * @return Object 一个以所给名字注册的bean的实例
+ * @throws BeansException
+ */
+ public static Object getBean(String name) throws BeansException {
+ return applicationContext.getBean(name);
+ }
+
+ /**
+ * 根据某种类型获取对象
+ * @param requiredType
+ * @return
+ * @throws BeansException
+ */
+ public static T getBean(Class requiredType) throws BeansException {
+ return applicationContext.getBean(requiredType);
+ }
+
+ /**
+ * 获取类型为requiredType的对象
+ * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException)
+ *
+ * @param name bean注册名
+ * @param requiredType 返回对象类型
+ * @return Object 返回requiredType类型对象
+ * @throws BeansException
+ */
+ public static T getBean(String name, Class requiredType) throws BeansException {
+ return applicationContext.getBean(name, requiredType);
+ }
+
+ /**
+ * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
+ *
+ * @param name
+ * @return boolean
+ */
+ public static boolean containsBean(String name) {
+ return applicationContext.containsBean(name);
+ }
+
+ /**
+ * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。
+ * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
+ *
+ * @param name
+ * @return boolean
+ * @throws NoSuchBeanDefinitionException
+ */
+ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
+ return applicationContext.isSingleton(name);
+ }
+
+ /**
+ * @param name
+ * @return Class 注册对象的类型
+ * @throws NoSuchBeanDefinitionException
+ */
+ public static Class getType(String name) throws NoSuchBeanDefinitionException {
+ return applicationContext.getType(name);
+ }
+
+ /**
+ * 如果给定的bean名字在bean定义中有别名,则返回这些别名
+ *
+ * @param name
+ * @return
+ * @throws NoSuchBeanDefinitionException
+ */
+ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
+ return applicationContext.getAliases(name);
+ }
+
+ public static String getProfileName(){
+ return applicationContext.getEnvironment().getActiveProfiles()[0];
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonNodeUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonNodeUtils.java
new file mode 100644
index 000000000..2e25ed417
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonNodeUtils.java
@@ -0,0 +1,97 @@
+package com.cool.store.utils;
+
+import org.apache.commons.collections4.CollectionUtils;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * describe:
+ *
+ * @author zhouyiping
+ * @date 2020/09/21
+ */
+public class CommonNodeUtils {
+ /**
+ * 树型数据的所有子项(list结构包含本身)(节点为Long)
+ * @param rootId
+ * @param id
+ * @param all 树的所有节点
+ * @param parentGroupMap Map>
+ * @return
+ */
+ public static List getAllChildListContainSelf(Long rootId,Long id, List all,Map> parentGroupMap) {
+ List childList = new LinkedList<>();
+ if(CollectionUtils.isEmpty(all)){
+ return Collections.emptyList();
+ }
+ if(id.equals(rootId)&&!all.contains(id)){
+ return Collections.emptyList();
+ }
+ List idList = parentGroupMap.get(id);
+ childList.add(id);
+ if(CollectionUtils.isEmpty(idList)){
+ return childList;
+ }
+ childList.addAll(idList);
+ for (Long item:idList){
+ getChildList(item,parentGroupMap,childList);
+ }
+ return childList;
+ }
+
+ private static void getChildList(Long id,Map> parentGroupMap, List childList) {
+ List child = parentGroupMap.get(id);
+ if (CollectionUtils.isNotEmpty(child)) {
+ childList.addAll(child);
+ for (Long cid : child) {
+ getChildList(cid, parentGroupMap, childList);
+ }
+ }
+ }
+
+
+
+
+ /**
+ * 树型数据的所有子项(list结构包含本身)(节点为String)
+ * @param rootId
+ * @param id
+ * @param all 树的所有节点
+ * @param parentGroupMap Map>
+ * @return
+ */
+ public static List getAllChildListContainSelf(String rootId,String id, List all,Map> parentGroupMap) {
+ List childList = new LinkedList<>();
+ if(CollectionUtils.isEmpty(all)){
+ return Collections.emptyList();
+ }
+ if(id.equals(rootId)&&!all.contains(id)){
+ return Collections.emptyList();
+ }
+ List idList = parentGroupMap.get(id);
+ childList.add(id);
+ if(CollectionUtils.isEmpty(idList)){
+ return childList;
+ }
+ childList.addAll(idList);
+ for (String item:idList){
+ getChildList(item,parentGroupMap,childList);
+ }
+ return childList;
+ }
+
+ private static void getChildList(String id,Map> parentGroupMap, List childList) {
+ List child = parentGroupMap.get(id);
+ if (CollectionUtils.isNotEmpty(child)) {
+ childList.addAll(child);
+ for (String cid : child) {
+ getChildList(cid, parentGroupMap, childList);
+ }
+ }
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java
new file mode 100644
index 000000000..c0d246ecd
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java
@@ -0,0 +1,107 @@
+package com.cool.store.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @Author suzhuhong
+ * @Date 2023/6/8 17:17
+ * @Version 1.0
+ */
+public class CoolDateUtils {
+
+ public static final String DATE_FORMAT_DAY = "yyyy-MM-dd";
+ public static final String DATE_FORMAT_DAY_2 = "yyyy/MM/dd";
+ public static final String TIME_FORMAT_SEC = "HH:mm:ss";
+ public static final String TIME_FORMAT_SEC2 = "HH:mm";
+ public static final String DATE_FORMAT_SEC = "yyyy-MM-dd HH:mm:ss";
+ public static final String DATE_FORMAT_SEC_2 = "yyyy/MM/dd HH:mm:ss";
+ public static final String DATE_FORMAT_SEC_3 = "yyyy.MM.dd HH:mm:ss";
+ public static final String DATE_FORMAT_SEC_4 = "yyyy.MM.dd HH:mm";
+ public static final String DATE_FORMAT_SEC_5 = "yyyy.MM.dd HH:mm";
+ public static final String DATE_FORMAT_SEC_6 = "yyyy.MM.dd";
+ public static final String DATE_FORMAT_SEC_7 = "yyyy/MM/dd HH:mm";
+ /**
+ * 几天后的当前
+ * @param d
+ * @param day
+ * @return
+ */
+ public static Date getDateBefore(Date d, int day) {
+ Calendar now = Calendar.getInstance();
+ now.setTime(d);
+ now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
+ return now.getTime();
+ }
+
+ /**
+ * n天后 的最小时间 20230613 2天后最小时间---->2023-06-15 00:00:00
+ * @param day
+ * @return
+ */
+ public static Date getDateFormatDayMinTime(Date date,int day){
+ LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ LocalDate thirdDay = today.plusDays(day);
+ LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT);
+ LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MIN);
+ ZonedDateTime zonedDateTime = ZonedDateTime.of(thirdDay235959, ZoneId.systemDefault());
+ return Date.from(zonedDateTime.toInstant());
+ }
+
+ public static void main(String[] args) {
+ // 创建一个Date对象
+ Date date = new Date();
+
+ // 将Date对象转换为LocalDate对象
+ LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+
+ System.out.println("LocalDate: " + today);
+ }
+
+
+
+ /**
+ * n天后 的最大时间 20230613 2天后最大时间---->2023-06-15 23:59:59
+ * @param day
+ * @return
+ */
+ public static Date getDateFormatDay(Date date,int day){
+ LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ LocalDate thirdDay = today.plusDays(day);
+ LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT);
+ LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MAX);
+ ZonedDateTime zonedDateTime = ZonedDateTime.of(thirdDay235959, ZoneId.systemDefault());
+ return Date.from(zonedDateTime.toInstant());
+ }
+
+
+ public static final Date parseDate(String dateString ,String format){
+ if (StringUtils.isBlank(dateString)){
+ return null;
+ }
+ DateFormat dateFormat = new SimpleDateFormat(format);
+ Date date = null;
+ try {
+ date = dateFormat.parse(dateString);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ return date;
+ }
+ public static final String DateFormat(Date date,String format){
+ if (StringUtils.isBlank(format)){
+ return null;
+ }
+ DateFormat dateFormat = new SimpleDateFormat(format);
+ String str = dateFormat.format(date);
+ return str;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/EncryptUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/EncryptUtil.java
new file mode 100644
index 000000000..e2f37bfc3
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/EncryptUtil.java
@@ -0,0 +1,285 @@
+package com.cool.store.utils;
+
+import com.google.common.base.Strings;
+import org.apache.commons.codec.binary.Base64;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.util.Arrays;
+
+public class EncryptUtil {
+
+ /** Base64 编码 */
+ private static final Base64 B64 = new Base64();
+ /** 安全的随机数源 */
+ private static final SecureRandom RANDOM = new SecureRandom();
+ /** AES加密算法 */
+ private static final String AES_ALGORITHM = "AES";
+
+ private static final String AES = "AES/ECB/PKCS5Padding";
+
+
+ public static String MD5(String str) {
+ String re_md5 = "";
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(str.getBytes());
+ byte b[] = md.digest();
+
+ int i;
+
+ StringBuilder buf = new StringBuilder("");
+ for (byte aB : b) {
+ i = aB;
+ if (i < 0) {
+ i += 256;
+ }
+ if (i < 16) {
+ buf.append("0");
+ }
+ buf.append(Integer.toHexString(i));
+ }
+ re_md5 = buf.toString();
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ return re_md5;
+ }
+
+ public static String maskMail(String mail) {
+ if (Strings.isNullOrEmpty(mail)) {
+ return mail;
+ }
+ if (!mail.contains("@")) {
+ return mail;
+ }
+ String[] arrays = mail.split("@");
+ String account = arrays[0];
+ String domain = arrays[1];
+ Integer len = account.length();
+ if (len <= 2) return mail;
+ if (len <= 4) {
+ account = account.substring(0, 2) + "****";
+ } else {
+ String left = account.substring(0, 2);
+ String right = account.substring(len - 2, len);
+ account = left + "****" + right;
+ }
+ return account + "@" + domain;
+ }
+
+ public static String maskMobile(String mobile) {
+ if (Strings.isNullOrEmpty(mobile)) {
+ return mobile;
+ }
+ if (mobile.length() < 11) {
+ return mobile;
+ }
+ return mobile.substring(0, 3) + "****" + mobile.substring(7, 11);
+ }
+
+ public static String mask(String str) {
+ if (Strings.isNullOrEmpty(str)) {
+ return str;
+ }
+
+ int len = str.length();
+
+ if (len < 5) {
+ return str;
+ }
+
+ return str.substring(0, 2) + "****" + str.substring(len - 2, len);
+ }
+
+ /**
+ * AES加密
+ *
+ * @param str
+ * 需要加密的明文
+ * @param key
+ * 密钥
+ * @return 加密后的密文(str / key为null返回null)
+ */
+ public static String aesEncryp(String str, String key) {
+ return aesEncryp(str, key, false);
+ }
+
+
+ /**
+ * AES加密
+ *
+ * @param str
+ * 需要加密的明文
+ * @param key
+ * 密钥
+ * @param urlSafety
+ * 密文是否需要Url安全
+ * @return 加密后的密文(str / key为null返回null)
+ */
+ public static String aesEncryp(String str, String key, boolean urlSafety) {
+ if (null != str && null != key) {
+ try {
+ Cipher c = Cipher.getInstance(AES);
+ c.init(Cipher.ENCRYPT_MODE, aesKey(key), RANDOM);
+ // 加密
+ byte[] bytes = c.doFinal(str.getBytes("UTF-8"));
+ if (urlSafety) {
+ return Base64.encodeBase64URLSafeString(bytes);
+ } else {
+ return new String(B64.encode(bytes));
+ }
+ } catch (Exception e) {
+ return new BaseOut(2, "AES加密失败, 密文:" + str + ", key:" + key, null).toString();
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * AES解密
+ *
+ * @param str
+ * 需要解密的密文(base64编码字符串)
+ * @param key
+ * 密钥
+ * @return 解密后的明文
+ */
+ public static BaseOut aesDecrypt(String str, String key) {
+ if (null != str && null != key) {
+ try {
+ Cipher c = Cipher.getInstance(AES);
+ c.init(Cipher.DECRYPT_MODE, aesKey(key), RANDOM);
+ // 解密
+ return new BaseOut(0, "解密成功", new String(c.doFinal(B64.decode(str)), "UTF-8"));
+ } catch (BadPaddingException e) {
+ return new BaseOut(2, "AES解密失败, 密文:" + str + ", key:" + key, null);
+ } catch (Exception e) {
+ return new BaseOut(2, "AES解密失败, 密文:" + str + ", key:" + key, null);
+ }
+ }
+ return null;
+ }
+
+
+ /** AES密钥 */
+ private static SecretKeySpec aesKey(String key) {
+ byte[] bs = key.getBytes();
+ if (bs.length != 16) {
+ bs = Arrays.copyOf(bs, 16);// 处理数组长度为16
+ }
+ return new SecretKeySpec(bs, AES_ALGORITHM);
+ }
+
+ public static String oaMd5() {
+ String key = "coolcollege20201211sc";
+ String thirdSecret = "135990bd839c5fe0a1ca9cbee2475431";
+ return MD5(key + thirdSecret);
+ }
+
+ public static String oaB2gnMd5() {
+ String key = "coolStore_buErJia_20220425";
+ String thirdSecret = "d14cc076b44b435ea0ab06d0b7e04ea8";
+ return MD5(key + thirdSecret);
+ }
+
+ public static String oaMd5(String param) {
+ String key = "coolstore20220329";
+ String thirdSecret = "d14cc076b44b435ea0ab06d0b7e04ea8";
+ return MD5(key + thirdSecret + param);
+ }
+
+ public static String xfsgMd5(String param) {
+ String key = "coolstorexfsg20240329";
+ return MD5(key + param);
+ }
+
+ public static String getData(String ticket) {
+ BaseOut result = aesDecrypt(ticket, oaMd5());
+ if(result == null || result.getCode() != 0){
+ return null;
+ }
+ return result.getData().toString();
+ }
+
+ public static String getB2gnData(String ticket) {
+ BaseOut result = aesDecrypt(ticket, oaB2gnMd5());
+ if(result == null || result.getCode() != 0){
+ return null;
+ }
+ return result.getData().toString();
+ }
+
+
+ public static void main(String[] args) {
+ //签名
+ StringBuffer sb = new StringBuffer();
+ //用户唯一标识id
+ sb.append("userId=132537313837929006").append("&");
+ //企业唯一标识enterpriseId
+ sb.append("enterpriseId=45f92210375346858b6b6694967f44de").append("&");
+ sb.append("bizContent={\"taskList\":[{\"taskName\":\"阿斯顿\",\"taskType\":\"QUESTION_ORDER\",\"taskDesc\":\"测试\",\"attachUrl\":\"{\\\"id\\\":149,\\\"fileName\\\":\\\"新建 DOC 文档.doc\\\",\\\"url\\\":\\\"https://oss-store.coolcollege.cn/doc/sop/45471386126883973.doc\\\",\\\"type\\\":\\\"doc\\\",\\\"category\\\":\\\"doc\\\",\\\"createUserId\\\":\\\"0327344625645542\\\",\\\"createUser\\\":\\\"不易\\\",\\\"createTime\\\":1642692983000,\\\"visibleUser\\\":\\\"\\\",\\\"visibleRole\\\":\\\"\\\",\\\"visibleUserName\\\":\\\"\\\",\\\"visibleRoleName\\\":\\\"\\\"}\",\"taskInfo\":\"{\\\"photos\\\":[\\\"https://oss-store.coolcollege.cn/eid/45f92210375346858b6b6694967f44de/2203/5fc6b6f2cd2243588272992382452bb4.jpg\\\"],\\\"videos\\\":\\\"{\\\\\\\"videoList\\\\\\\":[]}\\\",\\\"contentLearnFirst\\\":false,\\\"courseList\\\":[]}\",\"beginTime\":1648546065361,\"endTime\":1649150454152,\"beginTime\":1648546065361,\"endTime\":1649150454152,\"form\":[{\"type\":\"STANDARD_COLUMN\",\"value\":4324,\"name\":\"奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员奥尔业务员\"}],\"storeIds\":[{\"type\":\"store\",\"value\":\"c61119bf721940f098169ec4d065e79a\"}],\"process\":[{\"nodeNo\":1,\"user\":[{\"type\":\"person\",\"value\":\"132537313837929006\"}],\"approveType\":\"any\"},{\"nodeNo\":2,\"user\":[{\"type\":\"person\",\"value\":\"132537313837929006\"}],\"approveType\":\"any\"},{\"nodeNo\":3,\"user\":[{\"type\":\"person\",\"value\":\"132537313837929006\"}],\"approveType\":\"any\"},{\"nodeNo\":\"cc\",\"user\":[{\"type\":\"person\",\"value\":\"132537313837929006\"}],\"approveType\":\"any\"}]}]}");
+ //sb.append("bizContent={\"pageNumber\":\"1\",\"pageSize\":\"10\",\"storeId\":\"888ab0bddac5432e9b037078366598d6\"}");
+ //加密
+ String sign = oaMd5(sb.toString());
+ System.out.println("sign:" + sign);
+ }
+}
+
+class BaseOut {
+
+ private int code = 0;
+
+ private String msg;
+
+ private Object data;
+
+ public BaseOut() {
+ }
+
+ public BaseOut(int code) {
+ this.code = code;
+ }
+
+ public BaseOut(int code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public BaseOut(int code, String msg, Object data) {
+ this.code = code;
+ this.msg = msg;
+ this.data = data;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public Object getData() {
+ return data;
+ }
+
+ public void setData(Object data) {
+ this.data = data;
+ }
+}
+
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java
new file mode 100644
index 000000000..9670f9072
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/GeoMapUtil.java
@@ -0,0 +1,89 @@
+package com.cool.store.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: GeoMapUtil
+ * @Description:
+ * @date 2024-04-23 11:26
+ */
+public class GeoMapUtil {
+
+ private static final String AMAP_API_URL = "https://restapi.amap.com/v3/geocode/regeo";
+ private static final String API_KEY = "2270e9b7e353ee588e133b4fdbc8b7df";
+
+ public static void main(String[] args) {
+ AddressInfo addressInfo = reverseGeoCoding("30.41875", "120.2985");
+ System.out.println(JSONObject.toJSONString(addressInfo));
+ System.out.println(JSONObject.toJSONString(reverseGeoCoding("30.41", "120.29")));
+ }
+
+ public static AddressInfo reverseGeoCoding(String latitude, String longitude) {
+ BufferedReader in = null;
+ try {
+ URL url = new URL(AMAP_API_URL + "?location=" + longitude + "," + latitude + "&output=json&key=" + API_KEY);
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setRequestMethod("GET");
+ connection.connect();
+ if(connection.getResponseCode() == HttpURLConnection.HTTP_OK){
+ in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ String inputLine;
+ StringBuilder content = new StringBuilder();
+ while ((inputLine = in.readLine()) != null) {
+ content.append(inputLine);
+ }
+ JSONObject jsonObject = JSONObject.parseObject(content.toString());
+ // 提取并构建AddressInfo对象
+ AddressInfo addressInfo = extractAddressInfo(jsonObject.getJSONObject("regeocode"));
+ return addressInfo;
+ }
+ } catch (IOException e) {
+ System.out.println("Error occurred while making the request: " + e.getMessage());
+ }finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return null;
+ }
+
+ private static AddressInfo extractAddressInfo(JSONObject geoJson) {
+ JSONObject addressComponent = geoJson.getJSONObject("addressComponent");
+ // 根据实际响应结构解析省市区街道信息,此处仅为示例
+ String province = (String) addressComponent.get("province");
+ String city = (String) addressComponent.get("city");
+ String district = (String) addressComponent.get("district");
+ String township = (String) addressComponent.get("township");
+ String address = geoJson.getString("formatted_address");
+ return new AddressInfo(province, city, district, township, address);
+ }
+
+ @Data
+ public static class AddressInfo {
+ private String province;
+ private String city;
+ private String district;
+ private String township;
+ private String address;
+
+ public AddressInfo(String province, String city, String district, String township, String address) {
+ this.province = province;
+ this.city = city;
+ this.district = district;
+ this.township = township;
+ this.address = address;
+ }
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/ListOptUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/ListOptUtils.java
new file mode 100644
index 000000000..9550aa4c1
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/ListOptUtils.java
@@ -0,0 +1,42 @@
+package com.cool.store.utils;
+
+import com.google.common.collect.Lists;
+import org.apache.commons.collections4.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: ListUtils
+ * @Description: 集合处理
+ * @date 2022-03-04 20:04
+ */
+public class ListOptUtils {
+
+ public static List getIntersection(List listA, List listB){
+ if(CollectionUtils.isEmpty(listA) || CollectionUtils.isEmpty(listB)){
+ return Lists.newArrayList();
+ }
+ return listA.stream().filter(item -> listB.contains(item)).collect(Collectors.toList());
+ }
+
+
+ /**
+ * long集合转Stirng集合
+ * @param listA
+ * @return
+ */
+ public static List longListConvertStringList(List listA){
+ List result = Lists.newArrayList();
+ if(CollectionUtils.isEmpty(listA)){
+ return result;
+ }
+ for (Long temp:listA) {
+ result.add(String.valueOf(temp));
+ }
+ return result;
+ }
+
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/Md5Utils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/Md5Utils.java
new file mode 100644
index 000000000..1eecf8582
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/Md5Utils.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.cool.store.utils;
+
+import com.cool.store.exception.ServiceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * The type Md5 utils.
+ */
+public class Md5Utils {
+ /**
+ * logger.
+ */
+ private static final Logger LOG = LoggerFactory.getLogger(Md5Utils.class);
+
+ /**
+ * Md 5 string.
+ *
+ * @param src the src
+ * @param charset the charset
+ *
+ * @return the string
+ */
+ private static String md5(final String src, final String charset) {
+ MessageDigest md5;
+ StringBuilder hexValue = new StringBuilder(32);
+ try {
+ md5 = MessageDigest.getInstance("MD5");
+ } catch (NoSuchAlgorithmException e) {
+ throw new ServiceException(e.getMessage());
+ }
+ byte[] byteArray = new byte[0];
+ try {
+ byteArray = src.getBytes(charset);
+ } catch (UnsupportedEncodingException e) {
+ LOG.error(e.getMessage(), e);
+ }
+ byte[] md5Bytes = md5.digest(byteArray);
+ for (byte md5Byte : md5Bytes) {
+ int val = ((int) md5Byte) & 0xff;
+ if (val < 16) {
+ hexValue.append("0");
+ }
+ hexValue.append(Integer.toHexString(val));
+ }
+ return hexValue.toString();
+ }
+
+ /**
+ * Md 5 string.
+ *
+ * @param src the src
+ * @return the string
+ */
+ public static String md5(final String src) {
+ return md5(src, StandardCharsets.UTF_8.name());
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/NumberConverter.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/NumberConverter.java
new file mode 100644
index 000000000..d21aa3900
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/NumberConverter.java
@@ -0,0 +1,34 @@
+package com.cool.store.utils;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: NumberConverter
+ * @Description:
+ * @date 2024-04-10 17:07
+ */
+public class NumberConverter {
+
+ private static final char[] CN_NUMBERS = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九'};
+ private static final char[] CN_UNITS = {'个', '十', '百', '千', '万'};
+ public static String convertArabicToChinese(int number) {
+ String result = "";
+ // 将数字转换为字符串
+ String numStr = String.valueOf(number);
+ int len = numStr.length();
+ boolean lastIsZero = false;
+ for (int i = 0; i < len; i++) {
+ int n = numStr.charAt(i) - '0'; // 转换为数字
+ if (n != 0 || (!lastIsZero && i != len - 1)) {
+ result += CN_NUMBERS[n]; // 转换为中文数字
+ if (i != len - 1) {
+ // 不是最后一位数字,需要添加单位
+ result += CN_UNITS[(len - 1 - i)];
+ }
+ } else {
+ lastIsZero = true;
+ }
+ }
+ return result;
+ }
+}
+
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java
new file mode 100644
index 000000000..0f9d02d16
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java
@@ -0,0 +1,171 @@
+package com.cool.store.utils;
+
+import com.lowagie.text.Document;
+import com.lowagie.text.Font;
+import com.lowagie.text.Image;
+import com.lowagie.text.Paragraph;
+import com.lowagie.text.pdf.*;
+import lombok.extern.slf4j.Slf4j;
+import org.icepdf.core.exceptions.PDFException;
+import org.icepdf.core.exceptions.PDFSecurityException;
+import org.icepdf.core.pobjects.Page;
+import org.icepdf.core.util.GraphicsRenderingHints;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.awt.image.RenderedImage;
+import java.io.*;
+
+/**
+ * 使用 OpenPDF 封装的 pdf 工具类
+ */
+@Slf4j
+public class PDFUtils {
+
+ private static final int[] A4Size = {595, 842};
+
+ /**
+ * 设置 pdf 背景图片(A4)
+ * 每页都需要单独设置
+ */
+ public static void setBackgroundImgA4(Document document, Image image) {
+ //图片顶格
+ image.setAbsolutePosition(0, 0);
+ //填满 A4 大小的页面
+ image.scaleAbsolute(A4Size[0], A4Size[1]);
+ document.add(image);
+ }
+
+ /**
+ * 设置 pdf 背景图片
+ * 每页都需要单独设置
+ */
+ public static void setBackgroundImg(Document document, Image image, int width, int height) {
+ //图片顶格
+ image.setAbsolutePosition(0, 0);
+ image.scaleAbsolute(width, height);
+ document.add(image);
+ }
+
+ /**
+ * 将文本放在 pdf 的绝对位置上来抠模板(不指定字体,默认为 OpenPDF 自带的 STSong-Light Normal)
+ * @param reader PdfReader 流
+ * @param outputStream 输出流
+ * @param x 左边距
+ * @param y 下边距
+ * @param content 要插入的文本
+ * @param fontSize 字体大小
+ * @param color 文本颜色
+ */
+ public static void putParagraphAbsolutely(PdfReader reader, OutputStream outputStream, float x, float y, String content, float fontSize, Color color) {
+ try {
+ BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
+ addContent(reader, outputStream, content, x, y, baseFont, fontSize, 0, color);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * 指定字体的文本绝对位置插入方法
+ * @param reader PdfReader 流
+ * @param outputStream 输出流
+ * @param x 左边距
+ * @param y 下边距
+ * @param content 要插入的文本
+ * @param baseFont 字体设置(如果不使用 OpenPDF 自带的字体,就需要将字体文件放在项目路径下)
+ * 自定义字体方式
+ * ttf 字体
+ * 1. BaseFont baseFont = BaseFont.createFont("arial.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+ * ttc 字体(包含了两种字体,所以需要选择 0 或 1)
+ * 2. BaseFont baseFont = BaseFont.createFont("simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+ * @param fontSize 字体大小
+ * @param fontStyle 字体风格()
+ * NORMAL = 0; BOLD = 1; ITALIC = 2; UNDERLINE = 4; STRIKETHRU = 8; BOLDITALIC = BOLD | ITALIC;
+ * @param color 字体颜色
+ */
+ public static void putParagraphAbsolutely(PdfReader reader, OutputStream outputStream, float x, float y, String content, BaseFont baseFont, float fontSize, int fontStyle, Color color) {
+ addContent(reader, outputStream, content, x, y, baseFont, fontSize, fontStyle, color);
+ }
+
+ /**
+ * 插入文本的 raw 方法
+ * @param reader PDF 读取流
+ * @param outputStream 输出流
+ * @param content 插入文本
+ * @param x 左边距
+ * @param y 下边距
+ * @param baseFont 字体和编码设置
+ * @param fontSize 字体大小
+ * @param fontStyle 字体风格
+ * @param color 字体颜色
+ */
+ private static void addContent(PdfReader reader, OutputStream outputStream, String content, float x, float y, BaseFont baseFont, float fontSize, int fontStyle, Color color) {
+ PdfStamper stamper = null;
+ try {
+ //生成 paragraph 并放在正确位置
+ //抠模板
+ stamper = new PdfStamper(reader, outputStream);
+ PdfContentByte over = stamper.getOverContent(1);
+ Font font = new Font(baseFont, fontSize, fontStyle, color);
+ Paragraph insertContent = new Paragraph(content, font);
+
+ ColumnText columnText = new ColumnText(over);
+ // llx 和 urx 最小的值决定离左边的距离. lly 和 ury 最大的值决定离下边的距离
+ columnText.setSimpleColumn(x, y, Float.MAX_VALUE, Float.MIN_VALUE);
+ columnText.addElement(insertContent);
+ columnText.go();
+ stamper.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ try {
+ if (stamper != null) {
+ stamper.close();
+ }
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ }
+
+ /**
+ * PDF 转图片
+ * @param inputStream pdf 输入流
+ * @param scale 缩放比例
+ */
+ //不再将通过函转为图片
+ @Deprecated
+ public static ByteArrayOutputStream pdf2Img(InputStream inputStream, float scale) {
+ org.icepdf.core.pobjects.Document document = new org.icepdf.core.pobjects.Document();
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ try {
+ document.setInputStream(inputStream, "");
+
+ float rotation = 0f;// 旋转角度
+ for (int i = 0; i < document.getNumberOfPages(); i++) {
+ BufferedImage image = (BufferedImage) document.getPageImage(i,
+ GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX,
+ rotation, scale);
+ RenderedImage rendImage = image;
+ ImageIO.write(rendImage, "png", outputStream);
+ //例子中是pdf转png格式的,也可以将上面两行改成jpg,转出jpg格式的,
+ //但是从转换效果来看png的清晰度会相对较高。有个小技巧是第一行行改成jpg,
+ //但第二行使用png,也就是转换成jpg格式但有png清晰度的图片。
+ image.flush();
+ document.dispose();
+ return outputStream;
+ }
+ } catch (PDFException | IOException | InterruptedException | PDFSecurityException e) {
+ log.error("PDF转图片异常, e{}", e.getMessage());
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return outputStream;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java
new file mode 100644
index 000000000..54f8032e6
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java
@@ -0,0 +1,83 @@
+package com.cool.store.utils;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.RandomUtil;
+import com.lowagie.text.Document;
+import com.lowagie.text.Image;
+import com.lowagie.text.pdf.BaseFont;
+import com.lowagie.text.pdf.PdfReader;
+import com.lowagie.text.pdf.PdfWriter;
+
+import java.awt.*;
+import java.io.*;
+import java.util.Date;
+
+//生成资格面试通过函的工具
+public class PassLetterUtils {
+
+ /**
+ * 生成通过函的方法
+ * 返回通过函编码
+ * @param partnerName 加盟商姓名
+ * @param verifyCity 审批城市
+ * @param passCode 通过函编码
+ * @param passTime 审批通过时间
+ */
+ public static ByteArrayOutputStream genPassLetter(String partnerName, String passCode, String verifyCity, Date passTime) {
+ String passTimeStr = DateUtil.format(passTime, "yyyy年MM月dd日");
+ Document document = new Document();
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ try {
+ //1. 创建 pdf document
+// FileOutputStream outputStream = new FileOutputStream("passLetter.pdf");
+ PdfWriter.getInstance(document, outputStream);
+ document.open();
+
+ //2. 添加背景图片
+ Image img = Image.getInstance(PassLetterUtils.class.getResource("/static/passLetterBg.jpg").toString());
+ PDFUtils.setBackgroundImgA4(document, img);
+ document.close();
+
+ //3. 填写通过函模板信息
+ addContentToPdf(outputStream, partnerName + " 先生/女士", 122, 638);
+ addContentToPdf(outputStream, passCode, 122, 557);
+ addContentToPdf(outputStream, verifyCity, 155, 492);
+ addContentToPdf(outputStream, "60天", 135, 448);
+ addContentToPdf(outputStream, passTimeStr, 385, 152);
+ return outputStream;
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ finally {
+ try {
+ document.close();
+ outputStream.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ /**
+ * 生成 passCode 的方法,拆分出来方便单独获取 passCode
+ * @return
+ */
+ public static String genPassCode(Date passTime) {
+ String randomNum = RandomUtil.randomNumbers(5);
+ String passCode = "HSAY" + DateUtil.format(passTime, "yyMMdd") + "-" + randomNum;
+ return passCode;
+ }
+
+ private static void addContentToPdf(ByteArrayOutputStream outputStream, String content, float x, float y) {
+ try {
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
+ PdfReader pdfReader = new PdfReader(inputStream);
+ String fontFamilyPath = PassLetterUtils.class.getResource("/static/Alibaba-PuHuiTi-Regular.ttf").toString();
+ BaseFont font = BaseFont.createFont(fontFamilyPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+ PDFUtils.putParagraphAbsolutely(pdfReader, outputStream, x, y, content, font, 19, 1, new Color(255, 82,25));
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/Pkcs7Encoder.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/Pkcs7Encoder.java
new file mode 100644
index 000000000..074db0c70
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/Pkcs7Encoder.java
@@ -0,0 +1,71 @@
+package com.cool.store.utils;
+
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: Pkcs7Encoder
+ * @Description:
+ * @date 2023-05-29 14:29
+ */
+public class Pkcs7Encoder {
+
+ private static int BLOCK_SIZE = 32;
+ private static final Charset CHARSET = StandardCharsets.UTF_8;
+
+ /**
+ * 获得对明文进行补位填充的字节.
+ *
+ * @param count 需要进行填充补位操作的明文字节个数
+ * @return 补齐用的字节数组
+ */
+ public static byte[] encode(int count) {
+ // 计算需要填充的位数
+ int amountToPad = BLOCK_SIZE - (count % BLOCK_SIZE);
+ // 获得补位所用的字符
+ char padChr = chr(amountToPad);
+ StringBuilder tmp = new StringBuilder();
+ for (int index = 0; index < amountToPad; index++) {
+ tmp.append(padChr);
+ }
+ return tmp.toString().getBytes(CHARSET);
+ }
+
+ public static byte[] encode(byte[] src) {
+ int count = src.length;
+ // 计算需要填充的位数
+ int amountToPad = BLOCK_SIZE - (count % BLOCK_SIZE);
+ if (amountToPad == 0) {
+ amountToPad = BLOCK_SIZE;
+ }
+ // 获得补位所用的字符
+ byte pad = (byte) (amountToPad & 0xFF);
+ byte[] pads = new byte[amountToPad];
+ for (int index = 0; index < amountToPad; index++) {
+ pads[index] = pad;
+ }
+ int length = count + amountToPad;
+ byte[] dest = new byte[length];
+ System.arraycopy(src, 0, dest, 0, count);
+ System.arraycopy(pads, 0, dest, count, amountToPad);
+ return dest;
+ }
+
+ public static byte[] decode(byte[] decrypted) {
+ int pad = decrypted[decrypted.length - 1];
+ if (pad < 1 || pad > BLOCK_SIZE) {
+ pad = 0;
+ }
+ if (pad > 0) {
+ return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad);
+ }
+ return decrypted;
+ }
+
+ private static char chr(int a) {
+ byte target = (byte) (a & 0xFF);
+ return (char) target;
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java
new file mode 100644
index 000000000..cafac3462
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java
@@ -0,0 +1,110 @@
+package com.cool.store.utils;
+
+
+import com.cool.store.constants.RedisConstant;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * redis常量工具类
+ *
+ * @author byd
+ */
+@Component
+@Slf4j
+public class RedisConstantUtil {
+
+ @Value("${spring.profiles.active}")
+ private String active;
+
+ @Value("${mybatis.configuration.variables.enterpriseId}")
+ private String eid;
+
+ /**
+ * 获取钉钉同步区域key
+ *
+ * @param eid
+ * @return
+ */
+ public String getSyncRegionKey(String eid) {
+
+ return active + "_" + RedisConstant.REGION_SYNC_ALL + eid;
+ }
+
+ /**
+ * 获取门店同步key
+ *
+ * @param eid
+ * @return
+ */
+ public String getSyncStoreKey(String eid) {
+
+ return active + "_" + RedisConstant.STORE_SYNC_ALL + eid;
+ }
+
+ public String getSyncLockKey(String eid) {
+
+ return active + "_" + RedisConstant.REGION_SYNC_LOCK + eid;
+ }
+
+ public String getSyncEidEffectiveKey(String eid) {
+
+ return active + "_" + RedisConstant.EID_SYNC_EFFECTIVE + eid;
+ }
+
+ public String getTaskStageNoticeKey(String key) {
+
+ return active + "_" + RedisConstant.TASK_STAGE_NOTICE + key;
+ }
+
+ public String getTaskDelFlagKey(String key) {
+
+ return active + "_" + RedisConstant.TASK_DEL_FLAG + key;
+ }
+
+ public String getCapturePicture(String key) {
+
+ return active + "_" + RedisConstant.CAPTURE_PICTURE_STATUS_PREFIX + key;
+ }
+
+
+ public String getQuestionTaskLockKey(String eid, String key) {
+ return active + "_" + RedisConstant.QUESTION_TASK_LOCK + "_" + eid + "_" + key;
+ }
+
+ public String getStoreWorkQuestionTaskLockKey(String eid, String key) {
+ return active + "_" + RedisConstant.STORE_WORK_QUESTION_TASK_LOCK + "_" + eid + "_" + key;
+ }
+
+ public String getShowStoreAuthKey() {
+ return active + "_" + RedisConstant.SHOW_STORE_AUTH;
+ }
+
+ public String getRegionNameKey(String eid, String regionId) {
+ return active + "_" + RedisConstant.REGION_ALL_NAME_CACHE + eid + ":" + regionId;
+ }
+
+ public String getGuideInfoKey(String eid, Long menuId) {
+ return active + "_" + RedisConstant.GUIDE_INFO + eid + ":" + menuId;
+ }
+
+ public String getRegionNameListKey(String regionId) {
+ return active + "_" + RedisConstant.REGION_ALL_NAME_CACHE + eid + ":" + regionId;
+ }
+
+ public String getPhoneNumber(String phoneNumber) {
+
+ return active + "_" + RedisConstant.PHONE_NUMBER + phoneNumber;
+ }
+
+ public String getUserWantAreaListKey(String userId) {
+ return active + "_" + RedisConstant.USER_WANT_AREA_CACHE + eid + ":" + userId;
+ }
+
+ public String getInvestmentManagerKey(Long wantShopAreaId, Long roleId) {
+ return active + "_" + RedisConstant.INVESTMENT_MANAGER_CACHE + eid + ":" + wantShopAreaId + ":" + roleId ;
+ }
+
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java
new file mode 100644
index 000000000..8223f7559
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java
@@ -0,0 +1,178 @@
+package com.cool.store.utils;
+
+import com.cool.store.constants.CommonConstants;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Repository;
+
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * redis工具类
+ *
+ * @author Aaron
+ * @ClassName RedisUtil
+ * @Description redis工具类
+ */
+@Repository
+@Slf4j
+public class RedisUtil {
+
+ @Resource(name = "customizeTemplate")
+ protected RedisTemplate redisTemplate;
+
+
+ public void put(String key, String hashKey, Map value) {
+ HashOperations hash = redisTemplate.opsForHash();
+ hash.put(key, hashKey, value);
+ }
+
+ public void put(String key, String hashKey, Object value) {
+ HashOperations hash = redisTemplate.opsForHash();
+ hash.put(key, hashKey, value);
+ }
+
+
+ public Boolean haseHashKey(String key, String hashKey) {
+ HashOperations hash = redisTemplate.opsForHash();
+ Boolean hase = hash.hasKey(key, hashKey);
+ return hase == null ? Boolean.FALSE : hase;
+ }
+
+
+ public Boolean putIfAbsent(String key, String hashKey, Object value) {
+ HashOperations hash = redisTemplate.opsForHash();
+ return hash.putIfAbsent(key, hashKey, value);
+ }
+
+ public void putAll(String key, Map value) {
+ HashOperations hash = redisTemplate.opsForHash();
+ hash.putAll(key, value);
+ }
+
+ public void putAll(String key, Map value, Long time, TimeUnit timeUnit) {
+ HashOperations hash = redisTemplate.opsForHash();
+ hash.putAll(key, value);
+ redisTemplate.expire(key, time, timeUnit);
+ }
+
+ public void put(String key, Object value, Long time, TimeUnit timeUnit) {
+ redisTemplate.opsForValue().set(key, value, time, timeUnit);
+ }
+
+
+ public Map entries(String key) {
+ HashOperations hash = redisTemplate.opsForHash();
+ return hash.entries(key);
+ }
+
+ public Object get(String key, String hashKey) {
+ HashOperations hash = redisTemplate.opsForHash();
+ return hash.get(key, hashKey);
+ }
+
+ public void flushDb() {
+ redisTemplate.getConnectionFactory().getConnection().flushDb();
+ log.info("redis flushDb is ok.");
+ }
+
+ public void delete(String key, Object hashKey) {
+ HashOperations hash = redisTemplate.opsForHash();
+ hash.delete(key, hashKey);
+ }
+
+ public Collection