Merge remote-tracking branch 'xfsg/cc_partner_init' into cc_partner_init
# Conflicts: # coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java # coolstore-partner-service/src/main/java/com/cool/store/service/impl/JoinIntentionServiceImpl.java
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package com.cool.store.enums;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: MessageEnum
|
||||
* @Description:
|
||||
* @date 2024-03-27 10:50
|
||||
*/
|
||||
public enum MessageEnum {
|
||||
|
||||
MESSAGE_1("您有一份加盟意向申请,请查收。", "##### 加盟商姓名:{0}\n##### 意向加盟区域:{1}\n", "https://oss.coolcollege.cn/53c11d2f4ec94d4fa7edd7a96e40e2d6.png"),
|
||||
MESSAGE_2("您有一份邀约面谈预约,请查收。", "##### 加盟商姓名:{0}\n##### 意向加盟区域:{1}\n##### 预约面谈时间:{2}\n", "https://oss.coolcollege.cn/53c11d2f4ec94d4fa7edd7a96e40e2d6.png"),
|
||||
|
||||
|
||||
;
|
||||
|
||||
private String title;
|
||||
|
||||
private String content;
|
||||
|
||||
private String imageUrl;
|
||||
|
||||
MessageEnum(String title, String content, String imageUrl) {
|
||||
this.title = title;
|
||||
this.content = content;
|
||||
this.imageUrl = imageUrl;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public String getImageUrl() {
|
||||
return imageUrl;
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ public enum RocketMqTagEnum {
|
||||
AUTH_SCOPE_CHANGE("auth_scope_change","授权范围变更"),
|
||||
USER_EVENT("user_event","钉钉通讯录变更事件"),
|
||||
DEPT_EVENT("dept_event","部门事件"),
|
||||
STORE_DING_QUEUE("store_ding_queue", "微应用钉钉消息发送"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.cool.store.enums;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: SmsCodeTypeEnum
|
||||
* @Description: 短信验证码类型
|
||||
* @date 2021-07-20 9:47
|
||||
*/
|
||||
public enum SmsCodeTypeEnum {
|
||||
|
||||
LOGIN("SMS_220325070","验证码登录", 10 * 60),
|
||||
;
|
||||
|
||||
private String templateCode;
|
||||
|
||||
private String message;
|
||||
|
||||
private int cacheSeconds;
|
||||
|
||||
SmsCodeTypeEnum(String templateCode, String message, int cacheSeconds) {
|
||||
this.templateCode = templateCode;
|
||||
this.message = message;
|
||||
this.cacheSeconds = cacheSeconds;
|
||||
}
|
||||
|
||||
public String getTemplateCode() {
|
||||
return templateCode;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public int getCacheSeconds() {
|
||||
return cacheSeconds;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: BussinessStateEnum
|
||||
* @Description:目前经营情况
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum BussinessStateEnum {
|
||||
|
||||
BUSSINESS_STATE_1(1, "营业中"),
|
||||
BUSSINESS_STATE_2(2, "空铺"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
BussinessStateEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: CompetitorBusinessCapacityEnum
|
||||
* @Description:竞争对手经营能力
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum CompetitorBusinessCapacityEnum {
|
||||
|
||||
COMPETITOR_BUSINESS_CAPACITY_1(1, "非常好", 0),
|
||||
COMPETITOR_BUSINESS_CAPACITY_2(2, "好", 1),
|
||||
COMPETITOR_BUSINESS_CAPACITY_3(3, "一般", 3),
|
||||
COMPETITOR_BUSINESS_CAPACITY_4(4, "差", 4),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
CompetitorBusinessCapacityEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: CompetitorTypeEnum
|
||||
* @Description:竞争对手性质
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum CompetitorTypeEnum {
|
||||
|
||||
WANT_SHOP_SIZE_1(1, "连锁店", 1),
|
||||
WANT_SHOP_SIZE_2(2, "强势单店", 2),
|
||||
WANT_SHOP_SIZE_3(3, "经营散户", 3),
|
||||
WANT_SHOP_SIZE_4(4, "小型摊贩", 5),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
CompetitorTypeEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: ConsumerAbilityEnum
|
||||
* @Description:消费能力
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum ConsumerAbilityEnum {
|
||||
|
||||
CONSUMER_ABILITY_1(1, "高端", 10),
|
||||
CONSUMER_ABILITY_2(2, "中高端", 8),
|
||||
CONSUMER_ABILITY_3(3, "中端", 6),
|
||||
CONSUMER_ABILITY_4(4, "低端", 4),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
ConsumerAbilityEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: CoverCommunityEnum
|
||||
* @Description:覆盖社区(半径500米内)
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum CoverCommunityEnum {
|
||||
|
||||
COVER_COMMUNITY_1(1, "800户以下", 5),
|
||||
COVER_COMMUNITY_2(2, "800户-1200户", 10),
|
||||
COVER_COMMUNITY_3(3, "1200户-2000户", 12),
|
||||
COVER_COMMUNITY_4(4, "2000户以上", 15),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
CoverCommunityEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: FlowRateCalculateEnum
|
||||
* @Description:人流测算(18点-20点)
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum FlowRateCalculateEnum {
|
||||
|
||||
FLOW_RATE_CALCULATE_1(1, ">400人/时以上", 8),
|
||||
FLOW_RATE_CALCULATE_2(2, "300~400人/时", 6),
|
||||
FLOW_RATE_CALCULATE_3(3, "200~300人/时", 5),
|
||||
FLOW_RATE_CALCULATE_4(4, "100~200人/时", 3),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
FlowRateCalculateEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: FlowRateEnum
|
||||
* @Description:高峰期人流
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum FlowRateEnum {
|
||||
|
||||
FLOW_RATE_1(1, "200以下"),
|
||||
FLOW_RATE_2(2, "200~300"),
|
||||
FLOW_RATE_3(3, "300~400"),
|
||||
FLOW_RATE_4(4, "400以上"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
FlowRateEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: FarmerMarketEnum
|
||||
* @Description:聚客点农贸市场
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum GatherGuestFarmerMarketEnum {
|
||||
|
||||
GATHER_GUEST_FARMER_MARKET_1(1, "是", 5),
|
||||
GATHER_GUEST_FARMER_MARKET_2(2, "否", 3),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
GatherGuestFarmerMarketEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: GatherGuestHospitalEnum
|
||||
* @Description:聚客点医院
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum GatherGuestHospitalEnum {
|
||||
|
||||
GATHER_GUEST_HOSPITAL_1(1, "甲等医院", 5),
|
||||
GATHER_GUEST_HOSPITAL_2(2, "市级医院", 3),
|
||||
GATHER_GUEST_HOSPITAL_3(3, "县区级医院", 2),
|
||||
GATHER_GUEST_HOSPITAL_4(4, "无医院", 1)
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
GatherGuestHospitalEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: GatherGuestSchoolEnum
|
||||
* @Description:聚客点学校
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum GatherGuestSchoolEnum {
|
||||
|
||||
GATHER_GUEST_SCHOOL_1(1, "幼儿园/小学", 4),
|
||||
GATHER_GUEST_SCHOOL_2(2, "大学/学院", 3),
|
||||
GATHER_GUEST_SCHOOL_3(3, "初中/高中", 2),
|
||||
GATHER_GUEST_SCHOOL_4(4, "无学校", 1)
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
GatherGuestSchoolEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: IntendPositionEnum
|
||||
* @Description:绿化带
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum GreenBeltEnum {
|
||||
|
||||
GREEN_BELT_1(1, "门口无绿化带阻挡", 3),
|
||||
GREEN_BELT_2(2, "门口有绿化带阻挡", 1),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
GreenBeltEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: StoreOutlookEnum
|
||||
* @Description:门店观赡
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum GuestConvenienceEnum {
|
||||
|
||||
GUEST_CONVENIENCE_1(1, "门口5米有人行横道", 3),
|
||||
GUEST_CONVENIENCE_2(2, "门口15米有人行横道", 2),
|
||||
GUEST_CONVENIENCE_3(3, "无人行横道", 1),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
GuestConvenienceEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: IntendPositionEnum
|
||||
* @Description:意向店所处位置
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum IntendPositionEnum {
|
||||
|
||||
INTEND_POSITION_1(1, "十字路口", 6),
|
||||
INTEND_POSITION_2(2, "居民生活中心", 5),
|
||||
INTEND_POSITION_3(3, "社区出入口", 5),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
IntendPositionEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: NearBusinessConditionEnum
|
||||
* @Description:周边业态经营情况(100米内)
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum NearBusinessConditionEnum {
|
||||
|
||||
NEAR_BUSINESS_CONDITION_1(1, "经营状况良好", 3),
|
||||
NEAR_BUSINESS_CONDITION_2(2, "经营状况一般", 2),
|
||||
NEAR_BUSINESS_CONDITION_3(3, "经营状况差", 1)
|
||||
;
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
NearBusinessConditionEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: NearCompetitorEnum
|
||||
* @Description:周边(100m内)餐饮店
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum NearCompetitorEnum {
|
||||
|
||||
NEAR_COMPETITOR_1(1, "品牌水果店2家以上", 1),
|
||||
NEAR_COMPETITOR_2(2, "品牌水果店1家及以上", 2),
|
||||
NEAR_COMPETITOR_3(3, "夫妻水果店1家及以上", 2),
|
||||
NEAR_COMPETITOR_4(4, "无水果店", 3)
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
NearCompetitorEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: NearRepastEnum
|
||||
* @Description:周边(100m内)餐饮店
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum NearNeighborEnum {
|
||||
|
||||
NEAR_NEIGHBOR_1(1, "小业态品牌店3家以上", 4),
|
||||
NEAR_NEIGHBOR_2(2, "小业态普通店3家以上", 2),
|
||||
NEAR_NEIGHBOR_3(3, "普通小业态店3家以下", 1),
|
||||
NEAR_NEIGHBOR_4(4, "无小业态店", 1),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
NearNeighborEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: NearRepastEnum
|
||||
* @Description:周边(100m内)餐饮店
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum NearRepastEnum {
|
||||
|
||||
NEAR_REPAST_1(1, "餐饮连锁店或6家以上餐饮店", 4),
|
||||
NEAR_REPAST_2(2, "普通餐饮店", 3),
|
||||
NEAR_REPAST_3(3, "无餐饮店", 1),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
NearRepastEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: PaymentMethodEnum
|
||||
* @Description:付款方式
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum PaymentMethodEnum {
|
||||
|
||||
PAYMENT_METHOD_1(1, "月付"),
|
||||
PAYMENT_METHOD_2(2, "季付"),
|
||||
PAYMENT_METHOD_3(3, "半年付"),
|
||||
PAYMENT_METHOD_4(4, "年付"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
PaymentMethodEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: PointDirectionEnum
|
||||
* @Description:店铺方位
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum PointDirectionEnum {
|
||||
|
||||
POINT_DIRECTION_1(1, "主要动线"),
|
||||
POINT_DIRECTION_2(2, "次要动线"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
PointDirectionEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: PropertyStatusEnum
|
||||
* @Description:物业状态
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum PropertyStatusEnum {
|
||||
|
||||
PROPERTY_STATUS_1(1, "原始房东"),
|
||||
PROPERTY_STATUS_2(2, "二房东"),
|
||||
PROPERTY_STATUS_3(3, "三房东"),
|
||||
PROPERTY_STATUS_4(4, "招投标性质"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
PropertyStatusEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: ShopAreaTypeEnum
|
||||
* @Description:商圈类型
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum ShopAreaTypeEnum {
|
||||
|
||||
SHOP_AREA_TYPE_1(1, "社区商圈"),
|
||||
SHOP_AREA_TYPE_2(2, "综合商圈"),
|
||||
SHOP_AREA_TYPE_3(3, "商业商圈"),
|
||||
SHOP_AREA_TYPE_4(4, "学校商圈"),
|
||||
SHOP_AREA_TYPE_5(5, "医院商圈"),
|
||||
SHOP_AREA_TYPE_6(6, "农贸商圈"),
|
||||
SHOP_AREA_TYPE_7(7, "纯人流商圈"),
|
||||
SHOP_AREA_TYPE_8(8, "办公商圈"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
ShopAreaTypeEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: SiteConditionsEnum
|
||||
* @Description:立地条件
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum SiteConditionsEnum {
|
||||
|
||||
SITE_CONDITIONS_1(1, "单门面"),
|
||||
SITE_CONDITIONS_2(2, "双门面"),
|
||||
SITE_CONDITIONS_3(3, "多门面"),
|
||||
SITE_CONDITIONS_4(4, "转角"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
SiteConditionsEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: StoreFlowTrendEnum
|
||||
* @Description:门店人流动向
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum StoreFlowTrendEnum {
|
||||
|
||||
STORE_FLOW_TREND_1(1, "主要流动路线", 7),
|
||||
STORE_FLOW_TREND_2(2, "次要流动路线", 4),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
StoreFlowTrendEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: StoreOutlookEnum
|
||||
* @Description:门店观赡
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum StoreOutlookEnum {
|
||||
|
||||
STORE_OUTLOOK_1(1, "观赡非常好", 4),
|
||||
STORE_OUTLOOK_2(2, "观赡一般", 3),
|
||||
STORE_OUTLOOK_3(2, "观赡差", 2),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
StoreOutlookEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.cool.store.enums.point;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: WantShopSizeEnum
|
||||
* @Description:意向门店开间尺寸
|
||||
* @date 2024-03-26 16:08
|
||||
*/
|
||||
public enum WantShopSizeEnum {
|
||||
|
||||
WANT_SHOP_SIZE_1(1, "转角", 6),
|
||||
WANT_SHOP_SIZE_2(2, "12米以上", 2),
|
||||
WANT_SHOP_SIZE_3(3, "8-12米", 3),
|
||||
WANT_SHOP_SIZE_4(4, "4-8米", 5),
|
||||
WANT_SHOP_SIZE_5(5, "4米以下", 3)
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Integer score;
|
||||
|
||||
WantShopSizeEnum(Integer code, String desc, Integer score) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -103,6 +103,11 @@ public class HyOpenAreaInfoDAO {
|
||||
return ListUtils.emptyIfNull(hyOpenAreaInfoDOS).stream().collect(Collectors.toMap(k->k.getId(), v->v.getAreaPath().replace("/"," ").trim()));
|
||||
}
|
||||
|
||||
public String selectNameMapById(Long id){
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDOS = hyOpenAreaInfoMapper.selectById(id);
|
||||
return hyOpenAreaInfoDOS.getAreaPath().replace("/", " ").trim();
|
||||
}
|
||||
|
||||
|
||||
public HyOpenAreaInfoDO selectById(Long id){
|
||||
if (id==null){
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.cool.store.entity.LineFollowLogDO;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.mapper.LineFollowLogMapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: LineFollowLogDAO
|
||||
* @Description:跟进日志
|
||||
* @date 2024-03-27 14:33
|
||||
*/
|
||||
@Slf4j
|
||||
@Repository
|
||||
public class LineFollowLogDAO {
|
||||
|
||||
@Resource
|
||||
private LineFollowLogMapper lineFollowLogMapper;
|
||||
|
||||
public Page<LineFollowLogDO> getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize){
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
return lineFollowLogMapper.getFollowLogPage(lineId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增跟进线索
|
||||
* @param lineInfo
|
||||
* @param operateUserId
|
||||
* @param operateUsername
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
public Long addFollowLog(LineInfoDO lineInfo, String operateUserId, String operateUsername, String message){
|
||||
if(Objects.isNull(lineInfo)){
|
||||
return null;
|
||||
}
|
||||
LineFollowLogDO followLog = new LineFollowLogDO(lineInfo.getPartnerId(), lineInfo.getId(), operateUserId, operateUsername, lineInfo.getWorkflowStage(), lineInfo.getWorkflowSubStage(), lineInfo.getWorkflowSubStageStatus(), message);
|
||||
lineFollowLogMapper.insertSelective(followLog);
|
||||
return followLog.getId();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.request.JoinIntentionRequest;
|
||||
import com.cool.store.entity.MemberQuestionDO;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@Mapper
|
||||
public interface JoinIntentionMapper {
|
||||
|
||||
boolean insert(@Param("request") JoinIntentionRequest request);
|
||||
boolean insertOrUpdate(@Param("request") MemberQuestionDO request);
|
||||
|
||||
MemberQuestionDO getByLineId(@Param("lineId") Long lineId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.LineFollowLogDO;
|
||||
import com.github.pagehelper.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
public interface LineFollowLogMapper extends Mapper<LineFollowLogDO> {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param lineId
|
||||
* @return
|
||||
*/
|
||||
Page<LineFollowLogDO> getFollowLogPage(@Param("lineId")Long lineId);
|
||||
}
|
||||
@@ -18,4 +18,6 @@ public interface LineInfoMapper extends Mapper<LineInfoDO> {
|
||||
* @return
|
||||
*/
|
||||
List<LineInfoDO> listByInvestmentManager(@Param("investmentManagerUserId") String investmentManagerUserId, @Param("code") Integer code);
|
||||
|
||||
void insertOrUpdate(@Param("param") LineInfoDO lineInfoParam);
|
||||
}
|
||||
@@ -1,69 +1,117 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.JoinIntentionMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.PartnerBaseInfoDO">
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="partner_id" jdbcType="VARCHAR" property="partnerId" />
|
||||
<result column="line_id" jdbcType="BIGINT" property="lineId"/>
|
||||
<result column="join_type" jdbcType="TINYINT" property="joinType"/>
|
||||
<result column="mobile" jdbcType="VARCHAR" property="mobile" />
|
||||
<result column="sex" jdbcType="TINYINT" property="sex" />
|
||||
<result column="username" jdbcType="VARCHAR" property="username" />
|
||||
<result column="want_shop_area" jdbcType="VARCHAR" property="wantShopArea" />
|
||||
<result column="area_code" jdbcType="VARCHAR" property="areaCode" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="live_area" jdbcType="VARCHAR" property="liveArea"/>
|
||||
<result column="live_address" jdbcType="VARCHAR" property="liveAddress"/>
|
||||
<result column="joining_questionnaire" jdbcType="VARCHAR" property="joiningQuestionnaire"/>
|
||||
<result column="deleted" jdbcType="TINYINT" property="deleted"/>
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.MemberQuestionDO">
|
||||
<id column="id" property="id" jdbcType="BIGINT"/>
|
||||
<result column="audit_id" property="auditId" jdbcType="BIGINT"/>
|
||||
<result column="partner_id" property="partnerId" jdbcType="VARCHAR"/>
|
||||
<result column="line_id" property="lineId" jdbcType="BIGINT"/>
|
||||
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="career_status" property="careerStatus" jdbcType="TINYINT"/>
|
||||
<result column="education_level" property="educationLevel" jdbcType="TINYINT"/>
|
||||
<result column="annual_income" property="annualIncome" jdbcType="VARCHAR"/>
|
||||
<result column="has_partner" property="hasPartner" jdbcType="TINYINT"/>
|
||||
<result column="join_type" property="joinType" jdbcType="TINYINT"/>
|
||||
<result column="capital_source" property="capitalSource" jdbcType="TINYINT"/>
|
||||
<result column="business_mode" property="businessMode" jdbcType="TINYINT"/>
|
||||
<result column="join_experience" property="joinExperience" jdbcType="TINYINT"/>
|
||||
<result column="fruit_industry_experience" property="fruitIndustryExperience" jdbcType="TINYINT"/>
|
||||
<result column="store_condition" property="storeCondition" jdbcType="VARCHAR"/>
|
||||
<result column="payback_period" property="paybackPeriod" jdbcType="VARCHAR"/>
|
||||
<result column="follows_management_standard" property="followsManagementStandard" jdbcType="TINYINT"/>
|
||||
<result column="can_training" property="canTraining" jdbcType="TINYINT"/>
|
||||
<result column="deleted" property="deleted" jdbcType="TINYINT"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,
|
||||
audit_id,
|
||||
partner_id,
|
||||
line_id,
|
||||
join_type,
|
||||
mobile,
|
||||
sex,
|
||||
username,
|
||||
want_shop_area,
|
||||
area_code,
|
||||
create_time,
|
||||
update_time,
|
||||
live_area,
|
||||
live_address,
|
||||
joining_questionnaire,
|
||||
career_status,
|
||||
education_level,
|
||||
annual_income,
|
||||
has_partner,
|
||||
capital_source,
|
||||
business_mode,
|
||||
join_experience,
|
||||
fruit_industry_experience,
|
||||
store_condition,
|
||||
payback_period,
|
||||
follows_management_standard,
|
||||
can_training,
|
||||
deleted
|
||||
</sql>
|
||||
<insert id="insert" parameterType="com.cool.store.request.JoinIntentionRequest" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into xfsg_partner_base_info
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="request.lineId != null">line_id,</if>
|
||||
<if test="request.partnerId != null">partner_id,</if>
|
||||
<if test="request.joinType != null">join_type,</if>
|
||||
<if test="request.userName != null">username,</if>
|
||||
<if test="request.mobile != null">mobile,</if>
|
||||
<if test="request.sex != null">sex,</if>
|
||||
<if test="request.wantShopArea != null">want_shop_area,</if>
|
||||
<if test="request.areaCode != null">area_code,</if>
|
||||
<if test="request.liveArea != null">live_area,</if>
|
||||
<if test="request.liveAddress != null">live_address,</if>
|
||||
<if test="request.joiningQuestionnaire != null">joining_questionnaire,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="request.lineId != null">#{request.lineId},</if>
|
||||
<if test="request.partnerId != null">#{request.partnerId},</if>
|
||||
<if test="request.joinType != null">#{request.joinType},</if>
|
||||
<if test="request.userName != null">#{request.userName},</if>
|
||||
<if test="request.mobile != null">#{request.mobile},</if>
|
||||
<if test="request.sex != null">#{request.sex},</if>
|
||||
<if test="request.wantShopArea != null">#{request.wantShopArea},</if>
|
||||
<if test="request.areaCode != null">#{request.areaCode},</if>
|
||||
<if test="request.liveArea != null">#{request.liveArea},</if>
|
||||
<if test="request.liveAddress != null">#{request.liveAddress},</if>
|
||||
<if test="request.joiningQuestionnaire != null">#{request.joiningQuestionnaire},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
<insert id="insertOrUpdate" parameterType="com.cool.store.entity.MemberQuestionDO" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
INSERT INTO xfsg_member_question_info
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="request.auditId != null">audit_id,</if>
|
||||
<if test="request.partnerId != null">partner_id,</if>
|
||||
<if test="request.lineId != null">line_id,</if>
|
||||
<if test="request.careerStatus != null">career_status,</if>
|
||||
<if test="request.joinType != null">join_type,</if>
|
||||
<if test="request.educationLevel != null">education_level,</if>
|
||||
<if test="request.annualIncome != null">annual_income,</if>
|
||||
<if test="request.hasPartner != null">has_partner,</if>
|
||||
<if test="request.capitalSource != null">capital_source,</if>
|
||||
<if test="request.businessMode != null">business_mode,</if>
|
||||
<if test="request.joinExperience != null">join_experience,</if>
|
||||
<if test="request.fruitIndustryExperience != null">fruit_industry_experience,</if>
|
||||
<if test="request.storeCondition != null">store_condition,</if>
|
||||
<if test="request.paybackPeriod != null">payback_period,</if>
|
||||
<if test="request.followsManagementStandard != null">follows_management_standard,</if>
|
||||
<if test="request.canTraining != null">can_training,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="request.auditId != null">#{request.auditId},</if>
|
||||
<if test="request.partnerId != null">#{request.partnerId},</if>
|
||||
<if test="request.lineId != null">#{request.lineId},</if>
|
||||
<if test="request.careerStatus != null">#{request.careerStatus},</if>
|
||||
<if test="request.joinType != null">#{request.joinType},</if>
|
||||
<if test="request.educationLevel != null">#{request.educationLevel},</if>
|
||||
<if test="request.annualIncome != null">#{request.annualIncome},</if>
|
||||
<if test="request.hasPartner != null">#{request.hasPartner},</if>
|
||||
<if test="request.capitalSource != null">#{request.capitalSource},</if>
|
||||
<if test="request.businessMode != null">#{request.businessMode},</if>
|
||||
<if test="request.joinExperience != null">#{request.joinExperience},</if>
|
||||
<if test="request.fruitIndustryExperience != null">#{request.fruitIndustryExperience},</if>
|
||||
<if test="request.storeCondition != null">#{request.storeCondition},</if>
|
||||
<if test="request.paybackPeriod != null">#{request.paybackPeriod},</if>
|
||||
<if test="request.followsManagementStandard != null">#{request.followsManagementStandard},</if>
|
||||
<if test="request.canTraining != null">#{request.canTraining},</if>
|
||||
</trim>
|
||||
ON DUPLICATE KEY UPDATE
|
||||
<trim suffixOverrides=",">
|
||||
<if test="request.auditId != null">audit_id = #{request.auditId},</if>
|
||||
<if test="request.partnerId != null">partner_id = #{request.partnerId},</if>
|
||||
<if test="request.careerStatus != null">career_status = #{request.careerStatus},</if>
|
||||
<if test="request.joinType != null">join_type = #{request.joinType},</if>
|
||||
<if test="request.educationLevel != null">education_level = #{request.educationLevel},</if>
|
||||
<if test="request.annualIncome != null">annual_income = #{request.annualIncome},</if>
|
||||
<if test="request.hasPartner != null">has_partner = #{request.hasPartner},</if>
|
||||
<if test="request.capitalSource != null">capital_source = #{request.capitalSource},</if>
|
||||
<if test="request.businessMode != null">business_mode = #{request.businessMode},</if>
|
||||
<if test="request.joinExperience != null">join_experience = #{request.joinExperience},</if>
|
||||
<if test="request.fruitIndustryExperience != null">fruit_industry_experience = #{request.fruitIndustryExperience},</if>
|
||||
<if test="request.storeCondition != null">store_condition = #{request.storeCondition},</if>
|
||||
<if test="request.paybackPeriod != null">payback_period = #{request.paybackPeriod},</if>
|
||||
<if test="request.followsManagementStandard != null">follows_management_standard = #{request.followsManagementStandard},</if>
|
||||
<if test="request.canTraining != null">can_training = #{request.canTraining},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<select id="getByLineId" resultType="com.cool.store.entity.MemberQuestionDO">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from xfsg_member_question_info
|
||||
where line_id = #{lineId}
|
||||
and deleted = 0
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.LineFollowLogMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.LineFollowLogDO">
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="partner_id" jdbcType="VARCHAR" property="partnerId" />
|
||||
<result column="line_id" jdbcType="BIGINT" property="lineId" />
|
||||
<result column="operate_user_id" jdbcType="VARCHAR" property="operateUserId" />
|
||||
<result column="operate_username" jdbcType="VARCHAR" property="operateUsername" />
|
||||
<result column="workflow_stage" jdbcType="TINYINT" property="workflowStage" />
|
||||
<result column="workflow_sub_stage" jdbcType="TINYINT" property="workflowSubStage" />
|
||||
<result column="workflow_sub_stage_status" jdbcType="TINYINT" property="workflowSubStageStatus" />
|
||||
<result column="message" jdbcType="VARCHAR" property="message" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="deleted" jdbcType="BIT" property="deleted" />
|
||||
</resultMap>
|
||||
|
||||
<select id="getFollowLogPage" resultMap="BaseResultMap">
|
||||
select
|
||||
id, partner_id, line_id, operate_user_id, operate_username, workflow_stage, workflow_sub_stage, workflow_sub_stage_status, message, create_time
|
||||
from
|
||||
xfsg_line_follow_log
|
||||
where
|
||||
line_id = #{lineId} and deleted = '0' order by create_time desc
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -30,8 +30,207 @@
|
||||
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
|
||||
<result column="deleted" jdbcType="BIT" property="deleted" />
|
||||
</resultMap>
|
||||
<insert id="insertOrUpdate" parameterType="com.cool.store.entity.LineInfoDO" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO xfsg_line_info
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="param.id != null and param.id != ''">
|
||||
id,
|
||||
</if>
|
||||
<if test="param.partnerId != null and param.partnerId != ''">
|
||||
partner_id,
|
||||
</if>
|
||||
<if test="param.regionId != null">
|
||||
region_id,
|
||||
</if>
|
||||
<if test="param.mobile != null and param.mobile != ''">
|
||||
mobile,
|
||||
</if>
|
||||
<if test="param.username != null and param.username != ''">
|
||||
username,
|
||||
</if>
|
||||
<if test="param.sex != null and param.sex != ''">
|
||||
sex,
|
||||
</if>
|
||||
<if test="param.wantShopAreaId != null">
|
||||
want_shop_area_id,
|
||||
</if>
|
||||
<if test="param.liveAddress != null and param.liveAddress != ''">
|
||||
live_address,
|
||||
</if>
|
||||
<if test="param.workflowStage != null">
|
||||
workflow_stage,
|
||||
</if>
|
||||
<if test="param.workflowSubStage != null">
|
||||
workflow_sub_stage,
|
||||
</if>
|
||||
<if test="param.workflowSubStageStatus != null">
|
||||
workflow_sub_stage_status,
|
||||
</if>
|
||||
<if test="param.selectSiteNum != null">
|
||||
select_site_num,
|
||||
</if>
|
||||
<if test="param.prepareShopNum != null">
|
||||
prepare_shop_num,
|
||||
</if>
|
||||
<if test="param.openShopNum != null">
|
||||
open_shop_num,
|
||||
</if>
|
||||
<if test="param.lineSource != null">
|
||||
line_source,
|
||||
</if>
|
||||
<if test="param.investmentManager != null and param.investmentManager != ''">
|
||||
investment_manager,
|
||||
</if>
|
||||
<if test="param.developmentManager != null and param.developmentManager != ''">
|
||||
development_manager,
|
||||
</if>
|
||||
<if test="param.firstInterviewer != null and param.firstInterviewer != ''">
|
||||
first_interviewer,
|
||||
</if>
|
||||
<if test="param.secondInterviewer != null and param.secondInterviewer != ''">
|
||||
second_interviewer,
|
||||
</if>
|
||||
<if test="param.userPortrait != null and param.userPortrait != ''">
|
||||
user_portrait,
|
||||
</if>
|
||||
<if test="param.isJoin != null">
|
||||
is_join,
|
||||
</if>
|
||||
<if test="param.lineStatus != null">
|
||||
line_status,
|
||||
</if>
|
||||
<if test="param.createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
<if test="param.updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="param.createUserId != null and param.createUserId != ''">
|
||||
create_user_id,
|
||||
</if>
|
||||
<if test="param.updateUserId != null and param.updateUserId != ''">
|
||||
update_user_id,
|
||||
</if>
|
||||
<if test="param.deleted != null">
|
||||
deleted
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="param.id != null and param.id != ''">
|
||||
#{param.id},
|
||||
</if>
|
||||
<if test="param.partnerId != null and param.partnerId != ''">
|
||||
#{param.partnerId},
|
||||
</if>
|
||||
<if test="param.regionId != null">
|
||||
#{param.regionId},
|
||||
</if>
|
||||
<if test="param.mobile != null and param.mobile != ''">
|
||||
#{param.mobile},
|
||||
</if>
|
||||
<if test="param.username != null and param.username != ''">
|
||||
#{param.username},
|
||||
</if>
|
||||
<if test="param.sex != null and param.sex != ''">
|
||||
#{param.sex},
|
||||
</if>
|
||||
<if test="param.wantShopAreaId != null">
|
||||
#{param.wantShopAreaId},
|
||||
</if>
|
||||
<if test="param.liveAddress != null and param.liveAddress != ''">
|
||||
#{param.liveAddress},
|
||||
</if>
|
||||
<if test="param.workflowStage != null">
|
||||
#{param.workflowStage},
|
||||
</if>
|
||||
<if test="param.workflowSubStage != null">
|
||||
#{param.workflowSubStage},
|
||||
</if>
|
||||
<if test="param.workflowSubStageStatus != null">
|
||||
#{param.workflowSubStageStatus},
|
||||
</if>
|
||||
<if test="param.selectSiteNum != null">
|
||||
#{param.selectSiteNum},
|
||||
</if>
|
||||
<if test="param.prepareShopNum != null">
|
||||
#{param.prepareShopNum},
|
||||
</if>
|
||||
<if test="param.openShopNum != null">
|
||||
#{param.openShopNum},
|
||||
</if>
|
||||
<if test="param.lineSource != null">
|
||||
#{param.lineSource},
|
||||
</if>
|
||||
<if test="param.investmentManager != null and param.investmentManager != ''">
|
||||
#{param.investmentManager},
|
||||
</if>
|
||||
<if test="param.developmentManager != null and param.developmentManager != ''">
|
||||
#{param.developmentManager},
|
||||
</if>
|
||||
<if test="param.firstInterviewer != null and param.firstInterviewer != ''">
|
||||
#{param.firstInterviewer},
|
||||
</if>
|
||||
<if test="param.secondInterviewer != null and param.secondInterviewer != ''">
|
||||
#{param.secondInterviewer},
|
||||
</if>
|
||||
<if test="param.userPortrait != null and param.userPortrait != ''">
|
||||
#{param.userPortrait},
|
||||
</if>
|
||||
<if test="param.isJoin != null">
|
||||
#{param.isJoin},
|
||||
</if>
|
||||
<if test="param.lineStatus != null">
|
||||
#{param.lineStatus},
|
||||
</if>
|
||||
<if test="param.createTime != null">
|
||||
#{param.createTime},
|
||||
</if>
|
||||
<if test="param.updateTime != null">
|
||||
#{param.updateTime},
|
||||
</if>
|
||||
<if test="param.createUserId != null and param.createUserId != ''">
|
||||
#{param.createUserId},
|
||||
</if>
|
||||
<if test="param.updateUserId != null and param.updateUserId != ''">
|
||||
#{param.updateUserId},
|
||||
</if>
|
||||
<if test="param.deleted != null">
|
||||
#{param.deleted}
|
||||
</if>
|
||||
</trim>
|
||||
ON DUPLICATE KEY UPDATE
|
||||
<trim suffixOverrides=",">
|
||||
<if test="param.partnerId != null and param.partnerId != ''">
|
||||
partner_id = #{param.partnerId},
|
||||
</if>
|
||||
<if test="param.regionId != null">
|
||||
region_id = #{param.regionId},
|
||||
</if>
|
||||
<if test="param.mobile != null and param.mobile != ''">
|
||||
mobile = #{param.mobile},
|
||||
</if>
|
||||
<if test="param.username != null and param.username != ''">
|
||||
username = #{param.username},
|
||||
</if>
|
||||
<if test="param.sex != null and param.sex != ''">
|
||||
sex = #{param.sex},
|
||||
</if>
|
||||
<if test="param.wantShopAreaId != null">
|
||||
want_shop_area_id = #{param.wantShopAreaId},
|
||||
</if>
|
||||
<if test="param.liveAddress != null and param.liveAddress != ''">
|
||||
live_address = #{param.liveAddress},
|
||||
</if>
|
||||
<if test="param.workflowStage != null">
|
||||
workflow_stage = #{param.workflowStage},
|
||||
</if>
|
||||
<if test="param.workflowSubStage != null">
|
||||
workflow_sub_stage = #{param.workflowSubStage}
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<select id="getByPartnerId" resultMap="BaseResultMap">
|
||||
<select id="getByPartnerId" resultMap="BaseResultMap">
|
||||
select * from xfsg_line_info where partner_id = #{partnerId} and deleted = 0
|
||||
</select>
|
||||
<select id="getByLineId" resultType="com.cool.store.entity.LineInfoDO">
|
||||
|
||||
@@ -3,6 +3,6 @@ jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcoll
|
||||
jdbc.user= coolstore
|
||||
jdbc.password = CSCErYcXniNYm7bT
|
||||
|
||||
table.name = xfsg_line_interview
|
||||
table.object.class = LineInterviewDO
|
||||
table.mapper = LineInterviewMapper
|
||||
table.name = xfsg_line_follow_log
|
||||
table.object.class = LineFollowLogDO
|
||||
table.mapper = LineFollowLogMapper
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.cool.store.dto.message;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SendMessageDTO {
|
||||
/**
|
||||
* 钉钉的企业唯一ID
|
||||
*/
|
||||
private String corpId;
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
/**
|
||||
* 发送的人员ID集合
|
||||
*/
|
||||
private String userIds;
|
||||
/**
|
||||
* PC链接的参数
|
||||
*/
|
||||
private String pcParam;
|
||||
/**
|
||||
* 移动链接的参数
|
||||
*/
|
||||
private String mobileParam;
|
||||
/**
|
||||
* oa消息的钉钉图片ID
|
||||
*/
|
||||
private String picUrl;
|
||||
/**
|
||||
* 是否侧边栏打开消息(钉钉PC端)
|
||||
* 默认为false
|
||||
*/
|
||||
private Boolean isSideOpen = false;
|
||||
/**
|
||||
* 是否外跳浏览器打开消息
|
||||
* 默认为false
|
||||
*/
|
||||
private Boolean isJumpOpen = false;
|
||||
/**
|
||||
* 是否包含PC端链接(如果不包含,则PC端打开消息时弹出二维码用于移动端扫描)
|
||||
* 默认为false
|
||||
*/
|
||||
private Boolean containPcUrl = false;
|
||||
/**
|
||||
* 是否是静态链接(直接发送此链接,可以是H5的固定页面,一般用于推送运营页面)
|
||||
* 默认为false
|
||||
*/
|
||||
private Boolean isStaticUrl = false;
|
||||
/**
|
||||
* 静态链接地址
|
||||
*/
|
||||
private String staticUrl;
|
||||
|
||||
/**
|
||||
* 发送消息业务id标识
|
||||
*/
|
||||
private String outBusinessId;
|
||||
|
||||
/**
|
||||
* 微应用:micro_app; E应用-e_app; 钉钉:DINGDING; 企业微信:qw
|
||||
*/
|
||||
private String appType;
|
||||
|
||||
private JSONObject oaJson;
|
||||
|
||||
private String messageType;
|
||||
|
||||
|
||||
public SendMessageDTO() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JmsSendMessageVo{" +
|
||||
"corpId='" + corpId + '\'' +
|
||||
", title='" + title + '\'' +
|
||||
", content='" + content + '\'' +
|
||||
", userIds=" + userIds +
|
||||
", pcParam='" + pcParam + '\'' +
|
||||
", mobileParam='" + mobileParam + '\'' +
|
||||
", picUrl='" + picUrl + '\'' +
|
||||
", isSideOpen=" + isSideOpen +
|
||||
", isJumpOpen=" + isJumpOpen +
|
||||
", containPcUrl=" + containPcUrl +
|
||||
", isStaticUrl=" + isStaticUrl +
|
||||
", staticUrl='" + staticUrl + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.cool.store.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import javax.persistence.*;
|
||||
|
||||
@Data
|
||||
@Table(name = "xfsg_line_follow_log")
|
||||
public class LineFollowLogDO {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* hy_partner_user_info.partner_id
|
||||
*/
|
||||
@Column(name = "partner_id")
|
||||
private String partnerId;
|
||||
|
||||
/**
|
||||
* hy_partner_line_info.id
|
||||
*/
|
||||
@Column(name = "line_id")
|
||||
private Long lineId;
|
||||
|
||||
/**
|
||||
* 操作人id
|
||||
*/
|
||||
@Column(name = "operate_user_id")
|
||||
private String operateUserId;
|
||||
|
||||
/**
|
||||
* 操作人姓名
|
||||
*/
|
||||
@Column(name = "operate_username")
|
||||
private String operateUsername;
|
||||
|
||||
/**
|
||||
* 流程阶段:1意向加盟;2新店进展;
|
||||
*/
|
||||
@Column(name = "workflow_stage")
|
||||
private Integer workflowStage;
|
||||
|
||||
/**
|
||||
* 流程子阶段
|
||||
*/
|
||||
@Column(name = "workflow_sub_stage")
|
||||
private Integer workflowSubStage;
|
||||
|
||||
/**
|
||||
* 流程子阶段状态
|
||||
*/
|
||||
@Column(name = "workflow_sub_stage_status")
|
||||
private Integer workflowSubStageStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(name = "create_time")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@Column(name = "update_time")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 删除标识
|
||||
*/
|
||||
private Boolean deleted;
|
||||
|
||||
public LineFollowLogDO() {
|
||||
}
|
||||
|
||||
public LineFollowLogDO(String partnerId, Long lineId, String operateUserId, String operateUsername, Integer workflowStage, Integer workflowSubStage, Integer workflowSubStageStatus, String message) {
|
||||
this.partnerId = partnerId;
|
||||
this.lineId = lineId;
|
||||
this.operateUserId = operateUserId;
|
||||
this.operateUsername = operateUsername;
|
||||
this.workflowStage = workflowStage;
|
||||
this.workflowSubStage = workflowSubStage;
|
||||
this.workflowSubStageStatus = workflowSubStageStatus;
|
||||
this.message = message;
|
||||
this.createTime= new Date();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.cool.store.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
/**
|
||||
* 加盟问卷信息
|
||||
*/
|
||||
@Table(name = "xfsg_member_question_info")
|
||||
public class MemberQuestionDO {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(name = "audit_id")
|
||||
private Long auditId;
|
||||
|
||||
@Column(name = "partner_id", nullable = false)
|
||||
private String partnerId;
|
||||
|
||||
@Column(name = "line_id", nullable = false)
|
||||
private Long lineId;
|
||||
|
||||
@Column(name = "join_type")
|
||||
private Integer joinType;
|
||||
|
||||
@Column(name = "create_time", nullable = false, columnDefinition = "datetime default current_timestamp")
|
||||
private Date createTime;
|
||||
|
||||
@Column(name = "update_time", nullable = false, columnDefinition = "datetime default current_timestamp on update current_timestamp")
|
||||
private Date updateTime;
|
||||
|
||||
@Column(name = "career_status")
|
||||
private Integer careerStatus;
|
||||
|
||||
@Column(name = "education_level")
|
||||
private Integer educationLevel;
|
||||
|
||||
@Column(name = "annual_income")
|
||||
private String annualIncome;
|
||||
|
||||
@Column(name = "has_partner")
|
||||
private Integer hasPartner;
|
||||
|
||||
@Column(name = "capital_source")
|
||||
private Integer capitalSource;
|
||||
|
||||
@Column(name = "business_mode")
|
||||
private Integer businessMode;
|
||||
|
||||
@Column(name = "join_experience")
|
||||
private Integer joinExperience;
|
||||
|
||||
@Column(name = "fruit_industry_experience")
|
||||
private Integer fruitIndustryExperience;
|
||||
|
||||
@Column(name = "store_condition")
|
||||
private String storeCondition;
|
||||
|
||||
@Column(name = "payback_period")
|
||||
private String paybackPeriod;
|
||||
|
||||
@Column(name = "follows_management_standard")
|
||||
private Integer followsManagementStandard;
|
||||
|
||||
@Column(name = "can_training")
|
||||
private Integer canTraining;
|
||||
|
||||
@Column(name = "deleted", nullable = false, columnDefinition = "tinyint default '0'")
|
||||
private Boolean deleted;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.MemberQuestionDO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -9,16 +11,12 @@ import javax.validation.constraints.NotBlank;
|
||||
@Data
|
||||
@ApiModel("加盟意向Request")
|
||||
public class JoinIntentionRequest {
|
||||
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("线索信息表-线索id")
|
||||
private Long lineId;
|
||||
|
||||
@ApiModelProperty("用户信息表partnerId")
|
||||
@NotBlank(message = "partnerId不能为空")
|
||||
private String partnerId;
|
||||
|
||||
@ApiModelProperty("加盟身份 1个人加盟 2企业加盟")
|
||||
private Integer joinType;
|
||||
@ApiModelProperty("姓名")
|
||||
@@ -35,6 +33,65 @@ public class JoinIntentionRequest {
|
||||
private String liveArea;
|
||||
@ApiModelProperty("常驻区域详细地址")
|
||||
private String liveAddress;
|
||||
@ApiModelProperty("加盟问卷长json")
|
||||
private String joiningQuestionnaire;
|
||||
@ApiModelProperty("线索审核信息id")
|
||||
private Long auditId;
|
||||
@ApiModelProperty("职业状态 1:在职 2:个体 3:自己开公司 0:待业")
|
||||
private Integer careerStatus;
|
||||
@ApiModelProperty("教育程度 1:小学 2:初中 3:高中 4大学及以上")
|
||||
private Integer educationLevel;
|
||||
@ApiModelProperty("家庭年收入 1:10-20万 2:20-30万 3:30-50万 4:50万以上")
|
||||
private String annualIncome;
|
||||
@ApiModelProperty("是否有合伙人 1:是 0:否")
|
||||
private Integer hasPartner;
|
||||
@ApiModelProperty("资金来源 1:自有资金 2:合伙资金 3:借贷")
|
||||
private Integer capitalSource;
|
||||
@ApiModelProperty("经营方式 1:自己独立经营 2:和家人一起经营 3:和合伙人一起经营 4:只投资让他人经营")
|
||||
private Integer businessMode;
|
||||
@ApiModelProperty("是否有加盟品牌经营的经验 1:无 2:单店经验 3:多店经验 4:多店连锁经验")
|
||||
private Integer joinExperience;
|
||||
@ApiModelProperty("是否有水果行业经营的经验 1:无 2:单店经验 3:多店经验 4:多店连锁经验")
|
||||
private Integer fruitIndustryExperience;
|
||||
@ApiModelProperty("店铺情况 1:自有店铺 2:自有意向店铺 3:无意向店铺" )
|
||||
private String storeCondition;
|
||||
@ApiModelProperty("预期回本的最长周期 1:1年半以上 2:1年半内 3:1年内 4:半年内")
|
||||
private String paybackPeriod;
|
||||
@ApiModelProperty("是否严格遵守管理标准 1:是 2:否")
|
||||
private Integer followsManagementStandard;
|
||||
@ApiModelProperty("是否能参加认证培训 1:是 2:否")
|
||||
private Integer canTraining;
|
||||
|
||||
public LineInfoDO toLineInfoDO() {
|
||||
LineInfoDO lineInfoDO = new LineInfoDO();
|
||||
lineInfoDO.setPartnerId(this.partnerId);
|
||||
lineInfoDO.setMobile(this.mobile);
|
||||
lineInfoDO.setLiveAddress(this.liveAddress);
|
||||
lineInfoDO.setUsername(this.userName);
|
||||
lineInfoDO.setSex(String.valueOf(this.sex));
|
||||
lineInfoDO.setWantShopAreaId(Long.valueOf(this.areaCode));
|
||||
lineInfoDO.setId(this.lineId);
|
||||
return lineInfoDO;
|
||||
}
|
||||
|
||||
|
||||
public MemberQuestionDO toMemberQuestionDO() {
|
||||
MemberQuestionDO memberQuestionDO = new MemberQuestionDO();
|
||||
memberQuestionDO.setId(this.id);
|
||||
memberQuestionDO.setAuditId(this.auditId);
|
||||
memberQuestionDO.setPartnerId(this.partnerId);
|
||||
memberQuestionDO.setLineId(this.lineId);
|
||||
memberQuestionDO.setCareerStatus(this.careerStatus);
|
||||
memberQuestionDO.setEducationLevel(this.educationLevel);
|
||||
memberQuestionDO.setAnnualIncome(this.annualIncome);
|
||||
memberQuestionDO.setHasPartner(this.hasPartner);
|
||||
memberQuestionDO.setCapitalSource(this.capitalSource);
|
||||
memberQuestionDO.setBusinessMode(this.businessMode);
|
||||
memberQuestionDO.setJoinExperience(this.joinExperience);
|
||||
memberQuestionDO.setFruitIndustryExperience(this.fruitIndustryExperience);
|
||||
memberQuestionDO.setStoreCondition(this.storeCondition);
|
||||
memberQuestionDO.setPaybackPeriod(this.paybackPeriod);
|
||||
memberQuestionDO.setFollowsManagementStandard(this.followsManagementStandard);
|
||||
memberQuestionDO.setCanTraining(this.canTraining);
|
||||
memberQuestionDO.setJoinType(this.joinType);
|
||||
return memberQuestionDO;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: LineFollowLogRequest
|
||||
* @Description:
|
||||
* @date 2024-03-27 14:59
|
||||
*/
|
||||
@Data
|
||||
public class LineFollowLogRequest {
|
||||
|
||||
@ApiModelProperty("线索id")
|
||||
private Long lineId;
|
||||
|
||||
@ApiModelProperty("日志")
|
||||
private String message;
|
||||
|
||||
}
|
||||
@@ -44,5 +44,6 @@ public class LineInterviewPageRequest extends PageBasicInfo {
|
||||
@ApiModelProperty("面试类型:0面谈;1一审;2二审")
|
||||
private Integer interviewType;
|
||||
|
||||
@ApiModelProperty("面试官")
|
||||
private String interviewerUserId;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
package com.cool.store.vo;
|
||||
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.MemberQuestionDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
@Data
|
||||
public class PartnerBaseInfoVO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String partnerId;
|
||||
|
||||
private Long lineId;
|
||||
|
||||
@ApiModelProperty("加盟身份 1个人加盟 2企业加盟")
|
||||
private Integer joinType;
|
||||
@ApiModelProperty("姓名")
|
||||
private String username;
|
||||
@ApiModelProperty("手机号")
|
||||
private String mobile;
|
||||
@ApiModelProperty("1男 2女")
|
||||
private Integer sex;
|
||||
@ApiModelProperty("意向区域编码")
|
||||
private String areaCode;
|
||||
@ApiModelProperty("常驻区域详细地址(居住地址)")
|
||||
private String liveAddress;
|
||||
|
||||
@ApiModelProperty("线索审核信息id")
|
||||
private Long auditId;
|
||||
@ApiModelProperty("职业状态 1:在职 2:个体 3:自己开公司 0:待业")
|
||||
private Integer careerStatus;
|
||||
@ApiModelProperty("教育程度 1:小学 2:初中 3:高中 4大学及以上")
|
||||
private Integer educationLevel;
|
||||
@ApiModelProperty("家庭年收入 1:10-20万 2:20-30万 3:30-50万 4:50万以上")
|
||||
private String annualIncome;
|
||||
@ApiModelProperty("是否有合伙人 1:是 0:否")
|
||||
private Integer hasPartner;
|
||||
@ApiModelProperty("资金来源 1:自有资金 2:合伙资金 3:借贷")
|
||||
private Integer capitalSource;
|
||||
@ApiModelProperty("经营方式 1:自己独立经营 2:和家人一起经营 3:和合伙人一起经营 4:只投资让他人经营")
|
||||
private Integer businessMode;
|
||||
@ApiModelProperty("是否有加盟品牌经营的经验 1:无 2:单店经验 3:多店经验 4:多店连锁经验")
|
||||
private Integer joinExperience;
|
||||
@ApiModelProperty("是否有水果行业经营的经验 1:无 2:单店经验 3:多店经验 4:多店连锁经验")
|
||||
private Integer fruitIndustryExperience;
|
||||
@ApiModelProperty("店铺情况 1:自有店铺 2:自有意向店铺 3:无意向店铺" )
|
||||
private String storeCondition;
|
||||
@ApiModelProperty("预期回本的最长周期 1:1年半以上 2:1年半内 3:1年内 4:半年内")
|
||||
private String paybackPeriod;
|
||||
@ApiModelProperty("是否严格遵守管理标准 1:是 2:否")
|
||||
private Integer followsManagementStandard;
|
||||
@ApiModelProperty("是否能参加认证培训 1:是 2:否")
|
||||
private Integer canTraining;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private Date updateTime;
|
||||
|
||||
private Integer deleted;
|
||||
|
||||
|
||||
|
||||
|
||||
public static PartnerBaseInfoVO from(MemberQuestionDO memberQuestionDO, LineInfoDO lineInfoDO) {
|
||||
if (Objects.isNull(memberQuestionDO) && Objects.isNull(lineInfoDO)) {
|
||||
return null;
|
||||
}
|
||||
PartnerBaseInfoVO partnerBaseInfoVO = new PartnerBaseInfoVO();
|
||||
// MemberQuestionDO
|
||||
partnerBaseInfoVO.setPartnerId(memberQuestionDO.getPartnerId());
|
||||
partnerBaseInfoVO.setAuditId(memberQuestionDO.getAuditId());
|
||||
partnerBaseInfoVO.setCareerStatus(memberQuestionDO.getCareerStatus());
|
||||
partnerBaseInfoVO.setEducationLevel(memberQuestionDO.getEducationLevel());
|
||||
partnerBaseInfoVO.setAnnualIncome(memberQuestionDO.getAnnualIncome());
|
||||
partnerBaseInfoVO.setHasPartner(memberQuestionDO.getHasPartner());
|
||||
partnerBaseInfoVO.setCapitalSource(memberQuestionDO.getCapitalSource());
|
||||
partnerBaseInfoVO.setBusinessMode(memberQuestionDO.getBusinessMode());
|
||||
partnerBaseInfoVO.setJoinExperience(memberQuestionDO.getJoinExperience());
|
||||
partnerBaseInfoVO.setFruitIndustryExperience(memberQuestionDO.getFruitIndustryExperience());
|
||||
partnerBaseInfoVO.setStoreCondition(memberQuestionDO.getStoreCondition());
|
||||
partnerBaseInfoVO.setPaybackPeriod(memberQuestionDO.getPaybackPeriod());
|
||||
partnerBaseInfoVO.setFollowsManagementStandard(memberQuestionDO.getFollowsManagementStandard());
|
||||
partnerBaseInfoVO.setCanTraining(memberQuestionDO.getCanTraining());
|
||||
partnerBaseInfoVO.setJoinType(memberQuestionDO.getJoinType());
|
||||
//LineInfoDO
|
||||
partnerBaseInfoVO.setId(lineInfoDO.getId());
|
||||
partnerBaseInfoVO.setPartnerId(lineInfoDO.getPartnerId());
|
||||
partnerBaseInfoVO.setUsername(lineInfoDO.getUsername());
|
||||
partnerBaseInfoVO.setMobile(lineInfoDO.getMobile());
|
||||
partnerBaseInfoVO.setLiveAddress(lineInfoDO.getLiveAddress());
|
||||
partnerBaseInfoVO.setLineId(lineInfoDO.getId());
|
||||
partnerBaseInfoVO.setSex(Integer.valueOf(lineInfoDO.getSex()));
|
||||
partnerBaseInfoVO.setAreaCode(String.valueOf(lineInfoDO.getWantShopAreaId()));
|
||||
return partnerBaseInfoVO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -45,7 +45,7 @@ public class LineInterviewPageVO {
|
||||
@ApiModelProperty("计划结束时间")
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty("面试状态")
|
||||
@ApiModelProperty("面试状态 1待面试 2待审核 3审批通过 4不通过")
|
||||
private Integer interviewStatus;
|
||||
|
||||
@ApiModelProperty("招商经理")
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.vo.log;
|
||||
|
||||
import com.cool.store.entity.LineFollowLogDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: LineFollowLogVO
|
||||
* @Description:跟进日志
|
||||
* @date 2024-03-27 14:50
|
||||
*/
|
||||
@Data
|
||||
public class LineFollowLogVO {
|
||||
|
||||
@ApiModelProperty("日志")
|
||||
private String message;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
|
||||
public LineFollowLogVO(String message, Date createTime) {
|
||||
this.message = message;
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public static List<LineFollowLogVO> convertList(List<LineFollowLogDO> list){
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return null;
|
||||
}
|
||||
List<LineFollowLogVO> resultList = new ArrayList<>();
|
||||
for (LineFollowLogDO followLog : list) {
|
||||
resultList.add(new LineFollowLogVO(followLog.getMessage(), followLog.getCreateTime()));
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.JoinIntentionRequest;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
|
||||
public interface JoinIntentionService {
|
||||
/**
|
||||
@@ -9,4 +10,5 @@ public interface JoinIntentionService {
|
||||
*/
|
||||
boolean submit(JoinIntentionRequest request);
|
||||
|
||||
PartnerBaseInfoVO getByLineId(Long lineId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.LineFollowLogRequest;
|
||||
import com.cool.store.vo.log.LineFollowLogVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: LineFollowService
|
||||
* @Description:线索跟进
|
||||
* @date 2024-03-27 14:49
|
||||
*/
|
||||
public interface LineFollowService {
|
||||
|
||||
/**
|
||||
* 分页获取跟进日志
|
||||
* @param lineId
|
||||
* @param pageNum
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
PageInfo<LineFollowLogVO> getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 新增跟进日志
|
||||
* @param followLog
|
||||
* @param operateUserId
|
||||
* @param operateUsername
|
||||
* @return
|
||||
*/
|
||||
Long addFollowLog(LineFollowLogRequest followLog, String operateUserId, String operateUsername);
|
||||
}
|
||||
@@ -1,13 +1,37 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyuncs.CommonRequest;
|
||||
import com.aliyuncs.CommonResponse;
|
||||
import com.aliyuncs.DefaultAcsClient;
|
||||
import com.aliyuncs.IAcsClient;
|
||||
import com.aliyuncs.exceptions.ClientException;
|
||||
import com.aliyuncs.exceptions.ServerException;
|
||||
import com.aliyuncs.http.MethodType;
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.enums.UserRoleEnum;
|
||||
import com.cool.store.enums.WorkflowSubStageEnum;
|
||||
import com.cool.store.dto.message.SendMessageDTO;
|
||||
import com.cool.store.enums.*;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mq.producer.SimpleMessageService;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
import com.cool.store.utils.poi.constant.Constants;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -15,6 +39,7 @@ import javax.annotation.Resource;
|
||||
* @Description:
|
||||
* @date 2024-03-20 17:09
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class CommonService {
|
||||
|
||||
@@ -22,6 +47,14 @@ public class CommonService {
|
||||
private ApplicationContext applicationContext;
|
||||
@Resource
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
@Resource
|
||||
private SimpleMessageService simpleMessageService;
|
||||
@Value("${coolstore.page.domain}")
|
||||
private String coolStoreDomainUrl;
|
||||
@Value("${mybatis.configuration.variables.enterpriseId}")
|
||||
private String enterpriseId;
|
||||
@Value("${enterprise.dingCorpId}")
|
||||
private String dingCorpId;
|
||||
|
||||
public LineFlowService getLineFlowService(Integer workflowSubStage){
|
||||
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(workflowSubStage);
|
||||
@@ -38,4 +71,38 @@ public class CommonService {
|
||||
//随机一个
|
||||
return enterpriseUserDAO.getUserInfoByUserIds(null).stream().findAny().get().getUserId();
|
||||
}
|
||||
|
||||
public void sendMessage(List<String> userIds, Long lineId, MessageEnum message, String... param){
|
||||
if(CollectionUtils.isEmpty(userIds)){
|
||||
return;
|
||||
}
|
||||
userIds = userIds.stream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(userIds)){
|
||||
return;
|
||||
}
|
||||
String mobileParam = MessageFormat.format("{0}&eid={1}&corpId={2}&appType=dingding2&lineId={3}", "", enterpriseId, dingCorpId, String.valueOf(lineId));
|
||||
try {
|
||||
String messageUrl = coolStoreDomainUrl + "dd-noticemsg?miniAppId={0}&appId={1}&corpId={2}&appUrl=" + URLEncoder.encode("pages/common-web-view/index?routerUrl=notice&target=" + mobileParam, StandardCharsets.UTF_8.name());
|
||||
SendMessageDTO messageDTO = new SendMessageDTO();
|
||||
messageDTO.setCorpId(dingCorpId);
|
||||
messageDTO.setUserIds(String.join(Constants.COMMA, userIds));
|
||||
messageDTO.setOutBusinessId(UUIDUtils.get32UUID());
|
||||
messageDTO.setAppType("dingding2");
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("message_url", messageUrl);
|
||||
JSONObject headJson = new JSONObject();
|
||||
headJson.put("bgcolor", "FFBBBBBB");
|
||||
map.put("head", headJson);
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("title", message.getTitle());
|
||||
body.put("image", message.getImageUrl());
|
||||
body.put("content", MessageFormat.format(message.getContent(), param));
|
||||
map.put("body",body);
|
||||
messageDTO.setOaJson(map);
|
||||
simpleMessageService.send(JSONObject.toJSONString(messageDTO), RocketMqTagEnum.STORE_DING_QUEUE);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.MemberQuestionDO;
|
||||
import com.cool.store.entity.PartnerBaseInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.WorkflowSubStageEnum;
|
||||
import com.cool.store.enums.WorkflowSubStageStatusEnum;
|
||||
@@ -9,6 +11,7 @@ import com.cool.store.mapper.JoinIntentionMapper;
|
||||
import com.cool.store.mapper.LineInfoMapper;
|
||||
import com.cool.store.request.JoinIntentionRequest;
|
||||
import com.cool.store.service.JoinIntentionService;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -16,6 +19,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.cool.store.enums.ErrorCodeEnum.LINE_ID_IS_NOT_EXIST;
|
||||
|
||||
/**
|
||||
* @author guohb
|
||||
* @ClassName JoinIntentionServiceImpl
|
||||
@@ -32,20 +37,21 @@ public class JoinIntentionServiceImpl extends LineFlowService implements JoinInt
|
||||
LineInfoMapper lineInfoMapper;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean submit(JoinIntentionRequest request) {
|
||||
if (Objects.isNull(request)){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
boolean submitStatus = joinIntentionMapper.insert(request);
|
||||
MemberQuestionDO memberQuestionDO = request.toMemberQuestionDO();
|
||||
boolean submitStatus = joinIntentionMapper.insertOrUpdate(memberQuestionDO);
|
||||
if (submitStatus){
|
||||
//更改线索流程子状态为【待审核】
|
||||
LineInfoDO lineInfoDO = lineInfoMapper.getByPartnerId(request.getPartnerId());
|
||||
if (Objects.isNull(lineInfoDO)){
|
||||
LineInfoDO lineInfoParam = request.toLineInfoDO();
|
||||
lineInfoParam.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.INTENT_5.getCode());
|
||||
if (Objects.isNull(lineInfoParam)){
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PARTNER_NOT_EXIST);
|
||||
}
|
||||
lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.INTENT_5.getCode());
|
||||
lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO);
|
||||
lineInfoMapper.insertOrUpdate(lineInfoParam);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
return Boolean.FALSE;
|
||||
@@ -73,4 +79,15 @@ public class JoinIntentionServiceImpl extends LineFlowService implements JoinInt
|
||||
protected Boolean auditClose(Long auditId, LineInfoDO lineInfo) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PartnerBaseInfoVO getByLineId(Long lineId) {
|
||||
MemberQuestionDO result = joinIntentionMapper.getByLineId(lineId);
|
||||
LineInfoDO byLineId = lineInfoMapper.getByLineId(lineId);
|
||||
if (Objects.isNull(result)){
|
||||
throw new ServiceException(LINE_ID_IS_NOT_EXIST);
|
||||
}
|
||||
PartnerBaseInfoVO response = PartnerBaseInfoVO.from(result,byLineId);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dao.LineFollowLogDAO;
|
||||
import com.cool.store.dao.LineInfoDAO;
|
||||
import com.cool.store.entity.LineFollowLogDO;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.LineFollowLogRequest;
|
||||
import com.cool.store.service.LineFollowService;
|
||||
import com.cool.store.vo.log.LineFollowLogVO;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: LineFollowServiceImpl
|
||||
* @Description:
|
||||
* @date 2024-03-27 14:49
|
||||
*/
|
||||
@Service
|
||||
public class LineFollowServiceImpl implements LineFollowService {
|
||||
|
||||
@Resource
|
||||
private LineFollowLogDAO lineFollowLogDAO;
|
||||
@Resource
|
||||
private LineInfoDAO lineInfoDAO;
|
||||
|
||||
@Override
|
||||
public PageInfo<LineFollowLogVO> getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize) {
|
||||
Page<LineFollowLogDO> followLogPage = lineFollowLogDAO.getFollowLogPage(lineId, pageNum, pageSize);
|
||||
PageInfo resultPage = new PageInfo(followLogPage);
|
||||
List<LineFollowLogVO> resultList = LineFollowLogVO.convertList(followLogPage);
|
||||
resultPage.setList(resultList);
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long addFollowLog(LineFollowLogRequest followLog, String operateUserId, String operateUsername) {
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(followLog.getLineId());
|
||||
if(Objects.isNull(lineInfo)){
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
|
||||
}
|
||||
return lineFollowLogDAO.addFollowLog(lineInfo, operateUserId, operateUsername, followLog.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -138,6 +138,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
}
|
||||
LineInterviewDO addInterview = LineInterviewDO.convertDO(lineInfo, startTime, endTime, UUIDUtils.get8UUID(), interviewerUserId, interviewType.getCode(), eventId);
|
||||
lineInterviewDAO.addInterviewInfo(addInterview);
|
||||
commonService.sendMessage(Arrays.asList(interviewerUserId), lineInfo.getId(), MessageEnum.MESSAGE_2, lineInfo.getUsername(), hyOpenAreaInfoDAO.selectNameMapById(lineInfo.getWantShopAreaId()), DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM, startTime));
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.cool.store.controller.webb;
|
||||
|
||||
import com.cool.store.context.CurrentUserHolder;
|
||||
import com.cool.store.context.LoginUserInfo;
|
||||
import com.cool.store.request.LineFollowLogRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.LineFollowService;
|
||||
import com.cool.store.vo.log.LineFollowLogVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: LineFollowController
|
||||
* @Description:
|
||||
* @date 2024-03-27 15:02
|
||||
*/
|
||||
@Api(tags = "跟进日志")
|
||||
@RestController
|
||||
@RequestMapping({"pc/follow"})
|
||||
public class LineFollowController {
|
||||
|
||||
@Resource
|
||||
private LineFollowService lineFollowService;
|
||||
|
||||
@ApiOperation("跟进日志分页")
|
||||
@GetMapping("/page")
|
||||
public ResponseResult<PageInfo<LineFollowLogVO>> getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize){
|
||||
return ResponseResult.success(lineFollowService.getFollowLogPage(lineId, pageNum, pageSize));
|
||||
}
|
||||
|
||||
@ApiOperation("新增跟进日志")
|
||||
@PostMapping("/log/add")
|
||||
public ResponseResult<Long> addFollowLog(@RequestBody LineFollowLogRequest request){
|
||||
LoginUserInfo user = CurrentUserHolder.getUser();
|
||||
return ResponseResult.success(lineFollowService.addFollowLog(request, user.getUserId(), user.getName()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.cool.store.controller.webb;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.OpenCityDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.MessageEnum;
|
||||
import com.cool.store.mapper.HyOpenAreaInfoMapper;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.impl.CommonService;
|
||||
import com.cool.store.utils.poi.ExcelUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/pc/test")
|
||||
public class PCTestController {
|
||||
|
||||
@Resource
|
||||
private CommonService commonService;
|
||||
|
||||
|
||||
@GetMapping("/sendMessage")
|
||||
public ResponseResult<Boolean> sendMessage(){
|
||||
commonService.sendMessage(Arrays.asList("123836131931284423"), 1L, MessageEnum.MESSAGE_1, "张三", "浙江-杭州");
|
||||
return ResponseResult.success(Boolean.FALSE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.controller.webb;
|
||||
|
||||
import com.cool.store.enums.ExperienceStatusEnum;
|
||||
import com.cool.store.request.TrainingExperienceDistributionRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.TrainingExperienceService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.websocket.server.PathParam;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/pc/training/experience/")
|
||||
@Api(tags = "PC端-实训体验")
|
||||
@Slf4j
|
||||
public class PCTrainingExperienceController {
|
||||
|
||||
@Resource
|
||||
TrainingExperienceService trainingExperienceService;
|
||||
|
||||
@ApiOperation("实训体验分配")
|
||||
@PostMapping("/distribution")
|
||||
public ResponseResult<Boolean> distribution(@RequestBody TrainingExperienceDistributionRequest request) {
|
||||
return ResponseResult.success(trainingExperienceService.distribution(request));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,13 +4,11 @@ package com.cool.store.controller.webc;
|
||||
import com.cool.store.request.JoinIntentionRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.JoinIntentionService;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
@@ -24,9 +22,16 @@ public class MiniJoinIntentionController {
|
||||
@Resource
|
||||
private JoinIntentionService joinIntentionService;
|
||||
|
||||
@PostMapping(path = "/submit")
|
||||
@ApiOperation("填写加盟意向申请书")
|
||||
@PostMapping(path = "/submitOrUpdate")
|
||||
@ApiOperation("填写或更新加盟意向申请书")
|
||||
public ResponseResult<Boolean> submit(@RequestBody @Valid JoinIntentionRequest request) {
|
||||
return ResponseResult.success(joinIntentionService.submit(request));
|
||||
}
|
||||
|
||||
@GetMapping(path = "/getByLineId")
|
||||
@ApiOperation("查找加盟意向申请书")
|
||||
public ResponseResult<PartnerBaseInfoVO> getByLineId(@RequestParam("lineId") Long lineId) {
|
||||
return ResponseResult.success(joinIntentionService.getByLineId(lineId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.cool.store.controller.webb;
|
||||
package com.cool.store.controller.webc;
|
||||
|
||||
import com.cool.store.enums.ExperienceStatusEnum;
|
||||
import com.cool.store.request.TrainingExperienceDistributionRequest;
|
||||
@@ -11,24 +11,16 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.websocket.server.PathParam;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/pc/training/experience/")
|
||||
@Api(tags = "PC端-实训体验")
|
||||
@RequestMapping("/mini/training/experience/")
|
||||
@Api(tags = "移动端-实训体验")
|
||||
@Slf4j
|
||||
public class TrainingExperienceController {
|
||||
public class MiniTrainingExperienceController {
|
||||
|
||||
@Resource
|
||||
TrainingExperienceService trainingExperienceService;
|
||||
|
||||
|
||||
@ApiOperation("实训体验分配")
|
||||
@PostMapping("/distribution")
|
||||
public ResponseResult<Boolean> distribution(@RequestBody TrainingExperienceDistributionRequest request) {
|
||||
return ResponseResult.success(trainingExperienceService.distribution(request));
|
||||
}
|
||||
|
||||
@ApiOperation("实训体验状态变更")
|
||||
@GetMapping("/experience/{status}")
|
||||
public ResponseResult experienceStatusChange(@ApiParam(value = "实训体验状态 DONE:完成 ABANDON:放弃") @PathVariable(value = "status") ExperienceStatusEnum statusEnum,
|
||||
@@ -20,7 +20,7 @@ import java.util.concurrent.Future;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/pc/test")
|
||||
@RequestMapping("/test")
|
||||
public class TestController {
|
||||
|
||||
@Resource
|
||||
|
||||
@@ -72,4 +72,6 @@ recommended.channel.id=52400
|
||||
wx.pay.privateKeyPath=D:\\weixin\\apiclient_key.pem
|
||||
|
||||
aliyun.accessKeyId=LTAI5tQ6QBnWaB5LaJYz6zcD
|
||||
aliyun.accessKeySecret=spqsOgtfr54cwK861O3N3fInydTgjA
|
||||
aliyun.accessKeySecret=spqsOgtfr54cwK861O3N3fInydTgjA
|
||||
|
||||
coolstore.page.domain=https://t2store.coolstore.cn/
|
||||
@@ -37,9 +37,9 @@ mybatis.configuration.map-underscore-to-camel-case=true
|
||||
isv.domain=https://abstore-isv.coolstore.cn/isv
|
||||
|
||||
#rocketmq \u914D\u7F6E
|
||||
rocketmq.accessKey=zK2oVEz4G1ts23d2
|
||||
rocketmq.secretKey=0UstLCS0mh2ASgBh
|
||||
rocketmq.nameSrvAdder=http://rmq-cn-9lb38l1rx04.cn-hangzhou.rmq.aliyuncs.com:8080
|
||||
rocketmq.accessKey=LTAI5t5ouXZuFgxJMbQea3b2
|
||||
rocketmq.secretKey=yuomDstRjSdihtN5zo8viDbWu8Z0ig
|
||||
rocketmq.nameSrvAdder=http://MQ_INST_1947409023213164_BX3sLZnA.cn-hangzhou.mq-internal.aliyuncs.com:8080
|
||||
rocketmq.topic=simple_message
|
||||
|
||||
#oss配置
|
||||
@@ -77,4 +77,6 @@ xxl.job.executor.logretentiondays = 30
|
||||
xxl.job.accessToken =
|
||||
|
||||
exhibition.channel.id=52399
|
||||
recommended.channel.id=52400
|
||||
recommended.channel.id=52400
|
||||
|
||||
coolstore.page.domain=https://t2store.coolstore.cn/
|
||||
@@ -51,6 +51,7 @@ server.tomcat.basedir=/tmp/tomcat/partner-b
|
||||
|
||||
log4j2.formatMsgNoLookups=true
|
||||
mybatis.configuration.variables.enterpriseId=e17cd2dc350541df8a8b0af9bd27f77d
|
||||
enterprise.dingCorpId=dingef2502a50df74ccc35c2f4657eb6378f
|
||||
|
||||
wx.pay.merchantId=1670560201
|
||||
wx.pay.privateKeyPath=/opt/apps/coolcollege/apiclient/apiclient_key.pem
|
||||
|
||||
Reference in New Issue
Block a user