Commit a0249abd by 徐高华

Merge remote-tracking branch 'origin/feature-content2' into

feature/自建应用验证

Conflicts:
	haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/WxEnterpriseQwDTO.java
	haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/ExternalClerkRelatedApiService.java
	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/StaffClerkRelationServiceImpl.java
	haoban-manage3-service/src/main/resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
	haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WxStaffController.java
parents f63b1486 69874815
...@@ -13,7 +13,12 @@ public class ContentMaterialDTO implements Serializable { ...@@ -13,7 +13,12 @@ public class ContentMaterialDTO implements Serializable {
// 1群发 2朋友圈 // 1群发 2朋友圈
private int mediaType ; private int mediaType ;
/**
* 视频封面图
*/
private String videoImgUrl;
public int getMediaType() { public int getMediaType() {
return mediaType; return mediaType;
} }
...@@ -37,4 +42,12 @@ public class ContentMaterialDTO implements Serializable { ...@@ -37,4 +42,12 @@ public class ContentMaterialDTO implements Serializable {
public void setMaterialType(int materialType) { public void setMaterialType(int materialType) {
this.materialType = materialType; this.materialType = materialType;
} }
public String getVideoImgUrl() {
return videoImgUrl;
}
public void setVideoImgUrl(String videoImgUrl) {
this.videoImgUrl = videoImgUrl;
}
} }
...@@ -34,6 +34,12 @@ public class WxEnterpriseQwDTO implements Serializable { ...@@ -34,6 +34,12 @@ public class WxEnterpriseQwDTO implements Serializable {
public void setSelfSecret(String selfSecret) { public void setSelfSecret(String selfSecret) {
this.selfSecret = selfSecret; this.selfSecret = selfSecret;
} }
// 好办小程序应用id
private String agentId;
// 好办小程序名称
private String agentName;
// 第三方使用的加密的userid // 第三方使用的加密的userid
public boolean needOpenUserId3th() { public boolean needOpenUserId3th() {
...@@ -87,4 +93,20 @@ public class WxEnterpriseQwDTO implements Serializable { ...@@ -87,4 +93,20 @@ public class WxEnterpriseQwDTO implements Serializable {
public void setThirdCorpid(String thirdCorpid) { public void setThirdCorpid(String thirdCorpid) {
this.thirdCorpid = thirdCorpid; this.thirdCorpid = thirdCorpid;
} }
public String getAgentId() {
return agentId;
}
public void setAgentId(String agentId) {
this.agentId = agentId;
}
public String getAgentName() {
return agentName;
}
public void setAgentName(String agentName) {
this.agentName = agentName;
}
} }
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
/**
* Created by wangzubo on 2023/3/20.
*/
public class ChatContentDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 标题
*/
private String title;
/**
* 封面url
*/
private String img;
/**
* 视频url
*/
private String content;
/**
* 关联id 企微素材id或内容素材id
* 兼容原有不是驼峰
*/
private String relation_id;
/**
* 素材类型 1文本, 2图片, 4视频
*/
private Integer type;
/**
* 内容素材url是否已经重新上传
*/
private Integer urlChangeFlag;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getRelation_id() {
return relation_id;
}
public void setRelation_id(String relation_id) {
this.relation_id = relation_id;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getUrlChangeFlag() {
return urlChangeFlag;
}
public void setUrlChangeFlag(Integer urlChangeFlag) {
this.urlChangeFlag = urlChangeFlag;
}
}
...@@ -53,6 +53,11 @@ public class GroupChatPlanDTO implements Serializable { ...@@ -53,6 +53,11 @@ public class GroupChatPlanDTO implements Serializable {
// 1代发送 2已发送 // 1代发送 2已发送
private Integer sendFlag; private Integer sendFlag;
/**
* 关联素材来源1好办素材2内容中心
*/
private Integer materialFrom;
public String getDelStaffIdList() { public String getDelStaffIdList() {
return delStaffIdList; return delStaffIdList;
} }
...@@ -252,4 +257,12 @@ public class GroupChatPlanDTO implements Serializable { ...@@ -252,4 +257,12 @@ public class GroupChatPlanDTO implements Serializable {
public Integer getTotalChatCount() { public Integer getTotalChatCount() {
return totalChatCount; return totalChatCount;
} }
public Integer getMaterialFrom() {
return materialFrom;
}
public void setMaterialFrom(Integer materialFrom) {
this.materialFrom = materialFrom;
}
} }
\ No newline at end of file
package com.gic.haoban.manage.api.dto.content;
import java.io.Serializable;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/3/29 9:47 AM
* @Description
* @Version
* 销售线索
**/
public class PotentialCustomerDTO implements Serializable {
private static final long serialVersionUID = -8058807467674069679L;
private Long potentialCustomerId;
/**
* 会员昵称
*/
private String memberName;
/**
* 会员昵称
*/
private String memberNickName;
/**
* 会员头像
*/
private String memberImageUrl;
/**
* 会员id
*/
private String memberId;
/**
* 销售线索-业务id
*/
private String bizId;
/**
* 业务类型 1 素材
*/
private Integer bizType;
/**
* 最后访问时间
*/
private Date lastAccessTime;
/**
* 会员手机号
*/
private String memberPhone;
/**
* 是否导购星标客户
* 1 是; 0否
*/
private Integer starFlag;
/**
* 导购是否查看
* 1 已查看 0 未查看;
*/
private Integer seeFlag;
/**
* 销售线索描述
* 通过XXX访问XXX
*/
private String desc;
/**
* 最近30天访问次数
*/
private Integer visitNum;
/**
* 导购与会员是否有好友
* 1 是好友; 0不是
*/
private Integer hasMemberRelation;
/**
* 会员全渠道成交
* 1 有过成交; 0 没有成交
*/
private Integer dealRecord;
/**
* 第几次访问
*/
private Integer times;
/**
* 停留时长 单位秒
*/
private Integer durationTime;
public Long getPotentialCustomerId() {
return potentialCustomerId;
}
public void setPotentialCustomerId(Long potentialCustomerId) {
this.potentialCustomerId = potentialCustomerId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberImageUrl() {
return memberImageUrl;
}
public void setMemberImageUrl(String memberImageUrl) {
this.memberImageUrl = memberImageUrl;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Date getLastAccessTime() {
return lastAccessTime;
}
public void setLastAccessTime(Date lastAccessTime) {
this.lastAccessTime = lastAccessTime;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public Integer getStarFlag() {
return starFlag;
}
public void setStarFlag(Integer starFlag) {
this.starFlag = starFlag;
}
public Integer getSeeFlag() {
return seeFlag;
}
public void setSeeFlag(Integer seeFlag) {
this.seeFlag = seeFlag;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Integer getVisitNum() {
return visitNum;
}
public void setVisitNum(Integer visitNum) {
this.visitNum = visitNum;
}
public Integer getHasMemberRelation() {
return hasMemberRelation;
}
public void setHasMemberRelation(Integer hasMemberRelation) {
this.hasMemberRelation = hasMemberRelation;
}
public Integer getDealRecord() {
return dealRecord;
}
public void setDealRecord(Integer dealRecord) {
this.dealRecord = dealRecord;
}
public Integer getTimes() {
return times;
}
public void setTimes(Integer times) {
this.times = times;
}
public Integer getDurationTime() {
return durationTime;
}
public void setDurationTime(Integer durationTime) {
this.durationTime = durationTime;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getMemberNickName() {
return memberNickName;
}
public void setMemberNickName(String memberNickName) {
this.memberNickName = memberNickName;
}
}
package com.gic.haoban.manage.api.dto.content.log;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/3/18 8:23 PM
* @Description
* @Version
**/
public class ClerkShareMaterialLogDTO implements Serializable {
private static final long serialVersionUID = 57985108148863697L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 素材分享类型
* @see com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType
*/
private Integer shareType;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
/**
* 外部联系人id
*/
private String externalUserId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Integer getShareType() {
return shareType;
}
public void setShareType(Integer shareType) {
this.shareType = shareType;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getExternalUserId() {
return externalUserId;
}
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
}
package com.gic.haoban.manage.api.dto.content.log;
import com.tencentcloudapi.vpc.v20170312.models.LocalGateway;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/3/20 4:27 PM
* @Description
* @Version
**/
public class TriggerCustomerDetailLogDTO implements Serializable {
private static final long serialVersionUID = -5149812263567137819L;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 类型
*
* @see com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
*/
private Integer shareType;
/**
* 分享到朋友圈
*/
private SharePYQ sharePYQ;
public static class SharePYQ implements Serializable {
private static final long serialVersionUID = 273212828851672738L;
/**
* 导购分享日志id
*/
private Long shareLogId;
public Long getShareLogId() {
return shareLogId;
}
public void setShareLogId(Long shareLogId) {
this.shareLogId = shareLogId;
}
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getShareType() {
return shareType;
}
public void setShareType(Integer shareType) {
this.shareType = shareType;
}
public SharePYQ getSharePYQ() {
return sharePYQ;
}
public void setSharePYQ(SharePYQ sharePYQ) {
this.sharePYQ = sharePYQ;
}
}
package com.gic.haoban.manage.api.dto.content;
\ No newline at end of file
package com.gic.haoban.manage.api.dto.content.report;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/3/25 7:18 PM
* @Description
* @Version
**/
public class MaterialReportDTO implements Serializable {
private static final long serialVersionUID = -6373558370216756429L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 成员id
*/
private String staffId;
/**
* 周报类型
*/
private Integer reportType;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Integer getReportType() {
return reportType;
}
public void setReportType(Integer reportType) {
this.reportType = reportType;
}
}
package com.gic.haoban.manage.api.dto.notify.dto;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* Created by wangzubo on 2023/3/13.
*/
public class NotifyMessageMQDTO implements Serializable {
private static final long serialVersionUID = 1L;
private String enterpriseId;
/**
* 导购id列表
*/
private List<String> clerkIdList;
/**
* 通知类型
*/
private String templateCode;
/**
* 拓展内容
*/
private Map<String, Object> extendContent;
/**
* 结果 1成功0失败
*/
private Integer result;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public List<String> getClerkIdList() {
return clerkIdList;
}
public void setClerkIdList(List<String> clerkIdList) {
this.clerkIdList = clerkIdList;
}
public String getTemplateCode() {
return templateCode;
}
public void setTemplateCode(String templateCode) {
this.templateCode = templateCode;
}
public Map<String, Object> getExtendContent() {
return extendContent;
}
public void setExtendContent(Map<String, Object> extendContent) {
this.extendContent = extendContent;
}
public Integer getResult() {
return result;
}
public void setResult(Integer result) {
this.result = result;
}
}
...@@ -16,6 +16,8 @@ public class NoticeMessageQDTO implements Serializable { ...@@ -16,6 +16,8 @@ public class NoticeMessageQDTO implements Serializable {
private String optTargetId; private String optTargetId;
private int messageType; private int messageType;
private String templateCode; private String templateCode;
private String title;
private Map<String, String> contentMap; private Map<String, String> contentMap;
// 是否校验gic企业 // 是否校验gic企业
private boolean checkFlag =false ; private boolean checkFlag =false ;
...@@ -119,6 +121,14 @@ public class NoticeMessageQDTO implements Serializable { ...@@ -119,6 +121,14 @@ public class NoticeMessageQDTO implements Serializable {
this.templateCode = templateCode; this.templateCode = templateCode;
} }
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Map<String, String> getContentMap() { public Map<String, String> getContentMap() {
return contentMap; return contentMap;
} }
......
package com.gic.haoban.manage.api.dto.notify.qdto;
import java.util.List;
/**
* Created by wangzubo on 2023/3/13.
*/
public class NotifyMessageBatchQDTO extends NoticeMessageQDTO{
private static final long serialVersionUID = 1L;
private List<String> storeIdList;
public List<String> getStoreIdList() {
return storeIdList;
}
public void setStoreIdList(List<String> storeIdList) {
this.storeIdList = storeIdList;
}
}
package com.gic.haoban.manage.api.dto.qdto.content;
import com.gic.api.base.commons.BasePageInfo;
/**
* @Author MUSI
* @Date 2023/3/29 1:11 PM
* @Description
* @Version
**/
public class InteractRecordQDTO extends BasePageInfo {
/**
* 导购id
*/
private String clerkId;
/**
* 会员id
*/
private String memberId;
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
}
package com.gic.haoban.manage.api.dto.qdto.content;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/3/29 9:58 AM
* @Description
* @Version
**/
public class PotentialCustomerMarkRecordDTO implements Serializable {
private static final long serialVersionUID = -5408267247555124255L;
/**
* 线索id
*/
private Long potentialCustomerId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 会员id
*/
private String memberId;
/**
* 导购id
*/
private String clerkId;
/**
* 导购是否看过
* 1已看过
* 0未看过
*/
private Integer seeFlag;
/**
* 是否导购星标客户
* 1 与导购是星标 0 取消星标
*/
private Integer starFlag;
public Long getPotentialCustomerId() {
return potentialCustomerId;
}
public void setPotentialCustomerId(Long potentialCustomerId) {
this.potentialCustomerId = potentialCustomerId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getSeeFlag() {
return seeFlag;
}
public void setSeeFlag(Integer seeFlag) {
this.seeFlag = seeFlag;
}
public Integer getStarFlag() {
return starFlag;
}
public void setStarFlag(Integer starFlag) {
this.starFlag = starFlag;
}
}
package com.gic.haoban.manage.api.dto.qdto.content;
import com.gic.api.base.commons.BasePageInfo;
/**
* @Author MUSI
* @Date 2023/3/29 9:55 AM
* @Description
* @Version
**/
public class PotentialCustomerQDTO extends BasePageInfo {
private static final long serialVersionUID = 1854515840082825892L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 搜索字段
*/
private String search;
/**
* 导购是否看过
* 1已看过
* 0未看过
*/
private Integer seeFlag;
/**
* 是否导购星标客户
* 1 与导购是星标
*/
private Integer starFlag;
/**
* 导购与会员是否 企微好友
* 1 是好友; 0不是
*/
private Integer hasMemberRelation;
/**
* 会员是否有过成交
* 1 有过成交
*/
private Integer dealRecord;
/**
* 1 会员有手机号
*/
private Integer hasMemberPhone;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
public Integer getSeeFlag() {
return seeFlag;
}
public void setSeeFlag(Integer seeFlag) {
this.seeFlag = seeFlag;
}
public Integer getStarFlag() {
return starFlag;
}
public void setStarFlag(Integer starFlag) {
this.starFlag = starFlag;
}
public Integer getHasMemberRelation() {
return hasMemberRelation;
}
public void setHasMemberRelation(Integer hasMemberRelation) {
this.hasMemberRelation = hasMemberRelation;
}
public Integer getDealRecord() {
return dealRecord;
}
public void setDealRecord(Integer dealRecord) {
this.dealRecord = dealRecord;
}
public Integer getHasMemberPhone() {
return hasMemberPhone;
}
public void setHasMemberPhone(Integer hasMemberPhone) {
this.hasMemberPhone = hasMemberPhone;
}
}
package com.gic.haoban.manage.api.dto.qdto.role;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/4/6 12:46 PM
* @Description
* @Version
**/
public class ContentMaterialROleInitQDTO implements Serializable {
private static final long serialVersionUID = 726271440180247126L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 企业微信
*/
private String wxEnterpriseId;
/**
* 1 基础版本
* 2 高级版本
* @see Version
*/
private Integer version;
public enum Version {
LOW(1, "基础版本"),
HIGH(2, "高级版");
private Integer code;
private String desc;
Version(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
}
...@@ -57,6 +57,25 @@ public class HaobanMenuDTO implements Serializable { ...@@ -57,6 +57,25 @@ public class HaobanMenuDTO implements Serializable {
private String routePath; private String routePath;
private String ownerShip; private String ownerShip;
private int authControl ;
private String btnCodeRel ;
public int getAuthControl() {
return authControl;
}
public String getBtnCodeRel() {
return btnCodeRel;
}
public void setAuthControl(int authControl) {
this.authControl = authControl;
}
public void setBtnCodeRel(String btnCodeRel) {
this.btnCodeRel = btnCodeRel;
}
private List<HaobanMenuDTO> menuBOList; private List<HaobanMenuDTO> menuBOList;
......
package com.gic.haoban.manage.api.enums;
/**
* @Author MUSI
* @Date 2023/3/24 5:17 PM
* @Description
* @Version
* 0:店员,1:店长,2:区经
**/
public enum HaobanClerkTypeEnum {
;
HaobanClerkTypeEnum(Integer type, String desc){
this.code = type;
this.desc = desc;
}
private int code;
private String desc;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -12,6 +12,8 @@ public enum NoticeMessageCategoryTypeEnum { ...@@ -12,6 +12,8 @@ public enum NoticeMessageCategoryTypeEnum {
ACTIVITY(2, "活动相关"), ACTIVITY(2, "活动相关"),
ORDER(4, "订单相关"), ORDER(4, "订单相关"),
REFUND(5, "售后相关"), REFUND(5, "售后相关"),
MATERIAL(6, "素材相关"),
POTENTIAL_CUSTOMER(7, "销售线索"),
OTHER(3, "其它"),; OTHER(3, "其它"),;
private int type; private int type;
private String name; private String name;
......
...@@ -57,7 +57,7 @@ public enum NoticeMessageTypeEnum { ...@@ -57,7 +57,7 @@ public enum NoticeMessageTypeEnum {
CUSTOMER_GET_COUPON(4004, "客户领券通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_get_coupon", "/pages/route/index?pageType=", "hbapp_customer_detail"), CUSTOMER_GET_COUPON(4004, "客户领券通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_get_coupon", "/pages/route/index?pageType=", "hbapp_customer_detail"),
CUSTOMER_APPLY_ORDER_REFUND(4005, "客户申请退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_apply_order_refund", "/pages/route/index?pageType=", "hbapp_customer_order_detail"), CUSTOMER_APPLY_ORDER_REFUND(4005, "客户申请退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_apply_order_refund", "/pages/route/index?pageType=", "hbapp_customer_order_detail"),
CUSTOMER_SUCCESS_ORDER_REFUND(4006, "客户成功退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_success_order_refund", "/pages/route/index?pageType=", "hbapp_user_bill_detail"), CUSTOMER_SUCCESS_ORDER_REFUND(4006, "客户成功退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_success_order_refund", "/pages/route/index?pageType=", "hbapp_user_bill_detail"),
// 订单- 待发货订单提醒 // 订单- 待发货订单提醒
ORDER_TAKE(5000, "待自提订单提醒", NoticeMessageCategoryTypeEnum.ORDER.getType(), "order_take", "/pages/route/index?pageType=", "hbapp_order_verfication"), ORDER_TAKE(5000, "待自提订单提醒", NoticeMessageCategoryTypeEnum.ORDER.getType(), "order_take", "/pages/route/index?pageType=", "hbapp_order_verfication"),
ORDER_PAY(5001, "待发货订单提醒", NoticeMessageCategoryTypeEnum.ORDER.getType(), "order_pay", "/pages/route/index?pageType=", "hbapp_order_center"), ORDER_PAY(5001, "待发货订单提醒", NoticeMessageCategoryTypeEnum.ORDER.getType(), "order_pay", "/pages/route/index?pageType=", "hbapp_order_center"),
...@@ -65,8 +65,14 @@ public enum NoticeMessageTypeEnum { ...@@ -65,8 +65,14 @@ public enum NoticeMessageTypeEnum {
REFUND_MEMBER_CANCEL(5011, "买家取消售后提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_member_cancel", "/pages/route/index?pageType=", "hbapp_order_center"), REFUND_MEMBER_CANCEL(5011, "买家取消售后提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_member_cancel", "/pages/route/index?pageType=", "hbapp_order_center"),
REFUND_DELIVER(5013, "买家寄出退换货提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_deliver", "/pages/route/index?pageType=", "hbapp_order_center"), REFUND_DELIVER(5013, "买家寄出退换货提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_deliver", "/pages/route/index?pageType=", "hbapp_order_center"),
;
MATERIAL_NEW_NOTIFY(6001, "素材上新通知", NoticeMessageCategoryTypeEnum.MATERIAL.getType(), "material_new_notify", "/pages/route/index?pageType=", "hbapp_material_center"),
MATERIAL_REPORT_NOTIFY(6002, "素材周报/月报通知", NoticeMessageCategoryTypeEnum.MATERIAL.getType(), "material_week_notify", "/pages/route/index?pageType=", "hbapp_mate_report"),
POTENTIAL_CUSTOMER_NOTIFY(6003, "销售线索通知", NoticeMessageCategoryTypeEnum.POTENTIAL_CUSTOMER.getType(), "potential_customer_notify", "/pages/route/index?pageType=", "hbapp_sales_clue_center");
/** /**
* 消息类型 * 消息类型
*/ */
......
package com.gic.haoban.manage.api.enums.content;
/**
* @Author MUSI
* @Date 2023/3/18 8:26 PM
* @Description
* @Version
* 导购分享素材类型枚举
**/
public enum ClerkShareMaterialType {
SHARE_PYQ(1, "群发到朋友圈"),
SHARE_CUSTOMER(2, "群发给客户"),
SHARE_GROUP(3, "群发到群")
;
ClerkShareMaterialType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Integer code;
private String desc;
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
package com.gic.haoban.manage.api.enums.content;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Author MUSI
* @Date 2023/3/29 1:08 PM
* @Description
* @Version
**/
public class InteractRecordExtendInfoDTO implements Serializable {
private static final long serialVersionUID = 1577766149535235456L;
/**
* 素材关联的订单信息
*/
private List<ExtendOrderInfo> extendOrderInfos;
/**
* 失效商品数量
*/
private Integer invalidGoodsNum;
/**
* 素材扩展商品信息
*/
private List<ExtendGoodsInfo> extendGoodsInfos;
public static class ExtendGoodsInfo implements Serializable {
/**
* 商品名称
*/
private String goodsName;
/**
* 商品主图
*/
private String goodsImageUrl;
/**
* 商品货号
*/
private String goodsCode;
/**
* 商品规格 红色,S; 白色,S
*/
private String goodsNorm;
/**
* 订单项数量
*/
private Integer orderNum;
/**
* 商品单价
*/
private BigDecimal salePrice;
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getGoodsImageUrl() {
return goodsImageUrl;
}
public void setGoodsImageUrl(String goodsImageUrl) {
this.goodsImageUrl = goodsImageUrl;
}
public String getGoodsCode() {
return goodsCode;
}
public void setGoodsCode(String goodsCode) {
this.goodsCode = goodsCode;
}
public String getGoodsNorm() {
return goodsNorm;
}
public void setGoodsNorm(String goodsNorm) {
this.goodsNorm = goodsNorm;
}
public Integer getOrderNum() {
return orderNum;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public BigDecimal getSalePrice() {
return salePrice;
}
public void setSalePrice(BigDecimal salePrice) {
this.salePrice = salePrice;
}
}
/**
* 素材关联的订单信息
*/
public static class ExtendOrderInfo implements Serializable {
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单创建时间
*/
private Date orderCreateTime;
/**
* 订单商品项总数
*/
private Integer orderTotalNum;
/**
* 订单应付
*/
private BigDecimal orderPay;
/**
* 订单实付
*/
private BigDecimal realPay;
/**
* 订单商品信息
*/
private List<ExtendGoodsInfo> orderGoodsInfos;
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public Date getOrderCreateTime() {
return orderCreateTime;
}
public void setOrderCreateTime(Date orderCreateTime) {
this.orderCreateTime = orderCreateTime;
}
public Integer getOrderTotalNum() {
return orderTotalNum;
}
public void setOrderTotalNum(Integer orderTotalNum) {
this.orderTotalNum = orderTotalNum;
}
public BigDecimal getOrderPay() {
return orderPay;
}
public void setOrderPay(BigDecimal orderPay) {
this.orderPay = orderPay;
}
public BigDecimal getRealPay() {
return realPay;
}
public void setRealPay(BigDecimal realPay) {
this.realPay = realPay;
}
public List<ExtendGoodsInfo> getOrderGoodsInfos() {
return orderGoodsInfos;
}
public void setOrderGoodsInfos(List<ExtendGoodsInfo> orderGoodsInfos) {
this.orderGoodsInfos = orderGoodsInfos;
}
}
public List<ExtendOrderInfo> getExtendOrderInfos() {
return extendOrderInfos;
}
public void setExtendOrderInfos(List<ExtendOrderInfo> extendOrderInfos) {
this.extendOrderInfos = extendOrderInfos;
}
public Integer getInvalidGoodsNum() {
return invalidGoodsNum;
}
public void setInvalidGoodsNum(Integer invalidGoodsNum) {
this.invalidGoodsNum = invalidGoodsNum;
}
public List<ExtendGoodsInfo> getExtendGoodsInfos() {
return extendGoodsInfos;
}
public void setExtendGoodsInfos(List<ExtendGoodsInfo> extendGoodsInfos) {
this.extendGoodsInfos = extendGoodsInfos;
}
}
package com.gic.haoban.manage.api.enums.content;
import java.io.Serializable;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/3/29 12:46 PM
* @Description
* @Version
**/
public class InteractRecordInfoDTO implements Serializable {
private static final long serialVersionUID = -170525928535773136L;
/**
* 互动记录id
*/
private Long interactRecordId;
/**
* 记录描述
* 通过XXX访问XXXX
*/
private String recordDesc;
/**
* 第几次访问
*/
private Integer times;
/**
* 停留时长 单位秒
*/
private Integer durationTime;
/**
* 记录生成时间
*/
private Date createTime;
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
*/
private Integer channelSource;
/**
* 记录事件类型
* 1浏览素材;2 查看商品; 3 购买商品
* 通过此类型区分 弹窗提示
*/
private Integer eventType;
/**
* 业务id
*/
private String bizId;
/**
* 浏览的商品数量
*/
private Integer visitGoodsNum;
/**
* 下单的商品数量
*/
private Integer orderGoodsNum;
/**
* 扩展信息
*/
private InteractRecordExtendInfoDTO extendInfo;
public Long getInteractRecordId() {
return interactRecordId;
}
public void setInteractRecordId(Long interactRecordId) {
this.interactRecordId = interactRecordId;
}
public String getRecordDesc() {
return recordDesc;
}
public void setRecordDesc(String recordDesc) {
this.recordDesc = recordDesc;
}
public Integer getTimes() {
return times;
}
public void setTimes(Integer times) {
this.times = times;
}
public Integer getDurationTime() {
return durationTime;
}
public void setDurationTime(Integer durationTime) {
this.durationTime = durationTime;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getEventType() {
return eventType;
}
public void setEventType(Integer eventType) {
this.eventType = eventType;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public InteractRecordExtendInfoDTO getExtendInfo() {
return extendInfo;
}
public void setExtendInfo(InteractRecordExtendInfoDTO extendInfo) {
this.extendInfo = extendInfo;
}
public Integer getChannelSource() {
return channelSource;
}
public void setChannelSource(Integer channelSource) {
this.channelSource = channelSource;
}
public Integer getVisitGoodsNum() {
return visitGoodsNum;
}
public void setVisitGoodsNum(Integer visitGoodsNum) {
this.visitGoodsNum = visitGoodsNum;
}
public Integer getOrderGoodsNum() {
return orderGoodsNum;
}
public void setOrderGoodsNum(Integer orderGoodsNum) {
this.orderGoodsNum = orderGoodsNum;
}
}
package com.gic.haoban.manage.api.enums.content;
/**
* @Author MUSI
* @Date 2023/3/29 2:00 PM
* @Description
* @Version
* 素材分享记录 枚举
**/
public enum MaterialInteractRecordEventType {
VISIT_MATERIAL(1, "浏览了你分享的素材"),
VISIT_PRODUCT(2, "浏览了你分享的素材,并查看了关联商品"),
ORDER(3, "浏览了你分享的素材,并购买了商品");
MaterialInteractRecordEventType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static MaterialInteractRecordEventType getInstance(Integer code) {
if (code == null) {
return null;
}
for (MaterialInteractRecordEventType value : values()) {
if (value.code.equals(code)) {
return value;
}
}
return null;
}
private Integer code;
private String desc;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package com.gic.haoban.manage.api.enums.content;
/**
* @Author MUSI
* @Date 2023/3/24 10:25 PM
* @Description
* @Version
**/
public enum MaterialReportType {
WEEK(1, "周报"),
MONTH(2, "月报");
MaterialReportType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Integer code;
private String desc;
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
package com.gic.haoban.manage.api.enums.content;
/**
* @Author MUSI
* @Date 2023/3/18 8:26 PM
* @Description
* @Version
* 导购分享素材类型枚举
**/
public enum ShareBizType {
MATERIAL(1, "素材");
ShareBizType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Integer code;
private String desc;
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
package com.gic.haoban.manage.api.enums.content;
import java.util.Arrays;
import java.util.List;
/**
* @Author MUSI
* @Date 2023/3/19 10:06 PM
* @Description
* @Version
* 客户触达渠道类型
**/
public enum TriggerCustomerChannelType {
PYQ(1, "朋友圈"),
CUSTOMER_GROUP(2, "客户群"),
DIALOG_BOX(3, "对话框"),
CONTENT_COPY(4, "复制文案"),
CONTENT_DOWNLOAD(5, "下载素材")
;
/**
* 展示文案的渠道类型
* @return
*/
public static List<Integer> showDescChannel(){
return Arrays.asList(PYQ.code, CUSTOMER_GROUP.code, DIALOG_BOX.code);
}
public static TriggerCustomerChannelType getInstance(Integer code) {
for (TriggerCustomerChannelType customerChannelType : values()) {
if (customerChannelType.code.equals(code)) {
return customerChannelType;
}
}
return null;
}
TriggerCustomerChannelType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Integer code;
private String desc;
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
...@@ -197,6 +197,19 @@ public interface ExternalClerkRelatedApiService { ...@@ -197,6 +197,19 @@ public interface ExternalClerkRelatedApiService {
List<String> listMemberAndStaff(List<String> memberIdList , String StaffId , String enterpriseId) ; List<String> listMemberAndStaff(List<String> memberIdList , String StaffId , String enterpriseId) ;
/**
*
* @param enterpriseId
* @param clerkId
* @param unionId
* @return
*/
com.gic.api.base.commons.ServiceResponse<Boolean> isQwFriendWithUnionId(String enterpriseId, String clerkId, String unionId) ;
//无效接口
// com.gic.api.base.commons.ServiceResponse<String> getExternalUseridForWxa(String enterpriseId, String staffId, String memberId) ;
List<String> listMemberAndClerk(List<String> memberIdList , List<String> clerkIdList , String enterpriseId) ;
/** /**
* 批量查询会员与导购好友关系 * 批量查询会员与导购好友关系
......
...@@ -30,6 +30,10 @@ public interface MaterialApiService { ...@@ -30,6 +30,10 @@ public interface MaterialApiService {
List<MaterialDTO> listMaterialByIds(List<String> materialIds); List<MaterialDTO> listMaterialByIds(List<String> materialIds);
List<MaterialDTO> listContentMaterialByIds(List<String> materialIds);
List<MaterialDTO> listMaterialByIds(List<String> materialIds,Integer materialFrom);
void editMaterial(MaterialDTO materialDTO); void editMaterial(MaterialDTO materialDTO);
Page<MaterialDTO> listMaterial(String wxEnterpriseId, String keyword, String categoryId, Integer materialType, BasePageInfo pageInfo); Page<MaterialDTO> listMaterial(String wxEnterpriseId, String keyword, String categoryId, Integer materialType, BasePageInfo pageInfo);
...@@ -79,4 +83,6 @@ public interface MaterialApiService { ...@@ -79,4 +83,6 @@ public interface MaterialApiService {
public com.gic.api.base.commons.ServiceResponse<String> getMaterialId(String wxEnterpriseId, ContentMaterialDTO dto) ; public com.gic.api.base.commons.ServiceResponse<String> getMaterialId(String wxEnterpriseId, ContentMaterialDTO dto) ;
com.gic.api.base.commons.ServiceResponse<String> getMaterialIdByUrl(String wxEnterpriseId, ContentMaterialDTO dto) ;
} }
...@@ -6,6 +6,8 @@ import com.gic.api.base.commons.ServiceResponse; ...@@ -6,6 +6,8 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.QywxCallBackDTO; import com.gic.haoban.manage.api.dto.QywxCallBackDTO;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum; import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import java.util.List;
/** /**
* Created by tgs on 2020/2/20. * Created by tgs on 2020/2/20.
*/ */
......
package com.gic.haoban.manage.api.service.content;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.qdto.content.InteractRecordQDTO;
import com.gic.haoban.manage.api.enums.content.InteractRecordInfoDTO;
/**
* @Author MUSI
* @Date 2023/3/29 12:45 PM
* @Description
* @Version
* 互动记录
**/
public interface InteractRecordApiService {
/**
* 查询互动记录
* @param interactRecordQDTO
* @return
*/
ServiceResponse<Page<InteractRecordInfoDTO>> queryInteractRecordList(InteractRecordQDTO interactRecordQDTO);
/**
* 处理member信息变化的MQ
* routeName: memberIdChangeNotify
* @param params
* @return
*/
ServiceResponse<Void> memberChangeMQ(String params);
}
package com.gic.haoban.manage.api.service.content;
import com.gic.api.base.commons.ServiceResponse;
/**
* @Author MUSI
* @Date 2023/4/6 5:26 PM
* @Description
* @Version
* 订单状态变更
**/
public interface MallOrderStatusChangeApiService {
/***
* 订单状态变更事件
* @param params
* @return
*/
ServiceResponse<Void> mallOrderStatusChange(String params);
/**
* 兼容订单事件先到达 埋点数据未到的情况
* @param params
* @return
*/
ServiceResponse<Void> orderEventDelay(String params);
}
package com.gic.haoban.manage.api.service.content;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO;
/**
* @Author MUSI
* @Date 2023/3/18 8:20 PM
* @Description
* @Version
*
* 素材分享日志
**/
public interface MaterialShareLogApiService {
/**
* 保存导购分享记录
* @param clerkShareMaterialLogDTO
* @return
*/
ServiceResponse<Long> saveClerkShareMaterialLog(ClerkShareMaterialLogDTO clerkShareMaterialLogDTO);
}
package com.gic.haoban.manage.api.service.content;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.content.PotentialCustomerDTO;
import com.gic.haoban.manage.api.dto.qdto.content.PotentialCustomerMarkRecordDTO;
import com.gic.haoban.manage.api.dto.qdto.content.PotentialCustomerQDTO;
/**
* @Author MUSI
* @Date 2023/3/29 9:47 AM
* @Description
* @Version
* 销售线索
**/
public interface PotentialCustomerApiService {
/**
* 查询销售线索记录
* @param potentialCustomerQDTO
* @return
*/
ServiceResponse<Page<PotentialCustomerDTO>> queryPotentialCustomer(PotentialCustomerQDTO potentialCustomerQDTO);
/**
* 标记销售线索 已看、星标
* @param potentialCustomerMarkRecordDTO
* @return
*/
ServiceResponse<Long> markPotentialCustomer(PotentialCustomerMarkRecordDTO potentialCustomerMarkRecordDTO);
}
package com.gic.haoban.manage.api.service.content.task;
import com.gic.api.base.commons.ServiceResponse;
/**
* @Author MUSI
* @Date 2023/3/19 8:31 PM
* @Description
* @Version
* 企微群发消息处理任务
**/
public interface QywxGroupMsgTaskApiService {
/**
* 查询企微群发消息结果
* 10 分钟一次
* @param params
* @return
*/
ServiceResponse<Void> groupMsgTaskJob(String params);
/**
* 处理客户触达日志明细
* @param params
* @return
*/
ServiceResponse<Void> handlerTriggerCustomerDetailLog(String params);
/**
* 素材周报
* 0 0 10 ? * MON
* 或者 0 0 10 ? * 2
* 每周一 10点
* 基础侧不支持最后不是?的表达式 改为每天执行 然后判断今天是不是周一
* @param params
* @return
*/
ServiceResponse<Void> handlerMaterialWeekReport(String params);
/**
* 素材月报
* 0 0 10 1 * ?
* @param params
* @return
*/
ServiceResponse<Void> handlerMaterialMonthReport(String params);
/**
* 处理单成员素材使用周报/月报
* @param params
* @return
*/
ServiceResponse<Void> doHandlerMaterialOneStaffReportMQ(String params);
/**
* 销售线索 通知job
* @param params
* @return
*/
ServiceResponse<Void> potentialCustomerJob(String params);
}
...@@ -176,5 +176,7 @@ public interface HmQrcodeApiService { ...@@ -176,5 +176,7 @@ public interface HmQrcodeApiService {
ServiceResponse<List<String>> listHmIdForIndex(HmQrcodeListQDTO qdto); ServiceResponse<List<String>> listHmIdForIndex(HmQrcodeListQDTO qdto);
ServiceResponse<List<String>> listHasQrcodeClerk(String enterpriseId, List<String> clerkIdList); ServiceResponse<List<String>> listHasQrcodeClerk(String enterpriseId, List<String> clerkIdList);
ServiceResponse<String> getClerkQrcode(String enterpriseId , String clerkId) ;
} }
...@@ -4,6 +4,9 @@ import com.gic.api.base.commons.BasePageInfo; ...@@ -4,6 +4,9 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.notify.dto.NoticeMessageInfoDTO; import com.gic.haoban.manage.api.dto.notify.dto.NoticeMessageInfoDTO;
import com.gic.haoban.manage.api.dto.notify.qdto.NotifyMessageBatchQDTO;
import java.util.List;
/** /**
* Created 2021/12/17. * Created 2021/12/17.
...@@ -26,6 +29,20 @@ public interface NoticeMessageApiService { ...@@ -26,6 +29,20 @@ public interface NoticeMessageApiService {
public void run(String json); public void run(String json);
/** /**
* 消息接收 发送消息
* "routerName": "haobanNoticeMessageBatch"
* @param json
*/
void noticeMessageBatchMq(String json);
/**
* 批量发送实现
* @param notifyMessageBatchQDTO
* @return
*/
ServiceResponse<Void> batchSendMessage(NotifyMessageBatchQDTO notifyMessageBatchQDTO);
/**
* 消息分页 * 消息分页
*1 *1
* @param enterpriseId * @param enterpriseId
......
package com.gic.haoban.manage.api.service.notify;
import com.gic.api.base.commons.ServiceResponse;
import java.util.List;
public interface NoticeMessageMQApiService {
ServiceResponse<Void> receviceSendMessage(String enterpriseId, List<String> storeIdList);
}
\ No newline at end of file
...@@ -22,15 +22,6 @@ public interface HaobanMenuApiService { ...@@ -22,15 +22,6 @@ public interface HaobanMenuApiService {
ServiceResponse addList(List<HaobanMenuQDTO> haobanMenuDTOList); ServiceResponse addList(List<HaobanMenuQDTO> haobanMenuDTOList);
/**
* 得到所有菜单code列表
*
* @return {@link ServiceResponse}<{@link List}<{@link HaobanMenuDTO}>>
*/
//无效接口
// ServiceResponse<List<String>> getAllMenuCodeList();
ServiceResponse<List<HaobanMenuDTO>> getAllMenuList(); ServiceResponse<List<HaobanMenuDTO>> getAllMenuList();
...@@ -54,18 +45,6 @@ public interface HaobanMenuApiService { ...@@ -54,18 +45,6 @@ public interface HaobanMenuApiService {
ServiceResponse<List<HaobanMenuDTO>> getHaobanMenuTreeList(String wxEnterpriseId,Integer clerkType); ServiceResponse<List<HaobanMenuDTO>> getHaobanMenuTreeList(String wxEnterpriseId,Integer clerkType);
/**
* 得到haoban菜单列表
*
* @param wxEnterpriseId wx企业标识
* @param clerkType 职员类型
* @return {@link ServiceResponse}<{@link List}<{@link HaobanMenuDTO}>>
*/
//无效接口
// ServiceResponse<List<String>> getHaobanMenuList(String wxEnterpriseId, Integer clerkType);
// ServiceResponse<HaobanMenuDTO> getMenuByCode(String menuCode);
ServiceResponse<String> getMenuNameByCode(String menuCode); ServiceResponse<String> getMenuNameByCode(String menuCode);
} }
...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.api.service.role; ...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.api.service.role;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO; import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.manage.api.dto.qdto.role.ContentMaterialROleInitQDTO;
import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO; import com.gic.haoban.manage.api.dto.qdto.role.HaobanRoleQDTO;
import com.gic.haoban.manage.api.dto.role.HaobanRoleDTO; import com.gic.haoban.manage.api.dto.role.HaobanRoleDTO;
...@@ -74,4 +75,11 @@ public interface HaobanRoleApiService { ...@@ -74,4 +75,11 @@ public interface HaobanRoleApiService {
*/ */
//无效接口 //无效接口
// ServiceResponse<List<String>> getMenuCodesByClerkType(String wxEnterpriseId,Integer clerkType,Integer systemFlag); // ServiceResponse<List<String>> getMenuCodesByClerkType(String wxEnterpriseId,Integer clerkType,Integer systemFlag);
/**
* 内容 权限初始化
* @return
*/
ServiceResponse<Void> contentMaterialRoleInit(ContentMaterialROleInitQDTO contentMaterialROleInitQDTO);
} }
...@@ -9,6 +9,9 @@ import org.apache.commons.collections.CollectionUtils; ...@@ -9,6 +9,9 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -26,6 +29,8 @@ public class NoticeMessageUtil { ...@@ -26,6 +29,8 @@ public class NoticeMessageUtil {
private static final String NOTICE_MESSAGE = "haobanNoticeMessage"; private static final String NOTICE_MESSAGE = "haobanNoticeMessage";
private static final String NOTICE_MESSAGE_BATCH = "haobanNoticeMessageBatch";
/** /**
* 发送消息 * 发送消息
* *
...@@ -139,4 +144,26 @@ public class NoticeMessageUtil { ...@@ -139,4 +144,26 @@ public class NoticeMessageUtil {
logger.info("发送消息异常:{}", e); logger.info("发送消息异常:{}", e);
} }
} }
/**
* 构建小程序跳转url
* @param messageTypeEnum
* @param data
* @return
*/
public static String buildMiniAppUrl(NoticeMessageTypeEnum messageTypeEnum, String data) {
if (StringUtils.isNotBlank(data)) {
try {
data = URLEncoder.encode(data, StandardCharsets.UTF_8.name());
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage());
}
}
String appUrl = messageTypeEnum.getPageUrl();
if (StringUtils.isNotBlank(messageTypeEnum.getPageType())) {
appUrl += messageTypeEnum.getPageType();
}
appUrl += "&data=" + data;
return appUrl;
}
} }
...@@ -174,6 +174,34 @@ ...@@ -174,6 +174,34 @@
<version>${gic-thirdparty-sdk}</version> <version>${gic-thirdparty-sdk}</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-sharding-sdk</artifactId>
<version>4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-store-goods-api</artifactId>
<version>${gic-store-goods-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-business-order-api</artifactId>
<version>${gic-business-order-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-order-ecommerce-api</artifactId>
<version>${gic-order-ecommerce-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-order-api</artifactId>
<version>${gic-order-api}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -20,6 +20,8 @@ public interface NoticeMessageMapper { ...@@ -20,6 +20,8 @@ public interface NoticeMessageMapper {
*/ */
int insertSelective(TabNoticeMessage record); int insertSelective(TabNoticeMessage record);
int insertBatch(@Param("records")List<TabNoticeMessage> record);
/** /**
*/ */
TabNoticeMessage selectByPrimaryKey(Long noticeMessageId); TabNoticeMessage selectByPrimaryKey(Long noticeMessageId);
......
...@@ -178,5 +178,12 @@ public interface StaffMapper { ...@@ -178,5 +178,12 @@ public interface StaffMapper {
@Param("activeTime")Date activeTime, @Param("activeTime")Date activeTime,
@Param("expireTime")Date expireTime, @Param("expireTime")Date expireTime,
@Param("activeCode")String activeCode); @Param("activeCode")String activeCode);
/**
* 查询企业下所有成员ID
* @param wxEnterpriseIds
* @return
*/
List<String> queryStaffIdsWithEnterpriseId(@Param("wxEnterpriseIds") List<String> wxEnterpriseIds);
} }
\ No newline at end of file
...@@ -253,6 +253,10 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -253,6 +253,10 @@ public interface TabHaobanExternalClerkRelatedMapper {
@Param("enterpriseId") String enterpriseId, @Param("enterpriseId") String enterpriseId,
@Param("memberId") String memberId); @Param("memberId") String memberId);
TabHaobanExternalClerkRelated getByUnionIdAndStaffId(@Param("staffId") String staffId,
@Param("enterpriseId") String enterpriseId,
@Param("unionId") String unionId);
/** /**
* 根据企业id分页 * 根据企业id分页
* *
...@@ -382,4 +386,18 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -382,4 +386,18 @@ public interface TabHaobanExternalClerkRelatedMapper {
List<String> listMemberAndStaff(@Param("memberIdList")List<String> memberIdList, @Param("staffId")String staffId, @Param("enterpriseId")String enterpriseId); List<String> listMemberAndStaff(@Param("memberIdList")List<String> memberIdList, @Param("staffId")String staffId, @Param("enterpriseId")String enterpriseId);
/**
* 查询成员的好友列表
*/
List<String> queryExternalUserIdWithStaffId(@Param("staffId") String staffId);
/**
* 查询会员与导购的好友关系
* @param staffId
* @param memberIds
* @return
*/
List<TabHaobanExternalClerkRelated> queryClerkMemberRelations(@Param("staffId") String staffId, @Param("memberIds") List<String> memberIds);
} }
\ No newline at end of file
...@@ -119,4 +119,6 @@ public interface TabHaobanStaffClerkRelationMapper { ...@@ -119,4 +119,6 @@ public interface TabHaobanStaffClerkRelationMapper {
List<StaffClerkRelationDTO> listManageBindByStaffId(@Param("staffId") String staffId); List<StaffClerkRelationDTO> listManageBindByStaffId(@Param("staffId") String staffId);
List<StaffClerkRelationDTO> listByStoreIds(@Param("wxEnterpriseId") String wxEnterpriseId,@Param("storeIds") List<String> storeIds); List<StaffClerkRelationDTO> listByStoreIds(@Param("wxEnterpriseId") String wxEnterpriseId,@Param("storeIds") List<String> storeIds);
List<String> listAllClerkIdsByEnterpriseId(@Param("enterpriseId") String enterpriseId);
} }
\ No newline at end of file
package com.gic.haoban.manage.service.dao.mapper; package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabHaobanMaterial;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.TabMaterialContent; import com.gic.haoban.manage.service.entity.TabMaterialContent;
import java.util.List;
/** /**
* *
* @ClassName: 内容中台-素材 * @ClassName: 内容中台-素材
...@@ -19,9 +22,13 @@ public interface TabMaterialContentMapper { ...@@ -19,9 +22,13 @@ public interface TabMaterialContentMapper {
public int updateByPrimaryKey(TabMaterialContent entity); public int updateByPrimaryKey(TabMaterialContent entity);
int updateVideoImgUrl(@Param("id")String id,@Param("videoImgUrl")String videoImgUrl);
public TabMaterialContent selectByUrl(@Param("wxEnterpriseId") String wxEnterpriesId, public TabMaterialContent selectByUrl(@Param("wxEnterpriseId") String wxEnterpriesId,
@Param("urlMd5") String urlMd5 , @Param("mediaType")int mediaType); @Param("urlMd5") String urlMd5 , @Param("mediaType")int mediaType);
public TabMaterialContent selectById(String id) ; public TabMaterialContent selectById(String id) ;
List<TabMaterialContent> listByIds(@Param("materialIds") List<String> materialIds,@Param("mediaType") Integer mediaType);
} }
\ No newline at end of file
...@@ -70,4 +70,11 @@ public interface WxEnterpriseMapper { ...@@ -70,4 +70,11 @@ public interface WxEnterpriseMapper {
* *
*/ */
List<WxEnterpriseDTO> listAllEnterprise(); List<WxEnterpriseDTO> listAllEnterprise();
/**
* 查询GIC企业下关联的所有企微
* @param enterpriseId
* @return
*/
List<String> queryWxEnterpriseByEnterpriseId(@Param("enterpriseId") String enterpriseId);
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat; ...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.dao.mapper.chat;
import java.util.List; import java.util.List;
import com.gic.haoban.manage.service.pojo.qo.chat.GroupChatUserQO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO; import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
...@@ -55,4 +56,11 @@ public interface GroupChatUserMapper { ...@@ -55,4 +56,11 @@ public interface GroupChatUserMapper {
@Param("enterpriseId") String enterpriseId, @Param("externalUserid") String externalUserid, @Param("enterpriseId") String enterpriseId, @Param("externalUserid") String externalUserid,
@Param("memberId") String memberId); @Param("memberId") String memberId);
/**
* 查询群组成员列表
* @param groupChatUserQO
* @return
*/
List<TabGroupChatUser> queryGroupChatUserList(GroupChatUserQO groupChatUserQO);
} }
\ No newline at end of file
package com.gic.haoban.manage.service.dao.mapper.content;
import com.gic.haoban.manage.service.entity.content.TabHaobanClerkShareLog;
import com.gic.haoban.manage.service.pojo.qo.content.ClerkShareLogQO;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 导购分享记录(TabHaobanClerkShareLog)表数据库访问层
*
* @author makejava
* @since 2023-03-18 20:54:15
*/
public interface TabHaobanClerkShareLogMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanClerkShareLog queryById(Long id);
/**
* 条件查询
* @param clerkShareLogQO
* @return
*/
List<TabHaobanClerkShareLog> queryWithCondition(ClerkShareLogQO clerkShareLogQO);
/**
* 统计总行数
*
* @param tabHaobanClerkShareLog 查询条件
* @return 总行数
*/
long count(TabHaobanClerkShareLog tabHaobanClerkShareLog);
/**
* 新增数据
*
* @param tabHaobanClerkShareLog 实例对象
* @return 影响行数
*/
int insert(TabHaobanClerkShareLog tabHaobanClerkShareLog);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanClerkShareLog> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TabHaobanClerkShareLog> entities);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanClerkShareLog> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<TabHaobanClerkShareLog> entities);
/**
* 修改数据
*
* @param tabHaobanClerkShareLog 实例对象
* @return 影响行数
*/
int update(TabHaobanClerkShareLog tabHaobanClerkShareLog);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Long id);
/**
* 标记分享日志为已处理
* @param enterpriseId
* @param ids
* @return
*/
int markShareLogWithDone(@Param("enterpriseId") String enterpriseId, @Param("ids") List<Long> ids);
}
package com.gic.haoban.manage.service.dao.mapper.content;
import com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord;
import com.gic.haoban.manage.service.entity.content.TabHaobanPotentialCustomer;
import com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO;
import com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 互动记录明细(TabHaobanInteractRecord)表数据库访问层
*
* @author makejava
* @since 2023-03-28 10:32:47
*/
public interface TabHaobanInteractRecordMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanInteractRecord queryById(Long id);
/**
* 查询指定行数据
*
* @param tabHaobanInteractRecord 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabHaobanInteractRecord> queryAllByLimit(TabHaobanInteractRecord tabHaobanInteractRecord);
/**
* 统计总行数
*
* @param tabHaobanInteractRecord 查询条件
* @return 总行数
*/
long count(TabHaobanInteractRecord tabHaobanInteractRecord);
/**
* 新增数据
*
* @param tabHaobanInteractRecord 实例对象
* @return 影响行数
*/
int insert(TabHaobanInteractRecord tabHaobanInteractRecord);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanInteractRecord> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TabHaobanInteractRecord> entities);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanInteractRecord> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<TabHaobanInteractRecord> entities);
/**
* 修改数据
*
* @param tabHaobanInteractRecord 实例对象
* @return 影响行数
*/
int update(TabHaobanInteractRecord tabHaobanInteractRecord);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Long id);
/**
* 查询互动明细
* @param enterpriseId
* @param traceId
* @return
*/
TabHaobanInteractRecord queryWithEnterpriseIdAndTraceId(@Param("enterpriseId") String enterpriseId, @Param("traceId") String traceId);
/**
* 查询互动记录列表
* @param interactRecordQO
* @return
*/
List<TabHaobanInteractRecord> queryInteractRecordList(InteractRecordQO interactRecordQO);
/**
* 统计互动记录总数
* @param interactRecordQO
* @return
*/
List<PotentialCustomerStaticsBO> staticsClerkInteractRecordNew(InteractRecordQO interactRecordQO);
/**
* 会员合并
* @param mergeMemberId
* @param memberId
* @return
*/
int mergeMember(@Param("mergeMemberId") String mergeMemberId, @Param("memberId") String memberId);
/**
* 会员授权事件
* @param memberId
* @param unionId
* @return
*/
int memberAuthorized(@Param("memberId") String memberId, @Param("unionId") String unionId);
}
package com.gic.haoban.manage.service.dao.mapper.content;
import com.gic.haoban.manage.service.entity.content.TabHaobanPotentialCustomer;
import com.gic.haoban.manage.service.pojo.qo.content.PotentialCustomerQO;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 销售线索(TabHaobanPotentialCustomer)表数据库访问层
*
* @author makejava
* @since 2023-03-28 09:48:07
*/
public interface TabHaobanPotentialCustomerMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanPotentialCustomer queryById(@Param("id") Long id, @Param("clerkId") String clerkId);
/**
* 查询销售线索
* @param clerkId
* @param memberId
* @return
*/
TabHaobanPotentialCustomer queryWithClerkIdAndMemberId(@Param("clerkId") String clerkId, @Param("memberId") String memberId);
/**
* 统计总行数
*
* @param tabHaobanPotentialCustomer 查询条件
* @return 总行数
*/
long count(TabHaobanPotentialCustomer tabHaobanPotentialCustomer);
/**
* 新增数据
*
* @param tabHaobanPotentialCustomer 实例对象
* @return 影响行数
*/
int insert(TabHaobanPotentialCustomer tabHaobanPotentialCustomer);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanPotentialCustomer> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TabHaobanPotentialCustomer> entities);
/**
* 修改数据
*
* @param tabHaobanPotentialCustomer 实例对象
* @return 影响行数
*/
int update(TabHaobanPotentialCustomer tabHaobanPotentialCustomer);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Long id);
/**
* 查询明细
* @param potentialCustomerQO
* @return
*/
List<TabHaobanPotentialCustomer> queryPotentialCustomerList(PotentialCustomerQO potentialCustomerQO);
/**
* 会员合并操作
* @param mergeMemberId
* @param memberId
*/
void mergeMember(@Param("mergeMemberId") String mergeMemberId, @Param("memberId") String memberId, @Param("memberPhone") String memberPhone);
/**
* 更新会员成交标识
* @param enterpriseId
* @param memberId
* @return
*/
int updateMemberDealRecordNum(@Param("enterpriseId") String enterpriseId, @Param("memberId") String memberId);
}
package com.gic.haoban.manage.service.dao.mapper.content;
import com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail;
import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (TabHaobanTriggerCustomerDetail)表数据库访问层
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public interface TabHaobanTriggerCustomerDetailMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanTriggerCustomerDetail queryById(Long id);
/**
*
* @param triggerCustomerDetailQO
* @return
*/
List<TabHaobanTriggerCustomerDetail> queryWithCondition(TriggerCustomerDetailQO triggerCustomerDetailQO);
/**
* 统计总行数
*
* @param tabHaobanTriggerCustomerDetail 查询条件
* @return 总行数
*/
long count(TabHaobanTriggerCustomerDetail tabHaobanTriggerCustomerDetail);
/**
* 新增数据
*
* @param tabHaobanTriggerCustomerDetail 实例对象
* @return 影响行数
*/
int insert(TabHaobanTriggerCustomerDetail tabHaobanTriggerCustomerDetail);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanTriggerCustomerDetail> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TabHaobanTriggerCustomerDetail> entities);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanTriggerCustomerDetail> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<TabHaobanTriggerCustomerDetail> entities);
/**
* 修改数据
*
* @param tabHaobanTriggerCustomerDetail 实例对象
* @return 影响行数
*/
int update(TabHaobanTriggerCustomerDetail tabHaobanTriggerCustomerDetail);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Long id);
}
...@@ -2,7 +2,6 @@ package com.gic.haoban.manage.service.dao.mapper.hm; ...@@ -2,7 +2,6 @@ package com.gic.haoban.manage.service.dao.mapper.hm;
import com.gic.haoban.manage.api.dto.qdto.hm.HmQrcodeListQDTO; import com.gic.haoban.manage.api.dto.qdto.hm.HmQrcodeListQDTO;
import com.gic.haoban.manage.service.entity.hm.TabHaobanHmQrcode; import com.gic.haoban.manage.service.entity.hm.TabHaobanHmQrcode;
import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeBO;
import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeClerkBO; import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeClerkBO;
import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeGroupNumBO; import com.gic.haoban.manage.service.pojo.bo.hm.HmQrcodeGroupNumBO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -189,15 +188,14 @@ public interface TabHaobanHmQrcodeMapper { ...@@ -189,15 +188,14 @@ public interface TabHaobanHmQrcodeMapper {
List<String> listHmIdForIndex(HmQrcodeListQDTO qdto); List<String> listHmIdForIndex(HmQrcodeListQDTO qdto);
/** /**
* @param enterpriseId * 返回已有单人活码的clerkId
* @param clerkId
* @return
* @throws
* @Title: listHasQrcodeClerk
* @Description: 返回已有单人活码的clerkId
* @author xugh
*/ */
List<String> listHasQrcodeClerk(@Param("enterpriseId") String enterpriseId, @Param("clerkIdList") List<String> clerkIdList); List<String> listHasQrcodeClerk(@Param("enterpriseId") String enterpriseId, @Param("clerkIdList") List<String> clerkIdList);
/**
* 获取导购单人活码
*/
String getClerkQrcode(@Param("enterpriseId") String enterpriseId, @Param("clerkId")String clerkId);
/** /**
* 更新导购名称 * 更新导购名称
......
...@@ -45,8 +45,6 @@ public interface TabHaobanMenuMapper { ...@@ -45,8 +45,6 @@ public interface TabHaobanMenuMapper {
List<TabHaobanMenu> getAllMenuList(); List<TabHaobanMenu> getAllMenuList();
// List<String> getAllMenuCodeList();
List<TabHaobanMenu> getPidMenuList(); List<TabHaobanMenu> getPidMenuList();
List<TabHaobanMenu> getNotPidMenuList(); List<TabHaobanMenu> getNotPidMenuList();
......
...@@ -58,6 +58,6 @@ public interface TabHaobanRoleMenuMapper { ...@@ -58,6 +58,6 @@ public interface TabHaobanRoleMenuMapper {
@Param("roleId") Long roleId, @Param("roleId") Long roleId,
@Param("menuCodes") List<String> menuCodes); @Param("menuCodes") List<String> menuCodes);
int deleteByMenuCode(@Param("menuCode") String menuCode, @Param("wxEnterpriseId") String wxEnterpriseId); int deleteByMenuCodeAndRoleId(@Param("menuCode") String menuCode, @Param("wxEnterpriseId") String wxEnterpriseId,@Param("roleId") Long roleId);
} }
...@@ -34,6 +34,11 @@ public class TabMaterialContent implements Serializable { ...@@ -34,6 +34,11 @@ public class TabMaterialContent implements Serializable {
private java.util.Date updateTime; private java.util.Date updateTime;
private int mediaType ; private int mediaType ;
/**
* 封面图
*/
private String videoImgUrl;
public int getMediaType() { public int getMediaType() {
return mediaType; return mediaType;
} }
...@@ -121,4 +126,12 @@ public class TabMaterialContent implements Serializable { ...@@ -121,4 +126,12 @@ public class TabMaterialContent implements Serializable {
public java.util.Date getUpdateTime() { public java.util.Date getUpdateTime() {
return updateTime; return updateTime;
} }
public String getVideoImgUrl() {
return videoImgUrl;
}
public void setVideoImgUrl(String videoImgUrl) {
this.videoImgUrl = videoImgUrl;
}
} }
\ No newline at end of file
...@@ -48,6 +48,10 @@ public class TabGroupChatPlan implements Serializable { ...@@ -48,6 +48,10 @@ public class TabGroupChatPlan implements Serializable {
private String enterpriseId; private String enterpriseId;
// 1代发送 2已发送 // 1代发送 2已发送
private Integer sendFlag; private Integer sendFlag;
/**
* 关联素材来源1好办素材2内容中心
*/
private Integer materialFrom;
public Integer getSendFlag() { public Integer getSendFlag() {
return sendFlag; return sendFlag;
...@@ -232,4 +236,12 @@ public class TabGroupChatPlan implements Serializable { ...@@ -232,4 +236,12 @@ public class TabGroupChatPlan implements Serializable {
public void setFailChatCount(Integer failChatCount) { public void setFailChatCount(Integer failChatCount) {
this.failChatCount = failChatCount; this.failChatCount = failChatCount;
} }
public Integer getMaterialFrom() {
return materialFrom;
}
public void setMaterialFrom(Integer materialFrom) {
this.materialFrom = materialFrom;
}
} }
\ No newline at end of file
package com.gic.haoban.manage.service.entity.content;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 导购分享记录(TabHaobanClerkShareLog)实体类
*
* @author makejava
* @since 2023-03-18 20:54:23
*/
@Data
public class TabHaobanClerkShareLog implements Serializable {
private static final long serialVersionUID = -18857713225396709L;
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 分享类型 1分享朋友圈; 2 群发给客户; 3 群发到群
*/
private Integer shareType;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型 1素材
*/
private Integer bizType;
/**
* 删除标识 1 删除(已处理); 0未处理
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
}
package com.gic.haoban.manage.service.entity.content;
import com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType;
import java.util.Date;
import java.io.Serializable;
/**
* 互动记录明细(TabHaobanInteractRecord)实体类
*
* @author makejava
* @since 2023-03-28 10:32:47
*/
public class TabHaobanInteractRecord implements Serializable {
private static final long serialVersionUID = 518532274984830043L;
private Long id;
private String enterpriseId;
/**
* 会员id
*/
private String memberId;
/**
* 会员微信公众号id
*/
private String unionId;
/**
* 导购id
*/
private String clerkId;
/**
* 埋点traceId
*/
private String traceId;
/**
* 销售线索-业务id
*/
private String bizId;
/**
* 业务类型 1 素材
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
* @see TriggerCustomerChannelType
*/
private Integer channelSource;
/**
* 事件类型 1浏览素材;2浏览商品; 3 购买商品
* @see com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
*/
private Integer eventType;
/**
* 停留时长 单位秒
*/
private Integer durationTime;
/**
* 第几次访问
*/
private Integer times;
/**
* 状态 1 删除; 0正常
*/
private Integer deleteFlag;
/**
* 扩展信息 查看的商品,关联的订单号
*/
private String extendInfo;
/**
* 创建时间
*/
private Date createTime;
private Date updateTime;
/**
* 最新访问时间
*/
private Date lastAccessTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getTraceId() {
return traceId;
}
public void setTraceId(String traceId) {
this.traceId = traceId;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public Integer getChannelSource() {
return channelSource;
}
public void setChannelSource(Integer channelSource) {
this.channelSource = channelSource;
}
public Integer getEventType() {
return eventType;
}
public void setEventType(Integer eventType) {
this.eventType = eventType;
}
public Integer getDurationTime() {
return durationTime;
}
public void setDurationTime(Integer durationTime) {
this.durationTime = durationTime;
}
public Integer getTimes() {
return times;
}
public void setTimes(Integer times) {
this.times = times;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getExtendInfo() {
return extendInfo;
}
public void setExtendInfo(String extendInfo) {
this.extendInfo = extendInfo;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Date getLastAccessTime() {
return lastAccessTime;
}
public void setLastAccessTime(Date lastAccessTime) {
this.lastAccessTime = lastAccessTime;
}
}
package com.gic.haoban.manage.service.entity.content;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
/**
* 销售线索(TabHaobanPotentialCustomer)实体类
*
* @author makejava
* @since 2023-03-28 09:48:07
*/
@Data
public class TabHaobanPotentialCustomer implements Serializable {
private static final long serialVersionUID = -28370046858269747L;
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 会员id
*/
private String memberId;
/**
* 会员微信公众号id
*/
private String unionId;
/**
* 导购id
*/
private String clerkId;
/**
* 销售线索-业务id
*/
private String bizId;
/**
* 业务类型 1 素材
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
*/
private Integer channelSource;
/**
* 事件类型 1访问素材;2访问商品; 3购买商品;
*/
private Integer eventType;
/**
* 停留时长 单位秒
*/
private Integer durationTime;
/**
* 访问次数
*/
private Integer times;
/**
* 会员名称
*/
private String memberName;
/**
* 会员昵称
*/
private String memberNickName;
/**
* 会员头像
*/
private String memberImageUrl;
/**
* 会员手机号
*/
private String memberPhone;
/**
* 成交数量
*/
private Integer dealRecordNum;
/**
* 是否导购星标客户 1是; 0否
*/
private Integer starFlag;
/**
* 是否看过 1 看过; 0未看过
*/
private Integer seeFlag;
/**
* 最新访问时间
*/
private Date lastAccessTime;
/**
* 状态 1 删除; 0正常
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
}
package com.gic.haoban.manage.service.entity.content;
import java.util.Date;
import java.io.Serializable;
/**
* (TabHaobanTriggerCustomerDetail)实体类
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public class TabHaobanTriggerCustomerDetail implements Serializable {
private static final long serialVersionUID = 775762162443994755L;
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型 1素材
*/
private Integer bizType;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
*/
private Integer channelType;
/**
* 触达客户标识 外部联系人id
*/
private String customerId;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 0正常; 1删除
*/
private Integer deleteFlag;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Integer getChannelType() {
return channelType;
}
public void setChannelType(Integer channelType) {
this.channelType = channelType;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
...@@ -53,6 +53,25 @@ public class TabHaobanMenu implements Serializable { ...@@ -53,6 +53,25 @@ public class TabHaobanMenu implements Serializable {
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;
private int authControl ;
private String btnCodeRel ;
public int getAuthControl() {
return authControl;
}
public String getBtnCodeRel() {
return btnCodeRel;
}
public void setAuthControl(int authControl) {
this.authControl = authControl;
}
public void setBtnCodeRel(String btnCodeRel) {
this.btnCodeRel = btnCodeRel;
}
public String getMenuCode() { public String getMenuCode() {
return menuCode; return menuCode;
......
...@@ -49,6 +49,10 @@ public class GroupChatPlanBO implements Serializable{ ...@@ -49,6 +49,10 @@ public class GroupChatPlanBO implements Serializable{
private Integer totalChatCount; private Integer totalChatCount;
// 1代发送 2已发送 // 1代发送 2已发送
private Integer sendFlag; private Integer sendFlag;
/**
* 关联素材来源1好办素材2内容中心
*/
private Integer materialFrom;
public Integer getSendFlag() { public Integer getSendFlag() {
return sendFlag; return sendFlag;
...@@ -224,4 +228,12 @@ public class GroupChatPlanBO implements Serializable{ ...@@ -224,4 +228,12 @@ public class GroupChatPlanBO implements Serializable{
public Integer getTotalChatCount(){ public Integer getTotalChatCount(){
return totalChatCount; return totalChatCount;
} }
public Integer getMaterialFrom() {
return materialFrom;
}
public void setMaterialFrom(Integer materialFrom) {
this.materialFrom = materialFrom;
}
} }
\ No newline at end of file
package com.gic.haoban.manage.service.pojo.bo.chat;
/**
* @Author MUSI
* @Date 2023/3/20 8:00 PM
* @Description
* @Version
**/
public class GroupChatUserBO {
private Long chatUserId;
/**微信企业id*/
private String wxEnterpriseId;
private String enterpriseId;
/**1企业成员2外部联系人3客户*/
private Integer userType;
/**群成员id*/
private String userId;
/**群id*/
private Long groupChatId;
public Long getChatUserId() {
return chatUserId;
}
public void setChatUserId(Long chatUserId) {
this.chatUserId = chatUserId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getUserType() {
return userType;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public Long getGroupChatId() {
return groupChatId;
}
public void setGroupChatId(Long groupChatId) {
this.groupChatId = groupChatId;
}
}
package com.gic.haoban.manage.service.pojo.bo.content;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/3/18 9:02 PM
* @Description
* @Version
**/
public class ClerkShareLogBO {
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 素材分享类型
* @see com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType
*/
private Integer shareType;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private Integer bizType;
/**
* 创建时间
*/
private Date createTime;
private String storeId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Integer getShareType() {
return shareType;
}
public void setShareType(Integer shareType) {
this.shareType = shareType;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
package com.gic.haoban.manage.service.pojo.bo.content;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/3/19 9:47 PM
* @Description
* @Version
**/
public class GroupMessageInfoBo {
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 分享日志
*/
private Long shareLogId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Long getShareLogId() {
return shareLogId;
}
public void setShareLogId(Long shareLogId) {
this.shareLogId = shareLogId;
}
}
package com.gic.haoban.manage.service.pojo.bo.content;
import lombok.Data;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/3/28 11:25 PM
* @Description
* @Version
* 互动记录
**/
@Data
public class InteractRecordBO {
private Long id;
private String enterpriseId;
/**
* 会员id
*/
private String memberId;
/**
* 会员微信公众号id
*/
private String unionId;
/**
* 导购id
*/
private String clerkId;
/**
* 埋点traceId
*/
private String traceId;
/**
* 销售线索-业务id
*/
private String bizId;
/**
* 业务类型 1 素材
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
*/
private Integer channelSource;
/**
* 事件类型 1浏览商品;2浏览并点击; 3浏览并查看; 4 浏览并购买; 5查看并购买
*/
private Integer eventType;
/**
* 停留时长 单位秒
*/
private Integer durationTime;
/**
* 第几次访问
*/
private Integer times;
/**
* 状态 1 删除; 0正常
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
private Date updateTime;
/**
* 记录描述
* 通过XXX访问XXXX
*/
private String recordDesc;
/**
* 扩展信息
*/
private InteractRecordExtendInfoBO extendInfo;
/**
* 浏览的商品数量
*/
private Integer visitGoodsNum;
/**
* 下单的商品数量
*/
private Integer orderGoodsNum;
/**
* 最新访问时间
*/
private Date lastAccessTime;
}
package com.gic.haoban.manage.service.pojo.bo.content;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @Author MUSI
* @Date 2023/3/29 2:27 PM
* @Description
* @Version
**/
@Data
public class InteractRecordExtendInfoBO implements Serializable {
/**
* 素材关联的订单信息
*/
private List<ExtendOrderInfo> extendOrderInfos;
/**
* 失效商品数量
*/
private Integer invalidGoodsNum;
/**
* 素材扩展商品信息
*/
private List<ExtendGoodsInfo> extendGoodsInfos;
/**
* 冗余的商品id
*/
private List<String> goodsIds;
@Data
public static class ExtendGoodsInfo implements Serializable {
/**
* 商品名称
*/
private String goodsName;
/**
* 商品主图
*/
private String goodsImageUrl;
/**
* 商品货号
*/
private String goodsCode;
/**
* 商品规格 红色,S; 白色,S
*/
private String goodsNorm;
/**
* 订单项数量
*/
private Integer orderNum;
/**
* 商品单价
*/
private BigDecimal salePrice;
/***
* 1 erp同步
* 2 自建
* @see com.gic.store.goods.enums.GoodsSourceTypeEnum
*/
private Integer sourceType;
}
/**
* 素材关联的订单信息
*/
@Data
public static class ExtendOrderInfo implements Serializable {
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单创建时间
*/
private Date orderCreateTime;
/**
* 订单商品项总数
*/
private Integer orderTotalNum;
/**
* 订单应付
*/
private BigDecimal orderPay;
/**
* 订单实付
*/
private BigDecimal realPay;
/**
* 订单商品信息
*/
private List<ExtendGoodsInfo> orderGoodsInfos;
}
public static InteractRecordExtendInfoBO empty() {
InteractRecordExtendInfoBO temp = new InteractRecordExtendInfoBO();
// 后续有操作 此处使用可修改类型
temp.setGoodsIds(new ArrayList<>());
temp.setExtendOrderInfos(new ArrayList<>());
return temp;
}
}
package com.gic.haoban.manage.service.pojo.bo.content;
import lombok.Data;
import lombok.Getter;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/4/2 9:12 AM
* @Description
* @Version
**/
@Data
public class MemberAttrChangeBO implements Serializable {
/**
* 会员id
*/
private String memberId;
/**
* 会员unionId
*/
private String unionId;
/**
* 被合并的会员id
*/
private String mergeMemberId;
/**
* 业务变动类型:1小程序授权 2会员合并
*/
private Integer opt;
@Getter
public enum MemberChangeOpt {
MINI_APP_AUTHORIZED(1, "会员授权"),
MEMBER_MERGE(2, "会员合并");
MemberChangeOpt(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Integer code;
private String desc;
}
}
package com.gic.haoban.manage.service.pojo.bo.content;
import lombok.Data;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/4/6 5:29 PM
* @Description
* @Version
**/
@Data
public class OrderEventMqBO implements Serializable {
private String enterpriseId;
private String memberId;
/**
* 订单id
*/
private String orderId;
/**
* 订单编号
*/
private String orderNumber;
/**
* 起始状态
*/
private Integer fromStatus;
/**
* 结束状态
*/
private Integer toStatus;
/**
* 消费次数
* 默认0
*/
private Integer times;
}
package com.gic.haoban.manage.service.pojo.bo.content;
import lombok.Data;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/3/29 10:02 AM
* @Description
* @Version
**/
@Data
public class PotentialCustomerBO {
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 会员id
*/
private String memberId;
/**
* 会员微信公众号id
*/
private String unionId;
/**
* 导购id
*/
private String clerkId;
/**
* 销售线索-业务id
*/
private String bizId;
/**
* 业务类型 1 素材
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
*/
private Integer channelSource;
/**
* 事件类型 1访问素材;2访问商品; 3购买商品;
*/
private Integer eventType;
/**
* 停留时长 单位秒
*/
private Integer durationTime;
/**
* 访问次数
*/
private Integer times;
/**
* 会员名称
*/
private String memberName;
/**
* 会员昵称
*/
private String memberNickName;
/**
* 会员头像
*/
private String memberImageUrl;
/**
* 会员手机号
*/
private String memberPhone;
/**
* 成交数量
*/
private Integer dealRecordNum;
/**
* 是否导购星标客户 1是; 0否
*/
private Integer starFlag;
/**
* 是否看过 1 看过; 0未看过
*/
private Integer seeFlag;
/**
* 最新访问时间
*/
private Date lastAccessTime;
/**
* 状态 1 删除; 0正常
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 导购与会员是否有好友
* 1 是好友; 0不是
*/
private Integer hasMemberRelation;
/**
* 会员全渠道成交
* 1 有过成交; 0 没有成交
*/
private Integer dealRecord;
}
package com.gic.haoban.manage.service.pojo.bo.content;
import lombok.Data;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/3/30 11:12 AM
* @Description
* @Version
**/
@Data
public class PotentialCustomerStaticsBO implements Serializable {
/**
* 导购id
*/
private String clerkId;
/**
* 数量
*/
private Integer num;
}
package com.gic.haoban.manage.service.pojo.bo.content;
import java.io.Serializable;
import java.util.Date;
/**
* (TabHaobanTriggerCustomerDetail)实体类
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public class TriggerCustomerDetailBO implements Serializable {
private static final long serialVersionUID = 775762162443994755L;
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型 1素材
*/
private Integer bizType;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
*/
private Integer channelType;
/**
* 触达客户标识 外部联系人id
*/
private String customerId;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 0正常; 1删除
*/
private Integer deleteFlag;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Integer getChannelType() {
return channelType;
}
public void setChannelType(Integer channelType) {
this.channelType = channelType;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
package com.gic.haoban.manage.service.pojo.bo.content.binlog;
import com.alibaba.fastjson.annotation.JSONField;
import com.gic.haoban.manage.service.pojo.BinlogBasePojo;
/**
* @Author MUSI
* @Date 2023/4/6 7:19 PM
* @Description
* @Version
* tab_gic_eorder 表
**/
public class MaterialMemberEOrderPojo extends BinlogBasePojo {
@JSONField(name = "order_status")
private Integer orderStatus;
@JSONField(name = "member_id")
private String memberId;
@JSONField(name = "enterprise_id")
private String enterpriseId;
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
package com.gic.haoban.manage.service.pojo.bo.content.binlog;
import com.alibaba.fastjson.annotation.JSONField;
import com.gic.haoban.manage.service.pojo.BinlogBasePojo;
/**
* @Author MUSI
* @Date 2023/4/6 7:19 PM
* @Description
* @Version
**/
public class MaterialMemberGicOrderPojo extends BinlogBasePojo {
@JSONField(name = "status")
private Integer orderStatus;
@JSONField(name = "member_id")
private String memberId;
@JSONField(name = "enterprise_id")
private String enterpriseId;
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
package com.gic.haoban.manage.service.pojo.bo.content.context;
import lombok.Data;
/**
* @Author MUSI
* @Date 2023/3/28 8:40 PM
* @Description
* @Version
* 销售线索上下文
**/
@Data
public class InteractRecordContext {
}
package com.gic.haoban.manage.service.pojo.bo.content.context;
import cn.hutool.crypto.digest.MD5;
import com.gic.haoban.manage.api.enums.content.ShareBizType;
import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO;
import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO;
import com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerBO;
import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import java.util.Date;
import java.util.Optional;
/**
* @Author MUSI
* @Date 2023/3/29 3:23 PM
* @Description
* @Version
**/
@Data
public class InteractRecordMessageContext {
private InteractRecordMessageBO interactRecordMessageBO;
/**
* 访问次数
*/
private Integer times;
/**
* 冗余的会员信息
*/
private MemberInfo memberInfo;
/**
* 成交过订单
*/
private Boolean hasDeal;
public static InteractRecordMessageContext create(InteractRecordMessageBO interactRecordMessageBO) {
InteractRecordMessageContext context = new InteractRecordMessageContext();
context.setInteractRecordMessageBO(interactRecordMessageBO);
return context;
}
/**
* 构建唯一key
*
* @return
*/
public String buildRecordKey() {
String customerId = StringUtils.isNotBlank(interactRecordMessageBO.getMemberId()) ? interactRecordMessageBO.getMemberId() : interactRecordMessageBO.getUnionId();
String key = interactRecordMessageBO.getBusinessUUId() + interactRecordMessageBO.getClerkId() + interactRecordMessageBO.getMaterialId() + customerId;
return MD5.create().digestHex(key);
}
/**
* 构建唯一key
*
* @return
*/
public String buildRecordKeyWithUnionId() {
String customerId = interactRecordMessageBO.getUnionId();
String key = interactRecordMessageBO.getBusinessUUId() + interactRecordMessageBO.getClerkId() + interactRecordMessageBO.getMaterialId() + customerId;
return MD5.create().digestHex(key);
}
/**
* 获取客户id
*
* @return
*/
public String getCustomerId() {
if (StringUtils.isNotBlank(this.interactRecordMessageBO.getMemberId())) {
return this.interactRecordMessageBO.getMemberId();
}
return this.interactRecordMessageBO.getUnionId();
}
public InteractRecordBO build() {
if (this.interactRecordMessageBO == null) {
return null;
}
InteractRecordBO temp = new InteractRecordBO();
temp.setEnterpriseId(this.interactRecordMessageBO.getEnterpriseId());
temp.setMemberId(this.interactRecordMessageBO.getMemberId());
temp.setUnionId(this.interactRecordMessageBO.getUnionId());
temp.setClerkId(this.interactRecordMessageBO.getClerkId());
temp.setStoreId(this.interactRecordMessageBO.getStoreId());
temp.setChannelSource(this.interactRecordMessageBO.getChannelSource());
temp.setEventType(this.interactRecordMessageBO.getEventType());
Integer durationTime = Optional.ofNullable(this.interactRecordMessageBO.getDurationTime()).orElse(0);
temp.setDurationTime(durationTime / 1000);
temp.setBizType(ShareBizType.MATERIAL.getCode());
temp.setBizId(this.interactRecordMessageBO.getMaterialId() + "");
temp.setTimes(this.times);
temp.setTraceId(this.buildRecordKey());
temp.setDeleteFlag(0);
temp.setCreateTime(new Date());
temp.setUpdateTime(new Date());
temp.setLastAccessTime(new Date(this.interactRecordMessageBO.getLastAccessTime()));
temp.setExtendInfo(InteractRecordExtendInfoBO.empty());
return temp;
}
/**
* 构建销售线索
*/
public PotentialCustomerBO buildPotentialCustomerBo(InteractRecordBO interactRecordBO){
PotentialCustomerBO temp = new PotentialCustomerBO();
BeanUtils.copyProperties(interactRecordBO, temp);
temp.setDeleteFlag(0);
temp.setCreateTime(new Date());
temp.setUpdateTime(new Date());
temp.setStarFlag(0);
if (this.hasDeal != null) {
temp.setDealRecordNum(this.hasDeal ? 1 : 0);
}
temp.setLastAccessTime(new Date(this.interactRecordMessageBO.getLastAccessTime()));
if (this.memberInfo != null) {
temp.setMemberName(this.memberInfo.memberName);
temp.setMemberNickName(this.memberInfo.memberNickName);
temp.setMemberPhone(this.memberInfo.memberPhone);
temp.setMemberImageUrl(this.memberInfo.memberImgUrl);
}
return temp;
}
@Data
@AllArgsConstructor
public static class MemberInfo {
private String memberName;
private String memberNickName;
private String memberPhone;
private String memberImgUrl;
}
}
package com.gic.haoban.manage.service.pojo.bo.content.context;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.enums.content.MaterialReportType;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import static com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum.MATERIAL_REPORT_NOTIFY;
/**
* @Author MUSI
* @Date 2023/3/24 4:08 PM
* @Description
* @Version 好办 周报/月报 上下文
**/
@Slf4j
@Data
@Builder
public class MaterialReportContext {
private static final String week_title = "素材使用周报";
private static final String month_title = "素材使用月报";
private static final String week_desc = "%s~%s的素材使用周报已生成,请查收";
private static final String month_desc = "%s~%s的素材使用月报已生成,请查收";
private String enterpriseId;
/**
* 素材周期
*
* @see com.gic.haoban.manage.api.enums.content.MaterialReportType
*/
private Integer reportType;
/**
* 成员id
*/
private String staffId;
/**
* 成员对象
*/
private TabHaobanStaff staffInfo;
/**
* 成员(店长或导购角色)在主门店时的导购id
* 区经时就是导购id
*/
private String clerkId;
/**
* 主门店
*/
private String mainStoreId;
/**
* 企业factoryCode
*/
private String factoryCode;
/**
* 导购关联表
*/
private List<StaffClerkRelationDTO> staffClerkRelations;
/**
* 素材报告 图片地址
*/
private String materialReportUrl;
/**
* 周期事件
*/
private String bizDate;
/**
* 构建好办小程序消息
*
* @return
*/
public List<NoticeMessageBO> buildNotifyMessageBos() {
if (CollectionUtils.isEmpty(this.staffClerkRelations)) {
log.info("成员未绑定导购, staffId: {}", this.staffId);
return Collections.emptyList();
}
if (StringUtils.isBlank(this.mainStoreId)) {
log.info("成员 {} 没有主门店数据, 区经角色不发送小程序消息通知 ", this.staffId);
return Collections.emptyList();
}
return this.staffClerkRelations
.stream()
.map(item -> {
NoticeMessageBO noticeMessageBO = new NoticeMessageBO();
noticeMessageBO.setCategoryType(MATERIAL_REPORT_NOTIFY.getCategory());
noticeMessageBO.setMessageType(MATERIAL_REPORT_NOTIFY.getType());
noticeMessageBO.setClerkId(StringUtils.isNotBlank(item.getClerkId()) ? item.getClerkId() : "-1");
noticeMessageBO.setStoreId(StringUtils.isNotBlank(item.getStoreId()) ? item.getStoreId() : "-1");
noticeMessageBO.setTitle(this.getMessageTitle());
noticeMessageBO.setTemplateCode(MATERIAL_REPORT_NOTIFY.getTemplateCode());
noticeMessageBO.setDescription(this.getMessageDesc());
noticeMessageBO.setEnterpriseId(this.enterpriseId);
noticeMessageBO.setRelationId(this.clerkId);
noticeMessageBO.setMessageContent(this.extendParams(item.getStoreId()));
return noticeMessageBO;
})
.collect(Collectors.toList());
}
public String getMessageTitle() {
if (MaterialReportType.WEEK.getCode().equals(this.reportType)) {
return week_title;
}
return month_title;
}
public String getMessageDesc() {
if (MaterialReportType.WEEK.getCode().equals(this.reportType)) {
// 获取周报信息
DateTime lastWeek = DateUtil.lastWeek();
String weekBeginStr = DateUtil.beginOfWeek(lastWeek)
.toString("MM月dd日");
String weekEndStr = DateUtil.endOfWeek(lastWeek)
.toString("MM月dd日");
return String.format(week_desc, weekBeginStr, weekEndStr);
}
DateTime lastMonth = DateUtil.lastMonth();
String monthBeginStr = DateUtil.beginOfMonth(lastMonth)
.toString("MM月dd日");
String monthEndStr = DateUtil.endOfMonth(lastMonth)
.toString("MM月dd日");
return String.format(month_desc, monthBeginStr, monthEndStr);
}
public String extendParams(String storeId) {
JSONObject params = new JSONObject();
// 此处页面链接 最长128个字节
// storeId_reportType_bizDate
String key = String.format("%s_%s_%s", StringUtils.isBlank(storeId) ? "" : storeId, this.reportType, this.bizDate);
params.put("k", key);
// params.put("t", this.reportType);
return params.toJSONString();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment