Commit 34490599 by 墨竹

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

parents 09598698 a9673c32
......@@ -56,6 +56,12 @@
<artifactId>java-jwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-commons</artifactId>
<version>3.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
......
......@@ -59,16 +59,48 @@ public class PendingTaskDetailDTO implements Serializable {
*/
private Integer statusFlag;
private Integer finishFlag;
private Integer overdueFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 月指标的时候传入
*/
private String extendContent;
/**
*/
private static final long serialVersionUID = 1L;
public String getExtendContent() {
return extendContent;
}
public void setExtendContent(String extendContent) {
this.extendContent = extendContent;
}
public Integer getFinishFlag() {
return finishFlag;
}
public void setFinishFlag(Integer finishFlag) {
this.finishFlag = finishFlag;
}
public Integer getOverdueFlag() {
return overdueFlag;
}
public void setOverdueFlag(Integer overdueFlag) {
this.overdueFlag = overdueFlag;
}
public String getEnterpriseId() {
return enterpriseId;
}
......
package com.gic.haoban.manage.api.dto.notify.qdto;
import java.io.Serializable;
import java.util.Map;
/**
* Created 2021/12/17.
*
* @author hua
*/
public class NoticeMessageQDTO implements Serializable {
private String enterpriseId;
private String clerkId;
private String storeId;
private String optTargetId;
private int messageType;
private String templateCode;
private Map<String, String> contentMap;
/**
* 拓展内容
*/
private Map<String, Object> extendContent;
public String getOptTargetId() {
return optTargetId;
}
public void setOptTargetId(String optTargetId) {
this.optTargetId = optTargetId;
}
public Map<String, Object> getExtendContent() {
return extendContent;
}
public void setExtendContent(Map<String, Object> extendContent) {
this.extendContent = extendContent;
}
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 getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public int getMessageType() {
return messageType;
}
public void setMessageType(int messageType) {
this.messageType = messageType;
}
public String getTemplateCode() {
return templateCode;
}
public void setTemplateCode(String templateCode) {
this.templateCode = templateCode;
}
public Map<String, String> getContentMap() {
return contentMap;
}
public void setContentMap(Map<String, String> contentMap) {
this.contentMap = contentMap;
}
}
package com.gic.haoban.manage.api.enums;
/**
* Created 2021/12/17.
*
* @author hua
*/
public enum NoticeMessageCategoryTypeEnum {
ALL(-1, "全部"),
CUSTOMER(0, "客户相关"),
TASK(1, "任务相关"),
ACTIVITY(2, "活动相关"),
OTHER(3, "其它"),;
private int type;
private String name;
NoticeMessageCategoryTypeEnum(int type, String name) {
this.type = type;
this.name = name;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.gic.haoban.manage.api.enums;
/**
* Created by hua on 2021/12/17.
*/
public enum NoticeMessageTypeEnum {
ACTIVITY_START(1001, "活动开始通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType()),
ACTIVITY_NEW(1002, "活动上新通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType()),
ACTIVITY_DEL(1003, "活动删除通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType()),
ACTIVITY_OFFLINE(1004, "活动下线通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType()),
ACTIVITY_END(1005, "活动结束通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType()),
ACTIVITY_RANK(1006, "活动排名通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType()),
ACTIVITY_AWARD(1007, "活动奖励通知", NoticeMessageCategoryTypeEnum.ACTIVITY.getType());
/**
* 消息类型
*/
private int type;
/**
* 消息名称
*/
private String name;
/**
* 大类
*/
private int category;
NoticeMessageTypeEnum(int type, String name, int category) {
this.type = type;
this.name = name;
this.category = category;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCategory() {
return category;
}
public void setCategory(int category) {
this.category = category;
}
public static NoticeMessageTypeEnum getByType(int type) {
for (NoticeMessageTypeEnum messageTypeEnum : values()) {
if (messageTypeEnum.getType() == type) {
return messageTypeEnum;
}
}
return null;
}
}
package com.gic.haoban.manage.api.enums;
/**
* Created by hua on 2021/12/16.
*/
public enum PendingStatusFlagEnum {
NORMAL(1, "正常"),
OVERDUE(2, "逾期"),
INVALID(3, "逾期失效");
private int type;
private String name;
PendingStatusFlagEnum(int type, String name) {
this.type = type;
this.name = name;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.gic.haoban.manage.api.service.notify;
/**
* Created 2021/12/17.
*
* @author hua
*/
public interface NoticeMessageApiService {
public void noticeMessageMq(String json);
}
\ No newline at end of file
......@@ -40,4 +40,38 @@ public interface PendingTaskApiService {
*/
public ServiceResponse<List<PendingTaskDetailDTO>> listPendingTaskToday(String enterpriseId, String storeId, String clerkId, boolean seeSelf);
/**
* 完成任务
*
* @param relationId
* @return
*/
public ServiceResponse<Boolean> finishPending(String relationId);
/**
* 变更执行人
*
* @param relationId
* @param newExeutiveClerkId
* @return
*/
public ServiceResponse<Boolean> changeExecutiveClerkId(String relationId, String newExeutiveClerkId);
/**
* 在完成的同时更新执行人
*
* @param relationId
* @param newExeutiveClerkId
* @return
*/
public ServiceResponse<Boolean> changeExecutiveClerkAndFinishStatus(String relationId, String newExeutiveClerkId);
/**
* 删除执行人
*
* @param relationIds
* @return
*/
public ServiceResponse<Boolean> deletePendingTask(List<String> relationIds);
}
package com.gic.haoban.manage.api.util.notify;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO;
import com.gic.mq.sdk.GicMQClient;
import org.slf4j.Logger;
import java.util.Map;
import static org.slf4j.LoggerFactory.getLogger;
/**
* Created 2021/12/17.
*
* @author hua
*/
public class NoticeMessageUtil {
private static final Logger logger = getLogger(NoticeMessageUtil.class);
private static final String NOTICE_MESSAGE = "haobanNoticeMessage";
/**
* 发送消息
*
* @param enterpriseId 企业id
* @param clerkId 执行人导购
* @param messageType 消息类型 NoticeMessageTypeEnum
* @param templateCode 模板code
* @param fieldMap 解析模板的字段
* @param extendField 拓展字段给前端使用 没有可以为null
*/
public static void sendNoticeMessage(String enterpriseId, String clerkId, int messageType, String templateCode, Map<String, String> fieldMap, Map<String, Object> extendField) {
NoticeMessageQDTO noticeMessageQDTO = new NoticeMessageQDTO();
noticeMessageQDTO.setEnterpriseId(enterpriseId);
noticeMessageQDTO.setClerkId(clerkId);
noticeMessageQDTO.setMessageType(messageType);
noticeMessageQDTO.setTemplateCode(templateCode);
noticeMessageQDTO.setContentMap(fieldMap);
noticeMessageQDTO.setExtendContent(extendField);
String ret = JSONObject.toJSONString(noticeMessageQDTO);
logger.info("发送消息:{}", ret);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendMessage(NOTICE_MESSAGE, ret);
} catch (Exception e) {
logger.info("发送消息异常:{}", e);
}
}
}
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.service.entity.TabPendingTask;
import com.gic.haoban.manage.service.pojo.BO.PendingTaskBO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -51,7 +48,7 @@ public interface PendingTaskMapper {
* @return
*/
public List<TabPendingTask> listPendingTask(@Param("enterpriseId") String enterpriseId, @Param("storeId") String storeId, @Param("clerkId") String clerkId,
@Param("finishFlag") int finishFlag, @Param("overdueFlag") int overdueFlag);
@Param("taskType") int taskType, @Param("finishFlag") int finishFlag, @Param("overdueFlag") int overdueFlag);
/**
* 分页查询待办任务表
......@@ -67,4 +64,16 @@ public interface PendingTaskMapper {
@Param("clerkId") String clerkId,
@Param("startDate") String startDate, @Param("endDate") String endDate);
/**
* 分页查询待办任务表
*
* @param enterpriseId 企业id
* @param storeId 门店id
* @param clerkId 导购id
* @param startDate
* @param endDate
* @return
*/
public int deleteByRelationIds(@Param("enterpriseId") String enterpriseId, @Param("relationIds") List<String> relationIds);
}
\ No newline at end of file
package com.gic.haoban.manage.service.pojo.BO;
package com.gic.haoban.manage.service.pojo.bo;
import java.io.Serializable;
import java.util.Date;
......
package com.gic.haoban.manage.service.pojo.BO;
package com.gic.haoban.manage.service.pojo.bo;
import java.io.Serializable;
import java.util.Date;
......
package com.gic.haoban.manage.service.pojo.DO;
package com.gic.haoban.manage.service.pojo.entitydo;
import java.io.Serializable;
import java.util.Date;
......
package com.gic.haoban.manage.service.pojo.DO;
package com.gic.haoban.manage.service.pojo.entitydo;
import java.io.Serializable;
import java.util.Date;
......
package com.gic.haoban.manage.service.service.notify;
import com.gic.haoban.manage.service.pojo.BO.PendingTaskBO;
import com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO;
import com.gic.haoban.manage.service.pojo.bo.PendingTaskBO;
/**
* Created 2021/12/15.
......@@ -12,10 +13,10 @@ public interface NoticeMessageService {
/**
* 新增或创建消息
*
* @param pendingTask
* @param messageBO
* @return
*/
public boolean addOrCreateNoticeMessage(PendingTaskBO pendingTask);
public boolean addOrCreateNoticeMessage(NoticeMessageBO messageBO);
}
......@@ -2,7 +2,7 @@ package com.gic.haoban.manage.service.service.notify;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.service.pojo.BO.PendingTaskBO;
import com.gic.haoban.manage.service.pojo.bo.PendingTaskBO;
import java.util.List;
......@@ -31,7 +31,7 @@ public interface PendingTaskService {
* @param pageInfo 分页参数
* @return
*/
public Page<PendingTaskBO> pagePendingTask(String enterpriseId, String storeId, String clerkId,
public Page<PendingTaskBO> pagePendingTask(String enterpriseId, String storeId, String clerkId, int taskType,
int finishFlag, int overdueFlag, BasePageInfo pageInfo);
/**
......@@ -46,5 +46,13 @@ public interface PendingTaskService {
*/
public List<PendingTaskBO> listPendingTaskByCreateTime(String enterpriseId, String storeId, String clerkId, String startDate, String endDate);
/**
* 删除执行人列表
*
* @param relationIds
* @return
*/
public boolean deletePendingTask(List<String> relationIds);
}
package com.gic.haoban.manage.service.service.notify.impl;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.service.dao.mapper.NoticeMessageMapper;
import com.gic.haoban.manage.service.entity.TabNoticeMessage;
import com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO;
import com.gic.haoban.manage.service.pojo.bo.PendingTaskBO;
import com.gic.haoban.manage.service.service.notify.NoticeMessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* Created 2021/12/17.
*
* @author hua
*/
@Service
public class NoticeMessageServiceImpl implements NoticeMessageService {
@Autowired
private NoticeMessageMapper noticeMessageMapper;
@Override
public boolean addOrCreateNoticeMessage(NoticeMessageBO messageBO) {
TabNoticeMessage tabNoticeMessage = EntityUtil.changeEntityByOrika(TabNoticeMessage.class, messageBO);
tabNoticeMessage.setUpdateTime(new Date());
if (tabNoticeMessage.getNoticeMessageId() == null) {
tabNoticeMessage.setCreateTime(new Date());
tabNoticeMessage.setNoticeMessageId(UniqueIdUtils.uniqueLong());
noticeMessageMapper.insertSelective(tabNoticeMessage);
return true;
}
noticeMessageMapper.updateByPrimaryKeySelective(tabNoticeMessage);
return true;
}
}
......@@ -6,9 +6,10 @@ import com.gic.commons.util.PageHelperUtils;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.service.dao.mapper.PendingTaskMapper;
import com.gic.haoban.manage.service.entity.TabPendingTask;
import com.gic.haoban.manage.service.pojo.BO.PendingTaskBO;
import com.gic.haoban.manage.service.pojo.bo.PendingTaskBO;
import com.gic.haoban.manage.service.service.notify.PendingTaskService;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -41,9 +42,9 @@ public class PendingTaskServiceImpl implements PendingTaskService {
}
@Override
public Page<PendingTaskBO> pagePendingTask(String enterpriseId, String storeId, String clerkId, int finishFlag, int overdueFlag, BasePageInfo pageInfo) {
public Page<PendingTaskBO> pagePendingTask(String enterpriseId, String storeId, String clerkId, int taskType, int finishFlag, int overdueFlag, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo);
List<TabPendingTask> tabPendingTasks = pendingTaskMapper.listPendingTask(enterpriseId, storeId, clerkId, finishFlag, overdueFlag);
List<TabPendingTask> tabPendingTasks = pendingTaskMapper.listPendingTask(enterpriseId, storeId, clerkId, taskType, finishFlag, overdueFlag);
Page<PendingTaskBO> retPage = PageHelperUtils.changePageHelperToCurrentPage(tabPendingTasks, PendingTaskBO.class);
return retPage;
}
......@@ -54,4 +55,12 @@ public class PendingTaskServiceImpl implements PendingTaskService {
return EntityUtil.changeEntityListByJSON(PendingTaskBO.class, tabPendingTasks);
}
@Override
public boolean deletePendingTask(List<String> relationIds) {
if (CollectionUtils.isEmpty(relationIds)) {
return true;
}
pendingTaskMapper.deleteByRelationIds(null, relationIds);
return true;
}
}
package com.gic.haoban.manage.service.service.notify.out;
import com.alibaba.fastjson.JSONObject;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import com.gic.haoban.manage.api.service.notify.NoticeMessageApiService;
import com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import static org.slf4j.LoggerFactory.getLogger;
/**
* Created 2021/12/17.
*
* @author hua
*/
@Service
public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
private static final Logger logger = getLogger(NoticeMessageApiServiceImpl.class);
@Autowired
private ClerkService clerkService;
@Override
public void noticeMessageMq(String json) {
logger.info("通知消息:{}", json);
NoticeMessageQDTO messageQDTO = JSONObject.parseObject(json, NoticeMessageQDTO.class);
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(messageQDTO.getClerkId());
NoticeMessageBO noticeMessageBO = new NoticeMessageBO();
noticeMessageBO.setCategoryType(NoticeMessageTypeEnum.getByType(messageQDTO.getMessageType()).getType());
noticeMessageBO.setMessageType(messageQDTO.getMessageType());
noticeMessageBO.setClerkId(messageQDTO.getClerkId());
}
}
......@@ -5,13 +5,13 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.PageHelperUtils;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.api.dto.notify.dto.PendingTaskDTO;
import com.gic.haoban.manage.api.dto.notify.dto.PendingTaskDetailDTO;
import com.gic.haoban.manage.api.dto.notify.qdto.PendingListQDTO;
import com.gic.haoban.manage.api.dto.notify.qdto.PendingTaskQDTO;
import com.gic.haoban.manage.api.enums.PendingStatusFlagEnum;
import com.gic.haoban.manage.api.enums.PendingTaskTypeEnum;
import com.gic.haoban.manage.api.service.notify.PendingTaskApiService;
import com.gic.haoban.manage.service.pojo.BO.PendingTaskBO;
import com.gic.haoban.manage.service.pojo.bo.PendingTaskBO;
import com.gic.haoban.manage.service.service.notify.PendingTaskService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
......@@ -20,6 +20,8 @@ import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created 2021/12/16.
......@@ -34,27 +36,53 @@ public class PendingTaskApiServiceImpl implements PendingTaskApiService {
@Override
public void addPendingTask(PendingTaskQDTO qdto) {
//新增待办
//新增待办 todo 后续优化以及完善
pendingTaskService.addOrUpdatePendingTask(EntityUtil.changeEntityByOrika(PendingTaskBO.class, qdto));
}
@Override
public ServiceResponse<Page<PendingTaskDetailDTO>> pagePendingTask(PendingListQDTO listQDTO, BasePageInfo pageInfo) {
Page<PendingTaskBO> pendingTask = pendingTaskService.pagePendingTask(listQDTO.getEnterpriseId(), listQDTO.getStoreId(), listQDTO.getClerkId(), listQDTO.getFinishFlag()
Page<PendingTaskBO> pendingTask = pendingTaskService.pagePendingTask(listQDTO.getEnterpriseId(), listQDTO.getStoreId()
, listQDTO.getClerkId(), listQDTO.getTaskType(), listQDTO.getFinishFlag()
, listQDTO.getOverdueFlag(), pageInfo);
//转化
Page<PendingTaskDetailDTO> retPage = PageHelperUtils.changePageToCurrentPage(pendingTask, PendingTaskDetailDTO.class);
if (CollectionUtils.isEmpty(retPage.getResult())) {
return ServiceResponse.success(retPage);
}
retPage.getResult().forEach(dto -> {
buildPending(retPage.getResult());
return ServiceResponse.success(retPage);
}
/**
* 组装 防止后面变更需求
*
* @param list
*/
private void buildPending(List<PendingTaskDetailDTO> list) {
String pattern = ".*([0-9]{6}).*";
list.forEach(dto -> {
String title = dto.getTitle();
PendingTaskTypeEnum taskTypeEnum = PendingTaskTypeEnum.getByType(dto.getTaskType());
if (null == taskTypeEnum) {
return;
}
dto.setDescription(taskTypeEnum.getDescription().replace("{}", title));
dto.setStatusFlag(dto.getOverdueFlag() == 1 ? PendingStatusFlagEnum.OVERDUE.getType() : PendingStatusFlagEnum.NORMAL.getType());
dto.setTitle(taskTypeEnum.getName());
if (dto.getTaskType() == PendingTaskTypeEnum.PERFORMANCE.getType()) {
Pattern r = Pattern.compile(pattern);
Matcher matcher = r.matcher(title);
String s = matcher.find() ? matcher.group(1) : "";
String content = s.substring(0, 4) + "-" + s.substring(4);
dto.setExtendContent(content);
}
});
return ServiceResponse.success(retPage);
}
@Override
......@@ -67,12 +95,41 @@ public class PendingTaskApiServiceImpl implements PendingTaskApiService {
if (CollectionUtils.isEmpty(retList)) {
return ServiceResponse.success(retList);
}
retList.forEach(dto -> {
String title = dto.getTitle();
PendingTaskTypeEnum taskTypeEnum = PendingTaskTypeEnum.getByType(dto.getTaskType());
dto.setDescription(taskTypeEnum.getDescription().replace("{}", title));
dto.setTitle(taskTypeEnum.getName());
});
buildPending(retList);
return ServiceResponse.success(retList);
}
@Override
public ServiceResponse<Boolean> finishPending(String relationId) {
PendingTaskBO pendingTaskBO = new PendingTaskBO();
pendingTaskBO.setRelationId(relationId);
pendingTaskBO.setFinishFlag(1);
boolean b = pendingTaskService.addOrUpdatePendingTask(pendingTaskBO);
return ServiceResponse.success(b);
}
@Override
public ServiceResponse<Boolean> changeExecutiveClerkId(String relationId, String newExeutiveClerkId) {
PendingTaskBO pendingTaskBO = new PendingTaskBO();
pendingTaskBO.setRelationId(relationId);
pendingTaskBO.setClerkId(newExeutiveClerkId);
boolean b = pendingTaskService.addOrUpdatePendingTask(pendingTaskBO);
return ServiceResponse.success(b);
}
@Override
public ServiceResponse<Boolean> changeExecutiveClerkAndFinishStatus(String relationId, String newExeutiveClerkId) {
PendingTaskBO pendingTaskBO = new PendingTaskBO();
pendingTaskBO.setRelationId(relationId);
pendingTaskBO.setClerkId(newExeutiveClerkId);
pendingTaskBO.setFinishFlag(1);
boolean b = pendingTaskService.addOrUpdatePendingTask(pendingTaskBO);
return ServiceResponse.success(b);
}
@Override
public ServiceResponse<Boolean> deletePendingTask(List<String> relationIds) {
boolean b = pendingTaskService.deletePendingTask(relationIds);
return ServiceResponse.success(b);
}
}
......@@ -254,6 +254,9 @@
<if test="clerkId != null">
and clerk_id = #{clerkId}
</if>
<if test="taskType!=-1">
and task_type = #{taskType}
</if>
order by overdue_time desc
</select>
......@@ -274,4 +277,15 @@
</if>
order by create_time desc limit 20
</select>
<update id="deleteByRelationIds">
update tab_haoban_pending_task
set
delete_flag = 1,
update_time = now()
where relation_id in
<foreach collection="relationIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</update>
</mapper>
\ No newline at end of file
......@@ -29,6 +29,7 @@ import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.*;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -623,8 +624,8 @@ public class ClerkController extends WebBaseController {
//精确查,根据手机号或者code,查找
@RequestMapping("query-clerk-list-by-code")
public HaobanResponse queryClerkListByCode(String keyword,String wxEnterpriseId){
if(StringUtils.isAnyBlank(keyword,wxEnterpriseId)){
public HaobanResponse queryClerkListByCode(String keyword, String wxEnterpriseId, String staffId) {
if (StringUtils.isAnyBlank(staffId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
......@@ -636,8 +637,9 @@ public class ClerkController extends WebBaseController {
return !over;
}).map(s->s.getEnterpriseId()).collect(Collectors.toList());
List<String> storeIds = wxEnterpriseRelatedApiService.listStoreIdByWxEnterpriseId(wxEnterpriseId);
List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIds, keyword);
List<ClerkStoreVO> clerkStoreList = new ArrayList<>();
List<ClerkDTO> clerkList = this.getClerkListBySearch(enterpriseIdList, storeIds, keyword, staffId);
// List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIds, keyword);
List<ClerkStoreVO> clerkStoreList = new ArrayList<>();
if(CollectionUtil.isEmpty(clerkList)){
return resultResponse(HaoBanErrCode.ERR_1,clerkStoreList);
}
......@@ -674,6 +676,47 @@ public class ClerkController extends WebBaseController {
}
return resultResponse(HaoBanErrCode.ERR_1,clerkStoreList);
}
/**
* @param enterpriseIdList
* @param storeIdList
* @param search
* @param staffId
* @return
*/
private List<ClerkDTO> getClerkListBySearch(List<String> enterpriseIdList, List<String> storeIdList, String search, String staffId) {
List<ClerkDTO> ret = new ArrayList<ClerkDTO>();
if (StringUtils.isBlank(search)) {
StaffDTO staffDTO = staffApiService.selectById(staffId);
if (staffDTO != null) {
List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIdList, staffDTO.getPhoneNumber());
if (CollectionUtils.isNotEmpty(clerkList)) {
ret.addAll(clerkList);
}
}
List<StaffClerkInfoDTO> staffClerkInfoDTOS = staffClerkRelationApiService.listBindDetailByStaffId(staffId);
if (CollectionUtils.isNotEmpty(staffClerkInfoDTOS)) {
return ret;
}
Set<String> clerkIds = staffClerkInfoDTOS.stream().map(mid -> mid.getClerkId()).collect(Collectors.toSet());
List<ClerkDTO> clerkDTOS = clerkService.getClerkByClerkIds(clerkIds);
for (ClerkDTO clerkDTO : clerkDTOS) {
List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIdList, clerkDTO.getPhoneNumber());
if (CollectionUtils.isNotEmpty(clerkList)) {
ret.addAll(clerkList);
}
}
} else {
List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearch(enterpriseIdList, storeIdList, search);
if (CollectionUtils.isNotEmpty(clerkList)) {
ret.addAll(clerkList);
}
}
return ret;
}
//绑定
@HttpLimit
@RequestMapping("bind-staff")
......
......@@ -2,19 +2,18 @@ package com.gic.haoban.manage.web.controller;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.notify.dto.PendingTaskDetailDTO;
import com.gic.haoban.manage.api.dto.notify.qdto.PendingListQDTO;
import com.gic.haoban.manage.api.enums.PendingTaskTypeEnum;
import com.gic.haoban.manage.api.service.notify.PendingTaskApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.CommonQO;
import com.gic.haoban.manage.web.qo.PendingListQO;
import org.apache.commons.lang3.StringUtils;
import com.gic.haoban.manage.web.vo.notify.PairValVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -22,9 +21,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Created 2021/12/16.
......@@ -51,7 +50,9 @@ public class NotifyController extends WebBaseController {
pendingListQDTO.setOverdueFlag(1);
}
ServiceResponse<Page<PendingTaskDetailDTO>> retPage = pendingTaskApiService.pagePendingTask(pendingListQDTO, qo.getBasePageInfo());
return resultResponse(HaoBanErrCode.ERR_1, retPage.getResult());
PageResult2 pageInfo = PageUtil.getPageInfo(retPage.getResult());
return resultResponse(HaoBanErrCode.ERR_1, pageInfo);
}
/**
......@@ -67,4 +68,41 @@ public class NotifyController extends WebBaseController {
}
/**
* 今日待办列表 最多20条
*
* @return
*/
@RequestMapping("/commission/filter-info")
public HaobanResponse filterInfo(@RequestBody @Valid CommonQO qo) {
Map<String, Object> ret = new HashMap<String, Object>();
List<PairValVO> taskTypes = new ArrayList<PairValVO>();
List<PairValVO> filter = new ArrayList<PairValVO>();
PendingTaskTypeEnum[] values = PendingTaskTypeEnum.values();
for (PendingTaskTypeEnum val : values) {
PairValVO vo = new PairValVO();
vo.setKey(String.valueOf(val.getType()));
vo.setName(val.getName());
taskTypes.add(vo);
}
{
PairValVO vo = new PairValVO();
vo.setKey("0");
vo.setName("未完成");
filter.add(vo);
}
{
PairValVO vo = new PairValVO();
vo.setKey("1");
vo.setName("已逾期");
filter.add(vo);
}
ret.put("taskTypes", taskTypes);
ret.put("filter", filter);
return resultResponse(HaoBanErrCode.ERR_1, ret);
}
}
package com.gic.haoban.manage.web.vo.notify;
import java.io.Serializable;
/**
* Created 2021/12/17.
*
* @author hua
*/
public class PairValVO implements Serializable {
private String key;
private String name;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
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