Merge #128 into master from cc_20250512_uploadRentContract

feat:租赁合同新增审批记录

* cc_20250512_uploadRentContract: (100 commits squashed)

  - fix:计划闭店时间修改

  - Merge branch 'cc_20250922_closeStore_w' into cc_20250514_common_bak

  - feat:新签调整

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java

  - fix:闭店信息新增初审、复审、终审时间字段;闭店管理列表新增返回字段

  - Merge branch 'cc_20250922_closeStore_w' into cc_20250514_common_bak

  - feat:招商

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java

  - feat:招商

  - feat:招商

  - feat:招商

  - fix:删除字段

  - Merge branch 'cc_20250922_closeStore_w' into cc_20250514_common_bak

  - feat:招商

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

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

  - feat:数据同步 名称新增MX 等前缀

  - feat:上海魔盒未来食品有限公司

  - fix:修改查询逻辑

  - Merge branch 'cc_20260428_store_report' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java

  - feat:id

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

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

  - Merge branch 'cc_20260507_smz' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java

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

  - feat:翻新

  - feat:用户列表为空

  - Merge branch 'cc_20260427_rnewal' into cc_20250514_common_bak

  - feat:用户列表为空

  - Merge branch 'cc_20260427_rnewal' into cc_20250514_common_bak

  - feat:RenewalRenovateApprovalVO

  - Merge branch 'cc_20260427_rnewal' into cc_20250514_common_bak

  - feat:招商副总裁

  - Merge branch 'cc_20260427_rnewal' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java

  - feat:招商副总裁审核

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

  - feat:费用单调整

  - feat:招商经理

  - feat:招商经理

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

  - feat:费用调整

  - Merge branch 'master' into cc_20260226_fix

  - fix:bug修复

  - fix:未开业门店试营业日期

  - Merge branch 'cc_20260508_open_store_req' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
    #	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java

  - feat:新增审批

  - fix:开业日期报备不同步门店状态

  - Merge branch 'cc_20260508_open_store_req' into cc_20250514_common_bak

  - fix:字段名称修改

  - Merge branch 'cc_20250922_closeStore_w' into cc_20250514_common_bak

  - fix:闭店中止新增审批记录

  - Merge branch 'cc_20250922_closeStore_w' into cc_20250514_common_bak

  - feat:费用调整单

  - feat:招商大区总审核 或者 分部内勤审核 其他状态不能审核

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

  - feat:调整单

  - feat:SHOP_SUB_STAGE_STATUS_150_5

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

  - fix:试营业测试接口

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

  - Merge branch 'master' into cc_20250514_common_bak

  - feat:page

  - feat:自动分账

  - Merge branch 'master' into cc_20250514_common_bak

  - fix:私域二维码门店绑定关系缓存改为7天

  - Merge branch 'cc_20260226_fix' into cc_20250514_common_bak

  - feat:getAuthRegionIdAndSubRegionIdExcludeStoreByUserId 优化开店管理查询

  - Merge branch 'cc_20260509_fix' into cc_20250514_common_bak

  - fix:修改门店开业日期判断条件修改

  - Merge branch 'cc_20260508_open_store_req' into cc_20250514_common_bak

  - feat:填写添加门店

  - feat:建店代办处理

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

  - Merge branch 'cc_20260508_adjustment' into cc_20250514_common_bak

  - feat:userAuthMappingService

  - feat:addShopDecorationLog

  - Merge branch 'cc_20260506_newsign' into cc_20250514_common_bak

  - feat:待采购确认 审批流程

  - feat:问题修复

  - Merge branch 'cc_20260511_fix' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
    #	coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml
    #	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java

  - feat:问题修复

  - feat:问题修复

  - feat:流水查询条件

  - Merge branch 'master' into cc_20260508_adjustment

  - feat:费用流水筛选条件

  - fix:歇业管理逻辑修改

  - Merge branch 'cc_20260508_adjustment' into cc_20250514_common_bak

  - feat:getAdjustAmount

  - Merge branch 'cc_20260511_close_up_modify' into cc_20260408_close_up
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/closeup/CloseUpPlatformEnum.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/closeup/CloseUpPlatformDAO.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/closeup/CloseUpPlatformMapper.java
    #	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml
    #	coolstore-partner-dao/src/main/resources/mapper/closeup/CloseUpApplyFormMapper.xml
    #	coolstore-partner-dao/src/main/resources/mapper/closeup/CloseUpPlatformMapper.xml
    #	coolstore-partner-model/src/main/java/com/cool/store/entity/closeup/CloseUpApplyFormDO.java
    #	coolstore-partner-model/src/main/java/com/cool/store/entity/closeup/CloseUpPlatformDO.java
    #	coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/closeup/CloseUpService.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java
    #	coolstore-partner-web/src/main/resources/application-ab.properties
    #	coolstore-partner-web/src/main/resources/application-local.properties
    #	coolstore-partner-web/src/main/resources/application-online.properties
    #	coolstore-partner-web/src/main/resources/application-test.properties

  - fix:合并冲突

  - Merge branch 'cc_20260408_close_up' into cc_20250514_common_bak
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java

  - fix:合并冲突

  - Merge branch 'cc_20260508_adjustment' into cc_20250514_common_bak

  - Merge branch 'master' into cc_20260408_close_up

  - fix:火码歇业时机修改

  - Merge branch 'cc_20260408_close_up' into cc_20250514_common_bak

  - feat:租赁合同新增审批记录

  - Merge branch 'master' into cc_20250512_uploadRentContract
    
    # Conflicts:
    #	coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java

  - feat:merge冲突

  - feat:merge冲突

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

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/128
This commit is contained in:
正新
2026-05-12 09:01:35 +00:00
parent 56b85c3322
commit 20f063dc55
325 changed files with 14065 additions and 264 deletions

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto;
import lombok.Data;
/**
* @Auther zx_szh
* @Date 2026/1/7 11:28
* @Version 1.0
*/
@Data
public class BigRegionUserDTO {
private String name;
private String mobile;
private String regionName;
private Long regionId;
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.dto;
import lombok.Data;
import java.util.List;
/**
* @Auther zx_szh
* @Date 2026/1/7 14:01
* @Version 1.0
*/
@Data
public class BigRegionUserListDTO {
private Long regionId;
private String regionName;
private List<UserDTO> specialRoleUserList;
}

View File

@@ -0,0 +1,43 @@
package com.cool.store.dto;
import com.cool.store.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/6/19 19:29
* @Version 1.0
*/
@Data
public class ImportReceivingBankDTO {
@ApiModelProperty(value = "品牌")
@Excel(name = "品牌")
private String franchiseBrand;
@ApiModelProperty(value = "大区")
@Excel(name = "大区")
private String regionName;
@ApiModelProperty(value = "付款方式")
@Excel(name = "付款方式")
private String payType;
@ApiModelProperty(value = "收款人")
@Excel(name = "收款人")
private String payee;
@ApiModelProperty(value = "收款账户")
@Excel(name = "收款账户")
private String receivingAccount;
@ApiModelProperty(value = "收款银行")
@Excel(name = "收款银行")
private String bankName;
@ApiModelProperty(value = "收款银行开户行")
@Excel(name = "收款银行开户行")
private String branchBankName;
}

View File

@@ -0,0 +1,60 @@
package com.cool.store.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: WangShuo
* @Date: 2025/06/19/10:42
* @Version 1.0
* @注释:
*/
@Data
public class ImportReceivingBankErrorDTO {
@ApiModelProperty(value = "品牌")
@ExcelProperty(value = "品牌",order = 1)
@ColumnWidth(30)
private String franchiseBrand;
@ApiModelProperty(value = "大区")
@ExcelProperty(value = "大区",order = 2)
@ColumnWidth(30)
private String regionName;
@ApiModelProperty(value = "付款方式")
@ExcelProperty(value = "付款方式",order = 3)
@ColumnWidth(30)
private String payType;
@ApiModelProperty(value = "收款人")
@ExcelProperty(value = "收款人",order = 4)
@ColumnWidth(30)
private String payee;
@ApiModelProperty(value = "收款账户")
@ExcelProperty(value = "收款账户",order = 5)
@ColumnWidth(30)
private String receivingAccount;
@ApiModelProperty(value = "收款银行")
@ExcelProperty(value = "收款银行",order = 6)
@ColumnWidth(30)
private String bankName;
@ApiModelProperty(value = "收款银行开户行")
@ExcelProperty(value = "收款银行开户行",order = 7)
@ColumnWidth(30)
private String branchBankName;
@ExcelProperty(value = "失败原因",order = 8)
@ColumnWidth(30)
private String errorMsg;
}

View File

@@ -0,0 +1,27 @@
package com.cool.store.dto;
import com.cool.store.annotation.Excel;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/20 18:56
* @Version 1.0
*/
@Data
public class StoreImageExportDTO {
/**
* 门店编码
*/
@Excel(name = "门店编码")
private String storeCode;
@Excel(name = "门店名称")
private String storeName;
/**
* 图片URLOSS公网地址
*/
@Excel(name = "图片")
private String imageUrl;
}

View File

@@ -0,0 +1,19 @@
package com.cool.store.dto.exam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 题目答案DTO
*/
@Data
public class ExamAnswerDTO {
@ApiModelProperty(value = "正确答案选项列表,如[\"A\",\"B\"]")
private List<String> options;
@ApiModelProperty(value = "判断题答案true-正确 false-错误")
private Boolean judgment;
}

View File

@@ -0,0 +1,39 @@
package com.cool.store.dto.exam;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 考试DTO新增/修改)
*/
@Data
public class ExamInfoAddDTO {
@ApiModelProperty(value = "考试ID")
@NotNull(message = "考试ID不能为空", groups = {UpdateGroup.class})
private Long id;
@ApiModelProperty(value = "试卷ID", required = true)
@NotNull(message = "试卷ID不能为空", groups = {InsertGroup.class})
private Long paperId;
@ApiModelProperty(value = "考试名称", required = true)
@NotBlank(message = "考试名称不能为空", groups = {InsertGroup.class})
private String examName;
@ApiModelProperty(value = "开始时间")
private Date startTime;
@ApiModelProperty(value = "结束时间")
private Date endTime;
@ApiModelProperty(value = "考试时长(分钟)", required = true)
@NotNull(message = "考试时长不能为空", groups = {InsertGroup.class})
private Integer durationMinutes;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.dto.exam;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 考试列表查询DTO
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ExamInfoListDTO extends PageBasicInfo {
@ApiModelProperty(value = "考试名称")
private String examName;
@ApiModelProperty(value = "状态0-未发布 1-已发布 2-已结束")
private Integer status;
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.dto.exam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 更新考试DTO
*/
@Data
public class ExamInfoUpdateDTO {
@ApiModelProperty(value = "考试ID", required = true)
@NotNull(message = "考试ID不能为空")
private Long id;
@ApiModelProperty(value = "考试名称")
private String examName;
@ApiModelProperty(value = "开始时间")
private Date startTime;
@ApiModelProperty(value = "结束时间")
private Date endTime;
@ApiModelProperty(value = "考试时长(分钟)")
private Integer durationMinutes;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto.exam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 题目选项DTO
*/
@Data
public class ExamOptionDTO {
@ApiModelProperty(value = "选项标签如A、B、C、D", required = true)
@NotBlank(message = "选项标签不能为空")
private String label;
@ApiModelProperty(value = "选项内容", required = true)
@NotBlank(message = "选项内容不能为空")
private String content;
}

View File

@@ -0,0 +1,50 @@
package com.cool.store.dto.exam;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* 新增试卷DTO
*/
@Data
public class ExamPaperAddDTO {
@ApiModelProperty(value = "试卷ID")
@NotNull(message = "试卷ID不能为空", groups = {UpdateGroup.class})
private Long id;
@ApiModelProperty(value = "试卷名称")
@NotBlank(message = "试卷名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String paperName;
@ApiModelProperty(value = "试卷描述")
private String description;
@ApiModelProperty(value = "题目列表")
@NotEmpty(message = "题目列表不能为空", groups = {InsertGroup.class, UpdateGroup.class})
@Valid
private List<PaperQuestionItemDTO> questions;
@ApiModelProperty(value = "是否启用0-否 1-是")
@NotNull(message = "是否启用不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer enable;
@Data
public static class PaperQuestionItemDTO {
@ApiModelProperty(value = "题目ID")
@NotNull(message = "题目ID不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Long questionId;
@ApiModelProperty(value = "分值")
@NotNull(message = "分值不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private BigDecimal score;
}
}

View File

@@ -0,0 +1,23 @@
package com.cool.store.dto.exam;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 试卷列表查询DTO
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ExamPaperListDTO extends PageBasicInfo {
@ApiModelProperty(value = "试卷名称")
private String paperName;
@ApiModelProperty(value = "是否启用0-否 1-是")
private Integer enable;
@ApiModelProperty(value = "是否已开始考试0-否 1-是")
private Integer startExam;
}

View File

@@ -0,0 +1,70 @@
package com.cool.store.dto.exam;
import com.alibaba.fastjson.JSON;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.entity.exam.ExamQuestionDO;
import com.cool.store.utils.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* 新增题目DTO
*/
@Data
public class ExamQuestionAddDTO {
@ApiModelProperty(value = "题目ID")
@NotNull(message = "题目id不能为空", groups = {UpdateGroup.class})
private Long id;
@ApiModelProperty(value = "题目类型1-单选 2-多选 3-判断", required = true)
@NotNull(message = "题目类型不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer type;
@ApiModelProperty(value = "难度1-简单 2-中等 3-困难")
@NotNull(message = "难度不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer difficulty;
@ApiModelProperty(value = "题干", required = true)
@NotBlank(message = "题干不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String questionStem;
@ApiModelProperty(value = "题目选项")
@Valid
private List<ExamOptionDTO> options;
@ApiModelProperty(value = "答案", required = true)
@NotNull(message = "答案不能为空", groups = {InsertGroup.class, UpdateGroup.class})
@Valid
private ExamAnswerDTO answer;
@ApiModelProperty(value = "分值", required = true)
@NotNull(message = "分值不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private BigDecimal score;
@ApiModelProperty(value = "解析")
private String analysis;
@ApiModelProperty(value = "是否启用0-否 1-是")
@NotNull(message = "是否启用不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer enable;
public ExamQuestionDO convert() {
ExamQuestionDO questionDO = BeanUtil.toBean(this, ExamQuestionDO.class);
// 将答案对象转为JSON字符串存储
if (answer != null) {
questionDO.setAnswer(JSON.toJSONString(answer));
}
// 将选项对象转为JSON字符串存储
if (options != null) {
questionDO.setOptions(JSON.toJSONString(options));
}
return questionDO;
}
}

View File

@@ -0,0 +1,26 @@
package com.cool.store.dto.exam;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 题目列表查询DTO
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ExamQuestionListDTO extends PageBasicInfo {
@ApiModelProperty(value = "题目类型1-单选 2-多选 3-判断")
private Integer type;
@ApiModelProperty(value = "难度1-简单 2-中等 3-困难")
private Integer difficulty;
@ApiModelProperty(value = "题干关键词")
private String questionStem;
@ApiModelProperty(value = "是否启用0-否 1-是")
private Integer enable;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto.exam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 开始考试DTO
*/
@Data
public class ExamStartAttemptDTO {
@ApiModelProperty(value = "考试入口token", required = true)
@NotBlank(message = "考试入口token不能为空")
private String entryToken;
@ApiModelProperty(value = "考生姓名")
@NotBlank(message = "考生姓名不能为空")
private String name;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.dto.exam;
import com.cool.store.vo.exam.ExamAnswerVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 提交答案DTO
*/
@Data
public class ExamSubmitAnswerDTO {
@ApiModelProperty(value = "答卷ID", required = true)
@NotNull(message = "答卷ID不能为空")
private Long attemptId;
@ApiModelProperty(value = "试卷题目ID", required = true)
@NotNull(message = "试卷题目ID不能为空")
private Long paperQuestionId;
@ApiModelProperty(value = "答案")
private ExamAnswerVO answer;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.dto.exam;
import com.cool.store.vo.exam.ExamAnswerVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 提交试卷DTO
*/
@Data
public class ExamSubmitPaperDTO {
@ApiModelProperty(value = "答卷ID", required = true)
@NotNull(message = "答卷ID不能为空")
private Long attemptId;
@ApiModelProperty(value = "答案列表")
private List<AnswerItem> answers;
@Data
public static class AnswerItem {
@ApiModelProperty(value = "试卷题目ID")
private Long paperQuestionId;
@ApiModelProperty(value = "答案")
private ExamAnswerVO answer;
}
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto.exam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* <p>
* 考试tokenDTO
* </p>
*
* @author wangff
* @since 2026/3/24
*/
@Data
public class ExamTokenDTO {
@ApiModelProperty("token")
@NotBlank(message = "token不能为空")
private String token;
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.dto.food;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 菜品DTP 已购菜品/我研发的菜品
* @Author suzhuhong
* @Date 2025/6/17 9:53
* @Version 1.0
*/
@Data
public class DishesDTO {
@ApiModelProperty("ID")
private String id;
@ApiModelProperty("菜品CODE")
private String recipeCode;
@ApiModelProperty("菜品名称")
private String recipeName;
@ApiModelProperty("菜品图片")
private String imageUrl;
}

View File

@@ -0,0 +1,54 @@
package com.cool.store.dto.liepin;
/**
* @author sha.li
* @since 2025-03-28 14:54
*/
public class XbbAppInfo {
private String domain;
private String appId;
private String secretKey;
private String aesSecretKey;
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getSecretKey() {
return secretKey;
}
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
public String getAesSecretKey() {
return aesSecretKey;
}
public void setAesSecretKey(String aesSecretKey) {
this.aesSecretKey = aesSecretKey;
}
@Override
public String toString() {
return "XbbAppInfo{" +
"secretKey='" + secretKey + '\'' +
", domain='" + domain + '\'' +
", appId='" + appId + '\'' +
", aesSecretKey='" + aesSecretKey + '\'' +
'}';
}
}

View File

@@ -0,0 +1,24 @@
package com.cool.store.dto.liepin;
/**
* @author sha.li
* @since 2025-03-28 15:38
*/
public class XbbEncryptedData {
private String encryptData;
public String getEncryptData() {
return encryptData;
}
public void setEncryptData(String encryptData) {
this.encryptData = encryptData;
}
@Override
public String toString() {
return "XbbEncryptedData{" +
"encryptData='" + encryptData + '\'' +
'}';
}
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 门店报表DTO
* </p>
*
* @author wangff
* @since 2026/4/28
*/
@Data
public class StoreReportDTO {
@ApiModelProperty("门店品牌")
private Integer joinBrand;
@ApiModelProperty("数量")
private Integer num;
}

View File

@@ -52,4 +52,13 @@ public class WithdrawApplicationDTO {
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("门店ID")
private String relateStoreId;
@ApiModelProperty("门店名称")
private String relateStoreName;
@ApiModelProperty("备注")
private String remark;
}

View File

@@ -104,4 +104,8 @@ public class AdjustmentOrderDO {
@ApiModelProperty("支付时间")
@Column(name = "pay_time")
private Date payTime;
@ApiModelProperty("拒绝原因")
@Column(name = "reject_reason")
private String rejectReason;
}

View File

@@ -72,6 +72,14 @@ public class FranchiseFeeDO {
@ApiModelProperty("新管家已缴金额")
private BigDecimal xgjFeesPaid;
@Column(name = "intended_signatory_first")
@ApiModelProperty("意向签约人1")
private String intendedSignatoryFirst;
@Column(name = "intended_signatory_second")
@ApiModelProperty("意向签约人2")
private String intendedSignatorySecond;
@Column(name = "cashier_fee")
@ApiModelProperty("收银费(系统费)")
private String cashierFee;

View File

@@ -34,10 +34,10 @@ public class LinePayDO implements Serializable {
@ApiModelProperty("line_info.id")
private Long lineId;
@ApiModelProperty("支付状态 45:待缴费 50:已缴费 55缴费失败")
@ApiModelProperty("支付状态 45:待支付 50:已缴费 55缴费失败,60-已取消")
private Integer payStatus;
@ApiModelProperty("支付方式 1微信 2银行转账 3-线支付4-线支付")
@ApiModelProperty("支付方式 1微信 2银行转账 3-线支付4-线支付")
private Integer payType;
@ApiModelProperty("付款人姓名")
@@ -105,4 +105,8 @@ public class LinePayDO implements Serializable {
@Column(name = "remark")
private String remark;
@Column(name = "xgj_fail_reason")
@ApiModelProperty("新管家收款单失败原因")
private String xgjFailReason;
}

View File

@@ -109,8 +109,49 @@ public class OpeningOperationPlanDO {
@Column(name = "result_type")
private Integer resultType;
/**
* 开业时间
*/
@Column(name = "open_time")
private Date openTime;
@Column(name = "first_day_income")
private String firstDayIncome;
@Column(name = "second_day_income")
private String secondDayIncome;
@Column(name = "third_day_income")
private String thirdDayIncome;
public Date getOpenTime() {
return openTime;
}
public void setOpenTime(Date openTime) {
this.openTime = openTime;
}
public String getFirstDayIncome() {
return firstDayIncome;
}
public String getSecondDayIncome() {
return secondDayIncome;
}
public String getThirdDayIncome() {
return thirdDayIncome;
}
public void setFirstDayIncome(String firstDayIncome) {
this.firstDayIncome = firstDayIncome;
}
public void setSecondDayIncome(String secondDayIncome) {
this.secondDayIncome = secondDayIncome;
}
public void setThirdDayIncome(String thirdDayIncome) {
this.thirdDayIncome = thirdDayIncome;
}
public Integer getResultType() {
return resultType;

View File

@@ -0,0 +1,65 @@
package com.cool.store.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
import java.util.Objects;
/**
* @Author: WangShuo
* @Date: 2025/06/18/17:31
* @Version 1.0
* @注释:
*/
@Table(name = "xfsg_receiving_bank")
@Data
public class ReceivingBankDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "region_id")
private Long regionId;
@Column(name = "franchise_brand")
private Integer franchiseBrand;
@Column(name = "pay_type")
private Integer payType;
@Column(name = "payee")
private String payee;
@Column(name = "receiving_account")
private String receivingAccount;
@Column(name = "bank_name")
private String bankName;
@Column(name = "branch_bank_name")
private String branchBankName;
@Column(name = "create_time")
private Date createTime;
@Column(name = "update_time")
private Date updateTime;
@Column(name = "create_user")
private String createUser;
@Column(name = "update_user")
private String updateUser;
@Column(name = "deleted")
private Boolean deleted;
public ReceivingBankDO(Long regionId, Integer franchiseBrand, Integer payType) {
this.regionId = regionId;
this.franchiseBrand = franchiseBrand;
this.payType = payType;
}
public ReceivingBankDO(){}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof ReceivingBankDO)) return false;
ReceivingBankDO that = (ReceivingBankDO) o;
return Objects.equals(regionId, that.regionId) &&
Objects.equals(franchiseBrand, that.franchiseBrand) &&
Objects.equals(payType, that.payType);
}
@Override
public int hashCode() {
return Objects.hash(regionId, franchiseBrand, payType);
}
}

View File

@@ -206,4 +206,5 @@ public class ShopInfoDO {
*/
@Column(name = "special_instruction")
private String specialInstruction;
}

View File

@@ -0,0 +1,251 @@
package com.cool.store.entity;
import lombok.Builder;
import java.util.Date;
import javax.persistence.*;
@Table(name = "xfsg_third_party_account")
@Builder
public class ThirdPartyAccountDO {
/**
* 主键ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 手机号
*/
@Column(name = "mobile")
private String mobile;
/**
* 本地门店编码
*/
@Column(name = "local_store_code")
private String localStoreCode;
/**
* 第三方平台账号ID
*/
@Column(name = "third_party_account_id")
private String thirdPartyAccountId;
/**
* 所属第三方门店ID(xfsg_third_party_store)
*/
@Column(name = "third_party_store_id")
private String thirdPartyStoreId;
/**
* 角色 1超管 2普通
*/
@Column(name = "account_type")
private Integer accountType;
/**
* 职务 1店长 2人事专员 3经理 4职员
*/
@Column(name = "position_id")
private Long positionId;
/**
* 账号是否有效:0-无效,1-有效
*/
@Column(name = "is_valid")
private Integer isValid;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 获取主键ID
*
* @return id - 主键ID
*/
public Long getId() {
return id;
}
/**
* 设置主键ID
*
* @param id 主键ID
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取手机号
*
* @return mobile - 手机号
*/
public String getMobile() {
return mobile;
}
/**
* 设置手机号
*
* @param mobile 手机号
*/
public void setMobile(String mobile) {
this.mobile = mobile;
}
/**
* 获取本地门店编码
*
* @return local_store_code - 本地门店编码
*/
public String getLocalStoreCode() {
return localStoreCode;
}
/**
* 设置本地门店编码
*
* @param localStoreCode 本地门店编码
*/
public void setLocalStoreCode(String localStoreCode) {
this.localStoreCode = localStoreCode;
}
/**
* 获取第三方平台账号ID
*
* @return third_party_account_id - 第三方平台账号ID
*/
public String getThirdPartyAccountId() {
return thirdPartyAccountId;
}
/**
* 设置第三方平台账号ID
*
* @param thirdPartyAccountId 第三方平台账号ID
*/
public void setThirdPartyAccountId(String thirdPartyAccountId) {
this.thirdPartyAccountId = thirdPartyAccountId;
}
/**
* 获取所属第三方门店ID(xfsg_third_party_store)
*
* @return third_party_store_id - 所属第三方门店ID(xfsg_third_party_store)
*/
public String getThirdPartyStoreId() {
return thirdPartyStoreId;
}
/**
* 设置所属第三方门店ID(xfsg_third_party_store)
*
* @param thirdPartyStoreId 所属第三方门店ID(xfsg_third_party_store)
*/
public void setThirdPartyStoreId(String thirdPartyStoreId) {
this.thirdPartyStoreId = thirdPartyStoreId;
}
/**
* 获取角色 1超管 2普通
*
* @return account_type - 角色 1超管 2普通
*/
public Integer getAccountType() {
return accountType;
}
/**
* 设置角色 1超管 2普通
*
* @param accountType 角色 1超管 2普通
*/
public void setAccountType(Integer accountType) {
this.accountType = accountType;
}
/**
* 获取职务 1店长 2人事专员 3经理 4职员
*
* @return position_id - 职务 1店长 2人事专员 3经理 4职员
*/
public Long getPositionId() {
return positionId;
}
/**
* 设置职务 1店长 2人事专员 3经理 4职员
*
* @param positionId 职务 1店长 2人事专员 3经理 4职员
*/
public void setPositionId(Long positionId) {
this.positionId = positionId;
}
/**
* 获取账号是否有效:0-无效,1-有效
*
* @return is_valid - 账号是否有效:0-无效,1-有效
*/
public Integer getIsValid() {
return isValid;
}
/**
* 设置账号是否有效:0-无效,1-有效
*
* @param isValid 账号是否有效:0-无效,1-有效
*/
public void setIsValid(Integer isValid) {
this.isValid = isValid;
}
/**
* 获取创建时间
*
* @return create_time - 创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置创建时间
*
* @param createTime 创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取更新时间
*
* @return update_time - 更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置更新时间
*
* @param updateTime 更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -0,0 +1,137 @@
package com.cool.store.entity;
import lombok.Builder;
import java.util.Date;
import javax.persistence.*;
@Table(name = "xfsg_third_party_store")
@Builder
public class ThirdPartyStoreDO {
/**
* 主键ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 本地门店编码
*/
@Column(name = "local_store_code")
private String localStoreCode;
/**
* 第三方平台门店ID
*/
@Column(name = "third_party_store_id")
private String thirdPartyStoreId;
/**
* 第三方平台门店门头照图片url
*/
@Column(name = "third_party_store_url")
private String thirdPartyStoreUrl;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 获取主键ID
*
* @return id - 主键ID
*/
public Long getId() {
return id;
}
/**
* 设置主键ID
*
* @param id 主键ID
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取本地门店编码
*
* @return local_store_code - 本地门店编码
*/
public String getLocalStoreCode() {
return localStoreCode;
}
/**
* 设置本地门店编码
*
* @param localStoreCode 本地门店编码
*/
public void setLocalStoreCode(String localStoreCode) {
this.localStoreCode = localStoreCode;
}
/**
* 获取第三方平台门店ID
*
* @return third_party_store_id - 第三方平台门店ID
*/
public String getThirdPartyStoreId() {
return thirdPartyStoreId;
}
/**
* 设置第三方平台门店ID
*
* @param thirdPartyStoreId 第三方平台门店ID
*/
public void setThirdPartyStoreId(String thirdPartyStoreId) {
this.thirdPartyStoreId = thirdPartyStoreId;
}
/**
* 获取创建时间
*
* @return create_time - 创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置创建时间
*
* @param createTime 创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取更新时间
*
* @return update_time - 更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置更新时间
*
* @param updateTime 更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -88,4 +88,16 @@ public class WithdrawApplicationDO implements Serializable {
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 门店ID
*/
@Column(name = "relate_store_id")
private String relateStoreId;
/**
* 备注
*/
@Column(name = "remark")
private String remark;
}

View File

@@ -0,0 +1,108 @@
package com.cool.store.entity.approval;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* 通用审批流程记录表
*/
@Table(name = "zxjp_common_approval_log")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CommonApprovalLogDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 申请编号
*/
@Column(name = "application_no")
private String applicationNo;
/**
* 审批节点代码
*/
@Column(name = "node_code")
private String nodeCode;
/**
* 审批节点名称
*/
@Column(name = "node_name")
private String nodeName;
/**
* 处理人ID
*/
@Column(name = "handle_user_id")
private String handleUserId;
/**
* 处理人名称
*/
@Column(name = "handle_user_name")
private String handleUserName;
/**
* 审批结果pass-通过reject-拒绝
*/
@Column(name = "result")
private String result;
/**
* 审批状态1-已处理2-待处理
*/
@Column(name = "status")
private String status;
/**
* 版本号
*/
@Column(name = "version")
private Long version;
/**
* 审批意见
*/
@Column(name = "comment")
private String comment;
/**
* 审批操作时间
*/
@Column(name = "operate_time")
private Date operateTime;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 删除标识0-未删除1-已删除
*/
@Column(name = "deleted")
private Integer deleted;
/**
* 提交类型0-提交1-审批
*/
@Column(name = "submit_type")
private Integer submitType;
}

View File

@@ -0,0 +1,109 @@
package com.cool.store.entity.contract;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
/**
* 合同费用表
*/
@Table(name = "zxjp_contract_cost")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContractCostDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 合同编号(关联主表)
*/
@Column(name = "contract_no")
private String contractNo;
/**
* 加盟费金额(元)
*/
@Column(name = "join_fee_amount")
private BigDecimal joinFeeAmount;
/**
* 加盟费收费频率计数(年)
*/
@Column(name = "join_fee_frequency_years")
private BigDecimal joinFeeFrequencyYears;
/**
* 加盟费优惠总折扣金额(元)
*/
@Column(name = "join_fee_discount_amount")
private BigDecimal joinFeeDiscountAmount;
/**
* 加盟费优惠原因
*/
@Column(name = "join_fee_discount_reason")
private String joinFeeDiscountReason;
/**
* 品牌使用费金额(元)
*/
@Column(name = "brand_usage_fee_amount")
private BigDecimal brandUsageFeeAmount;
/**
* 品牌使用费收费频率计数(年)
*/
@Column(name = "brand_usage_fee_frequency_years")
private BigDecimal brandUsageFeeFrequencyYears;
/**
* 品牌管理费金额(元)
*/
@Column(name = "brand_management_fee_amount")
private BigDecimal brandManagementFeeAmount;
/**
* 品牌管理费收费频率计数(年)
*/
@Column(name = "brand_management_fee_frequency_years")
private BigDecimal brandManagementFeeFrequencyYears;
/**
* 设计费金额(元)
*/
@Column(name = "design_fee_amount")
private BigDecimal designFeeAmount;
/**
* 系统使用费金额(元)
*/
@Column(name = "system_usage_fee_amount")
private BigDecimal systemUsageFeeAmount;
/**
* 履约保证金金额(元)
*/
@Column(name = "performance_bond_amount")
private BigDecimal performanceBondAmount;
/**
* 创建时间
*/
@Column(name = "created_time")
private Date createdTime;
/**
* 更新时间
*/
@Column(name = "updated_time")
private Date updatedTime;
}

View File

@@ -0,0 +1,139 @@
package com.cool.store.entity.contract;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
/**
* 合同主表
*/
@Table(name = "zxjp_contract_master")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContractMasterDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 合同类型(新签/续签/变更)
*/
@Column(name = "contract_type")
private String contractType;
/**
* 合同编号
*/
@Column(name = "contract_no")
private String contractNo;
/**
* 门店ID
*/
@Column(name = "store_id")
private String storeId;
/**
* 门店编码
*/
@Column(name = "store_code")
private String storeCode;
/**
* 加盟品牌
*/
@Column(name = "brand_name")
private String brandName;
/**
* 加盟来源
*/
@Column(name = "source")
private String source;
/**
* 签约形式
*/
@Column(name = "sign_form")
private String signForm;
/**
* 合同时长(年)
*/
@Column(name = "contract_years")
private BigDecimal contractYears;
/**
* 合同开始日期
*/
@Column(name = "start_date")
private Date startDate;
/**
* 合同结束日期
*/
@Column(name = "end_date")
private Date endDate;
/**
* 合同状态1-生效中/2-已终止/3-已到期)
*/
@Column(name = "contract_status")
private String contractStatus;
/**
* 货币单位
*/
@Column(name = "currency")
private String currency;
/**
* 合同签订日期
*/
@Column(name = "sign_date")
private Date signDate;
/**
* 关联合同编号(原合同编号)
*/
@Column(name = "related_contract_no")
private String relatedContractNo;
/**
* 合同备注说明
*/
@Column(name = "remark")
private String remark;
/**
* 是否已生成续签申请0-否1-是)
*/
@Column(name = "renewal_created")
private Integer renewalCreated;
/**
* 创建人
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "created_time")
private Date createdTime;
/**
* 更新时间
*/
@Column(name = "updated_time")
private Date updatedTime;
}

View File

@@ -0,0 +1,68 @@
package com.cool.store.entity.exam;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* 考试答卷答题记录
*/
@Data
@Table(name = "zxjp_exam_attempt_answer")
public class ExamAttemptAnswerDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 答卷id
*/
@Column(name = "attempt_id")
private Long attemptId;
/**
* 试卷id
*/
@Column(name = "paper_id")
private Long paperId;
/**
* 试卷题目id
*/
@Column(name = "paper_question_id")
private Long paperQuestionId;
/**
* 答案
*/
private String answer;
/**
* 得分
*/
private BigDecimal score;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,103 @@
package com.cool.store.entity.exam;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* 考试答卷
*/
@Data
@Table(name = "zxjp_exam_attempt")
public class ExamAttemptDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 考试id
*/
@Column(name = "exam_id")
private Long examId;
/**
* 试卷id
*/
@Column(name = "paper_id")
private Long paperId;
/**
* 考生姓名
*/
private String name;
/**
* 考生手机号
*/
private String mobile;
/**
* 用户id
*/
@Column(name = "user_id")
private String userId;
/**
* 考试开始时间
*/
@Column(name = "start_time")
private Date startTime;
/**
* 考试结束时间
*/
@Column(name = "end_time")
private Date endTime;
/**
* 考试截止时间
*/
@Column(name = "deadline_time")
private Date deadlineTime;
/**
* 状态0-进行中 1-已完成
*/
private Integer status;
/**
* 提交类型0-主动提交 1-超时自动提交
*/
@Column(name = "submit_type")
private Integer submitType;
/**
* 总得分
*/
@Column(name = "total_score")
private BigDecimal totalScore;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,90 @@
package com.cool.store.entity.exam;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
/**
* 考试信息
*/
@Data
@Table(name = "zxjp_exam_info")
public class ExamInfoDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 试卷id
*/
@Column(name = "paper_id")
private Long paperId;
/**
* 考试名称
*/
@Column(name = "exam_name")
private String examName;
/**
* 开始时间
*/
@Column(name = "start_time")
private Date startTime;
/**
* 结束时间
*/
@Column(name = "end_time")
private Date endTime;
/**
* 持续时间
*/
@Column(name = "duration_minutes")
private Integer durationMinutes;
/**
* 状态0-未发布 1-已发布 2-已结束
*/
private Integer status;
/**
* 链接令牌
*/
@Column(name = "entry_token")
private String entryToken;
/**
* 二维码地址
*/
@Column(name = "qrcode_url")
private String qrcodeUrl;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
}

View File

@@ -0,0 +1,72 @@
package com.cool.store.entity.exam;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* 考试试卷
*/
@Data
@Table(name = "zxjp_exam_paper")
public class ExamPaperDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 试卷名称
*/
@Column(name = "paper_name")
private String paperName;
/**
* 描述
*/
private String description;
/**
* 总分
*/
@Column(name = "total_score")
private BigDecimal totalScore;
/**
* 是否启用0-否 1-是
*/
private Integer enable;
/**
* 是否已开始考试0-否 1-是
*/
@Column(name = "start_exam")
private Integer startExam;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
}

View File

@@ -0,0 +1,92 @@
package com.cool.store.entity.exam;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* 考试试卷题目
*/
@Data
@Table(name = "zxjp_exam_paper_question")
public class ExamPaperQuestionDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 试卷id
*/
@Column(name = "paper_id")
private Long paperId;
/**
* 题目id
*/
@Column(name = "question_id")
private Long questionId;
/**
* 题目类型1-单选 2-多选 3-判断
*/
private Integer type;
/**
* 难度
*/
private Integer difficulty;
/**
* 答案
*/
private String answer;
/**
* 分值
*/
private BigDecimal score;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
/**
* 题干
*/
@Column(name = "question_stem")
private String questionStem;
/**
* 解析
*/
private String analysis;
/**
* 题目选项(JSON格式)
*/
private String options;
}

View File

@@ -0,0 +1,86 @@
package com.cool.store.entity.exam;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* 考试题目
*/
@Data
@Table(name = "zxjp_exam_question")
public class ExamQuestionDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 题目类型1-单选 2-多选 3-判断
*/
private Integer type;
/**
* 难度
*/
private Integer difficulty;
/**
* 是否启用0-否 1-是
*/
private Integer enable;
/**
* 答案
*/
private String answer;
/**
* 分值
*/
private BigDecimal score;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
/**
* 题干
*/
@Column(name = "question_stem")
private String questionStem;
/**
* 解析
*/
private String analysis;
/**
* 题目选项(JSON格式)
* 格式: [{"label":"A","content":"选项内容"},{"label":"B","content":"选项内容"}]
*/
private String options;
}

View File

@@ -0,0 +1,108 @@
package com.cool.store.entity.renewal;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* 续签申请表
*/
@Table(name = "zxjp_renewal_application")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RenewalApplicationDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 申请编号
*/
@Column(name = "application_no")
private String applicationNo;
/**
* 门店编号
*/
@Column(name = "store_code")
private String storeCode;
/**
* 原合同编号
*/
@Column(name = "original_contract_no")
private String originalContractNo;
/**
* 原合同到期时间
*/
@Column(name = "contract_expire_date")
private Date contractExpireDate;
/**
* 是否删除0-否1-是)
*/
@Column(name = "is_deleted")
private Integer isDeleted;
/**
* 状态
*/
@Column(name = "status")
private Integer status;
/**
* 其他方式 1-返回加盟商确认节点 2-转让 3-闭店
*/
@Column(name = "other_method")
private Integer otherMethod;
/**
* 是否翻新0-否1-是)
*/
@Column(name = "is_renovate")
private Integer isRenovate;
/**
* 申请时间
*/
@Column(name = "apply_time")
private Date applyTime;
/**
* 备注
*/
@Column(name = "remark")
private String remark;
/**
* 创建人名称
*/
@Column(name = "create_user_name")
private String createUserName;
/**
* 创建人
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "created_time")
private Date createdTime;
/**
* 更新时间
*/
@Column(name = "updated_time")
private Date updatedTime;
}

View File

@@ -0,0 +1,58 @@
package com.cool.store.entity.renewal;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
* 续签申请签约人信息快照表
*
* @author zx
* @date 2026-04-28
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zxjp_renewal_application_signer_info")
public class RenewalApplicationSignerInfoDO implements Serializable {
@ApiModelProperty("主键ID")
@Column(name = "id")
private Long id;
@ApiModelProperty("续约申请编号")
@Column(name = "application_no")
private String applicationNo;
@ApiModelProperty("签约人1姓名")
@Column(name = "signer1_name")
private String signer1Name;
@ApiModelProperty("签约人1手机号")
@Column(name = "signer1_mobile")
private String signer1Mobile;
@ApiModelProperty("签约人2姓名")
@Column(name = "signer2_name")
private String signer2Name;
@ApiModelProperty("签约人2手机号")
@Column(name = "signer2_mobile")
private String signer2Mobile;
@ApiModelProperty("创建时间")
@Column(name = "created_time")
private Date createdTime;
@ApiModelProperty("更新时间")
@Column(name = "updated_time")
private Date updatedTime;
}

View File

@@ -0,0 +1,84 @@
package com.cool.store.entity.renewal;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* 续签翻新信息表
*/
@Table(name = "zxjp_renewal_renovate_approval")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RenewalRenovateApprovalDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 续签申请编号
*/
@Column(name = "application_no")
private String applicationNo;
/**
* 门店所在区域
*/
@Column(name = "shop_area_id")
private Long shopAreaId;
/**
* 装修属性
*/
@Column(name = "decoration_attributes")
private String decorationAttributes;
/**
* 装修等级
*/
@Column(name = "decoration_level")
private String decorationLevel;
/**
* 装修设计要求
*/
@Column(name = "decoration_requirement")
private String decorationRequirement;
/**
* 特殊情况说明
*/
@Column(name = "special_instruction")
private String specialInstruction;
/**
* 店内360°视频URL
*/
@Column(name = "video_url")
private String videoUrl;
/**
* 店铺门头照片URL
*/
@Column(name = "shop_front_photo_url")
private String shopFrontPhotoUrl;
/**
* 创建时间
*/
@Column(name = "created_time")
private Date createdTime;
/**
* 更新时间
*/
@Column(name = "updated_time")
private Date updatedTime;
}

View File

@@ -0,0 +1,51 @@
package com.cool.store.entity.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 门店营业数据报表
* @author wangff
* @date 2026-04-28 06:58
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StoreBusinessReportDO implements Serializable {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记4-大鼓米线,5-串小妹,6-茂掌柜")
private Integer joinBrand;
@ApiModelProperty("1-境内 2-境外")
private Integer domestic;
@ApiModelProperty("月份")
private String date;
@ApiModelProperty("营业门店总数")
private Integer openTotalNum;;
@ApiModelProperty("期初门店数")
private Integer periodBeginNum;
@ApiModelProperty("新开门店数")
private Integer newOpenNum;
@ApiModelProperty("闭店门店数")
private Integer closeNum;
@ApiModelProperty("期末门店数")
private Integer periodEndNum;
@ApiModelProperty("创建时间")
private Date createTime;
}

View File

@@ -154,42 +154,36 @@ public class AddSignFranchiseRequest {
private String oldShopCode;
@ApiModelProperty("合同加盟费")
@NotBlank(message = "合同加盟费不能为空")
private String contractFranchiseFee;
/**
* 合同管理费
*/
@ApiModelProperty("合同管理费")
@NotBlank(message = "合同管理费不能为空")
private String contractManageFee;
/**
* 合同品牌使用费
*/
@ApiModelProperty("合同品牌使用费")
@NotBlank(message = "合同品牌使用费不能为空")
private String contractBrandUseFee;
/**
* 合同设计费
*/
@ApiModelProperty("合同设计费")
@NotBlank(message = "合同设计费不能为空")
private String contractPerformanceBond;
/**
* 合同保证金
*/
@ApiModelProperty("合同保证金")
@NotBlank(message = "合同保证金不能为空")
private String contractLoanMargin;
/**
* 合同系统使用费
*/
@ApiModelProperty("合同系统使用费")
@NotBlank(message = "合同系统使用费不能为空")
private String contractSysUserFee;
/**

View File

@@ -0,0 +1,26 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 调整单审批请求
*/
@Data
public class AdjustmentApprovalRequest implements Serializable {
@ApiModelProperty("调整单ID")
@NotNull(message = "调整单ID不能为空")
private Long id;
@ApiModelProperty("审批结果 1-通过 2-拒绝")
@NotNull(message = "审批结果不能为空")
private Integer approvalResult;
@ApiModelProperty("拒绝原因(拒绝时必填)")
private String rejectReason;
}

View File

@@ -43,6 +43,9 @@ public class AdjustmentOrderPageRequest extends PageBasicInfo implements Seriali
@ApiModelProperty("认领结束时间")
private Date claimEndTime;
@ApiModelProperty("创建人ID")
private String createUserId;
private String storeId;
private List<String> regionIds;

View File

@@ -0,0 +1,32 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @Author: WangShuo
* @Date: 2025/06/13/14:44
* @Version 1.0
* @注释:
*/
@Data
public class FranchiseFeePayOnlineRequest {
@ApiModelProperty("修改时候传")
private Long id;
@NotNull
private Long lineId;
@NotNull
private Long shopId;
@ApiModelProperty("付款人")
@NotBlank
private String payUserName;
@NotNull
@ApiModelProperty("本次缴费金额")
private BigDecimal amount;
}

View File

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.persistence.Column;
import java.util.Date;
import java.util.List;
@@ -46,6 +47,13 @@ public class FranchiseFeeRequest {
@ApiModelProperty("加盟费优惠原因")
private String discountReason;
@ApiModelProperty("意向签约人1")
private String intendedSignatoryFirst;
@ApiModelProperty("意向签约人2")
private String intendedSignatorySecond;
@ApiModelProperty("收银费(系统费)(三明治使用)")
private String cashierFee;
@@ -71,6 +79,8 @@ public class FranchiseFeeRequest {
franchiseFeeDO.setThirdYearFee(this.thirdYearFee);
franchiseFeeDO.setPerformanceBond(this.performanceBond);
franchiseFeeDO.setDiscountReason(this.discountReason);
franchiseFeeDO.setIntendedSignatoryFirst(this.intendedSignatoryFirst);
franchiseFeeDO.setIntendedSignatorySecond(this.intendedSignatorySecond);
franchiseFeeDO.setCashierFee(this.cashierFee);
return franchiseFeeDO;
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.request;
import com.cool.store.entity.LinePayDO;
import com.cool.store.enums.ClaimStatusEnum;
import com.cool.store.enums.PayStatusEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -15,7 +16,6 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Objects;
import static com.cool.store.enums.WorkflowSubStageStatusEnum.PAY_DEPOSIT_50;
@Data
public class LinePaySubmitRequest {
@@ -88,7 +88,7 @@ public class LinePaySubmitRequest {
linePayDO.setPartnerId(request.getPartnerId());
linePayDO.setShopId(request.getShopId());
linePayDO.setLineId(request.getLineId());
linePayDO.setPayStatus(PAY_DEPOSIT_50.getCode());
linePayDO.setPayStatus(PayStatusEnum.FEES_HAVE_BEEN_PAID_50.getCode());
linePayDO.setXgjClaimStatus(ClaimStatusEnum.TO_BE_CLAIMED.getCode());
linePayDO.setPayType(request.getPayType());
linePayDO.setPayUserName(request.getPayUserName());

View File

@@ -6,6 +6,7 @@ import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
import java.util.List;
/**
@@ -17,45 +18,28 @@ import java.util.List;
@Data
public class OpeningOperationPlanRequest {
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("0-新增/1-同步")
private Boolean planSource;
@ApiModelProperty("调研结果")
private String surveyResult;
@ApiModelProperty("调研结果url")
private String surveyResultUrl;
@ApiModelProperty("活动主题")
private String activityTheme;
@ApiModelProperty("活动主题url")
private String activityThemeUrl;
@ApiModelProperty("筹备人员ids")
private List<String> preparationUserIds;
@ApiModelProperty("是否完成排车路线0未完成1完成")
private Byte routeCompleted;
@ApiModelProperty("开业时间")
private Date openTime;
public OpeningOperationPlanDO toOpeningOperationPlanDO() {
OpeningOperationPlanDO openingOperationPlanDO = new OpeningOperationPlanDO();
openingOperationPlanDO.setShopId(this.shopId);
openingOperationPlanDO.setPlanSource(this.planSource);
openingOperationPlanDO.setSurveyResult(this.surveyResult);
openingOperationPlanDO.setSurveyResultUrl(this.surveyResultUrl);
openingOperationPlanDO.setActivityThemeUrl(this.activityThemeUrl);
openingOperationPlanDO.setOpenTime(this.getOpenTime());
openingOperationPlanDO.setPreparationUserIds("");
if (CollectionUtils.isNotEmpty(this.preparationUserIds)) {
openingOperationPlanDO.setPreparationUserIds(String.join(",", this.preparationUserIds));
}
openingOperationPlanDO.setActivityTheme(this.activityTheme);
openingOperationPlanDO.setRouteCompleted(this.routeCompleted);
return openingOperationPlanDO;
}
}

View File

@@ -0,0 +1,23 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author: WangShuo
* @Date: 2025/06/18/18:12
* @Version 1.0
* @注释:
*/
@Data
public class ReceivingBankListRequest {
@ApiModelProperty(value = "品牌")
private List<String> franchiseBrandList;
@ApiModelProperty(value = "区域id")
private List<Long> regionIdList;
private Integer pageNum;
private Integer pageSize;
}

View File

@@ -0,0 +1,48 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: WangShuo
* @Date: 2025/06/18/17:57
* @Version 1.0
* @注释:
*/
@Data
public class ReceivingBankRequest {
@ApiModelProperty(value = "修改时候传")
private Long id;
@NotNull
@ApiModelProperty(value = "区域id")
private Long regionId;
@NotNull
@ApiModelProperty(value = "付款方式")
private Integer payType;
@ApiModelProperty(value = "品牌")
@NotBlank
private String franchiseBrand;
@NotBlank
@ApiModelProperty(value = "收款人")
private String payee;
@NotBlank
@ApiModelProperty(value = "收款账户")
private String receivingAccount;
@NotBlank
@ApiModelProperty(value = "收款银行")
private String bankName;
@NotBlank
@ApiModelProperty(value = "收款银行开户行")
private String branchBankName;
}

View File

@@ -0,0 +1,16 @@
package com.cool.store.request;
import lombok.Data;
/**
* @Auther zx_szh
* @Date 2026/1/7 15:23
* @Version 1.0
*/
@Data
public class StoreCodeRequest {
private String storeCode;
}

View File

@@ -35,4 +35,10 @@ public class WithdrawApplicationRequest implements Serializable {
@ApiModelProperty(value = "提现账户", required = true)
@NotBlank(message = "提现账户不能为空")
private String accountNo;
@ApiModelProperty(value = "门店ID")
private String relateStoreId;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.request.contract;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 合同费用导入行DTO
*/
@Data
public class ContractCostImportRowDTO {
@ExcelProperty(value = "合同编号")
private String contractNo;
@ExcelProperty(value = "费用类型")
private String feeType;
@ExcelProperty(value = "费用金额")
private BigDecimal amount;
@ExcelProperty(value = "收费频率(年)")
private BigDecimal chargeFrequencyYears;
@ExcelProperty(value = "优惠折扣金额")
private BigDecimal discountAmount;
@ExcelProperty(value = "优惠原因")
private String discountReason;
}

View File

@@ -0,0 +1,85 @@
package com.cool.store.request.contract;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 合同导入行DTO
*/
@Data
public class ContractImportRowDTO {
@ExcelProperty(value = "合同类型")
private String contractType;
@ExcelProperty(value = "合同编号")
private String contractNo;
@ExcelProperty(value = "门店编码")
private String storeCode;
@ExcelProperty(value = "加盟品牌")
private String brandName;
@ExcelProperty(value = "加盟来源")
private String source;
@ExcelProperty(value = "签约形式")
private String signForm;
@ExcelProperty(value = "合同时长(年)")
private BigDecimal contractYears;
@ExcelProperty(value = "合同开始日期")
private String startDate;
@ExcelProperty(value = "合同结束日期")
private String endDate;
@ExcelProperty(value = "合同状态")
private String contractStatus;
@ExcelProperty(value = "备注")
private String remark;
@ExcelProperty(value = "关联合同编号")
private String relatedContractNo;
@ExcelProperty(value = "签订日期")
private String signDate;
@ExcelProperty(value = "加盟费金额")
private BigDecimal joinFeeAmount;
@ExcelProperty(value = "加盟费收费频率(年)")
private BigDecimal joinFeeFrequencyYears;
@ExcelProperty(value = "加盟费优惠折扣金额")
private BigDecimal joinFeeDiscountAmount;
@ExcelProperty(value = "加盟费优惠原因")
private String joinFeeDiscountReason;
@ExcelProperty(value = "品牌使用费金额")
private BigDecimal brandUsageFeeAmount;
@ExcelProperty(value = "品牌使用费收费频率(年)")
private BigDecimal brandUsageFeeFrequencyYears;
@ExcelProperty(value = "品牌管理费金额")
private BigDecimal brandManagementFeeAmount;
@ExcelProperty(value = "品牌管理费收费频率(年)")
private BigDecimal brandManagementFeeFrequencyYears;
@ExcelProperty(value = "设计费金额")
private BigDecimal designFeeAmount;
@ExcelProperty(value = "系统使用费金额")
private BigDecimal systemUsageFeeAmount;
@ExcelProperty(value = "履约保证金金额")
private BigDecimal performanceBondAmount;
}

View File

@@ -0,0 +1,50 @@
package com.cool.store.request.contract;
import com.cool.store.common.PageBasicInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 合同列表查询请求
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ContractMasterQueryRequest extends PageBasicInfo {
/**
* 合同编号(模糊)
*/
private String contractNo;
/**
* 门店名称/门店编码(模糊)
*/
private String storeNameOrCode;
/**
* 合同结束日期范围-开始
*/
private Date endDateStart;
/**
* 合同结束日期范围-结束
*/
private Date endDateEnd;
/**
* 加盟品牌
*/
private String brandName;
/**
* 合同类型
*/
private String contractType;
/**
* 是否查询门店信息内部使用控制SQL JOIN
*/
private Boolean queryStore = false;
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.request.decoration;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import java.util.List;

View File

@@ -0,0 +1,35 @@
package com.cool.store.request.liepin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/23 15:16
* @Version 1.0
*/
@Data
@Builder
public class AddStoreEmpRequest {
@ApiModelProperty("企业id")
private Long tenant_id;
@ApiModelProperty("门店id")
private Long store_id;
@ApiModelProperty("手机号码")
private String mobile;
@ApiModelProperty("名字")
private String nick_name;
@ApiModelProperty("角色 1超管 2普通")
private Integer account_type;
@ApiModelProperty("职务 1店长 2人事专员 3经理 4职员")
private Long position_id;
}

View File

@@ -0,0 +1,35 @@
package com.cool.store.request.liepin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/22 19:33
* @Version 1.0
*/
@Data
@Builder
public class AddStoreRequest {
@ApiModelProperty("企业ID")
private Long tenant_id;
@ApiModelProperty("门店名称")
private String store_name;
@ApiModelProperty("门店地址")
private String address;
@ApiModelProperty("门店联系人姓名")
private String contact_person_name;
@ApiModelProperty("门店联系人手机号")
private String contact_person_mobile;
@ApiModelProperty("紧急手机号")
private String exigency_mobile;
@ApiModelProperty("门头照")
private String doorplate_picture;
@ApiModelProperty("经度")
private String longitude;
@ApiModelProperty("维度")
private String latitude;
}

View File

@@ -0,0 +1,23 @@
package com.cool.store.request.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/20 19:15
* @Version 1.0
*/
@Data
public class GetAccessTokenRequest {
private Long tenant_id;
private String mobile;
public GetAccessTokenRequest(){}
public GetAccessTokenRequest(Long tenant_id, String mobile) {
this.tenant_id = tenant_id;
this.mobile = mobile;
}
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.request.liepin;
import lombok.Builder;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/23 16:37
* @Version 1.0
*/
@Data
@Builder
public class GetPathRequest {
private String mobile;
private Long tenant_id;
private String store_id;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/23 17:52
* @Version 1.0
*/
@Data
public class UploadRequest {
private String file_name;
private String base64_content;
public UploadRequest(String fileName, String base64Content) {
this.file_name = fileName;
this.base64_content = base64Content;
}
}

View File

@@ -0,0 +1,115 @@
package com.cool.store.request.liepin;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* 薪班班GET请求
* @author sha.li
* @since 2025-03-28 15:19
*/
public class XbbGetRequest {
/**
* 请求路径
*/
private final String uri;
/**
* 请求参数
*/
private final Map<String, String> queryParam;
/**
* 是否需要解密响应
*/
private final boolean responseDecrypt;
/**
* 请求超时时间,单位:毫秒, 默认30秒
*/
private final int requestTimeout;
public static Builder newBuilder() {
return new Builder();
}
private XbbGetRequest(String uri, Map<String, String> queryParam, boolean responseDecrypt, int requestTimeout) {
this.uri = uri;
this.queryParam = queryParam;
this.responseDecrypt = responseDecrypt;
this.requestTimeout = requestTimeout;
}
public String getUri() {
return uri;
}
public Map<String, String> getQueryParam() {
return queryParam;
}
public boolean isResponseDecrypt() {
return responseDecrypt;
}
public int getRequestTimeout() {
return requestTimeout;
}
@Override
public String toString() {
return "XbbGetRequest{" +
"uri='" + uri + '\'' +
", queryParam=" + queryParam +
", responseDecrypt=" + responseDecrypt +
", requestTimeout=" + requestTimeout +
'}';
}
public static final class Builder {
private String uri;
private Map<String, String> queryParam;
private boolean responseDecrypt;
// 默认30秒
private int requestTimeout = (int) TimeUnit.SECONDS.toMillis(30);
private Builder() {
}
public static Builder aXbbGetRequest() {
return new Builder();
}
public Builder uri(String uri) {
this.uri = uri;
return this;
}
public Builder queryParam(Map<String, String> queryParam) {
this.queryParam = queryParam;
return this;
}
public Builder responseDecrypt(boolean responseDecrypt) {
this.responseDecrypt = responseDecrypt;
return this;
}
public Builder requestTimeout(int requestTimeout) {
this.requestTimeout = requestTimeout;
return this;
}
public XbbGetRequest build() {
return new XbbGetRequest(uri, queryParam, responseDecrypt, requestTimeout);
}
@Override
public String toString() {
return "Builder{" +
"uri='" + uri + '\'' +
", queryParam=" + queryParam +
", responseDecrypt=" + responseDecrypt +
", requestTimeout=" + requestTimeout +
'}';
}
}
}

View File

@@ -0,0 +1,148 @@
package com.cool.store.request.liepin;
import java.util.Map;
/**
* @author sha.li
* @since 2025-04-01 09:39
*/
public class XbbPostRequest {
/**
* 请求路径
*/
private final String uri;
/**
* 请求参数
*/
private final Map<String, String> queryParam;
/**
* 请求是否需要加密
*/
private final boolean requestEncrypt;
/**
* 是否需要解密响应
*/
private final boolean responseDecrypt;
/**
* 请求超时时间,单位:毫秒, 默认30秒
*/
private final int requestTimeout;
/**
* 请求body
*/
private final String jsonString;
public static Builder newBuilder() {
return new Builder().requestEncrypt(Boolean.FALSE).
responseDecrypt(Boolean.FALSE).requestTimeout(30000);
}
private XbbPostRequest(String uri,
Map<String, String> queryParam,
boolean requestEncrypt,
boolean responseDecrypt,
int requestTimeout,
String jsonString) {
this.uri = uri;
this.queryParam = queryParam;
this.requestEncrypt = requestEncrypt;
this.responseDecrypt = responseDecrypt;
this.requestTimeout = requestTimeout;
this.jsonString = jsonString;
}
public String getUri() {
return uri;
}
public Map<String, String> getQueryParam() {
return queryParam;
}
public boolean isRequestEncrypt() {
return requestEncrypt;
}
public boolean isResponseDecrypt() {
return responseDecrypt;
}
public int getRequestTimeout() {
return requestTimeout;
}
public String getJsonString() {
return jsonString;
}
@Override
public String toString() {
return "XbbPostRequest{" +
"uri='" + uri + '\'' +
", queryParam=" + queryParam +
", requestEncrypt=" + requestEncrypt +
", responseDecrypt=" + responseDecrypt +
", requestTimeout=" + requestTimeout +
", jsonString='" + jsonString + '\'' +
'}';
}
public static final class Builder {
private String uri;
private Map<String, String> queryParam;
private boolean requestEncrypt;
private boolean responseDecrypt;
private int requestTimeout;
private String jsonString;
private Builder() {
}
public Builder uri(String uri) {
this.uri = uri;
return this;
}
public Builder queryParam(Map<String, String> queryParam) {
this.queryParam = queryParam;
return this;
}
public Builder requestEncrypt(boolean requestEncrypt) {
this.requestEncrypt = requestEncrypt;
return this;
}
public Builder responseDecrypt(boolean responseDecrypt) {
this.responseDecrypt = responseDecrypt;
return this;
}
public Builder requestTimeout(int requestTimeout) {
this.requestTimeout = requestTimeout;
return this;
}
public Builder jsonString(String jsonString) {
this.jsonString = jsonString;
return this;
}
public XbbPostRequest build() {
return new XbbPostRequest(uri, queryParam, requestEncrypt, responseDecrypt, requestTimeout, jsonString);
}
@Override
public String toString() {
return "Builder{" +
"uri='" + uri + '\'' +
", queryParam=" + queryParam +
", requestEncrypt=" + requestEncrypt +
", responseDecrypt=" + responseDecrypt +
", requestTimeout=" + requestTimeout +
", jsonString='" + jsonString + '\'' +
'}';
}
}
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.request.renewal;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 新增续签申请请求
*/
@Data
public class RenewalApplicationCreateRequest {
@ApiModelProperty("门店ID")
@NotBlank(message = "门店ID不能为空")
private String storeId;
@ApiModelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,43 @@
package com.cool.store.request.renewal;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 续签申请列表查询请求
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RenewalApplicationQueryRequest extends PageBasicInfo {
@ApiModelProperty("关键字模糊查询(门店名称/门店编码)")
private String keyword;
@ApiModelProperty("所属运营大区")
private Long regionId;
@ApiModelProperty("合同开始时间范围-开始")
private Date contractStartDateStart;
@ApiModelProperty("合同开始时间范围-结束")
private Date contractStartDateEnd;
@ApiModelProperty("合同结束时间范围-开始")
private Date contractEndDateStart;
@ApiModelProperty("合同结束时间范围-结束")
private Date contractEndDateEnd;
@ApiModelProperty("是否翻新")
private Integer isRenovate;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("是否查询门店信息(内部使用)")
private Boolean queryStore = false;
}

View File

@@ -0,0 +1,48 @@
package com.cool.store.request.renewal;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 续签审批请求(运营顾问/片区顾问/集团工程部共用)
*/
@Data
public class RenewalApprovalRequest {
@ApiModelProperty("续签申请ID")
@NotNull(message = "续签申请ID不能为空")
private Long renewalId;
@ApiModelProperty("是否通过")
@NotNull(message = "审批结果不能为空")
private Boolean pass;
@ApiModelProperty("审批意见/原因")
private String remark;
@ApiModelProperty("是否翻新(仅运营顾问审批时使用) 1-翻新 0不翻新")
private Integer isRenovate;
@ApiModelProperty("门店所在区域(翻新时使用)")
private Long shopAreaId;
@ApiModelProperty("装修属性(翻新时使用)")
private String decorationAttributes;
@ApiModelProperty("装修等级(翻新时使用)")
private String decorationLevel;
@ApiModelProperty("装修设计要求(翻新时使用)")
private String decorationRequirement;
@ApiModelProperty("特殊情况说明(翻新时使用)")
private String specialInstruction;
@ApiModelProperty("店内360°视频URL翻新时使用")
private String videoUrl;
@ApiModelProperty("店铺门头照片URL翻新时使用")
private String shopFrontPhotoUrl;
}

View File

@@ -0,0 +1,24 @@
package com.cool.store.request.renewal;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 加盟商确认续签请求
*/
@Data
public class RenewalFranchiseeConfirmRequest {
@ApiModelProperty("续签申请ID")
@NotNull(message = "续签申请ID不能为空")
private Long renewalId;
@ApiModelProperty("是否确认续签true-确认false-不续签)")
@NotNull(message = "确认结果不能为空")
private Boolean confirmed;
@ApiModelProperty("备注")
private String remark;
}

View File

@@ -20,10 +20,14 @@ public class CoolTradeRecodePageRequest extends PageBasicInfo {
private Integer walletType;
@ApiModelProperty(value = "关键字(账户名称,账户编号,业务系统付款单号,提现银行卡号)",required = true)
private String keyword;
@ApiModelProperty(value = "1.转账 2.提现 3.充值",required = false)
private Integer tradeType;
@ApiModelProperty(value = "关键字(门店编号,门店名称)",required = true)
private String storeKeyword;
@ApiModelProperty(value = "费用科目",required = true)
private Integer feeItemId;
@ApiModelProperty(value = "费用科目Code",required = false)
private String expenseTypeCode;
@ApiModelProperty(value = "组织ID",required = false,hidden = true)
private Long orgId;
@@ -37,6 +41,7 @@ public class CoolTradeRecodePageRequest extends PageBasicInfo {
target.setFeeItemId(this.getFeeItemId());
target.setCurrentPage(this.getPageNum());
target.setPageSize(this.getPageSize());
target.setTradeType(this.getTradeType());
return target;
}

View File

@@ -21,6 +21,8 @@ public class TradeRecodePageRequest {
private String keyword;
@ApiModelProperty(value = "关键字(门店编号,门店名称)",required = true)
private String storeKeyword;
@ApiModelProperty(value = "1.转账 2.提现 3.充值",required = false)
private Integer tradeType;
@ApiModelProperty(value = "费用科目",required = true)
private Integer feeItemId;
@ApiModelProperty(value = "当前页码",required = true)

View File

@@ -0,0 +1,23 @@
package com.cool.store.request.xgj;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/6/16 15:40
* @Version 1.0
*/
@Data
public class CancelPayRequest {
private Long shopId;
private String ReceiptId;
public CancelPayRequest(){}
public CancelPayRequest(Long shopId, String receiptId) {
this.shopId = shopId;
ReceiptId = receiptId;
}
}

View File

@@ -0,0 +1,35 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
/**
* 线上支付 加盟费回调
* @Author suzhuhong
* @Date 2025/6/16 15:51
* @Version 1.0
*/
@Data
public class OnlinePayInfoRequest {
@ApiModelProperty("门店ID")
private Long shopId;
@ApiModelProperty("收款单ID")
private String receiptId;
@ApiModelProperty("支付状态 45-待支付 50-已缴费 55-缴费失败 60-已取消")
private Integer paymentStatus;
@Max(1)@Min(0)@NotNull
private Integer claimStatus;
@ApiModelProperty("缴费时间")
private Date payTime;
@ApiModelProperty("支付交易流水号")
private String paySerialNumber;
@ApiModelProperty("实际缴纳金额")
private BigDecimal actAmount;
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
@@ -18,9 +19,12 @@ public class ReceiptCallBackRequest {
@NotBlank
private String receiptId;
@Max(1)@Min(0)@NotNull
@Max(2)@Min(0)@NotNull
private Integer claimStatus;
@ApiModelProperty("新管家收款单失败原因")
private String failReason;
/**
* 支付方式,线下支付-0网商钱包支付-2
*/

View File

@@ -0,0 +1,55 @@
package com.cool.store.request.xgj;
import com.cool.store.entity.LinePayDO;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author suzhuhong
* @Date 2025/6/26 15:29
* @Version 1.0
*/
@Data
public class ReceiptOnlineRequest {
private Long shopId;
private Integer billId;
private String receiptId;
private String payer1;
private BigDecimal paymentAmount;
private Integer payWay ;
private Integer claimStatus;
private Integer paymentStatus;
//收款方
private String payee;
//收款方账户
private String receivingAccount;
//收款银行
private String bankName;
//收款银行开户行
private String branchBankName;
public ReceiptOnlineRequest() {
}
public ReceiptOnlineRequest(Long shopId, Integer billId, LinePayDO payDO) {
this.shopId = shopId;
this.billId = billId;
this.receiptId = payDO.getPaymentReceiptCode();
this.payer1 = payDO.getPayUserName();
this.paymentAmount = payDO.getAmount();
this.payWay = payDO.getPayType()==3?1:0;
this.claimStatus = payDO.getXgjClaimStatus();
this.paymentStatus = payDO.getPayStatus();
}
}

View File

@@ -1,6 +1,5 @@
package com.cool.store.request.xgj;
import com.cool.store.utils.UUIDUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -250,6 +250,9 @@ public class AddSignFranchiseResponse {
@ApiModelProperty("老店编码 签约类型选择老店转加盟时有")
private String oldShopCode;
@ApiModelProperty("收银费(系统费)大写")
private String bigCashierFee;
@ApiModelProperty("合同加盟费")
@NotBlank(message = "合同加盟费不能为空")
private String contractFranchiseFee;
@@ -326,8 +329,6 @@ public class AddSignFranchiseResponse {
*/
@ApiModelProperty("加盟费折扣金额")
private String discountAmount;
@ApiModelProperty("收银费(系统费)大写")
private String bigCashierFee;
@Column(name = "currency")
private String currency;

View File

@@ -8,6 +8,7 @@ import com.cool.store.annotation.DictField;
import com.cool.store.converter.StringListConverter;
import com.cool.store.enums.wallet.AdjustTypeEnum;
import com.cool.store.enums.wallet.DocStatusEnum;
import com.cool.store.utils.BigDecimalUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -157,6 +158,11 @@ public class AdjustmentOrderResponse implements Serializable {
@ColumnWidth(30)
private Date payTime;
@ApiModelProperty("拒绝原因")
@ExcelProperty(value = "拒绝原因", order = 21)
@ColumnWidth(30)
private String rejectReason;
@ApiModelProperty("费用单类型 1-费用单 2-调整单")
@ExcelIgnore
private Integer expenseSheetType;
@@ -170,4 +176,12 @@ public class AdjustmentOrderResponse implements Serializable {
DocStatusEnum docStatusEnum = DocStatusEnum.fromStatus(this.status);
return docStatusEnum!=null?docStatusEnum.getDesc():"";
}
public BigDecimal getAdjustAmount() {
if (this.adjustType!=null && this.adjustType==2){
return BigDecimal.ZERO.subtract(this.adjustAmount);
}
return this.adjustAmount;
}
}

View File

@@ -66,7 +66,7 @@ public class FranchiseFeePayInfoResponse {
@ApiModelProperty("提交时间")
private Date createTime;
@ApiModelProperty("认领状态 0-待认领 1-已认领")
@ApiModelProperty("认领状态 0-待认领 1-已认领,2-认领失败")
private Integer xgjClaimStatus;
@ApiModelProperty("支付状态 45:待缴费 50:已缴费")
@@ -74,4 +74,7 @@ public class FranchiseFeePayInfoResponse {
@ApiModelProperty("付款单编号")
private String paymentReceiptCode;
@ApiModelProperty("新管家认领失败原因")
private String xgjFailReason;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: WangShuo
* @Date: 2025/06/16/16:09
* @Version 1.0
* @注释:
*/
@Data
public class FranchiseFeePayOnlineResponse {
private Long shopId;
@ApiModelProperty("付款单编码(系统生成)")
private String paymentReceiptCode;
}

View File

@@ -65,6 +65,13 @@ public class FranchiseFeeResponse {
@ApiModelProperty("新管家已缴金额")
private BigDecimal xgjFeesPaid;
@ApiModelProperty("意向签约人1")
private String intendedSignatoryFirst;
@ApiModelProperty("意向签约人2")
private String intendedSignatorySecond;
@ApiModelProperty("收银费(系统费)")
private String cashierFee;
@@ -218,6 +225,10 @@ public class FranchiseFeeResponse {
franchiseFeeResponse.setXgjCollectionStatus(franchiseFeeDO.getXgjCollectionStatus());
franchiseFeeResponse.setXgjRemainderPayableAmount(franchiseFeeDO.getXgjRemainderPayableAmount());
franchiseFeeResponse.setXgjFeesPaid(franchiseFeeDO.getXgjFeesPaid());
franchiseFeeResponse.setPayType(franchiseFeeDO.getPayType());
franchiseFeeResponse.setIntendedSignatoryFirst(franchiseFeeDO.getIntendedSignatoryFirst());
franchiseFeeResponse.setIntendedSignatorySecond(franchiseFeeDO.getIntendedSignatorySecond());
franchiseFeeResponse.setIsRefund(franchiseFeeDO.getIsRefund());
franchiseFeeResponse.setCashierFee(franchiseFeeDO.getCashierFee());
franchiseFeeResponse.setPayType(franchiseFeeDO.getPayType());
franchiseFeeResponse.setIsRefund(franchiseFeeDO.getIsRefund());

View File

@@ -33,6 +33,43 @@ public class OrderSummaryResponse {
private Boolean is_cache;
@ApiModelProperty("废弃")
private Integer cache_refresh_time;
public static BigDecimal calculateExpectedIncome(OrderSummaryResponse response) {
BigDecimal posIncome = calculatePosIncome(response.getPos_data());
BigDecimal takeawayIncome = response.getTakeaway_data() != null && response.getTakeaway_data().getTotal_pre_income() != null
? response.getTakeaway_data().getTotal_pre_income()
: BigDecimal.ZERO;
BigDecimal appIncome = response.getWenma_app_data() != null && response.getWenma_app_data().getTotal_pre_income() != null
? response.getWenma_app_data().getTotal_pre_income()
: BigDecimal.ZERO;
return posIncome.add(takeawayIncome).add(appIncome);
}
private static BigDecimal calculatePosIncome(PosData posData) {
if (posData == null) {
return BigDecimal.ZERO;
}
BigDecimal profitTotalAmount = posData.getProfit_total_amount() != null
? posData.getProfit_total_amount()
: BigDecimal.ZERO;
BigDecimal merchantContribute = posData.getOut_discount_merchant_contribute_total_amount() != null
? posData.getOut_discount_merchant_contribute_total_amount()
: BigDecimal.ZERO;
BigDecimal logisticsCost = posData.getLogistics_cost_price_total_amount() != null
? posData.getLogistics_cost_price_total_amount()
: BigDecimal.ZERO;
BigDecimal subsidy = posData.getSubsidy_total_amount() != null
? posData.getSubsidy_total_amount()
: BigDecimal.ZERO;
return profitTotalAmount
.subtract(merchantContribute)
.subtract(logisticsCost)
.add(subsidy);
}
}
// POS数据实体类
@@ -83,7 +120,7 @@ class TakeawayData {
@ApiModelProperty("废弃")
private BigDecimal total_deliver_fee;
@ApiModelProperty("预计收入 统计时间内,今日下单订单的预收之和,不包含已取消和全额退款订单")
private BigDecimal total_pre_income;
public BigDecimal total_pre_income;
@ApiModelProperty("营业额 统计时间内,包含商品销售额、餐盒费、自配送费之和")
private BigDecimal total_sales_price;
@ApiModelProperty("有效订单笔数 统计时间内,今日下单订单数量,不包含取消订单与全部退款订单")

View File

@@ -0,0 +1,58 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @Author: WangShuo
* @Date: 2025/06/18/18:06
* @Version 1.0
* @注释:
*/
@Data
public class ReceivingBankResponse {
private Long id;
@ApiModelProperty(value = "品牌")
private String franchiseBrand;
@ApiModelProperty(value = "加盟集团")
private String group;
@ApiModelProperty(value = "大区id")
private Long regionId;
@ApiModelProperty(value = "大区名字")
private String regionName;
@ApiModelProperty(value = "付款方式")
private Integer payType;
@ApiModelProperty(value = "收款人")
private String payee;
@ApiModelProperty(value = "收款账户")
private String receivingAccount;
@ApiModelProperty(value = "收款银行")
private String bankName;
@ApiModelProperty(value = "收款银行开户行")
private String branchBankName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人")
private String createUserName;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "更新人")
private String updateUserName;
}

View File

@@ -50,4 +50,13 @@ public class WithdrawApplicationResponse implements Serializable {
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("门店ID")
private String relateStoreId;
@ApiModelProperty("门店名称")
private String relateStoreName;
@ApiModelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,15 @@
package com.cool.store.response.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/23 17:56
* @Version 1.0
*/
@Data
public class FileResponse {
private String file_id;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.response.liepin;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import org.apache.poi.ss.formula.functions.T;
/**
* @Author suzhuhong
* @Date 2025/5/20 19:00
* @Version 1.0
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class LiePinApiResponse<T> {
private String msg;
private int code;
private Boolean is_success;
private T data;
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.response.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/20 19:01
* @Version 1.0
*/
@Data
public class LiePinTokenInfo {
private String access_token;
private Long expire;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.response.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/23 16:39
* @Version 1.0
*/
@Data
public class PathResponse {
private String account_id;
private String path;
}

View File

@@ -0,0 +1,15 @@
package com.cool.store.response.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/23 15:20
* @Version 1.0
*/
@Data
public class StoreEmpInfoResponse {
private Long account_id;
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.response.liepin;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/22 19:41
* @Version 1.0
*/
@Data
public class StoreInfoResponse {
/**
* 员工账号ID
*/
private Long store_id;
}

View File

@@ -0,0 +1,40 @@
package com.cool.store.response.liepin;
/**
* @author sha.li
* @since 2025-03-28 13:49
*/
public class TokenResponse extends XbbResponse<TokenResponse.TokenData> {
public static class TokenData {
private String token;
private Long expire;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public Long getExpire() {
return expire;
}
public void setExpire(Long expire) {
this.expire = expire;
}
}
@Override
public String toString() {
return "TokenResponse{" +
"data=" + data +
", code=" + code +
", msg='" + msg + '\'' +
", success=" + success +
'}';
}
}

View File

@@ -0,0 +1,67 @@
package com.cool.store.response.liepin;
/**
* @author sha.li
* @since 2025-03-28 13:49
*/
public class XbbResponse<T> {
protected int code;
protected String msg;
protected T data;
protected boolean success;
protected boolean is_success;
public String getMsg() {
return msg;
}
public XbbResponse<T> setMsg(String msg) {
this.msg = msg;
return this;
}
public int getCode() {
return code;
}
public XbbResponse<T> setCode(int code) {
this.code = code;
return this;
}
public T getData() {
return data;
}
public XbbResponse<T> setData(T data) {
this.data = data;
return this;
}
public boolean isIs_success() {
return is_success;
}
public void setIs_success(boolean is_success) {
this.is_success = is_success;
}
public boolean isSuccess() {
return success;
}
public XbbResponse<T> setSuccess(boolean success) {
this.success = success;
return this;
}
@Override
public String toString() {
return "XbbResponse{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
", success=" + success +
'}';
}
}

View File

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import javax.persistence.Column;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -58,7 +59,15 @@ public class OpeningOperationPlanVO {
private String approver;
@ApiModelProperty("提交人")
private String submiter;
@ApiModelProperty("开业时间")
private Date openTime;
@ApiModelProperty("第一天收入")
private String firstDayIncome;
@ApiModelProperty("第二天收入")
private String secondDayIncome;
@ApiModelProperty("第三天收入")
private String thirdDayIncome;
public OpeningOperationPlanVO() {
}
@@ -72,5 +81,6 @@ public class OpeningOperationPlanVO {
this.surveyResultUrl = openingOperationPlanDO.getSurveyResultUrl();
this.activityTheme = openingOperationPlanDO.getActivityTheme();
this.surveyResult = openingOperationPlanDO.getSurveyResult();
this.openTime = openingOperationPlanDO.getOpenTime();
}
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.vo.approval;
import lombok.Data;
import java.util.List;
/**
* 审批批次VO同一版本下的节点
*/
@Data
public class ApprovalBatchVO {
/**
* 版本号
*/
private Long version;
/**
* 节点名称
*/
private String nodeName;
/**
* 节点代码
*/
private String nodeCode;
/**
* 处理人列表
*/
private List<ApprovalHandleVO> handleUserIdList;
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.vo.approval;
import lombok.Data;
import java.util.List;
/**
* 按版本分组的审批记录VO
*/
@Data
public class ApprovalGroupedVO {
/**
* 申请编号
*/
private String applicationNo;
/**
* 审批批次列表
*/
private List<ApprovalBatchVO> batches;
}

View File

@@ -0,0 +1,45 @@
package com.cool.store.vo.approval;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 审批处理人VO
*/
@Data
public class ApprovalHandleVO {
/**
* 处理人ID
*/
private String handleUserId;
/**
* 处理人名称
*/
private String handleUserName;
/**
* 审批状态1-已处理2-待处理
*/
@ApiModelProperty("审批状态1-已处理2-待处理")
private String status;
/**
* 审批结果pass-通过reject-拒绝
*/
@ApiModelProperty("审批结果pass-通过reject-拒绝")
private String result;
/**
* 审批意见
*/
@ApiModelProperty("审批意见")
private String comment;
@ApiModelProperty("操作时间")
private String operateTime;
@ApiModelProperty("提交类型 0-提交 1-审批")
private Integer submitType;
}

View File

@@ -0,0 +1,67 @@
package com.cool.store.vo.contract;
import lombok.Data;
import java.math.BigDecimal;
/**
* 合同费用VO
*/
@Data
public class ContractCostVO {
/**
* 加盟费金额(元)
*/
private BigDecimal joinFeeAmount;
/**
* 加盟费收费频率计数(年)
*/
private BigDecimal joinFeeFrequencyYears;
/**
* 加盟费优惠总折扣金额(元)
*/
private BigDecimal joinFeeDiscountAmount;
/**
* 加盟费优惠原因
*/
private String joinFeeDiscountReason;
/**
* 品牌使用费金额(元)
*/
private BigDecimal brandUsageFeeAmount;
/**
* 品牌使用费收费频率计数(年)
*/
private BigDecimal brandUsageFeeFrequencyYears;
/**
* 品牌管理费金额(元)
*/
private BigDecimal brandManagementFeeAmount;
/**
* 品牌管理费收费频率计数(年)
*/
private BigDecimal brandManagementFeeFrequencyYears;
/**
* 设计费金额(元)
*/
private BigDecimal designFeeAmount;
/**
* 系统使用费金额(元)
*/
private BigDecimal systemUsageFeeAmount;
/**
* 履约保证金金额(元)
*/
private BigDecimal performanceBondAmount;
}

View File

@@ -0,0 +1,57 @@
package com.cool.store.vo.contract;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 合同详情响应VO
*/
@Data
public class ContractMasterDetailVO {
private Long contractId;
private String contractType;
private String contractNo;
private String storeId;
private String storeCode;
private String storeName;
private String brandName;
private String source;
private String signForm;
private BigDecimal contractYears;
private Date startDate;
private Date endDate;
private String contractStatus;
private String currency;
private Date signDate;
private String relatedContractNo;
private String remark;
private String createUserName;
private Date createdTime;
/**
* 合同费用列表
*/
private List<ContractCostVO> costList;
}

Some files were not shown because too many files have changed in this diff Show More