Commit 21fe54fc by erqian

Merge branch 'master' into feature/1062347-gathering-medal

parents 8262b838 ea1aaf85
......@@ -56,6 +56,17 @@ public class MemberUnionidRelatedDTO implements Serializable{
private boolean isFlush = false ;
// 删除客户的操作来源,DELETE_BY_TRANSFER表示此客户是因在职继承自动被转接成员删除
private int deleteByTransfer = 0 ;
public int getDeleteByTransfer() {
return deleteByTransfer;
}
public void setDeleteByTransfer(int deleteByTransfer) {
this.deleteByTransfer = deleteByTransfer;
}
public int getRetryTimes() {
return retryTimes;
}
......
......@@ -29,6 +29,17 @@ public class WxUserAddLogQDTO implements Serializable{
// 删除时是否单向好友 1是0否
private int delIsSingle ;
// 删除客户的操作来源,DELETE_BY_TRANSFER表示此客户是因在职继承自动被转接成员删除
private int deleteByTransfer = 0 ;
public int getDeleteByTransfer() {
return deleteByTransfer;
}
public void setDeleteByTransfer(int deleteByTransfer) {
this.deleteByTransfer = deleteByTransfer;
}
public int getDelIsSingle() {
return delIsSingle;
}
......
......@@ -30,6 +30,10 @@ public enum NoticeMessageTypeEnum {
PERFORMANCE_TASK_UPDATE(2011, "指标任务变更通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "performance_task_update", "/pages/route/index?pageType=", "hbapp_task_kpi_detail", "targetTaskByUpdate", "haobanNotice"),
CLERK_TASK_CONTENT_AUDIT_OK(2012, "素材审核通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "clerk_task_content_audit_ok", "/pages/route/index?pageType=", "hbapp_guide_task_detail", "clerk_task_content_audit_ok", "haobanNotice"),
CLERK_TASK_CONTENT_AUDIT_REFUSE(2013, "素材审核通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "clerk_task_content_audit_refuse", "/pages/route/index?pageType=", "hbapp_guide_task_upload", "clerk_task_content_audit_refuse", "haobanNotice"),
CLERK_TASK_SEND_NOTICE(2014, "导购任务通知", NoticeMessageCategoryTypeEnum.TASK.getType(), "clerk_task_send_notice", "/pages/route/index?pageType=", "hbapp_guide_task_detail", "clerk_task_send_notice", "haobanNotice"),
STORE_ACCOUNT(3001, "账号申请", NoticeMessageCategoryTypeEnum.OTHER.getType(), "store_account", "/pages/route/index?pageType=", "store_relate_store_record_list", "accountApplication", "haobanNotice"),
//
......
package com.gic.haoban.manage.api.service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.qdto.TransferActiveCodeQDTO;
......@@ -364,4 +364,7 @@ public interface StaffApiService {
com.gic.api.base.commons.ServiceResponse<StaffActiveAllocationDTO> staffActiveAllocation(String wxEnterpriseId,String staffIds);
void updateStaffHead(String wxEnterpriseId ,String staffId, String headUrl);
Page<StaffDTO> listByParams(String enterpriseId , String params, String wxEnterpriseId, BasePageInfo pageInfo) ;
}
......@@ -219,4 +219,7 @@ public interface StaffClerkRelationApiService {
*/
List<String> getTakeoverClerkIdList(List<String> staffIdList) ;
List<String> listAllClerkIdsByEnterpriseId(String enterpriseId);
}
package com.gic.haoban.manage.web.controller;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.authcenter.commons.dto.AuthcenterUserDetails;
import com.gic.authcenter.commons.util.SessionContextUtil;
......@@ -10,6 +11,8 @@ import com.gic.haoban.manage.api.dto.role.HaobanMenuDTO;
import com.gic.haoban.manage.api.dto.role.HaobanRoleDTO;
import com.gic.haoban.manage.api.service.role.HaobanMenuApiService;
import com.gic.haoban.manage.api.service.role.HaobanRoleApiService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -27,6 +30,9 @@ import java.util.List;
@RestController
public class HaobanRoleOperationController {
private static Logger logger = LoggerFactory.getLogger(HaobanRoleOperationController.class);
@Autowired
private HaobanMenuApiService haobanMenuApiService;
@Autowired
......@@ -56,6 +62,7 @@ public class HaobanRoleOperationController {
login.setClerkId(operationUserId);
login.setClerkName(loginUser.getLoginName());
haobanRoleQDTO.setSystemFlag(0);
logger.info("运维好办权限={},{}", JSONObject.toJSONString(haobanRoleQDTO),operationUserId);
return RestResponse.successResult(haobanRoleApiService.edit(haobanRoleQDTO,login));
}
......
......@@ -194,4 +194,6 @@ public interface StaffMapper {
void updateOccupyFlagByStaffId(@Param("staffId") String staffId);
void updateStaffHead(@Param("staffId")String staffId, @Param("headUrl")String headUrl);
List<StaffDTO> listByParams(@Param("list")List<String> wxEnterpriseIdList, @Param("params")String params);
}
\ No newline at end of file
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class GicNewMemberBO implements Serializable {
private boolean isNewFlag ;
public boolean isNewFlag() {
return isNewFlag;
}
public void setNewFlag(boolean newFlag) {
isNewFlag = newFlag;
}
}
......@@ -18,6 +18,8 @@ public interface StaffClerkRelationService {
void delMemberQywxFlag(String enterpriseId, List<String> memberIds) ;
void addMemberQywxFlag(String enterpriseId,String memberId ) ;
/**
* 解绑-删除绑定(门店级别)
*
......
......@@ -147,6 +147,12 @@ public class WxUserAddLogServiceImpl implements WxUserAddLogService {
entity.setMemberId(qdto.getMemberId());
entity = this.addMemberInfo(qdto.getEnterpriseId(), qdto.getMemberId(), entity);
}
if (qdto.isDelFlag()) {
if(qdto.getDeleteByTransfer()==1) {
// 在职继承删除
entity.setAddChannel(4);
}
}
entity.setQwAddTime(qdto.getQwAddTime());
entity.setFriendClerkId(qdto.getFriendClerkId());
entity.setFriendStoreId(qdto.getFriendStoreId());
......
......@@ -173,9 +173,11 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
if(null != related.getAddTime()) {
wxUserAddLogQDTO.setQwAddTime(related.getAddTime());
}
wxUserAddLogQDTO.setDeleteByTransfer(dto.getDeleteByTransfer());
wxUserAddLogQDTO.setFriendClerkId(related.getClerkId());
wxUserAddLogQDTO.setFriendStoreId(related.getStoreId());
int autoDelNum = this.openQwApiService.getAutoDelNum(staffId,externalUserid) ;
if(autoDelNum>0) {
wxUserAddLogQDTO.setDelType(1);
}
......
......@@ -9,6 +9,7 @@ import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.HttpClient;
import com.gic.haoban.manage.service.util.ApolloUtils;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
......@@ -243,10 +244,12 @@ public class MaterialServiceImpl implements MaterialService {
Integer width = jsonObject.getInteger("width");
Integer height = jsonObject.getInteger("height");
Integer size = jsonObject.getInteger("size");
String extensions = url.substring(url.lastIndexOf(".") + 1);
//朋友圈类型图片,长边不超过10800像素,短边不超过1080像素
//图片宽高超过限制 或 大小大于2m 处理图片
if (size / 1000 > 2000 || width > 1080 || height > 10800) {
url+= "?imageView2/2/w/1080/h/10800" ;
if (size / 1000 > 2000 || width > 1080 || height > 10800 ||
(Objects.equals(extensions, "png") && size / 1000 > 1000 && ApolloUtils.compressShareEid(wxEnterpriseId))) {
url += "?imageView2/2/w/1080/h/10800/format/jpg";
}
logger.info("url={}",url);
}
......@@ -272,21 +275,22 @@ public class MaterialServiceImpl implements MaterialService {
public static void main(String[] args) {
String url = "https://platform-1251519181.cos.ap-shanghai.myqcloud.com/image/jhdm/common-fbcae3533d414bf8baac917df600b20e.png";
Map<String, Object> map = HttpClient.getHttpByGet(url + "?imageInfo");
String response = (String) map.get("response");
if (StringUtils.isBlank(response)) {
throw new RuntimeException();
}
JSONObject jsonObject = null;
jsonObject = JSONObject.parseObject(response);
Integer width = jsonObject.getInteger("width");
Integer height = jsonObject.getInteger("height");
Integer size = jsonObject.getInteger("size");
//图片宽高超过限制 或 大小大于2m 处理图片
if (size / 1000 > 2000 || width > 1440 || height > 1080) {
url+= "?imageView2/2/w/1440/h/1080" ;
}
logger.info("url={}",url);
// Map<String, Object> map = HttpClient.getHttpByGet(url + "?imageInfo");
// String response = (String) map.get("response");
// if (StringUtils.isBlank(response)) {
// throw new RuntimeException();
// }
// JSONObject jsonObject = null;
// jsonObject = JSONObject.parseObject(response);
// Integer width = jsonObject.getInteger("width");
// Integer height = jsonObject.getInteger("height");
// Integer size = jsonObject.getInteger("size");
// //图片宽高超过限制 或 大小大于2m 处理图片
// if (size / 1000 > 2000 || width > 1440 || height > 1080) {
// url+= "?imageView2/2/w/1440/h/1080" ;
// }
String substring = url.substring(url.lastIndexOf(".") + 1);
logger.info("url={}",substring);
}
public List<String> getImageMediaId(String wxEnterpriseId, List<ContentMaterialDTO> imageList, int mediaType) {
......
......@@ -115,13 +115,15 @@ public class OpenStaffServiceImpl implements OpenStaffService {
if (StringUtils.isNotBlank(noticeReason)) {
log.info("发送退出登录通知,staffId={}", openStaff.getStaffId());
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(openStaff.getStaffId());
this.noticeMessageApiService.sendMessageForOpenStaff(openStaff.getEnterpriseId(), staff.getStaffName(), noticeReason);
// 发送通知
if(!noticeReason.equals(OpenStaffOfflineEnum.OFFLINE1.getDesc())) {
Map<String, String> map = new HashMap<String, String>();
map.put("reason", noticeReason);
int messageType = NoticeMessageTypeEnum.HAOBAN_OPEN_STAFF_LOGOUT.getType();
NoticeMessageUtil.sendNoticeMessageByStaff(openStaff.getEnterpriseId(), openStaff.getStaffId(), "-1", messageType, null, map, null);
if(null != staff) {
this.noticeMessageApiService.sendMessageForOpenStaff(openStaff.getEnterpriseId(), staff.getStaffName(), noticeReason);
// 发送通知
if(!noticeReason.equals(OpenStaffOfflineEnum.OFFLINE1.getDesc())) {
Map<String, String> map = new HashMap<String, String>();
map.put("reason", noticeReason);
int messageType = NoticeMessageTypeEnum.HAOBAN_OPEN_STAFF_LOGOUT.getType();
NoticeMessageUtil.sendNoticeMessageByStaff(openStaff.getEnterpriseId(), openStaff.getStaffId(), "-1", messageType, null, map, null);
}
}
}
}
......@@ -260,7 +262,7 @@ public class OpenStaffServiceImpl implements OpenStaffService {
log.info("定时检查托管状态");
Object o = RedisUtil.getCache("haobansilk2mp3") ;
if(null == o) {
com.gic.haoban.common.utils.DingUtils.send("请检查silk2mp3", false);
com.gic.haoban.common.utils.DingUtils.send("请检查silk2mp3", true);
}
List<TabOpenStaff> list = this.openStaffMapper.listAllOnline(null, null);
for (TabOpenStaff item : list) {
......
......@@ -269,6 +269,30 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
@Override
public void addMemberQywxFlag(String enterpriseId, String memberId) {
List<TabHaobanExternalClerkRelated> memberList = externalClerkRelatedService.getAddTimeByMemberId(memberId, enterpriseId,"1");
Date date = new Date();
Date opTime = new Date(0);
Date firstTime = new Date();
if (CollectionUtils.isNotEmpty(memberList)){
for (TabHaobanExternalClerkRelated a : memberList){
if(null == a.getAddTime()) {
continue;
}
Date addTime = new Date(a.getAddTime() * 1000L);
if ((a.getStatusFlag() == 1 || a.getStatusFlag() == 3 || a.getStatusFlag() == 4) && opTime.before(addTime)){
opTime= addTime;
date = opTime;
}
if (firstTime.after(addTime)){
firstTime = addTime;
}
}
this.memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 1, date,firstTime);
}
}
@Override
public boolean delBindByStoreIds(String wxEnterpriseId, Set<String> storeIds, String optStaffId, int channelCode) {
if (CollectionUtils.isEmpty(storeIds)) {
logger.info("没有传门店列表:{}", wxEnterpriseId);
......
......@@ -44,6 +44,20 @@ public class NoticeMessageHandler {
}
}
public void sendMessage(NoticeMessageForm noticeMessageForm,int delay){
logger.info("消息中心发送消息实体:{}", JSONObject.toJSONString(noticeMessageForm));
if (ObjectUtil.isEmpty(noticeMessageForm.getMessageCode()) || ObjectUtil.isEmpty(noticeMessageForm.getMqRouterCode())) {
logger.info("消息中心发送消息实体 messageCode 或 mqRouterCode 不存在");
}
GicMQClient client = GICMQClientUtil.getClientInstance();
try {
client.sendMessage(noticeMessageForm.getMqRouterCode(), JSONObject.toJSONString(noticeMessageForm), delay);
} catch (Exception e) {
logger.error("消息中心发送消息实体发送异常 ", e);
}
}
private int sendDelayValue(boolean delay) {
if (!delay) {
return 0;
......
......@@ -331,8 +331,11 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
return ServiceResponse.failure("-1", "模版枚举不存在");
}
List<String> userIdList = relationList.stream().map(StaffClerkRelationDTO::getClerkId).distinct().collect(Collectors.toList());
Integer batchInterval = ApolloUtils.notifyBatchInterval();
List<List<String>> listList = ListUtil.split(userIdList, 1000);
for (List<String> list : listList) {
// 优化通知导购 集中下发的问题
for (int i = 0; i < listList.size(); i++) {
int delay = batchInterval * i;
noticeMessageHandler.sendMessage(NoticeMessageForm.builder()
.messageCode(noticeMessageTypeEnum.getMessageCode())
.mqRouterCode(noticeMessageTypeEnum.getRouterCode())
......@@ -340,8 +343,8 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
.createTime(new Date())
.enterpriseId(notifyMessageBatchQDTO.getEnterpriseId())
.uniqueKey(UniqueIdUtils.uniqueLongHex())
.userIdList(list)
.variableMap(variableMap).build());
.userIdList(listList.get(i))
.variableMap(variableMap).build(),delay);
}
} catch (Exception e) {
logger.error("发送消息通知失败", e);
......
......@@ -35,6 +35,7 @@ import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.haoban.manage.service.util.EventUtils;
......@@ -103,6 +104,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
private MemberService memberService;
@Autowired
private ExternalClerkRelatedService externalClerkRelatedService;
@Autowired
private StaffClerkRelationService staffClerkRelationService ;
/**
* 查询会员在企业下的好友关系
......@@ -428,6 +431,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId);
log.info("会员合并 ,更新为企微好友,新memberId:{}", mergeMemberId);
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1);
this.staffClerkRelationService.addMemberQywxFlag(enterpriseId,memberId);
}
}else if(type==2) {
int m1 = this.tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId) ;
......@@ -439,11 +443,13 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
this.tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(memberId, mergeMemberId, enterpriseId);
log.info("会员换绑 ,更新为企微好友,新memberId:{}", memberId);
this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
this.staffClerkRelationService.addMemberQywxFlag(enterpriseId,memberId);
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 0);
}else if(m1>0 && m2==0) {
this.tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId);
log.info("会员换绑 ,更新为企微好友,新memberId:{}", mergeMemberId);
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1);
this.staffClerkRelationService.addMemberQywxFlag(enterpriseId,mergeMemberId);
this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
}else if(m1>0 && m2>0) {
List<String> m1IdList = this.tabHaobanExternalClerkRelatedMapper.getIdList(memberId, enterpriseId) ;
......@@ -452,6 +458,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
this.tabHaobanExternalClerkRelatedMapper.updateMemberByIdList(memberId, m2IdList);
this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1);
this.staffClerkRelationService.addMemberQywxFlag(enterpriseId,memberId);
this.staffClerkRelationService.addMemberQywxFlag(enterpriseId,mergeMemberId);
}
}
}
......
......@@ -5,6 +5,7 @@ import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.DingUtils;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.service.HandoverOperationApiService;
......@@ -291,7 +292,8 @@ public class HandoverOperationApiServiceImpl implements HandoverOperationApiServ
List<String> list = entry.getValue();
QywxTransferCustomerDTO transferCustomerResp = qywxUserApiService.transferCustomer(qwDTO.getThirdCorpid(), qwDTO.getSelf3thSecret(), wxUserId, takeoverUserId, list,qwDTO.isSelf(),qwDTO.getUrlHost());
if (transferCustomerResp.getErrcode() != 0) {
logger.info("转移异常");
logger.info("离职继承-分配客户异常={}",JSONObject.toJSONString(transferCustomerResp));
DingUtils.send("离职继承分配异常"+wxUserId,true);
}
List<QywxTransferCustomerInfoDTO> customer = transferCustomerResp.getCustomer();
if (CollectionUtils.isEmpty(customer)) {
......
......@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.service.pojo.GicNewMemberBO;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.util.EventUtils;
import com.gic.haoban.manage.service.util.HBQwMonitorUtils;
......@@ -190,6 +191,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
int type = externalUserPojo.getType();
String wxUserId = qwFrientNoticeDTO.getWxUserId();
MemberUnionidRelatedDTO memberUnionidRelatedDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class, qwFrientNoticeDTO);
if(StringUtils.isNotBlank(qwFrientNoticeDTO.getState()) && "DELETE_BY_TRANSFER".equals(qwFrientNoticeDTO.getState())) {
memberUnionidRelatedDTO.setDeleteByTransfer(1);
}
if (type == DealQywxExternalUserPojo.DealType.add.getType()) {
log.info("新增外部联系人回调开始:{}", params);
this.addMemberUnionidRelatedNew(memberUnionidRelatedDTO, wxUserId);
......@@ -269,7 +273,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
NoticeMessageUtil.sendNoticeMessageByStaff(enterpriseId,related.getStaffId(),related.getClerkId(),messageType,related.getMemberId(),map,jsonObject);
}
}
addDelFriendEvent(related.getUnionid(), related.getClerkId(), wxEnterpriseId, enterpriseId, related.getMemberId(), related.getStoreId(), 0);
addDelFriendEvent(related.getUnionid(), related.getClerkId(), wxEnterpriseId, enterpriseId, related.getMemberId(), related.getStoreId(), 0,null,false);
}
@Override
......@@ -750,8 +754,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
memberId = memberService.getMemberIdByPhoneNumber(mobile, enterpriseId);
}
boolean flag = false ;
GicNewMemberBO bo = new GicNewMemberBO() ;
if (null == memberId) {
memberId = this.getMeberId(enterpriseId,unionId, name, avatar, qrcodeParam, externalUserid, wxEnterpriseRelated.getWxEnterpriseType(), 2 , dto.getAddCreateTime(),clerkId) ;
memberId = this.getMeberId(enterpriseId,unionId, name, avatar, qrcodeParam, externalUserid, wxEnterpriseRelated.getWxEnterpriseType(), 2 , dto.getAddCreateTime(),clerkId,bo) ;
flag = true ;
}
if (memberId == null) {
......@@ -791,7 +796,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
this.memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 1, date,firstTime);
//定制事件订阅
addDelFriendEvent(unionId, clerkId, wxEnterpriseId, enterpriseId, memberId, storeId, 1);
addDelFriendEvent(unionId, clerkId, wxEnterpriseId, enterpriseId, memberId, storeId, 1 , externalUserid,bo.isNewFlag());
return memberId;
}
private void saveExternalClerk(String memberId ,String staffId , MemberUnionidRelatedDTO dto , StaffClerkRelationDTO staffClerkRelation , int status) {
......@@ -866,7 +871,22 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
/**
* 欧泊莱定制需求
*/
private void addDelFriendEvent(String unionId, String clerkId, String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType) {
private void addDelFriendEvent(String unionId, String clerkId, String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType , String externalUserid , boolean isNewMember) {
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
if(changeType==1) {
log.info("加好友通知={}",memberId);
JSONObject json = new JSONObject() ;
json.put("enterpriseId",enterpriseId) ;
json.put("clerkId",clerkId) ;
json.put("memberId",memberId) ;
json.put("externalUserid",externalUserid) ;
json.put("isNewMember",isNewMember) ;
try {
clientInstance.sendMessage("qywxAddFriendEvent", json.toJSONString());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
String addDelFriendEvent = config.getAddDelFriendEvent();
if (!addDelFriendEvent.contains(wxEnterpriseId)) {
log.info("非定制,无需广播通知");
......@@ -886,7 +906,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("会员不存在:{}", memberId);
return;
}
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNo", member.getCardNum());
......@@ -1967,7 +1986,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("导购码不存在:" + clerkId);
qrcodeParam = "clerk_clerk_"+clerk.getClerkId() ;
}
String memberId = this.getMeberId(enterpriseId, externalUserDTO.getUnionId(), externalUserDTO.getName(), externalUserDTO.getAvatar(), qrcodeParam, externalUserDTO.getExternalUserId(), wxEnterpriseRelated.getWxEnterpriseType(), 1 , externalUserDTO.getAddCreateTime(),clerk.getClerkId()) ;
String memberId = this.getMeberId(enterpriseId, externalUserDTO.getUnionId(), externalUserDTO.getName(), externalUserDTO.getAvatar(), qrcodeParam, externalUserDTO.getExternalUserId(), wxEnterpriseRelated.getWxEnterpriseType(), 1 , externalUserDTO.getAddCreateTime(),clerk.getClerkId(),null) ;
if (memberId == null) {
return "会员不存在:unionid:" + externalUserDTO.getUnionId();
}
......@@ -1975,7 +1994,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return this.saveExternalUser(externalUserDTO);
}
private String getMeberId(String enterpriseId , String unionid , String name , String image ,String qrcodeParam , String externalUserId , int wxEnterpriseType , int sence , String qwTime,String clerkId) {
private String getMeberId(String enterpriseId , String unionid , String name , String image ,String qrcodeParam , String externalUserId , int wxEnterpriseType , int sence , String qwTime,String clerkId , GicNewMemberBO bo) {
QywxMemberQDTO qdto = new QywxMemberQDTO() ;
qdto.setEnterpriseId(enterpriseId);
qdto.setNick(name);
......@@ -1996,6 +2015,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if(resp.isSuccess()) {
MemberSimpleDetailDTO member = resp.getResult() ;
memberId = member.getMemberId() ;
if(null != bo && null != member.getCreateFlag()) {
bo.setNewFlag(member.getCreateFlag());
}
this.updateMemberGrowth(enterpriseId,memberId,clerkId);
}
return memberId ;
......
......@@ -134,6 +134,11 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
log.info("只能托管一个企业={},{}", uuid, corpName);
return ServiceResponse.failure("9999", "只能托管一个企业");
}
if(null != staff && !openStaff.getStaffId().equals(staff.getStaffId())) {
this.openStaffService.logout(uuid, "userid不能关联2个成员", 0, null);
log.info("userid不能关联2个成员={},{},{}", openStaff.getStaffId(), staff.getStaffId(),qwUserId);
return ServiceResponse.failure("9999", "userid不能关联2个成员");
}
openStaff.setWxCorpId(qwCorpId);
openStaff.setQwUserId(qwUserId);
if (null == openStaff.getFirstAuthTime()) {
......
......@@ -1448,4 +1448,18 @@ public class StaffApiServiceImpl implements StaffApiService {
public void updateStaffHead(String wxEnterpriseId ,String staffId, String headUrl) {
this.staffService.updateStaffHead(wxEnterpriseId,staffId,headUrl) ;
}
@Override
public Page<StaffDTO> listByParams(String enterpriseId, String params , String wxEnterpriseId , com.gic.api.base.commons.BasePageInfo pageInfo) {
List<TabHaobanWxEnterprise> list = this.wxEnterpriseRelatedService.listByEnterpriseId(enterpriseId) ;
List<String> wxEnterpriseIdList = list.stream().map(o->o.getWxEnterpriseId()).collect(Collectors.toList());
if(StringUtils.isNotBlank(params)) {
params = "%"+params+"%" ;
}else {
params = null ;
}
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
List<StaffDTO> pageList = this.staffMapper.listByParams(wxEnterpriseIdList , params) ;
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(pageList), StaffDTO.class);
}
}
......@@ -654,4 +654,9 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
}
return takeoverClerkIdList;
}
@Override
public List<String> listAllClerkIdsByEnterpriseId(String enterpriseId) {
return this.staffClerkRelationService.listAllClerkIdsByEnterpriseId(enterpriseId);
}
}
......@@ -2,9 +2,14 @@ package com.gic.haoban.manage.service.util;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ApolloUtils {
private static final Logger log = LoggerFactory.getLogger(ApolloUtils.class);
/**
* 旧的调用发送,是否采用新的消息中心开关1:是 0:否
* @return
......@@ -14,4 +19,30 @@ public class ApolloUtils {
String messageCenterSwitch = config.getProperty("messageCenterSwitch", "0");
return "1".equals(messageCenterSwitch);
}
/**
* 分享朋友圈压缩开关
* @return
*/
public static boolean compressShareEid(String wxEnterpriseId) {
Config config = ConfigService.getAppConfig();
String compressShareEid = config.getProperty("compressShareEid", "");
if (StringUtils.isBlank(compressShareEid)) {
return true;
}
boolean contains = compressShareEid.contains(wxEnterpriseId);
log.info("分享朋友圈压缩开关:{}", contains);
return contains;
}
/**
* 导购通知一批次间隔时间
* @return
*/
public static Integer notifyBatchInterval() {
Config config = ConfigService.getAppConfig();
String notifyBatchInterval = config.getProperty("notifyBatchInterval", "60");
log.info("导购通知一批次间隔时间:{}", notifyBatchInterval);
return Integer.parseInt(notifyBatchInterval);
}
}
......@@ -205,6 +205,7 @@
select
<include refid="Base_Column_List"/>
from tab_haoban_open_staff where qw_user_id = #{qwUserId} and delete_flag = 0
order by status_flag , update_time desc limit 1
</select>
<select id="listAllStaffId" resultType="java.lang.String">
......
......@@ -679,4 +679,19 @@
where staff_id= #{staffId}
</update>
<select id="listByParams" resultType="com.gic.haoban.manage.api.dto.StaffDTO">
select
staff_id staffId , staff_name staffName , wx_enterprise_id wxEnterpriseId , phone_number phoneNumber
FROM tab_haoban_staff
WHERE
wx_enterprise_id in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach> )
<if test="null != params">
and staff_name like #{params}
</if>
and status_flag = 1
</select>
</mapper>
\ No newline at end of file
......@@ -262,6 +262,7 @@
<artifactId>gic-webapp-common</artifactId>
<version>${gic-webapp-common}</version>
</dependency>
</dependencies>
<build>
......
......@@ -21,6 +21,7 @@ import com.gic.enterprise.api.service.*;
import com.gic.haoban.manage.web.qo.StaffAddVO;
import com.gic.haoban.manage.web.utils.CustomSwitcher;
import com.gic.haoban.manage.web.vo.*;
import com.gic.marketing.pro.api.service.clerktask.ClerkTaskApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -155,6 +156,8 @@ public class WxStaffController extends WebBaseController {
private CustomPageNewService customPageNewService ;
@Autowired
private EnterpriseWxaLinkService enterpriseWxaLinkService ;
@Autowired
private ClerkTaskApiService clerkTaskApiService ;
// 选择成员列表
......@@ -1760,6 +1763,11 @@ public class WxStaffController extends WebBaseController {
}
}
this.integralAlias(list) ;
for(StaffStoreVO vo : list) {
if(vo.getMainStoreFlag()==1) {
this.clerkTaskApiService.addToOpenTaskFromHaoban(vo.getEnterpriseId(),vo.getClerkId());
}
}
return RestResponse.successResult(list);
}
......
package com.gic.haoban.manage.web.controller.content;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Constant;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.material.ContentMaterialDTO;
import com.gic.content.api.dto.setting.ContentSettingDTO;
import com.gic.content.api.enums.*;
import com.gic.content.api.qdto.material.ContentMaterialPageQDTO;
import com.gic.content.api.qdto.material.ContentMaterialQDTO;
import com.gic.content.api.qdto.producer.ContentProducerClerkRandomQDTO;
import com.gic.content.api.service.ContentMaterialApiService;
import com.gic.content.api.service.ContentSettingApiService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor;
......@@ -23,6 +30,9 @@ import com.gic.haoban.manage.web.qo.content.ContentMaterialSaveQO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialConvsVO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialDataVO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialVO;
import com.gic.marketing.pro.api.dto.clerktask.ClerkTaskContentLogDTO;
import com.gic.marketing.pro.api.service.clerktask.ClerkTaskApiService;
import com.gic.mq.sdk.GicMQClient;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -35,6 +45,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -56,6 +68,10 @@ public class ContentCreativeController {
private ClerkStoreAdaptor clerkStoreAdaptor;
@Autowired
private MaterialDataAdaptor materialDataAdaptor;
@Autowired
private ClerkTaskApiService clerkTaskApiService ;
@Autowired
private ContentSettingApiService contentSettingApiService ;
/**
* 创建素材
......@@ -100,9 +116,54 @@ public class ContentCreativeController {
if (!response.isSuccess()) {
return RestResponse.failure(response.getCode(), response.getMessage());
}
Long clerkTaskPlanId = saveQO.getClerkTaskPlanId() ;
if(null != clerkTaskPlanId) {
ClerkTaskContentLogDTO dto = new ClerkTaskContentLogDTO() ;
dto.setPlanId(clerkTaskPlanId);
dto.setRelationId(response.getResult().getContentMaterialId());
dto.setEnterpriseId(saveQO.getEnterpriseId());
dto.setContentPublishType(1);
dto.setStatusFlag(0);
dto.setClerkId(clerkId);
this.clerkTaskApiService.saveContent(dto) ;
}else {
// 发送审批消息
// 不是私域,且未开启自动审核
ServiceResponse<ContentSettingDTO> resp = this.contentSettingApiService.queryContentSettingInfo(saveQO.getEnterpriseId()) ;
if(response.getResult().getMaterialType() == 4 || (resp.getResult().getCommunityUserSetting().getClerkMaterialAudit()==null || resp.getResult().getCommunityUserSetting().getClerkMaterialAudit()==0)) {
this.sendAudit(saveQO.getEnterpriseId(),saveQO.getClerkId()) ;
}
}
return RestResponse.successResult(response.getResult());
}
private void sendAudit(String enterpriseId, String clerkId) {
ClerkDTO clerk = this.clerkService.getclerkById(clerkId) ;
String clerkName = clerk.getClerkName() ;
Map<String, String> map = new HashMap<>();
map.put("clerkName", "导购:"+clerkName);
this.send(enterpriseId,map,"clerkCreateContent");
}
private void send(String enterpriseId ,Map<String, String> map , String msgCode) {
log.info("发送消息={}",msgCode);
String mqName = "haobanNotice";
JSONObject json = new JSONObject() ;
json.put("messageCode",msgCode) ;
json.put("mqRouterCode",mqName) ;
json.put("enterpriseId",enterpriseId) ;
json.put("businessId",ToolUtil.randomUUID()) ;
json.put("uniqueKey",UniqueIdUtils.uniqueLongHex()) ;
json.put("createTime",new Date()) ;
json.put("variableMap",map) ;
try {
GicMQClient client = GICMQClientUtil.getClientInstance();
client.sendMessage(mqName, JSON.toJSONString(json));
} catch (Exception e) {
log.info("异常",e);
}
}
/**
* 删除素材
* @param enterpriseId 企业id
......@@ -178,6 +239,16 @@ public class ContentCreativeController {
filterMaterialIdList = result.stream().map(ContentMaterialConvsVO::getContentMaterialId).collect(Collectors.toList());
totalCount = dataPage.getTotalCount();
}
if(null != auditMaterialQO.getClerkTaskPlanId()) {
List<Long> materiaIdList = this.clerkTaskApiService.listContentMaterialIdList(auditMaterialQO.getClerkTaskPlanId(),auditMaterialQO.getClerkId()) ;
if(CollectionUtils.isEmpty(materiaIdList)) {
return RestResponse.successResult(new Page<>());
}
filterMaterialIdList = materiaIdList ;
log.info("导购任务id={},{}",auditMaterialQO.getClerkTaskPlanId(),filterMaterialIdList);
}
pageQDTO.setContentMaterialIdList(filterMaterialIdList);
ServiceResponse<Page<ContentMaterialDTO>> response = contentMaterialApiService.pageMaterial(pageQDTO, auditMaterialQO.getBasePageInfo());
if (!response.isSuccess() || CollectionUtils.isEmpty(response.getResult().getResult())) {
......
package com.gic.haoban.manage.web.controller.offline;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.gic.api.base.commons.Page;
......@@ -14,6 +15,7 @@ import com.gic.marketing.pro.api.dto.offline.OfflinePreInfoDTO;
import com.gic.marketing.pro.api.qdto.offline.PageOfflinePreQDTO;
import com.gic.marketing.pro.api.qdto.offline.WriteOffOfflinePreQDTO;
import com.gic.marketing.pro.api.service.offline.OfflinePreApiService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -89,8 +91,11 @@ public class OfflinePreController {
*/
@RequestMapping("/check-offline-pre-write-off")
@ResponseBody
public RestResponse<Void> checkOfflinePreWriteOff(Long offlinePreId, String storeId){
ServiceResponse<Void> countOfflinePre = offlinePreApiService.checkOfflinePreWriteOff(offlinePreId, storeId);
public RestResponse<Void> checkOfflinePreWriteOff(String offlinePreId, String storeId){
if(StringUtils.isBlank(offlinePreId) || !offlinePreId.trim().chars().allMatch(Character::isDigit)) {
return RestResponse.failure("9999","参数错误") ;
}
ServiceResponse<Void> countOfflinePre = offlinePreApiService.checkOfflinePreWriteOff(Long.valueOf(offlinePreId.trim()), storeId);
return JSONObject.parseObject(JSONObject.toJSONString(countOfflinePre, SerializerFeature.WriteMapNullValue), RestResponse.class);
}
}
package com.gic.haoban.manage.web.qo.clerktask;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
/**
* 导购奖励信息查询
*/
public class ClerkAwardQO extends BasePageInfo implements Serializable {
private String clerkId ;
private Long planId ;
private String enterpriseId ;
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 Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
}
package com.gic.haoban.manage.web.qo.clerktask;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
/**
* 导购排名
*/
public class ClerkRankQO extends BasePageInfo implements Serializable {
private String clerkId ;
/**
* 计划ID
*/
private Long planId ;
private String enterpriseId ;
// 0创作/召回数/好友数 1播放 2互动 3涨粉
private int rankType = 0 ;
// 0内容单篇 1内容达标
private int contentType = 0 ;
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public int getRankType() {
return rankType;
}
public void setRankType(int rankType) {
this.rankType = rankType;
}
public int getContentType() {
return contentType;
}
public void setContentType(int contentType) {
this.contentType = contentType;
}
}
package com.gic.haoban.manage.web.qo.clerktask;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
public class ClerkTaskListQO extends BasePageInfo implements Serializable {
// 1未开始 2进行中 3已结束 4已过期
private Integer status = -1 ;
/**
* 任务名称/id
*/
private String searchParams ;
/**
* 导购ID
*/
private String clerkId ;
/**
* 企业ID
*/
private String enterpriseId ;
/**
* 0全部 1召回 2企微 3内容
*/
private Integer taskType = 0 ;
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getSearchParams() {
return searchParams;
}
public void setSearchParams(String searchParams) {
this.searchParams = searchParams;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getTaskType() {
return taskType;
}
public void setTaskType(Integer taskType) {
this.taskType = taskType;
}
}
package com.gic.haoban.manage.web.qo.clerktask;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
public class ContentPageQO extends BasePageInfo implements Serializable {
private Long planId ;
private String clerkId ;
private String enterpriseId ;
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
package com.gic.haoban.manage.web.qo.clerktask;
import java.io.Serializable;
public class SaveContentQO implements Serializable {
/**
* id
*/
private Long contentLogId ;
/**
* 上报类型1截图2内容链接
*/
private int upType ;
/**
* 上报内容
*/
private String content ;
/**
* 导购
*/
private String clerkId ;
/**
* 计划ID
*/
private Long planId ;
private String enterpriseId ;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Long getContentLogId() {
return contentLogId;
}
public void setContentLogId(Long contentLogId) {
this.contentLogId = contentLogId;
}
public int getUpType() {
return upType;
}
public void setUpType(int upType) {
this.upType = upType;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
}
......@@ -24,6 +24,19 @@ public class ContentAuditMaterialQO extends PageQo {
*/
private Integer convsFlag;
/**
* 导购任务计划id
*/
private Long clerkTaskPlanId ;
public Long getClerkTaskPlanId() {
return clerkTaskPlanId;
}
public void setClerkTaskPlanId(Long clerkTaskPlanId) {
this.clerkTaskPlanId = clerkTaskPlanId;
}
public String getEnterpriseId() {
return enterpriseId;
}
......
......@@ -106,6 +106,20 @@ public class ContentMaterialSaveQO {
*/
private List<ContentMaterialRelationThirdDTO> thirdGoodsList;
/**
* 导购任务计划ID
*/
private Long clerkTaskPlanId ;
public Long getClerkTaskPlanId() {
return clerkTaskPlanId;
}
public void setClerkTaskPlanId(Long clerkTaskPlanId) {
this.clerkTaskPlanId = clerkTaskPlanId;
}
public Long getContentMaterialId() {
return contentMaterialId;
}
......
package com.gic.haoban.manage.web.vo.clerktask;
import java.io.Serializable;
/**
* 导购获取到的奖励信息
*/
public class ClerkAwardInfoVO implements Serializable {
/**
* 加好友、召回客户数
*/
private int finishTaskCount ;
/**
* 排名 (召回、加好友)
*/
private int rank ;
/**
* 现金(分)
*/
private int cash ;
/**
* 礼品数
*/
private int giftNum ;
/**
* 内容创作数
*/
private int contentNum ;
/**
* 待审核数
*/
private int contentAuditNum ;
/**
* 拒绝数
*/
private int contentRefuseNum ;
/**
* 通过数
*/
private int contentPassNum ;
/**
* 播放量
*/
private int contentReadCount ;
/**
* 涨粉量
*/
private int contentFollowCount ;
/**
* 点赞量
*/
private int contentLinkCount ;
/**
* 收藏量
*/
private int contentFavCount ;
/**
* 评论量
*/
private int contentCommentCount ;
/**
* 分享量
*/
private int contentForwardCount ;
/**
* 内容创作排名-达标
*/
private int contentRank ;
/**
* 播放排名-达标
*/
private int contentReadRank ;
/**
* 互动排名-达标
*/
private int contentInteractRank ;
/**
* 涨粉排名-达标
*/
private int contentFollowRank ;
/**
* 播放排名-单篇
*/
private int contentSingleReadRank ;
/**
* 互动排名-单篇
*/
private int contentSingleInteractRank ;
/**
* 涨粉排名-单篇
*/
private int contentSingleFollowRank ;
public int getFinishTaskCount() {
return finishTaskCount;
}
public void setFinishTaskCount(int finishTaskCount) {
this.finishTaskCount = finishTaskCount;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public int getCash() {
return cash;
}
public void setCash(int cash) {
this.cash = cash;
}
public int getGiftNum() {
return giftNum;
}
public void setGiftNum(int giftNum) {
this.giftNum = giftNum;
}
public int getContentNum() {
return contentNum;
}
public void setContentNum(int contentNum) {
this.contentNum = contentNum;
}
public int getContentAuditNum() {
return contentAuditNum;
}
public void setContentAuditNum(int contentAuditNum) {
this.contentAuditNum = contentAuditNum;
}
public int getContentRefuseNum() {
return contentRefuseNum;
}
public void setContentRefuseNum(int contentRefuseNum) {
this.contentRefuseNum = contentRefuseNum;
}
public int getContentPassNum() {
return contentPassNum;
}
public void setContentPassNum(int contentPassNum) {
this.contentPassNum = contentPassNum;
}
public int getContentReadCount() {
return contentReadCount;
}
public void setContentReadCount(int contentReadCount) {
this.contentReadCount = contentReadCount;
}
public int getContentFollowCount() {
return contentFollowCount;
}
public void setContentFollowCount(int contentFollowCount) {
this.contentFollowCount = contentFollowCount;
}
public int getContentLinkCount() {
return contentLinkCount;
}
public void setContentLinkCount(int contentLinkCount) {
this.contentLinkCount = contentLinkCount;
}
public int getContentFavCount() {
return contentFavCount;
}
public void setContentFavCount(int contentFavCount) {
this.contentFavCount = contentFavCount;
}
public int getContentCommentCount() {
return contentCommentCount;
}
public void setContentCommentCount(int contentCommentCount) {
this.contentCommentCount = contentCommentCount;
}
public int getContentForwardCount() {
return contentForwardCount;
}
public void setContentForwardCount(int contentForwardCount) {
this.contentForwardCount = contentForwardCount;
}
public int getContentRank() {
return contentRank;
}
public void setContentRank(int contentRank) {
this.contentRank = contentRank;
}
public int getContentReadRank() {
return contentReadRank;
}
public void setContentReadRank(int contentReadRank) {
this.contentReadRank = contentReadRank;
}
public int getContentInteractRank() {
return contentInteractRank;
}
public void setContentInteractRank(int contentInteractRank) {
this.contentInteractRank = contentInteractRank;
}
public int getContentFollowRank() {
return contentFollowRank;
}
public void setContentFollowRank(int contentFollowRank) {
this.contentFollowRank = contentFollowRank;
}
public int getContentSingleReadRank() {
return contentSingleReadRank;
}
public void setContentSingleReadRank(int contentSingleReadRank) {
this.contentSingleReadRank = contentSingleReadRank;
}
public int getContentSingleInteractRank() {
return contentSingleInteractRank;
}
public void setContentSingleInteractRank(int contentSingleInteractRank) {
this.contentSingleInteractRank = contentSingleInteractRank;
}
public int getContentSingleFollowRank() {
return contentSingleFollowRank;
}
public void setContentSingleFollowRank(int contentSingleFollowRank) {
this.contentSingleFollowRank = contentSingleFollowRank;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import java.io.Serializable;
import java.util.Date;
public class ClerkAwardVO implements Serializable {
/**时间*/
private java.util.Date createTime;
/**现金分*/
private int cash;
/**礼品[{"name":"礼品名","num":1}]*/
private String giftJson;
/**奖励说明*/
private String remark;
/**0奖励 1扣除 */
private int awardFlag ;
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public int getCash() {
return cash;
}
public void setCash(int cash) {
this.cash = cash;
}
public String getGiftJson() {
return giftJson;
}
public void setGiftJson(String giftJson) {
this.giftJson = giftJson;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getAwardFlag() {
return awardFlag;
}
public void setAwardFlag(int awardFlag) {
this.awardFlag = awardFlag;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import java.io.Serializable;
public class ClerkRankVO implements Serializable {
/**
* 排名
*/
private int rank ;
private String clerkId ;
/**
* 导购名称
*/
private String clerkName ;
/**
* 占回数/加好友数/审核通过数/播放量等排序数据
*/
private int rankValue ;
/**
* 内容创作数
*/
private int contentNum ;
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public int getRankValue() {
return rankValue;
}
public void setRankValue(int rankValue) {
this.rankValue = rankValue;
}
public int getContentNum() {
return contentNum;
}
public void setContentNum(int contentNum) {
this.contentNum = contentNum;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable ;
import java.util.Date;
/**
*
* @ClassName: TabClerkTaskContentLog
* @Description: TODO
* @Author 徐高华
* @Date 2024年09月18日 14:14:28
* @Modify
* @CopyRight 杭州
*/
public class ClerkTaskContentPageVO implements Serializable{
private static final long serialVersionUID = 625125414387600L;
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long contentLogId;
/**计划ID*/
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long planId;
/**创建时间*/
private java.util.Date createTime;
/**内容*/
private String content;
/**审核状态0待审核1未通过2已通过*/
private int statusFlag;
/**拒绝理由*/
private String reason;
// 上报类型1截图2内容链接
private int upType ;
public int getUpType() {
return upType;
}
public void setUpType(int upType) {
this.upType = upType;
}
public Long getContentLogId() {
return contentLogId;
}
public void setContentLogId(Long contentLogId) {
this.contentLogId = contentLogId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(int statusFlag) {
this.statusFlag = statusFlag;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}
\ No newline at end of file
package com.gic.haoban.manage.web.vo.clerktask;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
public class ClerkTaskListVO implements Serializable {
/**id*/
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long planId;
/**名称*/
private String title;
/**开始日期*/
private java.util.Date beginDate;
/**结束日期*/
private java.util.Date endDate;
/**1召回 2企微 3内容*/
private int taskType;
/**1未开始 2进行中 3已结束 4已过期 */
private int status;
/**
* 图片
*/
private String img ;
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public int getTaskType() {
return taskType;
}
public void setTaskType(int taskType) {
this.taskType = taskType;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import java.io.Serializable;
public class ConsumeMemberCountVO implements Serializable {
/**
* 召回总数
*/
private int totalNum ;
/**
* 全退款数
*/
private int refundNum ;
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getRefundNum() {
return refundNum;
}
public void setRefundNum(int refundNum) {
this.refundNum = refundNum;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
public class TaskPlanDetailAwardVO implements Serializable {
/**id*/
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long awardId;
/**1定额 2阶梯 3排名*/
private int awardMode;
/**0创作/召回数/好友数 1播放 2互动 3涨粉*/
private int awardType;
/**0内容单篇奖励 1内容累计奖励*/
private int contentAwardType;
/**1点赞数 2收藏数 3分享数 4评论数*/
private String contentDataType;
/**开启现金1是0否*/
private int cashFlag;
/**现金值单位(分)*/
private int cash;
/**礼品1开0关*/
private int giftFlag;
/**[{"name":"礼品名","num":1}]*/
private String giftJson;
/**完成数/排名-开始*/
private int taskNumStart;
/**完成数/排名-结束*/
private int taskNumEnd;
/**最多奖励次数*/
private int maxTimes;
/**排序*/
private int sort;
public Long getAwardId() {
return awardId;
}
public void setAwardId(Long awardId) {
this.awardId = awardId;
}
public int getAwardMode() {
return awardMode;
}
public void setAwardMode(int awardMode) {
this.awardMode = awardMode;
}
public int getAwardType() {
return awardType;
}
public void setAwardType(int awardType) {
this.awardType = awardType;
}
public int getContentAwardType() {
return contentAwardType;
}
public void setContentAwardType(int contentAwardType) {
this.contentAwardType = contentAwardType;
}
public String getContentDataType() {
return contentDataType;
}
public void setContentDataType(String contentDataType) {
this.contentDataType = contentDataType;
}
public int getCashFlag() {
return cashFlag;
}
public void setCashFlag(int cashFlag) {
this.cashFlag = cashFlag;
}
public int getCash() {
return cash;
}
public void setCash(int cash) {
this.cash = cash;
}
public int getGiftFlag() {
return giftFlag;
}
public void setGiftFlag(int giftFlag) {
this.giftFlag = giftFlag;
}
public String getGiftJson() {
return giftJson;
}
public void setGiftJson(String giftJson) {
this.giftJson = giftJson;
}
public int getTaskNumStart() {
return taskNumStart;
}
public void setTaskNumStart(int taskNumStart) {
this.taskNumStart = taskNumStart;
}
public int getTaskNumEnd() {
return taskNumEnd;
}
public void setTaskNumEnd(int taskNumEnd) {
this.taskNumEnd = taskNumEnd;
}
public int getMaxTimes() {
return maxTimes;
}
public void setMaxTimes(int maxTimes) {
this.maxTimes = maxTimes;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import java.io.Serializable;
import java.util.Date;
public class TaskPlanDetailContentVO implements Serializable {
/**1私域 2公域*/
private int contentPublishType;
/**1小红书 2视频号*/
private String contentPublishChannels;
/**1截图 2链接*/
private String contentUpType;
/**说明*/
private String contentRemark;
/**主题介绍*/
private String contentIntro;
/**标题*/
private String contentTitle;
/**文案*/
private String contentTxt;
/**话题*/
private String contentTheme;
/**建议*/
private String contentAdvise;
/**单篇奖励1开0关*/
private int singleAwardFlag;
/**达标奖励1开0关*/
private int totalAwardFlag;
/**统计截止时间*/
private Date dataEndTime;
public int getContentPublishType() {
return contentPublishType;
}
public void setContentPublishType(int contentPublishType) {
this.contentPublishType = contentPublishType;
}
public String getContentPublishChannels() {
return contentPublishChannels;
}
public void setContentPublishChannels(String contentPublishChannels) {
this.contentPublishChannels = contentPublishChannels;
}
public String getContentUpType() {
return contentUpType;
}
public void setContentUpType(String contentUpType) {
this.contentUpType = contentUpType;
}
public String getContentRemark() {
return contentRemark;
}
public void setContentRemark(String contentRemark) {
this.contentRemark = contentRemark;
}
public String getContentIntro() {
return contentIntro;
}
public void setContentIntro(String contentIntro) {
this.contentIntro = contentIntro;
}
public String getContentTitle() {
return contentTitle;
}
public void setContentTitle(String contentTitle) {
this.contentTitle = contentTitle;
}
public String getContentTxt() {
return contentTxt;
}
public void setContentTxt(String contentTxt) {
this.contentTxt = contentTxt;
}
public String getContentTheme() {
return contentTheme;
}
public void setContentTheme(String contentTheme) {
this.contentTheme = contentTheme;
}
public String getContentAdvise() {
return contentAdvise;
}
public void setContentAdvise(String contentAdvise) {
this.contentAdvise = contentAdvise;
}
public int getSingleAwardFlag() {
return singleAwardFlag;
}
public void setSingleAwardFlag(int singleAwardFlag) {
this.singleAwardFlag = singleAwardFlag;
}
public int getTotalAwardFlag() {
return totalAwardFlag;
}
public void setTotalAwardFlag(int totalAwardFlag) {
this.totalAwardFlag = totalAwardFlag;
}
public Date getDataEndTime() {
return dataEndTime;
}
public void setDataEndTime(Date dataEndTime) {
this.dataEndTime = dataEndTime;
}
}
package com.gic.haoban.manage.web.vo.clerktask;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class TaskPlanDetailVO implements Serializable {
/**id*/
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long planId;
/**名称*/
private String title;
/**开始日期*/
private Date beginDate;
/**结束日期*/
private Date endDate;
/**图片*/
private String img;
/**说明*/
private String remark;
/**企业id*/
private String enterpriseId;
/**创建时间*/
private Date createTime;
// 1未开始 2进行中 3已结束 4已过期
private int status ;
/**1开放 2指定任务*/
private int taskMode;
/**1召回 2企微 3内容*/
private int taskType;
/**召回渠道列表*/
private String orderChannels;
/**1添加 2添加并认证*/
private int qwRule;
/**添加非会员开关1是0否*/
private int qwNotMemberFlag;
/** 1定额 2阶梯 3排名 */
private Integer awardMode ;
/**
* 渠道名称
*/
private String orderChannelNames ;
/**
* 导购完成/奖品信息
*/
private ClerkAwardInfoVO clerkAwardInfo ;
/**
* 内容配置
*/
private TaskPlanDetailContentVO content ;
/**
* 奖励列表
*/
private List<TaskPlanDetailAwardVO> awardList ;
public String getOrderChannelNames() {
return orderChannelNames;
}
public void setOrderChannelNames(String orderChannelNames) {
this.orderChannelNames = orderChannelNames;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public int getTaskMode() {
return taskMode;
}
public void setTaskMode(int taskMode) {
this.taskMode = taskMode;
}
public int getTaskType() {
return taskType;
}
public void setTaskType(int taskType) {
this.taskType = taskType;
}
public Integer getAwardMode() {
return awardMode;
}
public void setAwardMode(Integer awardMode) {
this.awardMode = awardMode;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getOrderChannels() {
return orderChannels;
}
public void setOrderChannels(String orderChannels) {
this.orderChannels = orderChannels;
}
public int getQwRule() {
return qwRule;
}
public void setQwRule(int qwRule) {
this.qwRule = qwRule;
}
public int getQwNotMemberFlag() {
return qwNotMemberFlag;
}
public void setQwNotMemberFlag(int qwNotMemberFlag) {
this.qwNotMemberFlag = qwNotMemberFlag;
}
public void setContent(TaskPlanDetailContentVO content) {
this.content = content;
}
public void setAwardList(List<TaskPlanDetailAwardVO> awardList) {
this.awardList = awardList;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public ClerkAwardInfoVO getClerkAwardInfo() {
return clerkAwardInfo;
}
public void setClerkAwardInfo(ClerkAwardInfoVO clerkAwardInfo) {
this.clerkAwardInfo = clerkAwardInfo;
}
public TaskPlanDetailContentVO getContent() {
return content;
}
public List<TaskPlanDetailAwardVO> getAwardList() {
return awardList;
}
}
......@@ -174,6 +174,7 @@
<dubbo:reference id="storeRankApiService" interface="com.gic.enterprise.api.service.rank.StoreRankApiService" timeout="100000" retries="0" check="false" />
<dubbo:reference id="enterpriseWxaLinkService" interface="com.gic.enterprise.api.service.EnterpriseWxaLinkService" timeout="100000" retries="0" check="false" />
<dubbo:reference id="clerkTaskApiService" interface="com.gic.marketing.pro.api.service.clerktask.ClerkTaskApiService" timeout="100000" retries="0" check="false" />
......
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