Merge #99 into master from cc_20260408_close_up

feat:歇业管理

* cc_20260408_close_up: (18 commits squashed)

  - fix:歇业管理(部分)

  - fix:歇业管理(部分)

  - fix:审批逻辑修改;拒绝审批实现

  - fix:恢复开业申请及审批

  - fix:主流程补充

  - fix:主流程补充

  - fix:字段补充及逻辑修改

  - fix:字段补充

  - fix

  - fix:平台处理新增字段

  - fix

  - Merge remote-tracking branch 'origin/cc_20260408_close_up' into cc_20260408_close_up

  - fix:歇业营业发送短信

  - fix:排序

  - fix:详情接口新增加盟商手机号字段;申请单日期和已有申请单存在交集时申请失败

  - fix:申请单详情接口新增品牌字段

  - fix:新增列表筛选条件;审批单状态校验

  - Merge branch 'master' into cc_20260408_close_up
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/99
This commit is contained in:
王非凡
2026-04-15 08:23:40 +00:00
committed by 正新
parent 1b3ae71c3a
commit 19bce915ac
51 changed files with 2502 additions and 9 deletions

View File

@@ -478,6 +478,18 @@ public enum ErrorCodeEnum {
IP_LIMIT(1840000, "IP访问次数超限", null),
CLOSE_UP_CLOSED_DOWN(1840000, "门店已歇业", null),
CLOSE_UP_ONLY_SUPPORT_OPEN(1840001, "仅支持在营门店发起歇业申请", null),
CLOSE_UP_EXIST_ONGOING_RECORD(18400002,"该日期下当前门店有进行中的申请,请确认!",null),
CLOSE_UP_AUDIT_RECORD_NOT_EXIST(1840003, "审批记录不存在", null),
CLOSE_UP_FORM_NOT_EXIST(1840004, "申请单不存在", null),
CLOSE_UP_AUDIT_ACCESS_DENIED(1840005, "无权限审批", null),
CLOSE_UP_STORE_OPEN(1840006, "门店已营业", null),
CLOSE_UP_ONLY_SUPPORT_CLOSE_UP(1840007, "仅支持歇业门店发起营业申请", null),
CLOSE_UP_CLOSED_AUDIT_NOT_PASS(1840008, "歇业申请未通过", null),
CLOSE_UP_EXIST_OPEN_APPLY(1840009, "该歇业申请单已存在开业申请", null),
CLOSE_UP_APPROVED(1840010, "该申请单已审批", null),
;

View File

@@ -39,6 +39,7 @@ public enum RocketMqGroupEnum {
STORE_MASTER_ISSUE("store_master_issue", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_MASTER_ISSUE))),
VISIT_RECORD_INVALID("visit_record_invalid", new ArrayList<>(Arrays.asList(RocketMqTagEnum.VISIT_RECORD_INVALID))),
TP_PENALTY_APPEAL_OVERDUE("tp_penalty_appeal_overdue", new ArrayList<>(Arrays.asList(RocketMqTagEnum.TP_PENALTY_APPEAL_OVERDUE))),
CLOSE_UP_APPLY_STORE_UPDATE("close_up_apply_store_update", new ArrayList<>(Arrays.asList(RocketMqTagEnum.CLOSE_UP_APPLY_STORE_UPDATE))),
;
private final String group;

View File

