From 9ae3d8b44bb0f8520e345c6a227e95250e3ec5ac Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 27 Mar 2024 15:52:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=9F=E8=BF=9B=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/SmsCodeTypeEnum.java | 37 ++++++++ .../com/cool/store/dao/LineFollowLogDAO.java | 49 ++++++++++ .../store/mapper/LineFollowLogMapper.java | 16 ++++ .../resources/mapper/LineFollowLogMapper.xml | 27 ++++++ .../resources/mybatis-generator.properties | 6 +- .../cool/store/entity/LineFollowLogDO.java | 93 +++++++++++++++++++ .../store/request/LineFollowLogRequest.java | 21 +++++ .../cool/store/vo/log/LineFollowLogVO.java | 42 +++++++++ .../cool/store/service/LineFollowService.java | 32 +++++++ .../store/service/impl/CommonService.java | 18 +++- .../service/impl/LineFollowServiceImpl.java | 51 ++++++++++ .../controller/webb/LineFollowController.java | 43 +++++++++ 12 files changed, 428 insertions(+), 7 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/LineFollowLogDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineFollowLogMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/LineFollowLogMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/LineFollowLogDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/LineFollowLogRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/log/LineFollowLogVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/LineFollowService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineFollowServiceImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineFollowController.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java new file mode 100644 index 000000000..a78ead949 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SmsCodeTypeEnum.java @@ -0,0 +1,37 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: SmsCodeTypeEnum + * @Description: 短信验证码类型 + * @date 2021-07-20 9:47 + */ +public enum SmsCodeTypeEnum { + + LOGIN("SMS_220325070","验证码登录", 10 * 60), + ; + + private String templateCode; + + private String message; + + private int cacheSeconds; + + SmsCodeTypeEnum(String templateCode, String message, int cacheSeconds) { + this.templateCode = templateCode; + this.message = message; + this.cacheSeconds = cacheSeconds; + } + + public String getTemplateCode() { + return templateCode; + } + + public String getMessage() { + return message; + } + + public int getCacheSeconds() { + return cacheSeconds; + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineFollowLogDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineFollowLogDAO.java new file mode 100644 index 000000000..cd8ea4795 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineFollowLogDAO.java @@ -0,0 +1,49 @@ +package com.cool.store.dao; + +import com.cool.store.entity.LineFollowLogDO; +import com.cool.store.entity.LineInfoDO; +import com.cool.store.mapper.LineFollowLogMapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * @author zhangchenbiao + * @FileName: LineFollowLogDAO + * @Description:跟进日志 + * @date 2024-03-27 14:33 + */ +@Slf4j +@Repository +public class LineFollowLogDAO { + + @Resource + private LineFollowLogMapper lineFollowLogMapper; + + public Page getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize){ + PageHelper.startPage(pageNum, pageSize); + return lineFollowLogMapper.getFollowLogPage(lineId); + } + + /** + * 新增跟进线索 + * @param lineInfo + * @param operateUserId + * @param operateUsername + * @param message + * @return + */ + public Long addFollowLog(LineInfoDO lineInfo, String operateUserId, String operateUsername, String message){ + if(Objects.isNull(lineInfo)){ + return null; + } + LineFollowLogDO followLog = new LineFollowLogDO(lineInfo.getPartnerId(), lineInfo.getId(), operateUserId, operateUsername, lineInfo.getWorkflowStage(), lineInfo.getWorkflowSubStage(), lineInfo.getWorkflowSubStageStatus(), message); + lineFollowLogMapper.insertSelective(followLog); + return followLog.getId(); + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineFollowLogMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineFollowLogMapper.java new file mode 100644 index 000000000..392f459dc --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineFollowLogMapper.java @@ -0,0 +1,16 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.LineFollowLogDO; +import com.github.pagehelper.Page; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +public interface LineFollowLogMapper extends Mapper { + + /** + * + * @param lineId + * @return + */ + Page getFollowLogPage(@Param("lineId")Long lineId); +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineFollowLogMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineFollowLogMapper.xml new file mode 100644 index 000000000..a6c4ced4f --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/LineFollowLogMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties index d14728282..1702d3223 100644 --- a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties +++ b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties @@ -3,6 +3,6 @@ jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcoll jdbc.user= coolstore jdbc.password = CSCErYcXniNYm7bT -table.name = xfsg_line_interview -table.object.class = LineInterviewDO -table.mapper = LineInterviewMapper \ No newline at end of file +table.name = xfsg_line_follow_log +table.object.class = LineFollowLogDO +table.mapper = LineFollowLogMapper \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineFollowLogDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineFollowLogDO.java new file mode 100644 index 000000000..badbf7cf1 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineFollowLogDO.java @@ -0,0 +1,93 @@ +package com.cool.store.entity; + +import lombok.Data; + +import java.util.Date; +import javax.persistence.*; + +@Data +@Table(name = "xfsg_line_follow_log") +public class LineFollowLogDO { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * hy_partner_user_info.partner_id + */ + @Column(name = "partner_id") + private String partnerId; + + /** + * hy_partner_line_info.id + */ + @Column(name = "line_id") + private Long lineId; + + /** + * 操作人id + */ + @Column(name = "operate_user_id") + private String operateUserId; + + /** + * 操作人姓名 + */ + @Column(name = "operate_username") + private String operateUsername; + + /** + * 流程阶段:1意向加盟;2新店进展; + */ + @Column(name = "workflow_stage") + private Integer workflowStage; + + /** + * 流程子阶段 + */ + @Column(name = "workflow_sub_stage") + private Integer workflowSubStage; + + /** + * 流程子阶段状态 + */ + @Column(name = "workflow_sub_stage_status") + private Integer workflowSubStageStatus; + + /** + * 备注 + */ + private String message; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + /** + * 删除标识 + */ + private Boolean deleted; + + public LineFollowLogDO() { + } + + public LineFollowLogDO(String partnerId, Long lineId, String operateUserId, String operateUsername, Integer workflowStage, Integer workflowSubStage, Integer workflowSubStageStatus, String message) { + this.partnerId = partnerId; + this.lineId = lineId; + this.operateUserId = operateUserId; + this.operateUsername = operateUsername; + this.workflowStage = workflowStage; + this.workflowSubStage = workflowSubStage; + this.workflowSubStageStatus = workflowSubStageStatus; + this.message = message; + this.createTime= new Date(); + } +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LineFollowLogRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LineFollowLogRequest.java new file mode 100644 index 000000000..56b332377 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LineFollowLogRequest.java @@ -0,0 +1,21 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: LineFollowLogRequest + * @Description: + * @date 2024-03-27 14:59 + */ +@Data +public class LineFollowLogRequest { + + @ApiModelProperty("线索id") + private Long lineId; + + @ApiModelProperty("日志") + private String message; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/log/LineFollowLogVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/log/LineFollowLogVO.java new file mode 100644 index 000000000..4c3b7bd13 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/log/LineFollowLogVO.java @@ -0,0 +1,42 @@ +package com.cool.store.vo.log; + +import com.cool.store.entity.LineFollowLogDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: LineFollowLogVO + * @Description:跟进日志 + * @date 2024-03-27 14:50 + */ +@Data +public class LineFollowLogVO { + + @ApiModelProperty("日志") + private String message; + + @ApiModelProperty("创建时间") + private Date createTime; + + public LineFollowLogVO(String message, Date createTime) { + this.message = message; + this.createTime = createTime; + } + + public static List convertList(List list){ + if (CollectionUtils.isEmpty(list)) { + return null; + } + List resultList = new ArrayList<>(); + for (LineFollowLogDO followLog : list) { + resultList.add(new LineFollowLogVO(followLog.getMessage(), followLog.getCreateTime())); + } + return resultList; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LineFollowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LineFollowService.java new file mode 100644 index 000000000..59befe64a --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LineFollowService.java @@ -0,0 +1,32 @@ +package com.cool.store.service; + +import com.cool.store.request.LineFollowLogRequest; +import com.cool.store.vo.log.LineFollowLogVO; +import com.github.pagehelper.PageInfo; + +/** + * @author zhangchenbiao + * @FileName: LineFollowService + * @Description:线索跟进 + * @date 2024-03-27 14:49 + */ +public interface LineFollowService { + + /** + * 分页获取跟进日志 + * @param lineId + * @param pageNum + * @param pageSize + * @return + */ + PageInfo getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize); + + /** + * 新增跟进日志 + * @param followLog + * @param operateUserId + * @param operateUsername + * @return + */ + Long addFollowLog(LineFollowLogRequest followLog, String operateUserId, String operateUsername); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java index fb9f8c31e..64cfd239a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java @@ -1,15 +1,23 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.exceptions.ServerException; +import com.aliyuncs.http.MethodType; import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dto.message.SendMessageDTO; -import com.cool.store.enums.MessageEnum; -import com.cool.store.enums.RocketMqTagEnum; -import com.cool.store.enums.UserRoleEnum; -import com.cool.store.enums.WorkflowSubStageEnum; +import com.cool.store.enums.*; +import com.cool.store.exception.ServiceException; import com.cool.store.mq.producer.SimpleMessageService; +import com.cool.store.response.ResponseResult; import com.cool.store.utils.UUIDUtils; import com.cool.store.utils.poi.constant.Constants; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +39,7 @@ import java.util.stream.Collectors; * @Description: * @date 2024-03-20 17:09 */ +@Slf4j @Service public class CommonService { @@ -95,4 +104,5 @@ public class CommonService { e.printStackTrace(); } } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineFollowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineFollowServiceImpl.java new file mode 100644 index 000000000..222e1035f --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineFollowServiceImpl.java @@ -0,0 +1,51 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.LineFollowLogDAO; +import com.cool.store.dao.LineInfoDAO; +import com.cool.store.entity.LineFollowLogDO; +import com.cool.store.entity.LineInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.request.LineFollowLogRequest; +import com.cool.store.service.LineFollowService; +import com.cool.store.vo.log.LineFollowLogVO; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageInfo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +/** + * @author zhangchenbiao + * @FileName: LineFollowServiceImpl + * @Description: + * @date 2024-03-27 14:49 + */ +@Service +public class LineFollowServiceImpl implements LineFollowService { + + @Resource + private LineFollowLogDAO lineFollowLogDAO; + @Resource + private LineInfoDAO lineInfoDAO; + + @Override + public PageInfo getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize) { + Page followLogPage = lineFollowLogDAO.getFollowLogPage(lineId, pageNum, pageSize); + PageInfo resultPage = new PageInfo(followLogPage); + List resultList = LineFollowLogVO.convertList(followLogPage); + resultPage.setList(resultList); + return resultPage; + } + + @Override + public Long addFollowLog(LineFollowLogRequest followLog, String operateUserId, String operateUsername) { + LineInfoDO lineInfo = lineInfoDAO.getLineInfo(followLog.getLineId()); + if(Objects.isNull(lineInfo)){ + throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); + } + return lineFollowLogDAO.addFollowLog(lineInfo, operateUserId, operateUsername, followLog.getMessage()); + } +} diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineFollowController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineFollowController.java new file mode 100644 index 000000000..9db62aca9 --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineFollowController.java @@ -0,0 +1,43 @@ +package com.cool.store.controller.webb; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.request.LineFollowLogRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.LineFollowService; +import com.cool.store.vo.log.LineFollowLogVO; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author zhangchenbiao + * @FileName: LineFollowController + * @Description: + * @date 2024-03-27 15:02 + */ +@Api(tags = "跟进日志") +@RestController +@RequestMapping({"pc/follow"}) +public class LineFollowController { + + @Resource + private LineFollowService lineFollowService; + + @ApiOperation("跟进日志分页") + @GetMapping("/page") + public ResponseResult> getFollowLogPage(Long lineId, Integer pageNum, Integer pageSize){ + return ResponseResult.success(lineFollowService.getFollowLogPage(lineId, pageNum, pageSize)); + } + + @ApiOperation("新增跟进日志") + @PostMapping("/log/add") + public ResponseResult addFollowLog(@RequestBody LineFollowLogRequest request){ + LoginUserInfo user = CurrentUserHolder.getUser(); + return ResponseResult.success(lineFollowService.addFollowLog(request, user.getUserId(), user.getName())); + } + +}