@@ -23,6 +23,7 @@ public enum RocketMqTagEnum {
STORE_MASTER_ISSUE("store_master_issue","门店主数据下发"),
VISIT_RECORD_INVALID("visit_record_invalid", "拜访记录失效"),
TP_PENALTY_APPEAL_OVERDUE("tp_penalty_appeal_overdue", "十二分惩处单复议逾期"),
CLOSE_UP_APPLY_STORE_UPDATE("close_up_apply_store_update", "歇业申请修改门店状态"),
;

View File

@@ -0,0 +1,27 @@
package com.cool.store.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* <p>
* 短信通知模板
* </p>
*
* @author wangff
* @since 2026/4/13
*/
@Getter
@AllArgsConstructor
public enum SmsNoticeTypeEnum {
CLOSE_UP_CLOSE_NOTICE("SMS_504775487", "歇业通知", SmsSignEnum.ZHENGXIN),
CLOSE_UP_OPEN_NOTICE("SMS_504845455", "恢复营业通知", SmsSignEnum.ZHENGXIN),
;
private final String templateCode;
private final String message;
private final SmsSignEnum smsSign;
}

View File

@@ -0,0 +1,24 @@
package com.cool.store.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* <p>
* 短信签名
* </p>
*
* @author wangff
* @since 2026/4/13
*/
@Getter
@AllArgsConstructor
public enum SmsSignEnum {
ZHENGXIN("正新", "正新"),
;
private final String signName;
private final String message;
}

View File

@@ -0,0 +1,43 @@
package com.cool.store.enums.closeup;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* <p>
* 歇业开业平台账号
* </p>
*
* @author wangff
* @since 2026/4/8
*/
@Getter
@AllArgsConstructor
public enum CloseUpPlatformEnum {
DOUYINTG("douyintg", "抖音", 0, "https://ossfilezx.coolstore.cn/icon/closeup/douyin.png"),
ELEMEWM("elemewm", "饿了么", 0, "https://ossfilezx.coolstore.cn/icon/closeup/ele.png"),
HUOMA("huoma", "火码POS", 0, "https://ossfilezx.coolstore.cn/icon/closeup/huoma.png"),
JINGDONGWM("jingdongwm", "京东外卖", 0, "https://ossfilezx.coolstore.cn/icon/closeup/jingdong.png"),
KUAISHOUTG("kuaishoutg", "快手团购", 0, "https://ossfilezx.coolstore.cn/icon/closeup/kuaishou.png"),
MEITUANTG("meituantg", "美团团购", 0, "https://ossfilezx.coolstore.cn/icon/closeup/meituan.png"),
MEITUANWM("meituanwm", "美团外卖", 0, "https://ossfilezx.coolstore.cn/icon/closeup/meituanwx.png"),
ZHIFUBAO("zhifubao", "支付宝团购", 0, "https://ossfilezx.coolstore.cn/icon/closeup/zhifubao.png"),
;
/**
* 编码
*/
private final String code;
/**
* 名称
*/
private final String name;
/**
* 关闭类型
*/
private final Integer type;
/**
* 图标地址
*/
private final String icon;
}

View File

@@ -0,0 +1,42 @@
package com.cool.store.enums.closeup;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* <p>
* 歇业申请单状态
* </p>
*
* @author wangff
* @since 2026/4/8
*/
@Getter
@AllArgsConstructor
public enum CloseUpStatusEnum {
APPROVAL(1, "审批中"),
REJECTED(5, "审批拒绝"),
PASS(10, "审批通过"),
APPLY_OPEN(15, "申请营业中"),
APPLY_OPEN_REJECTED(20, "申请营业审批拒绝"),
APPLY_OPEN_PASS(25, "申请营业审批通过"),
;
private final Integer status;
private final String desc;
public static String getDesc(Integer status) {
for (CloseUpStatusEnum value : CloseUpStatusEnum.values()) {
if (value.status.equals(status)) {
return value.desc;
}
}
return null;
}
public static boolean unPass(Integer status) {
return REJECTED.getStatus().equals(status) || APPROVAL.getStatus().equals(status);
}
}

View File

@@ -53,6 +53,16 @@ public class BeanUtil extends cn.hutool.core.bean.BeanUtil {
return newPage;
}
public static <T, R> PageInfo<R> toPage(PageInfo<T> page, List<R> list) {
PageInfo<R> newPage = new PageInfo<>();
newPage.setPages(page.getPages());
newPage.setTotal(page.getTotal());
newPage.setPageNum(page.getPageNum());
newPage.setPageSize(page.getPageSize());
newPage.setList(list);
return newPage;
}
public static void copyPropertiesIgnoreId(Object source, Object target, String... ignoreProperties) {
if (source == null || target == null) {
return;