From 42dcf14aa9985ff84bd635cd04aad7cd2262b3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Wed, 14 Jun 2023 10:37:24 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E9=9D=A2=E8=AF=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/InteviewStatusEnum.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java new file mode 100644 index 000000000..011bad5fd --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java @@ -0,0 +1,35 @@ +package com.cool.store.enums; + +/** + * @Author: young.yu + * @Date: 2023-06-13 20:22 + * @Description: 面试状态枚举 + */ +public enum InteviewStatusEnum { + WAIT_APPOINTMENT(0, "待预约"), + + WAIT_APPOINTMENT_TIME_CONFIRM(1, "面试时间待审核"), + WAIT_INTERVIEW(2, "待面试"), + INTERVIEWING(3, "已开始"), + WAIT_AUDIT(4, "待审核"), + AUDITING(5, "审批中"), + AUDIT_PASS(6, "审批通过"), + REFUSE(7, "拒绝"); + + private Integer code; + + private String message; + + InteviewStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} From cc118b78fc89e7ca18a85c7cbb4431be32e20b4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Wed, 14 Jun 2023 10:41:45 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E9=9D=A2=E8=AF=95=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/HyPartnerInterviewPlanMapper.java | 19 ++- .../mapper/HyPartnerInterviewPlanMapper.xml | 61 ++++++++ .../cool/store/request/EntrustOthersReq.java | 20 +++ .../store/request/FinishInterviewReq.java | 17 ++ .../store/request/GetInterviewListReq.java | 32 ++++ .../store/request/ModifyInterviewTimeReq.java | 21 +++ .../store/request/QueryByInterviewIdReq.java | 17 ++ .../cool/store/vo/interview/InterviewVO.java | 145 ++++++++++++++++++ .../cool/store/service/InterviewService.java | 42 +++++ .../service/impl/InterviewServiceImpl.java | 102 ++++++++++++ .../store/controller/InterviewController.java | 70 +++++++++ 11 files changed, 545 insertions(+), 1 deletion(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java index 44fe9cb77..dad3e0347 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.dto.partner.PartnerInterviewInfoDTO; import com.cool.store.dto.partner.SpecialDateRangeInterviewCountDTO; import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.request.GetInterviewListReq; +import com.cool.store.vo.interview.InterviewVO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; @@ -50,7 +52,6 @@ public interface HyPartnerInterviewPlanMapper { @Param("currentDate") String currentDate, @Param("startTime") String startTime, @Param("endTime") String endTime); - /** * 查询面试列表 * @param userId @@ -70,4 +71,20 @@ public interface HyPartnerInterviewPlanMapper { PageInfo getPartnerInterviewInfoList(@Param("userId") String userId, @Param("workflowStage") String workflowStage , @Param("workflowStatus") String workflowStatus); + + /** + * 查询面试列表 + * + * @param request + * @return + */ + List getInterviewList(@Param("record") GetInterviewListReq request); + + /** + * 查询面试详情 + * + * @param interviewId + * @return + */ + InterviewVO getInterviewInfo(String interviewId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index c20826590..bb17f44a3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -237,4 +237,65 @@ + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java new file mode 100644 index 000000000..750e00461 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java @@ -0,0 +1,20 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-09 15:41 + * @Description: + */ +@Data +@ApiModel +public class EntrustOthersReq { + @ApiModelProperty("会议编号") + private String interviewId; + + @ApiModelProperty("新面试官编号") + private String newInterviewerId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java new file mode 100644 index 000000000..212d5924e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java @@ -0,0 +1,17 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-12 17:43 + * @Description: + */ +@Data +@ApiModel +public class FinishInterviewReq { + @ApiModelProperty("会议编号") + private String interviewId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java new file mode 100644 index 000000000..db594f7ee --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java @@ -0,0 +1,32 @@ +package com.cool.store.request; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:50 + * @Description: + */ +@Data +@ApiModel +public class GetInterviewListReq extends PageBasicInfo { + @ApiModelProperty("加盟商姓名") + private String partnerName; + @ApiModelProperty("加盟商手机号") + private String partnerMobile; + @ApiModelProperty("房间号") + private String roomId; + @ApiModelProperty("面试官姓名") + private String interviewerName; + @ApiModelProperty("面试官手机号") + private String interviewerMobile; + @ApiModelProperty("房间状态:0待开放;1已开放; 2已关闭") + private Integer roomStatus; + @ApiModelProperty("开始时间") + private String startTime; + @ApiModelProperty("结束时间") + private String endTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java new file mode 100644 index 000000000..35d99652d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java @@ -0,0 +1,21 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-12 17:43 + * @Description: + */ +@Data +@ApiModel +public class ModifyInterviewTimeReq { + @ApiModelProperty("会议编号") + private String interviewId; + @ApiModelProperty("新预约开始时间") + private String newStartBookingTime; + @ApiModelProperty("新预约结束时间") + private String newEndBookingTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java new file mode 100644 index 000000000..b7b70f4c9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java @@ -0,0 +1,17 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-09 15:41 + * @Description: + */ +@Data +@ApiModel +public class QueryByInterviewIdReq { + @ApiModelProperty("会议编号") + private String interviewId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java new file mode 100644 index 000000000..d4855f309 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java @@ -0,0 +1,145 @@ +package com.cool.store.vo.interview; + +import com.alibaba.fastjson.annotation.JSONField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-08 16:26 + * @Description: + */ +@ApiModel(description = "面试信息") +public class InterviewVO { + @ApiModelProperty(value = "会议id", required = true) + private String interviewId; + + @ApiModelProperty(value = "加盟商用户编号") + private String partnerId; + + @ApiModelProperty(value = "被面试人姓名", required = true) + private String partnerName; + + @ApiModelProperty(value = "被面试人手机号", required = true) + private String partnerMobile; + + @ApiModelProperty(value = "房间号", required = true) + private String roomId; + + @ApiModelProperty(value = "会议计划开始时间", required = true, example = "2023-06-03 10:00") + private String startTime; + + @ApiModelProperty(value = "面试官人员编号") + private String interviewerId; + + @ApiModelProperty(value = "面试官姓名", required = true) + private String interviewerName; + + @ApiModelProperty(value = "面试官手机号", required = true) + private String interviewerMobile; + @ApiModelProperty(value = "房间状态(0待开放;1已开放;2已关闭)", required = true) + private String roomStatus; + + @ApiModelProperty(value = "会议结束时间", required = true, example = "2023-06-03 12:00") + private String endTime; + + @ApiModelProperty(value = "预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝", required = true) + private Integer status; + + + public String getPartnerId() { + return partnerId; + } + + public void setPartnerId(String partnerId) { + this.partnerId = partnerId; + } + + public String getInterviewerId() { + return interviewerId; + } + + public void setInterviewerId(String interviewerId) { + this.interviewerId = interviewerId; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getInterviewId() { + return interviewId; + } + + public void setInterviewId(String interviewId) { + this.interviewId = interviewId; + } + + public String getPartnerName() { + return partnerName; + } + + public void setPartnerName(String partnerName) { + this.partnerName = partnerName; + } + + public String getPartnerMobile() { + return partnerMobile; + } + + public void setPartnerMobile(String partnerMobile) { + this.partnerMobile = partnerMobile; + } + + public String getRoomId() { + return roomId; + } + + public void setRoomId(String roomId) { + this.roomId = roomId; + } + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getInterviewerName() { + return interviewerName; + } + + public void setInterviewerName(String interviewerName) { + this.interviewerName = interviewerName; + } + + public String getInterviewerMobile() { + return interviewerMobile; + } + + public void setInterviewerMobile(String interviewerMobile) { + this.interviewerMobile = interviewerMobile; + } + + public String getRoomStatus() { + return roomStatus; + } + + public void setRoomStatus(String roomStatus) { + this.roomStatus = roomStatus; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java new file mode 100644 index 000000000..b101c26a1 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java @@ -0,0 +1,42 @@ +package com.cool.store.service; + +import com.cool.store.request.EntrustOthersReq; +import com.cool.store.request.FinishInterviewReq; +import com.cool.store.request.GetInterviewListReq; +import com.cool.store.request.ModifyInterviewTimeReq; +import com.cool.store.vo.interview.InterviewVO; + +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:01 + * @Description :面试service + */ +public interface InterviewService { + List getInterviewList(GetInterviewListReq request); + + /** + * 根据面试会议id查询面试信息 + * @param interviewId + * @return + */ + InterviewVO getInterviewInfo(String interviewId); + + /** + * 委托他人 + * @param request + */ + void entrustOthers(EntrustOthersReq request); + /** + * 修改面试时间 + * @param request + */ + void modifyInterviewTime(ModifyInterviewTimeReq request); + + /** + * 结束面试 + * @param request + */ + void finishInterview(FinishInterviewReq request); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java new file mode 100644 index 000000000..5b7fc8700 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java @@ -0,0 +1,102 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import com.cool.store.entity.HyPartnerInterviewDO; +import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.mapper.HyPartnerInterviewMapper; +import com.cool.store.mapper.HyPartnerInterviewPlanMapper; +import com.cool.store.request.EntrustOthersReq; +import com.cool.store.request.FinishInterviewReq; +import com.cool.store.request.GetInterviewListReq; +import com.cool.store.request.ModifyInterviewTimeReq; +import com.cool.store.service.InterviewService; +import com.cool.store.vo.interview.InterviewVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:19 + * @Description: + */ +@Slf4j +@Service +public class InterviewServiceImpl implements InterviewService { + + @Autowired + private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; + + @Autowired + private HyPartnerInterviewMapper hyPartnerInterviewMapper; + @Override + public List getInterviewList(GetInterviewListReq request) { + List interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request); + return interviewList; + } + + @Override + public InterviewVO getInterviewInfo(String interviewId) { + return hyPartnerInterviewPlanMapper.getInterviewInfo(interviewId); + } + + @Override + public void entrustOthers(EntrustOthersReq request) { + //TODO 1.原面试官日程删除 + + //TODO 2.新面试官日程新增 + + //TODO 3.面试信息变更 + + HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); + record.setId(Long.valueOf(request.getInterviewId())); + record.setInterviewer(request.getInterviewId()); + record.setUpdateTime(new Date()); + hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record); + + + HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO(); + hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewId())); + hyPartnerInterviewDO.setInterviewer(request.getNewInterviewerId()); + hyPartnerInterviewDO.setUpdateTime(new Date()); + hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + } + + @Override + public void modifyInterviewTime(ModifyInterviewTimeReq request) { + //TODO 修改面试时间 + + HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); + record.setId(Long.valueOf(request.getInterviewId())); + record.setStartTime(Convert.toDate(request.getNewStartBookingTime())); + record.setUpdateTime(new Date()); + hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record); + } + + @Override + public void finishInterview(FinishInterviewReq request) { + //更新面试计划信息 + HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); + record.setId(Long.valueOf(request.getInterviewId())); + record.setRoomStatus(0); + record.setUpdateTime(new Date()); + hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record); + + //更新面试信息 + HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO(); + hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewId())); + hyPartnerInterviewDO.setStatus(3); + hyPartnerInterviewDO.setUpdateTime(new Date()); + hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + + } + + + +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java new file mode 100644 index 000000000..4a4453ae9 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java @@ -0,0 +1,70 @@ +package com.cool.store.controller; + +import com.cool.store.request.*; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.InterviewService; +import com.cool.store.vo.interview.InterviewVO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:22 + * @Description: + */ +@RestController +@RequestMapping("/interview") +@Api(tags = "面试信息") +public class InterviewController { + + @Autowired + private InterviewService interviewService; + + @PostMapping("/list") + @ApiOperation("获取面试信息列表") + public ResponseResult> getInterviewList(@RequestBody GetInterviewListReq request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List interviewList = interviewService.getInterviewList(request); + return ResponseResult.success(new PageInfo<>(interviewList)); + } + + @PostMapping("/queryByInterviewId") + @ApiOperation("根据面试会议id查询面试信息") + public ResponseResult queryByInterviewId(@RequestBody QueryByInterviewIdReq request) { + InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewId()); + return ResponseResult.success(interviewVO); + } + + @PostMapping("/entrustOthers") + @ApiOperation("委托他人") + public ResponseResult entrustOthers(@RequestBody EntrustOthersReq request) { + interviewService.entrustOthers(request); + return ResponseResult.success(); + } + + @PostMapping("/modifyInterviewTime") + @ApiOperation("修改面试时间") + public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) { + interviewService.modifyInterviewTime(request); + return ResponseResult.success(); + } + + @PostMapping("/finish") + @ApiOperation("修改面试时间") + public ResponseResult finishInterview(@RequestBody FinishInterviewReq request) { + interviewService.finishInterview(request); + return ResponseResult.success(); + } + + + +} From 2ed2296a8205bba76a6ae847746dcac8a87c9e73 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 10:44:55 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E6=97=A5=E5=8E=86=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/exception/ApiException.java | 92 ++++++++++++++++ .../dto/calendar/CreateCalendarEventDTO.java | 33 ++++++ .../dto/calendar/DeleteCalendarEventDTO.java | 24 +++++ .../dto/calendar/UpdateCalendarEventDTO.java | 39 +++++++ .../dto/calendar/UserCalendarsEventDTO.java | 37 +++++++ .../dto/calendar/UserFreeBusyInfoDTO.java | 22 ++++ .../store/response/error/ErrorResponse.java | 25 +++++ .../store/handler/CustomExceptionHandler.java | 39 +++++++ .../com/cool/store/http/ISVHttpRequest.java | 101 ++++++++++++++---- .../impl/EnterpriseSyncServiceImpl.java | 1 + .../cool/store/controller/TestController.java | 31 ++++++ 11 files changed, 423 insertions(+), 21 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/CreateCalendarEventDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/DeleteCalendarEventDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UpdateCalendarEventDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserCalendarsEventDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserFreeBusyInfoDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/response/error/ErrorResponse.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java b/coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java new file mode 100644 index 000000000..b6e12b983 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/exception/ApiException.java @@ -0,0 +1,92 @@ +package com.cool.store.exception; + +import com.cool.store.enums.ErrorCodeEnum; +import lombok.Data; + +import java.text.MessageFormat; + +/** + * @Description 业务异常类返回 + * @author Aaron + * @date 2019/12/20 + */ +@Data +public class ApiException extends Exception{ + private static final long serialVersionUID = -5068776742356414959L; + + /** + * 返回码 + */ + private Integer errorCode; + + /** + * 返回信息 + */ + private String errorMessage; + + private Object data; + + /** + * 构造函数 + * @param errorCode + * @param errorMessage + */ + @Deprecated + public ApiException(Integer errorCode, String errorMessage) { + super(errorMessage); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + } + + + /** + * 构造函数 + * @param errorCode + * @param errorMessage + */ + @Deprecated + public ApiException(Integer errorCode, String errorMessage, Object data) { + super(errorMessage); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + this.data = data; + } + + /** + * 构造函数 + * @param errorMessage + */ + public ApiException(String errorMessage) { + super(errorMessage); + this.errorMessage = errorMessage; + } + + /** + * 构造函数 + * @param errorCode + * @param errorMessage + * @param cause + */ + @Deprecated + public ApiException(Integer errorCode, String errorMessage, Throwable cause) { + super(errorMessage, cause); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + } + + public ApiException(ErrorCodeEnum responseEnum) { + super(responseEnum.getMessage()); + this.errorCode = responseEnum.getCode(); + this.errorMessage = responseEnum.getMessage(); + } + + public ApiException(ErrorCodeEnum responseEnum, Object... objects) { + super(responseEnum.getMessage()); + String message = MessageFormat.format(responseEnum.getMessage(), objects); + this.errorCode = responseEnum.getCode(); + this.errorMessage = message; + } + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/CreateCalendarEventDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/CreateCalendarEventDTO.java new file mode 100644 index 000000000..fe8466aa2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/CreateCalendarEventDTO.java @@ -0,0 +1,33 @@ +package com.cool.store.dto.calendar; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: CreateCalendarEventDTO + * @Description: 创建用户日程到用户主日历 + * @date 2023-06-13 14:09 + */ +@Data +public class CreateCalendarEventDTO { + + @ApiModelProperty("发起人") + private String userId; + + @ApiModelProperty("日程标题") + private String summary; + + @ApiModelProperty("开始时间") + private Long startTime; + + @ApiModelProperty("截止时间") + private Long endTime; + + @ApiModelProperty("参与者") + private List joinUserIds; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/DeleteCalendarEventDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/DeleteCalendarEventDTO.java new file mode 100644 index 000000000..b3efa6b69 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/DeleteCalendarEventDTO.java @@ -0,0 +1,24 @@ +package com.cool.store.dto.calendar; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: DeleteCalendarEventDTO + * @Description: + * @date 2023-06-13 15:02 + */ +@Data +public class DeleteCalendarEventDTO { + + @ApiModelProperty("发起人id") + private String userId; + + @ApiModelProperty("日历id") + private String calendarId; + + @ApiModelProperty("事件id") + private String eventId; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UpdateCalendarEventDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UpdateCalendarEventDTO.java new file mode 100644 index 000000000..396c8e656 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UpdateCalendarEventDTO.java @@ -0,0 +1,39 @@ +package com.cool.store.dto.calendar; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: CreateCalendarEventDTO + * @Description: 创建用户日程到用户主日历 + * @date 2023-06-13 14:09 + */ +@Data +public class UpdateCalendarEventDTO { + + @ApiModelProperty("发起人id") + private String userId; + + @ApiModelProperty("日历id") + private String calendarId; + + @ApiModelProperty("事件id") + private String eventId; + + @ApiModelProperty("日程标题") + private String summary; + + @ApiModelProperty("开始时间") + private Long startTime; + + @ApiModelProperty("截止时间") + private Long endTime; + + @ApiModelProperty("参与者") + private List joinUserIds; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserCalendarsEventDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserCalendarsEventDTO.java new file mode 100644 index 000000000..e2214530d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserCalendarsEventDTO.java @@ -0,0 +1,37 @@ +package com.cool.store.dto.calendar; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: UserCalendarsEventVO + * @Description: + * @date 2023-06-13 11:18 + */ +@Data +public class UserCalendarsEventDTO { + + @ApiModelProperty("日历id") + private String calendarId; + + @ApiModelProperty("日程id") + private String eventId; + + @ApiModelProperty("日程标题") + private String summary; + + @ApiModelProperty("开始时间") + private Long startTime; + + @ApiModelProperty("截止时间") + private Long endTime; + + public UserCalendarsEventDTO(String calendarId, String eventId, String summary, Long startTime, Long endTime) { + this.calendarId = calendarId; + this.eventId = eventId; + this.summary = summary; + this.startTime = startTime; + this.endTime = endTime; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserFreeBusyInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserFreeBusyInfoDTO.java new file mode 100644 index 000000000..72c5b24e9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/calendar/UserFreeBusyInfoDTO.java @@ -0,0 +1,22 @@ +package com.cool.store.dto.calendar; + +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: UserFreeBusyList + * @Description: + * @date 2023-06-13 10:06 + */ +@Data +public class UserFreeBusyInfoDTO { + + private Long startTime; + + private Long endTime; + + public UserFreeBusyInfoDTO(long startTime, long endTime) { + this.startTime = startTime; + this.endTime = endTime; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/error/ErrorResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/error/ErrorResponse.java new file mode 100644 index 000000000..049f497e9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/error/ErrorResponse.java @@ -0,0 +1,25 @@ +package com.cool.store.response.error; + +/** + * @author zhangchenbiao + * @FileName: ErrorResponse + * @Description: + * @date 2023-06-13 19:43 + */ +public class ErrorResponse { + private Integer code; + private String message; + + public ErrorResponse(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java new file mode 100644 index 000000000..c46c6182b --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java @@ -0,0 +1,39 @@ +package com.cool.store.handler; + + +import com.cool.store.exception.ApiException; +import com.cool.store.exception.ServiceException; +import com.cool.store.response.error.ErrorResponse; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +/** + * @author zhangchenbiao + * @FileName: CustomExceptionHandler + * @Description: 自定义异常处理 + * @date 2023-06-13 19:42 + */ +@RestControllerAdvice +public class CustomExceptionHandler { + + @ExceptionHandler(value = ServiceException.class) + public ResponseEntity handleCustomException(ServiceException e) { + ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage()); + return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(value = ApiException.class) + public ResponseEntity handleCustomException(ApiException e) { + ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage()); + return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(value = Exception.class) + public ResponseEntity handleException(Exception e) { + ErrorResponse errorResponse = new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage()); + return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR); + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java index f6f6a38c4..58833267d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java @@ -1,6 +1,7 @@ package com.cool.store.http; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dto.calendar.*; import com.cool.store.dto.enterprise.AuthInfoDTO; import com.cool.store.dto.enterprise.AuthScopeDTO; import com.cool.store.dto.enterprise.EnterpriseUserDTO; @@ -8,6 +9,8 @@ import com.cool.store.dto.enterprise.SysDepartmentDTO; import com.cool.store.dto.login.UserIdInfoDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.EnterpriseUserDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ApiException; import com.cool.store.mq.util.HttpRestTemplateService; import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.utils.RestTemplateUtil; @@ -188,28 +191,84 @@ public class ISVHttpRequest { return null; } - public List getDeptUsers(String deptId) { - List departmentUsers = getDepartmentUsers(deptId); - if (CollectionUtils.isEmpty(departmentUsers)){ - return Lists.newArrayList(); - } - List userList = Lists.newArrayList(); - for (EnterpriseUserDTO enterpriseUserDTO:departmentUsers) { - EnterpriseUserDO enterpriseUser = new EnterpriseUserDO(); - enterpriseUser.setCreateTime(new Date()); - enterpriseUser.setIsAdmin(false); - enterpriseUser.setRemark(enterpriseUserDTO.getRemark()); - enterpriseUser.setUserId(enterpriseUserDTO.getUserId()); - if (enterpriseUserDTO.getIsLeaderInDepts() != null) { - //enterpriseUser.setIsLeaderInDepts(JSONObject.toJSONString(enterpriseUserDTO.getIsLeaderInDepts())); + /** + * 获取用户忙闲信息 + * @param userId + * @param startTime 开始时间 毫秒时间戳 + * @param endTime 截止时间 毫秒时间戳 + * @return + */ + public List getFreeBusyList(String userId, long startTime, long endTime) throws ApiException{ + String url = isvDomain + "/isv/user/getFreeBusyList"; + HashMap requestMap = new HashMap(); + requestMap.put("userId", userId); + requestMap.put("startTime", startTime); + requestMap.put("endTime", endTime); + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getData()), UserFreeBusyInfoDTO.class); } - EnterpriseUserRequest enterpriseUserRequest = new EnterpriseUserRequest(); - //enterpriseUserRequest.setEnterpriseUserDO(enterpriseUser); - if (CollectionUtils.isNotEmpty(enterpriseUserDTO.getDepartmentLists())) { - enterpriseUserRequest.setDepartment(JSONObject.toJSONString(enterpriseUserDTO.getDepartmentLists())); - } - userList.add(enterpriseUserRequest); + } catch (Exception e) { + log.info("调用isv出错{}", e); + throw new ApiException(e.getMessage()); } - return userList; + return null; + } + + /** + * 创建飞书日程 + * @param param + * @return + * @throws ApiException + */ + public UserCalendarsEventDTO createUserCalendarEvent(CreateCalendarEventDTO param) throws ApiException{ + String url = isvDomain + "/isv/user/createUserCalendarEvent"; + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), UserCalendarsEventDTO.class); + } + } catch (Exception e) { + log.info("调用isv出错{}", e); + throw new ApiException(e.getMessage()); + } + return null; + } + + public UserCalendarsEventDTO updateUserCalendarEvent(UpdateCalendarEventDTO param) throws ApiException{ + String url = isvDomain + "/isv/user/updateUserCalendarEvent"; + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), UserCalendarsEventDTO.class); + } + } catch (Exception e) { + log.info("调用isv出错{}", e); + throw new ApiException(e.getMessage()); + } + return null; + } + + public UserCalendarsEventDTO deleteUserCalendarEvent(DeleteCalendarEventDTO param) throws ApiException { + String url = isvDomain + "/isv/user/deleteUserCalendarEvent"; + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), UserCalendarsEventDTO.class); + } + } catch (Exception e) { + log.info("调用isv出错{}", e); + throw new ApiException(e.getMessage()); + } + return null; } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 2d049e1f6..4c8710e53 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -3,6 +3,7 @@ package com.cool.store.service.impl; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.dto.buser.UserEventDTO; +import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.enterprise.*; import com.cool.store.entity.*; import com.cool.store.enums.DataSourceEnum; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 6c4075c13..7b0be9497 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -1,10 +1,16 @@ package com.cool.store.controller; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dto.calendar.CreateCalendarEventDTO; +import com.cool.store.dto.calendar.DeleteCalendarEventDTO; +import com.cool.store.dto.calendar.UpdateCalendarEventDTO; +import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.enums.RocketMqTagEnum; +import com.cool.store.exception.ApiException; import com.cool.store.mapper.HyOpenAreaInfoMapper; import com.cool.store.http.ISVHttpRequest; import com.cool.store.mq.producer.SimpleMessageService; @@ -166,4 +172,29 @@ public class TestController { return ResponseResult.success(); } + @GetMapping("/user/getFreeBusyList") + public ResultDTO> getFreeBusyList(@RequestParam("userId") String userId, @RequestParam("startTime") long startTime, + @RequestParam("endTime") long endTime) throws ApiException { + log.info("getUserCalendarsEvents : corpId:{}, appType:{}, userId:{}, startTime:{}, endTime:{}", userId, startTime, endTime); + return ResultDTO.successResult(isvHttpRequest.getFreeBusyList(userId, startTime, endTime)); + } + + @PostMapping("/user/createUserCalendarEvent") + public ResultDTO createUserCalendarEvent(@RequestBody CreateCalendarEventDTO param) throws ApiException { + log.info("createUserCalendarEvent , param:{}", JSONObject.toJSONString(param)); + return ResultDTO.successResult(isvHttpRequest.createUserCalendarEvent(param)); + } + + @PostMapping("/user/updateUserCalendarEvent") + public ResultDTO updateUserCalendarEvent(@RequestBody UpdateCalendarEventDTO param) throws ApiException { + log.info("updateUserCalendarEvent , param:{}", JSONObject.toJSONString(param)); + return ResultDTO.successResult(isvHttpRequest.updateUserCalendarEvent(param)); + } + + @PostMapping("/user/deleteUserCalendarEvent") + public ResultDTO deleteUserCalendarEvent(@RequestBody DeleteCalendarEventDTO param) throws ApiException { + log.info("createUserCalendarEvent , param:{}", JSONObject.toJSONString(param)); + return ResultDTO.successResult(isvHttpRequest.deleteUserCalendarEvent(param)); + } + } From 81516f1fe24fd61806fb5bb1cc301e794fa3fdf5 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 10:46:42 +0800 Subject: [PATCH 04/14] add log --- .../coolstore-partner-common.iml | 4 ++++ coolstore-partner-dao/coolstore-partner-dao.iml | 4 ++++ coolstore-partner-model/coolstore-partner-model.iml | 4 ++++ .../coolstore-partner-service.iml | 4 ++++ .../java/com/cool/store/http/ISVHttpRequest.java | 12 ++++++++++++ coolstore-partner-webb/coolstore-partner-webb.iml | 4 ++++ coolstore-partner-webc/coolstore-partner-webc.iml | 4 ++++ 7 files changed, 36 insertions(+) diff --git a/coolstore-partner-common/coolstore-partner-common.iml b/coolstore-partner-common/coolstore-partner-common.iml index 5c5e2dadc..c7be161ce 100644 --- a/coolstore-partner-common/coolstore-partner-common.iml +++ b/coolstore-partner-common/coolstore-partner-common.iml @@ -105,5 +105,9 @@ + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/coolstore-partner-dao.iml b/coolstore-partner-dao/coolstore-partner-dao.iml index ec937c2e7..048685afd 100644 --- a/coolstore-partner-dao/coolstore-partner-dao.iml +++ b/coolstore-partner-dao/coolstore-partner-dao.iml @@ -127,6 +127,10 @@ + + + + diff --git a/coolstore-partner-model/coolstore-partner-model.iml b/coolstore-partner-model/coolstore-partner-model.iml index 8de5a0db5..6b15b2012 100644 --- a/coolstore-partner-model/coolstore-partner-model.iml +++ b/coolstore-partner-model/coolstore-partner-model.iml @@ -106,6 +106,10 @@ + + + + diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml index 34f782662..4b952a1ca 100644 --- a/coolstore-partner-service/coolstore-partner-service.iml +++ b/coolstore-partner-service/coolstore-partner-service.iml @@ -77,6 +77,10 @@ + + + + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java index 58833267d..85bf23a41 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java @@ -240,6 +240,12 @@ public class ISVHttpRequest { return null; } + /** + * 更新飞书日程 + * @param param + * @return + * @throws ApiException + */ public UserCalendarsEventDTO updateUserCalendarEvent(UpdateCalendarEventDTO param) throws ApiException{ String url = isvDomain + "/isv/user/updateUserCalendarEvent"; ResultDTO responseEntity = null; @@ -256,6 +262,12 @@ public class ISVHttpRequest { return null; } + /** + * 取消飞书日程 + * @param param + * @return + * @throws ApiException + */ public UserCalendarsEventDTO deleteUserCalendarEvent(DeleteCalendarEventDTO param) throws ApiException { String url = isvDomain + "/isv/user/deleteUserCalendarEvent"; ResultDTO responseEntity = null; diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index 594471493..ae29d57b7 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -47,6 +47,10 @@ + + + + diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index ed92ed8d1..c5f43a5ca 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -47,6 +47,10 @@ + + + + From 4f4cb5ccc306dc401c54b909e6016b5294d2297d Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 11:06:53 +0800 Subject: [PATCH 05/14] update mq config --- .../src/main/resources/application-ab.properties | 7 +++---- .../src/main/resources/application-ab.properties | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/coolstore-partner-webb/src/main/resources/application-ab.properties b/coolstore-partner-webb/src/main/resources/application-ab.properties index be5eb0f6f..e49344f19 100644 --- a/coolstore-partner-webb/src/main/resources/application-ab.properties +++ b/coolstore-partner-webb/src/main/resources/application-ab.properties @@ -36,11 +36,10 @@ mybatis.configuration.map-underscore-to-camel-case=true isv.domain = https://abstore-isv.coolstore.cn #rocketmq \u914D\u7F6E -rocketmq.accessKey=LTAI5t5ouXZuFgxJMbQea3b2 -rocketmq.secretKey=yuomDstRjSdihtN5zo8viDbWu8Z0ig -rocketmq.nameSrvAdder=http://MQ_INST_1947409023213164_BX3sLZnA.cn-hangzhou.mq-internal.aliyuncs.com:8080 +rocketmq.accessKey=zK2oVEz4G1ts23d2 +rocketmq.secretKey=0UstLCS0mh2ASgBh +rocketmq.nameSrvAdder=http://rmq-cn-9lb38l1rx04.cn-hangzhou.rmq.aliyuncs.com:8080 rocketmq.topic=simple_message -rocketmq.orderTopic=order_message #oss配置 oss.accessKeyId=LTAI5tRSXy2MrqaaBJ6gReur diff --git a/coolstore-partner-webc/src/main/resources/application-ab.properties b/coolstore-partner-webc/src/main/resources/application-ab.properties index be5eb0f6f..e49344f19 100644 --- a/coolstore-partner-webc/src/main/resources/application-ab.properties +++ b/coolstore-partner-webc/src/main/resources/application-ab.properties @@ -36,11 +36,10 @@ mybatis.configuration.map-underscore-to-camel-case=true isv.domain = https://abstore-isv.coolstore.cn #rocketmq \u914D\u7F6E -rocketmq.accessKey=LTAI5t5ouXZuFgxJMbQea3b2 -rocketmq.secretKey=yuomDstRjSdihtN5zo8viDbWu8Z0ig -rocketmq.nameSrvAdder=http://MQ_INST_1947409023213164_BX3sLZnA.cn-hangzhou.mq-internal.aliyuncs.com:8080 +rocketmq.accessKey=zK2oVEz4G1ts23d2 +rocketmq.secretKey=0UstLCS0mh2ASgBh +rocketmq.nameSrvAdder=http://rmq-cn-9lb38l1rx04.cn-hangzhou.rmq.aliyuncs.com:8080 rocketmq.topic=simple_message -rocketmq.orderTopic=order_message #oss配置 oss.accessKeyId=LTAI5tRSXy2MrqaaBJ6gReur From 601f28b31ef7e899862a093f593fbea5212668b6 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 15:28:45 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E9=A3=9E=E4=B9=A6=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=EF=BC=8Cmq=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/RocketMqGroupEnum.java | 90 +------------------ .../com/cool/store/enums/RocketMqTagEnum.java | 39 +------- .../com/cool/store/dao/EnterpriseUserDAO.java | 8 ++ .../cool/store/dao/EnterpriseUserRoleDAO.java | 8 ++ .../cool/store/dao/UserRegionMappingDAO.java | 8 ++ .../store/mapper/EnterpriseUserMapper.java | 7 ++ .../mapper/EnterpriseUserRoleMapper.java | 18 +++- .../store/mapper/UserRegionMappingMapper.java | 7 ++ .../resources/mapper/EnterpriseUserMapper.xml | 4 + .../mapper/EnterpriseUserRoleMapper.xml | 4 + .../mapper/UserRegionMappingMapper.xml | 4 + .../store/mq/consumer/ConsumerClient.java | 10 +-- ...Listener.java => FeiShuEventListener.java} | 16 +++- .../impl/EnterpriseSyncServiceImpl.java | 3 + .../cool/store/controller/TestController.java | 11 --- 15 files changed, 91 insertions(+), 146 deletions(-) rename coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/{UserEventDealListener.java => FeiShuEventListener.java} (78%) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java index 4d93e62a4..bc476bfe3 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java @@ -27,91 +27,10 @@ public enum RocketMqGroupEnum { * 服务A中某个Listener的groupId为GroupA 监听topicA 过滤的消息tagA * 服务B中某个Listener的groupId为GroupA 监听topicA 过滤的消息tagB */ - /** - * 区域门店数量计算队列 + * 事件消息监听 */ - CAL_REGION_STORE_NUM("cal_region_store_num", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.CAL_REGION_STORE_NUM,RocketMqTagEnum.REGION_STORE_NUM_UPDATE))), - - /** - * 企业开通 - */ - ENTERPRISE_OPEN("enterprise_open", "coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ENTERPRISE_OPEN))), - - /** - * 企业开通平台库脚本 - */ - ENTERPRISE_OPEN_CONFIG_RUN_SCRIPT("enterprise_open_config_run_script", "coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ENTERPRISE_OPEN_CONFIG_RUN_SCRIPT))), - - /** - * 企业开通企业库脚本 - */ - ENTERPRISE_OPEN_ENTERPRISE_RUN_SCRIPT("enterprise_open_enterprise_run_script", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ENTERPRISE_OPEN_ENTERPRISE_RUN_SCRIPT))), - - /** - * 企业开通数据同步 - */ - ENTERPRISE_OPEN_DATA_SYNC("enterprise_open_data_sync", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ENTERPRISE_OPEN_DATA_SYNC))), - - /** - * 企业购买事件 - */ - PAY_MARKET_BUY("pay_market_buy","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.PAY_MARKET_BUY))), - /** - * 钉钉消息监听 - */ - DING_MSG_DEAL("ding_msg_deal","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DING_STORE_ADDRESS_BOOK, RocketMqTagEnum.DING_SINGLE_USER_SYNC))), - /** - * 授权队列 - */ - AUTH_QUEUE("auth_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.AUTH_QUEUE))), - /** - * 企微消息监听 - */ - QW_MSG_DEAL("qw_msg_deal","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.QW_CHANGE_ORDER_QUEUE,RocketMqTagEnum.QW_OPEN_ORDER_CHANGE_QUEUE))), - /** - * 钉钉同步 - */ - DING_SYNC_ALL_DATA_QUEUE("ding_sync_all_data_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DING_SYNC_ALL_DATA_QUEUE))), - - STORE_DING_QUEUE("store_ding_queue","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_DING_QUEUE))), - /** - * 待办任务名称 - */ - STORE_BACK_LOG("store_back_log","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_BACK_LOG,RocketMqTagEnum.STORE_BACK_LOG_UPDATE))), - /** - * 待办消息结束队列 - */ - UPCOMING_FINISH("upcoming_finish","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.UPCOMING_FINISH))), - /** - * 发送开通成功消息 - */ - OPEN_SUCCEEDED_MSG_QUEUE("open_succeeded_msg_queue","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.OPEN_SUCCEEDED_MSG_QUEUE))), - /** - * 发送成员授权模式下模板消息 - */ - QW_MEMBER_TEMPLE_MSG_QUEUE("qw_member_temple_msg_queue","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.QW_MEMBER_TEMPLE_MSG_QUEUE))), - /** - * app推送队列 - */ - APP_PUSH_QUEUE("app_push_queue","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.APP_PUSH_QUEUE))), - /** - * 解除应用 - */ - REMOVE_APPLICATION("remove_application","coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.REMOVE_APPLICATION))), - - /** - * 全量企微用户同步 - */ - QW_SYNC_FULL_USER("qw_sync_full_user_msg_queue", "coolcollege-intelligent", new ArrayList(Arrays.asList(RocketMqTagEnum.QW_SYNC_FULL_USER))), - - - SHOP_STORE_GROUP_SYNC("shop_store_group_sync","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.SHOP_STORE_GROUP_SYNC))), - - /** - * test - */ - TEST("test", "coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.TEST))), + FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE))), ; @@ -119,12 +38,9 @@ public enum RocketMqGroupEnum { private final List tagList; - private final String listener; - - RocketMqGroupEnum(String group,String listener,List tagList) { + RocketMqGroupEnum(String group,List tagList) { this.group = group; - this.listener = listener; this.tagList = tagList; } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java index 724b79883..61446ac46 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java @@ -11,43 +11,8 @@ import com.cool.store.utils.CommonContextUtil; */ public enum RocketMqTagEnum { - TEST("test","测试"), - EXPORT_IMPORT_MESSAGE("export_import_message","导入导出消息"), - CAL_REGION_STORE_NUM("cal_region_store_num","计算门店区域数量"), - REGION_STORE_NUM_UPDATE("region_store_num_update","计算门店区域数量"), - - ENTERPRISE_OPEN("enterprise_open","企业开通"), - ENTERPRISE_OPEN_CONFIG_RUN_SCRIPT("enterprise_open_config_run_script","企业开通平台库脚本执行"), - ENTERPRISE_OPEN_ENTERPRISE_RUN_SCRIPT("enterprise_open_enterprise_run_script","企业开通企业库脚本执行"), - ENTERPRISE_OPEN_DATA_SYNC("enterprise_open_data_sync","企业开通数据同步"), - - AUTH_QUEUE("auth_queue","授权队列"), - DING_STORE_ADDRESS_BOOK("ding_store_address_book","钉钉通讯录变更事件"), - PAY_MARKET_BUY("pay_market_buy","企业购买队列"), - - QW_OPEN_ORDER_CHANGE_QUEUE("qw_openorder_change_queue","企业微信付费监听"), - QW_CHANGE_ORDER_QUEUE("qw_change_order_queue","企业微信改单事件,因涉及到两个订单,和普通的订单事件分开"), - - DING_SYNC_ALL_DATA_QUEUE("ding_sync_all_data_queue","钉钉全量同步"), - DING_SYNC_ALL_DATA_QUEUE_BAILI("ding_sync_all_data_queue_baili","百丽全量同步"), - DING_SYNC_ALL_DATA_OA_QUEUE("ding_sync_all_data_oa_queue","第三方同步"), - THIRD_OA_SYNC_SINGLE_QUEUE("third_oa_sync_single_queue","第三方单个用户同步"), - STORE_DING_QUEUE("store_ding_queue", "微应用钉钉消息发送"), - STORE_BACK_LOG("store_back_log", "待办任务名称"), - STORE_BACK_LOG_UPDATE("store_back_log_update", "更新待办任务名称"), - UPCOMING_FINISH("upcoming_finish", "待办消息结束队列"), - OPEN_SUCCEEDED_MSG_QUEUE("open_succeeded_msg_queue", "发送开通成功消息"), - QW_MEMBER_TEMPLE_MSG_QUEUE("qw_member_temple_msg_queue", "发送成员授权模式下模板消息"), - APP_PUSH_QUEUE("app_push_queue", "app推送队列"), - REMOVE_APPLICATION("remove_application", "解除应用"), - COLLEGE_SYNC_USER_DELAY("college_sync_user_delay", "同步人与延迟推送"), - COOL_STORE_DATA_CHANGE("cool_store_data_change", "门店端的部门,人员,职位,发生变化后的推送消息队列"), - QW_SYNC_FULL_USER("qw_sync_full_user_msg_queue", "企微全量用户同步"), - PERSON_SUB_TASK_DATA_QUEUE("person_sub_task_data_queue","按人子任务消息监听"), - IMOU_DEVICE_CALLBACK("imou_device_callback","乐橙设备回调事件"), - PERMANENT_CODE_UPDATE("permanent_code_update", "授权码变更"), - SHOP_STORE_GROUP_SYNC("shop_store_group_sync","门店通门店分组同步"), - DING_SINGLE_USER_SYNC("ding_single_user_sync","钉钉用户信息拉取"), + AUTH_SCOPE_CHANGE("auth_scope_change","授权范围变更"), + USER_EVENT("user_event","钉钉通讯录变更事件"), ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index f66a3ae21..466a7c514 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.cool.store.constants.CommonConstants; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.mapper.EnterpriseUserMapper; import org.apache.commons.collections4.CollectionUtils; @@ -44,4 +45,11 @@ public class EnterpriseUserDAO { } enterpriseUserMapper.deleteUser(excludeUserIds); } + + public Integer deleteUserByUserId(String userId){ + if(StringUtils.isBlank(userId)){ + return CommonConstants.ZERO; + } + return enterpriseUserMapper.deleteUserByUserId(userId); + } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java index 98e1759e6..9d6d2d58a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.cool.store.constants.CommonConstants; import com.cool.store.entity.EnterpriseUserRoleDO; import com.cool.store.entity.SysRoleDO; import com.cool.store.enums.DataSourceEnum; @@ -43,4 +44,11 @@ public class EnterpriseUserRoleDAO { return enterpriseUserRoleMapper.deleteUserInRole(userId, dataSourceEnum.getCode(), excludeRoleId); } + public Integer deleteUserRole(String userId){ + if(StringUtils.isBlank(userId)){ + return CommonConstants.ZERO; + } + return enterpriseUserRoleMapper.deleteUserRole(userId); + } + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java index e2ae97cba..bb2a20c00 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.cool.store.constants.CommonConstants; import com.cool.store.entity.UserRegionMappingDO; import com.cool.store.enums.DataSourceEnum; import com.cool.store.mapper.UserRegionMappingMapper; @@ -51,4 +52,11 @@ public class UserRegionMappingDAO { return userRegionMappingMapper.deleteRegionUserByExcludeUserIds(excludeUserIds); } + public Integer deleteUserRegionByUserId(String userId){ + if(StringUtils.isBlank(userId)){ + return CommonConstants.ZERO; + } + return userRegionMappingMapper.deleteUserRegionByUserId(userId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index 8dff9cfcb..b94d1362b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -38,4 +38,11 @@ public interface EnterpriseUserMapper { * @return */ int deleteUser(@Param("excludeUserIds") List excludeUserIds); + + /** + * 删除用户 + * @param userId + * @return + */ + Integer deleteUserByUserId(@Param("userId") String userId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java index 5895576c5..3b33349ea 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java @@ -26,13 +26,27 @@ public interface EnterpriseUserRoleMapper { int updateByPrimaryKeySelective(EnterpriseUserRoleDO record); /** - * 删除用户角色 + * 删除角色下的用户 * @param roleId * @param type - * @param userIds + * @param excludeUserIds * @return */ int deleteRoleInUser(@Param("roleId") String roleId, @Param("type") Integer type, @Param("excludeUserIds") List excludeUserIds); + /** + * 删除用户下的角色 + * @param userId + * @param type + * @param excludeRoleId + * @return + */ int deleteUserInRole(@Param("userId") String userId, @Param("type") Integer type, @Param("excludeRoleId") String excludeRoleId); + + /** + * 删除用户所有角色 + * @param userId + * @return + */ + Integer deleteUserRole(@Param("userId") String userId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java index fc0b95166..bc4d256ef 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java @@ -47,4 +47,11 @@ public interface UserRegionMappingMapper { * @return */ Integer deleteRegionUserByExcludeUserIds(@Param("excludeUserIds") List excludeUserIds); + + /** + * 删除用户所在的区域 + * @param userId + * @return + */ + Integer deleteUserRegionByUserId(@Param("userId") String userId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 2ca162f89..bae7d94b5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -242,4 +242,8 @@ update enterprise_user set deleted = 1 where user_id not in #{userId} + + + update enterprise_user set deleted = 1 where user_id = #{userId} + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml index 1498671a2..97e69ab3b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml @@ -91,4 +91,8 @@ update enterprise_user_role set deleted = 1 where role_id != #{excludeRoleId} and user_id = #{userId} and type = #{type} + + + update enterprise_user_role set deleted = 1 where user_id = #{userId} + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml index 14e5b9fd1..861475f2c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml @@ -119,4 +119,8 @@ update user_region_mapping set deleted = 1 where user_id not in #{userId} + + update user_region_mapping set deleted = 1 where user_id = #{userId} + + \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java index bdc6b29b7..5522785b0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java @@ -8,7 +8,7 @@ import com.aliyun.openservices.ons.api.bean.Subscription; import com.cool.store.constants.CommonConstants; import com.cool.store.enums.RocketMqGroupEnum; import com.cool.store.mq.RocketMqConfig; -import com.cool.store.mq.consumer.listener.UserEventDealListener; +import com.cool.store.mq.consumer.listener.FeiShuEventListener; import com.google.common.collect.Maps; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -29,7 +29,7 @@ public class ConsumerClient { @Resource private RocketMqConfig rocketMqConfig; @Resource - private UserEventDealListener userEventDealListener; + private FeiShuEventListener feiShuEventListener; /** * 获取通用配置 @@ -66,17 +66,17 @@ public class ConsumerClient { } /** - * 测试test + * 用户事件监听 * @return */ @Bean(initMethod = "start", destroyMethod = "shutdown") public ConsumerBean test() { - RocketMqGroupEnum groupEnum = RocketMqGroupEnum.DING_MSG_DEAL; + RocketMqGroupEnum groupEnum = RocketMqGroupEnum.FEI_SHU_EVENT_LISTENER; ConsumerBean consumerBean = new ConsumerBean(); //配置文件 Properties properties = getCommonProperties(groupEnum); consumerBean.setProperties(properties); - Map commonSubscriptionTable = getCommonSubscriptionTable(groupEnum, userEventDealListener); + Map commonSubscriptionTable = getCommonSubscriptionTable(groupEnum, feiShuEventListener); //订阅多个topic如上面设置 consumerBean.setSubscriptionTable(commonSubscriptionTable); return consumerBean; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/UserEventDealListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java similarity index 78% rename from coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/UserEventDealListener.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java index 2d6153167..54b64d368 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/UserEventDealListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java @@ -7,6 +7,7 @@ import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; import com.cool.store.constants.CommonConstants; import com.cool.store.dto.buser.UserEventDTO; +import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.service.EnterpriseSyncService; import com.cool.store.utils.RedisUtilPool; import lombok.extern.slf4j.Slf4j; @@ -22,7 +23,7 @@ import org.springframework.stereotype.Service; */ @Slf4j @Service -public class UserEventDealListener implements MessageListener { +public class FeiShuEventListener implements MessageListener { @Autowired private RedisUtilPool redisUtilPool; @@ -37,13 +38,20 @@ public class UserEventDealListener implements MessageListener { return Action.CommitMessage; } log.info("重试消费次数 messageId:{},try times:{}", message.getMsgID(), message.getReconsumeTimes()); - String lockKey = "DingMsgDealListener:" + message.getMsgID(); boolean lock = redisUtilPool.setNxExpire(lockKey, message.getMsgID(), CommonConstants.NORMAL_LOCK_TIMES); if(lock){ try { - UserEventDTO reqBody = JSONObject.parseObject(text, UserEventDTO.class); - enterpriseSyncService.userUpdateEvent(reqBody); + RocketMqTagEnum tag = RocketMqTagEnum.getByTag(message.getTag()); + switch (tag){ + case USER_EVENT: + UserEventDTO reqBody = JSONObject.parseObject(text, UserEventDTO.class); + enterpriseSyncService.userUpdateEvent(reqBody); + break; + case AUTH_SCOPE_CHANGE: + enterpriseSyncService.syncAll(); + } + }catch (Exception e){ log.error("DingMsgDealListener consume dealAddressBookChange error",e); return Action.ReconsumeLater; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 4c8710e53..2b38411b1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -196,6 +196,9 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { break; case USER_DELETED: //人员职位删除状态,角色职位删除状态,人员从部门去除 + userRegionMappingDAO.deleteUserRegionByUserId(param.getUserId()); + enterpriseUserRoleDAO.deleteUserRole(param.getUserId()); + enterpriseUserDAO.deleteUserByUserId(param.getUserId()); break; default: return; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 7b0be9497..2e1798f79 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -38,8 +38,6 @@ import java.util.List; @RequestMapping("test/") public class TestController { - @Resource - private SimpleMessageService simpleMessageService; @Resource private EnterpriseUserService enterpriseUserService; @Resource @@ -49,15 +47,6 @@ public class TestController { @Resource private EnterpriseSyncService enterpriseSyncService; - - @GetMapping("/sendMq") - public ResponseResult sendMq(){ - String msg = UUIDUtils.get8UUID(); - log.info("msg:{}", msg); - simpleMessageService.send(msg, RocketMqTagEnum.TEST); - return ResponseResult.success(); - } - @PostMapping("/post") public ResponseResult get(@RequestBody List testRequestList){ log.info(JSONObject.toJSONString(testRequestList)); From 40c99a8337d7d98c9e4f57586ab80ddada4ab726 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 15:49:52 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E5=85=A8=E5=B1=80=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=80=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/context/CurrentUserContext.java | 30 ----------- .../cool/store/context/CurrentUserHolder.java | 54 +++++++++++++++++++ .../{CurrentUser.java => LoginUserInfo.java} | 4 +- .../com/cool/store/service/MenuService.java | 8 ++- .../store/service/impl/LoginServiceImpl.java | 7 ++- .../store/service/impl/MenuServiceImpl.java | 2 +- .../store/config/TokenValidateFilter.java | 12 ++--- .../store/controller/LoginController.java | 4 +- .../cool/store/controller/MenuController.java | 3 +- 9 files changed, 77 insertions(+), 47 deletions(-) delete mode 100644 coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserContext.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserHolder.java rename coolstore-partner-service/src/main/java/com/cool/store/context/{CurrentUser.java => LoginUserInfo.java} (87%) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserContext.java b/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserContext.java deleted file mode 100644 index 248d452f5..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserContext.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.cool.store.context; - -import com.alibaba.fastjson.JSON; -import org.apache.commons.lang3.StringUtils; - -/** - * - */ -public class CurrentUserContext { - - private static final ThreadLocal contextHolder = new ThreadLocal(); - - public static CurrentUser getUser() { - String userStr = contextHolder.get(); - if (StringUtils.isNotBlank(userStr)) { - return JSON.parseObject(userStr, CurrentUser.class); - } - return new CurrentUser(); - } - - public static void setUser(String user) { - contextHolder.set(user); - } - - public static void removeUser(){ - contextHolder.remove(); - } -} - - diff --git a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserHolder.java b/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserHolder.java new file mode 100644 index 000000000..537af7897 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUserHolder.java @@ -0,0 +1,54 @@ +package com.cool.store.context; + +import com.alibaba.fastjson.JSON; +import com.cool.store.entity.SysRoleDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import org.apache.commons.lang3.SerializationException; +import org.apache.commons.lang3.StringUtils; + +import java.util.Optional; + +/** + * 当前登录用户信息 + */ +public class CurrentUserHolder { + + private static final ThreadLocal contextHolder = new ThreadLocal(); + + public static LoginUserInfo getUser() { + String userStr = contextHolder.get(); + if (StringUtils.isNotBlank(userStr)) { + return JSON.parseObject(userStr, LoginUserInfo.class); + } + return new LoginUserInfo(); + } + + public static void setUser(String user) { + contextHolder.set(user); + } + + public static void removeUser(){ + contextHolder.remove(); + } + + /** + * 仅登录态可获取 + * @return + */ + public static String getUserId(){ + LoginUserInfo user = getUser(); + return Optional.ofNullable(user).map(o->o.getUserId()).orElseThrow(()->new ServiceException(ErrorCodeEnum.ACCESS_TOKEN_INVALID)); + } + + /** + * 仅登录态可获取 + * @return + */ + public static String getRoleId(){ + LoginUserInfo user = getUser(); + return Optional.ofNullable(user).map(LoginUserInfo::getSysRole).map(SysRoleDO::getRoleId).orElse(null); + } +} + + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java b/coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java similarity index 87% rename from coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java rename to coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java index ddb06bd83..1d7b8e4cf 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java @@ -4,7 +4,7 @@ import com.cool.store.entity.SysRoleDO; import lombok.Data; @Data -public class CurrentUser { +public class LoginUserInfo { private String userId; @@ -29,5 +29,5 @@ public class CurrentUser { */ private String avatar; - private SysRoleDO sysRoleDO; + private SysRoleDO sysRole; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/MenuService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/MenuService.java index 6b6445ec8..ea512935e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/MenuService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/MenuService.java @@ -12,5 +12,11 @@ import java.util.List; */ public interface MenuService { - List getUserMenus(String userId); + /** + * 获取用户某个角色的菜单 + * @param userId + * @param roleId + * @return + */ + List getUserMenus(String userId, String roleId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java index fe8176cd2..2b936b990 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java @@ -1,9 +1,8 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; -import com.cool.store.context.CurrentUser; +import com.cool.store.context.LoginUserInfo; import com.cool.store.context.DataSourceContext; import com.cool.store.dao.*; import com.cool.store.dto.login.RefreshUser; @@ -51,7 +50,7 @@ public class LoginServiceImpl implements LoginService { if (StringUtils.isEmpty(userId)) { throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST); } - CurrentUser currentUser = new CurrentUser(); + LoginUserInfo currentUser = new LoginUserInfo(); RefreshUser refreshUser = new RefreshUser(); // 查企业用户 EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(userId); @@ -76,7 +75,7 @@ public class LoginServiceImpl implements LoginService { enterpriseUser.setFaceUrl(finalAvatar); currentUser.setUserId(enterpriseUser.getUserId()); currentUser.setIsAdmin(enterpriseUser.getIsAdmin()); - currentUser.setSysRoleDO(sysRole); + currentUser.setSysRole(sysRole); currentUser.setCorpId(corpId); currentUser.setAvatar(enterpriseUser.getAvatar()); //生成令牌 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java index 07315810d..318f489a5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java @@ -24,7 +24,7 @@ public class MenuServiceImpl implements MenuService { private SysMenuDAO sysMenuDAO; @Override - public List getUserMenus(String userId) { + public List getUserMenus(String userId, String roleId) { List menuList= sysMenuDAO.selectMenuAll(null, PlatFormTypeEnum.PC.getCode()); return MenuTreeVO.dealMenuTree(CommonConstants.ZERO_LONG, menuList); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java index da8392c9d..25b570df4 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -3,9 +3,9 @@ package com.cool.store.config; import com.alibaba.fastjson.JSON; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.response.ResponseResult; -import com.cool.store.context.CurrentUserContext; +import com.cool.store.context.CurrentUserHolder; import com.cool.store.utils.RedisUtilPool; -import com.cool.store.context.CurrentUser; +import com.cool.store.context.LoginUserInfo; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -72,14 +72,14 @@ public class TokenValidateFilter implements Filter { String uri = reqs.getRequestURI(); String method = reqs.getMethod(); String userStr = ""; - CurrentUser currentUser = null; + LoginUserInfo currentUser = null; boolean isInWhiteList = excludePath(uri); String accessToken = reqs.getHeader("accessToken"); String key = "access_token:" + accessToken; if(StringUtils.isNotBlank(accessToken)){ userStr = redisUtilPool.getString(key); if(StringUtils.isNotBlank(userStr)){ - currentUser = JSON.parseObject(userStr, CurrentUser.class); + currentUser = JSON.parseObject(userStr, LoginUserInfo.class); } } log.info("url:{}", uri); @@ -105,10 +105,10 @@ public class TokenValidateFilter implements Filter { return; } try { - CurrentUserContext.setUser(userStr); + CurrentUserHolder.setUser(userStr); filterChain.doFilter(servletRequest, servletResponse); } finally { - CurrentUserContext.removeUser(); + CurrentUserHolder.removeUser(); } } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java index 260be8e88..a7b0d5e59 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java @@ -1,7 +1,7 @@ package com.cool.store.controller; import com.alibaba.fastjson.JSONObject; -import com.cool.store.context.CurrentUserContext; +import com.cool.store.context.CurrentUserHolder; import com.cool.store.dto.login.FeiShuLoginDTO; import com.cool.store.dto.login.UserIdInfoDTO; import com.cool.store.enums.ErrorCodeEnum; @@ -59,7 +59,7 @@ public class LoginController { @GetMapping("/getUserInfoByToken") public ResponseResult getUserInfoByToken(){ - return ResponseResult.success(CurrentUserContext.getUser()); + return ResponseResult.success(CurrentUserHolder.getUser()); } } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/MenuController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/MenuController.java index 9519725d1..0c2a29545 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/MenuController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/MenuController.java @@ -1,5 +1,6 @@ package com.cool.store.controller; +import com.cool.store.context.CurrentUserHolder; import com.cool.store.response.ResponseResult; import com.cool.store.service.MenuService; import org.springframework.web.bind.annotation.GetMapping; @@ -21,7 +22,7 @@ public class MenuController { @GetMapping("/menu/getUserMenus") public ResponseResult getUserMenus(){ - return ResponseResult.success(menuService.getUserMenus(null)); + return ResponseResult.success(menuService.getUserMenus(CurrentUserHolder.getUserId(), CurrentUserHolder.getRoleId())); } } From 4596b69e682f0c7898a3f8e94741eb3ee15ca412 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 16:04:30 +0800 Subject: [PATCH 08/14] isv update --- .../com/cool/store/http/ISVHttpRequest.java | 26 +++++++++---------- .../main/resources/application-ab.properties | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java index 85bf23a41..e9e08ca4d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java @@ -43,7 +43,7 @@ public class ISVHttpRequest { private HttpRestTemplateService httpRestTemplateService; public UserIdInfoDTO getUserIdByCode(String paramStr){ - String url = isvDomain + "/isv/user/getUserIdByCode?" + paramStr; + String url = isvDomain + "/user/getUserIdByCode?" + paramStr; ResponseEntity responseEntity = null; try { responseEntity = RestTemplateUtil.loadGet(url, ResultDTO.class); @@ -58,7 +58,7 @@ public class ISVHttpRequest { } public EnterpriseUserDTO getUserDetailByUserId(String userId){ - String url = isvDomain + "/isv/user/getUserDetail"; + String url = isvDomain + "/user/getUserDetail"; HashMap requestMap = new HashMap(); requestMap.put("userId", userId); ResultDTO responseEntity = null; @@ -75,7 +75,7 @@ public class ISVHttpRequest { } public List getAdminUserList(){ - String url = isvDomain + "/isv/corp/getAdminUserList"; + String url = isvDomain + "/corp/getAdminUserList"; HashMap requestMap = new HashMap(); ResultDTO responseEntity = null; try { @@ -91,7 +91,7 @@ public class ISVHttpRequest { } public AuthInfoDTO getAuthInfo(){ - String url = isvDomain + "/isv/corp/getAuthInfo"; + String url = isvDomain + "/corp/getAuthInfo"; HashMap requestMap = new HashMap(); ResultDTO responseEntity = null; try { @@ -107,7 +107,7 @@ public class ISVHttpRequest { } public List getDepartments(String parentId){ - String url = isvDomain + "/isv/corp/getDepartments"; + String url = isvDomain + "/corp/getDepartments"; HashMap requestMap = new HashMap(); requestMap.put("parentId", parentId); ResultDTO responseEntity = null; @@ -124,7 +124,7 @@ public class ISVHttpRequest { } public AuthScopeDTO getAuthScope(){ - String url = isvDomain + "/isv/corp/getAuthScope"; + String url = isvDomain + "/corp/getAuthScope"; HashMap requestMap = new HashMap(); ResultDTO responseEntity = null; try { @@ -140,7 +140,7 @@ public class ISVHttpRequest { } public List getDepartmentUsers(String deptId){ - String url = isvDomain + "/isv/corp/getDepartmentUsers"; + String url = isvDomain + "/corp/getDepartmentUsers"; HashMap requestMap = new HashMap(); requestMap.put("deptId", deptId); ResultDTO responseEntity = null; @@ -157,7 +157,7 @@ public class ISVHttpRequest { } public List getUserDetailByUserIds(List userIdList) { - String url = isvDomain + "/isv/corp/getDepartmentUsers"; + String url = isvDomain + "/corp/getDepartmentUsers"; HashMap requestMap = new HashMap(); requestMap.put("userIds", userIdList); ResultDTO responseEntity = null; @@ -174,7 +174,7 @@ public class ISVHttpRequest { } public List getSubDepartments(String parentId, Boolean fetchChild) { - String url = isvDomain + "/isv/corp/getSubDepartments"; + String url = isvDomain + "/corp/getSubDepartments"; HashMap requestMap = new HashMap(); requestMap.put("parentId", parentId); requestMap.put("fetchChild", fetchChild); @@ -199,7 +199,7 @@ public class ISVHttpRequest { * @return */ public List getFreeBusyList(String userId, long startTime, long endTime) throws ApiException{ - String url = isvDomain + "/isv/user/getFreeBusyList"; + String url = isvDomain + "/user/getFreeBusyList"; HashMap requestMap = new HashMap(); requestMap.put("userId", userId); requestMap.put("startTime", startTime); @@ -225,7 +225,7 @@ public class ISVHttpRequest { * @throws ApiException */ public UserCalendarsEventDTO createUserCalendarEvent(CreateCalendarEventDTO param) throws ApiException{ - String url = isvDomain + "/isv/user/createUserCalendarEvent"; + String url = isvDomain + "/user/createUserCalendarEvent"; ResultDTO responseEntity = null; try { responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); @@ -247,7 +247,7 @@ public class ISVHttpRequest { * @throws ApiException */ public UserCalendarsEventDTO updateUserCalendarEvent(UpdateCalendarEventDTO param) throws ApiException{ - String url = isvDomain + "/isv/user/updateUserCalendarEvent"; + String url = isvDomain + "/user/updateUserCalendarEvent"; ResultDTO responseEntity = null; try { responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); @@ -269,7 +269,7 @@ public class ISVHttpRequest { * @throws ApiException */ public UserCalendarsEventDTO deleteUserCalendarEvent(DeleteCalendarEventDTO param) throws ApiException { - String url = isvDomain + "/isv/user/deleteUserCalendarEvent"; + String url = isvDomain + "/user/deleteUserCalendarEvent"; ResultDTO responseEntity = null; try { responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); diff --git a/coolstore-partner-webb/src/main/resources/application-ab.properties b/coolstore-partner-webb/src/main/resources/application-ab.properties index e49344f19..708563403 100644 --- a/coolstore-partner-webb/src/main/resources/application-ab.properties +++ b/coolstore-partner-webb/src/main/resources/application-ab.properties @@ -33,7 +33,7 @@ mybatis.mapper-locations=classpath*:mapper/**/*Mapper.xml mybatis.configuration.call-setters-on-nulls=true mybatis.configuration.map-underscore-to-camel-case=true -isv.domain = https://abstore-isv.coolstore.cn +isv.domain = https://abstore-isv.coolstore.cn/isv #rocketmq \u914D\u7F6E rocketmq.accessKey=zK2oVEz4G1ts23d2 From a643859dc29049c8e3e0bdd523f7c203fb2c6497 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 16:21:55 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coolstore-partner-service.iml | 5 +- coolstore-partner-service/pom.xml | 4 ++ .../java/com/cool/store/job/JobHandler.java | 32 ++++++++++ .../store/service/impl/MenuServiceImpl.java | 1 + .../coolstore-partner-webb.iml | 5 +- .../com/cool/store/config/XxlJobConfig.java | 58 +++++++++++++++++++ .../main/resources/application-ab.properties | 11 +++- .../main/resources/application-dev.properties | 11 +++- .../coolstore-partner-webc.iml | 5 +- pom.xml | 5 ++ 10 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml index 4b952a1ca..761caf1cb 100644 --- a/coolstore-partner-service/coolstore-partner-service.iml +++ b/coolstore-partner-service/coolstore-partner-service.iml @@ -115,7 +115,6 @@ - @@ -138,5 +137,9 @@ + + + + \ No newline at end of file diff --git a/coolstore-partner-service/pom.xml b/coolstore-partner-service/pom.xml index 31292f41f..b14527b8a 100644 --- a/coolstore-partner-service/pom.xml +++ b/coolstore-partner-service/pom.xml @@ -55,6 +55,10 @@ org.springframework spring-web + + com.xuxueli + xxl-job-core + \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java new file mode 100644 index 000000000..acce885c1 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java @@ -0,0 +1,32 @@ +package com.cool.store.job; + +import com.cool.store.service.EnterpriseSyncService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author zhangchenbiao + * @FileName: JobHandler + * @Description: + * @date 2023-06-14 16:07 + */ +@Slf4j +@Service +public class JobHandler { + + @Resource + private EnterpriseSyncService enterpriseSyncService; + + @XxlJob("syncOrganization") + public void syncOrganization(){ + log.info("组织架构定时同步开始"); + enterpriseSyncService.syncAll(); + log.info("组织架构同步结束"); + XxlJobHelper.handleSuccess(); + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java index 318f489a5..54143fe32 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java @@ -26,6 +26,7 @@ public class MenuServiceImpl implements MenuService { @Override public List getUserMenus(String userId, String roleId) { List menuList= sysMenuDAO.selectMenuAll(null, PlatFormTypeEnum.PC.getCode()); + //根据角色获取菜单 return MenuTreeVO.dealMenuTree(CommonConstants.ZERO_LONG, menuList); } } diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index ae29d57b7..fe481cb8c 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -102,6 +102,10 @@ + + + + @@ -142,7 +146,6 @@ - diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java new file mode 100644 index 000000000..7b63b9b33 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java @@ -0,0 +1,58 @@ +package com.cool.store.config; + +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +/** + * @author zhangchenbiao + * @FileName: XxlJobConfig + * @Description: xxljob 配置信息 + * @date 2021-11-12 15:26 + */ +@Configuration +@ComponentScan(basePackages = "com.cool.store.job") +public class XxlJobConfig { + + private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); + + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.executor.appname}") + private String appName; + + @Value("${xxl.job.executor.ip}") + private String ip; + + @Value("${xxl.job.executor.port}") + private int port; + + @Value("${xxl.job.accessToken}") + private String accessToken; + + @Value("${xxl.job.executor.logpath}") + private String logPath; + + @Value("${xxl.job.executor.logretentiondays}") + private int logRetentionDays; + + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + logger.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setIp(ip); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + return xxlJobSpringExecutor; + } + +} diff --git a/coolstore-partner-webb/src/main/resources/application-ab.properties b/coolstore-partner-webb/src/main/resources/application-ab.properties index 708563403..1826144d8 100644 --- a/coolstore-partner-webb/src/main/resources/application-ab.properties +++ b/coolstore-partner-webb/src/main/resources/application-ab.properties @@ -50,4 +50,13 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +#xxljob配置 +xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin +xxl.job.executor.appname = ${spring.application.name} +xxl.job.executor.ip = +xxl.job.executor.port = 31001 +xxl.job.executor.logpath = logs/xxl-job/jobhandler +xxl.job.executor.logretentiondays = 3 +xxl.job.accessToken = \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-dev.properties b/coolstore-partner-webb/src/main/resources/application-dev.properties index 95a66781d..14ecbbb60 100644 --- a/coolstore-partner-webb/src/main/resources/application-dev.properties +++ b/coolstore-partner-webb/src/main/resources/application-dev.properties @@ -51,4 +51,13 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +#xxljob配置 +xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin +xxl.job.executor.appname = ${spring.application.name} +xxl.job.executor.ip = +xxl.job.executor.port = 31001 +xxl.job.executor.logpath = logs/xxl-job/jobhandler +xxl.job.executor.logretentiondays = 3 +xxl.job.accessToken = \ No newline at end of file diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index c5f43a5ca..399bb9f2b 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -100,6 +100,10 @@ + + + + @@ -142,7 +146,6 @@ - diff --git a/pom.xml b/pom.xml index 9461a1ffe..c1eea1c2b 100644 --- a/pom.xml +++ b/pom.xml @@ -171,6 +171,11 @@ spring-boot-starter-data-redis 3.0.4 + + com.xuxueli + xxl-job-core + 2.3.0 + From 8877105a826dbb94c7804ecc4ed8b5ee24db947b Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 16:54:57 +0800 Subject: [PATCH 10/14] update config --- .../src/main/resources/application-ab.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-webb/src/main/resources/application-ab.properties b/coolstore-partner-webb/src/main/resources/application-ab.properties index 1826144d8..2d48b8e2e 100644 --- a/coolstore-partner-webb/src/main/resources/application-ab.properties +++ b/coolstore-partner-webb/src/main/resources/application-ab.properties @@ -53,7 +53,7 @@ trtc.sdkAppId=1400811820 trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 #xxljob配置 -xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin +xxl.job.admin.addresses = http://10.7.53.224:10001/xxl-job-admin xxl.job.executor.appname = ${spring.application.name} xxl.job.executor.ip = xxl.job.executor.port = 31001 From a3a4875a72d9d55f42543db9c1e5c9c87923bf4a Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 17:19:16 +0800 Subject: [PATCH 11/14] add log --- .../src/main/java/com/cool/store/config/XxlJobConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java index 7b63b9b33..6282f7b9c 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java @@ -1,5 +1,6 @@ package com.cool.store.config; +import com.alibaba.fastjson.JSONObject; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,6 +53,7 @@ public class XxlJobConfig { xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + logger.info(">>>>>>>>>>> xxl-job config finish,{}", JSONObject.toJSONString(xxlJobSpringExecutor)); return xxlJobSpringExecutor; } From 7150c38a9bba1d5593d0535fb8fca6d2d9b89e33 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 17:25:14 +0800 Subject: [PATCH 12/14] add log --- .../main/java/com/cool/store/config/XxlJobConfig.java | 2 +- .../src/main/resources/application-local.properties | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java index 6282f7b9c..119b1f18f 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java @@ -53,7 +53,7 @@ public class XxlJobConfig { xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); - logger.info(">>>>>>>>>>> xxl-job config finish,{}", JSONObject.toJSONString(xxlJobSpringExecutor)); + logger.info(">>>>>>>>>>> xxl-job config finish,adminAddresses:{},appName:{}", adminAddresses, appName); return xxlJobSpringExecutor; } diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index 4e09f245b..a47447b2b 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -53,4 +53,12 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +xxl.job.admin.addresses = +xxl.job.executor.appname = ${spring.application.name} +xxl.job.executor.ip = +xxl.job.executor.port = 30201 +xxl.job.executor.logpath = logs/xxl-job/jobhandler +xxl.job.executor.logretentiondays = 30 +xxl.job.accessToken = \ No newline at end of file From 23be0bf864f0f0f342b0edf562f591b1cd37e8cf Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 17:27:31 +0800 Subject: [PATCH 13/14] add log --- .../src/main/java/com/cool/store/config/XxlJobConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java index 119b1f18f..a04ac28c1 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/XxlJobConfig.java @@ -53,7 +53,7 @@ public class XxlJobConfig { xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); - logger.info(">>>>>>>>>>> xxl-job config finish,adminAddresses:{},appName:{}", adminAddresses, appName); + logger.info(">>>>>>>>>>> xxl-job config finish,adminAddresses:{},appName:{}", adminAddresses, appName); return xxlJobSpringExecutor; } From c7c4b8ff40fdb79f52d39f922db945728a1d4927 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 14 Jun 2023 19:38:09 +0800 Subject: [PATCH 14/14] =?UTF-8?q?oss=20=E6=96=B0=E5=A2=9Ecdn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/dao/RegionDAO.java | 12 ++++++++++++ .../java/com/cool/store/mapper/RegionMapper.java | 7 +++++++ .../src/main/resources/mapper/RegionMapper.xml | 10 ++++++++++ .../com/cool/store/vo/oss/OssUploadConfigVO.java | 6 +++++- .../java/com/cool/store/config/XxlJobConfig.java | 1 - .../cool/store/controller/OssClientController.java | 4 +++- .../src/main/resources/application-ab.properties | 4 ++++ .../src/main/resources/application-local.properties | 4 ++++ .../cool/store/controller/OssClientController.java | 4 +++- .../src/main/resources/application-ab.properties | 4 ++++ .../src/main/resources/application-local.properties | 4 ++++ 11 files changed, 56 insertions(+), 4 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java index d14b16cd1..95121dbb7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java @@ -4,11 +4,15 @@ import com.cool.store.constants.CommonConstants; import com.cool.store.entity.RegionDO; import com.cool.store.mapper.RegionMapper; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @author zhangchenbiao @@ -49,4 +53,12 @@ public class RegionDAO { return regionMapper.getRegionBaseInfoList(); } + public Map getRegionMap(List regionIds){ + if(CollectionUtils.isEmpty(regionIds)){ + return Maps.newHashMap(); + } + List regionList = regionMapper.getRegionNameByRegionIds(regionIds); + return ListUtils.emptyIfNull(regionList).stream().collect(Collectors.toMap(RegionDO::getRegionId, RegionDO::getName)); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java index cb3abf312..fc3a734fe 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java @@ -39,6 +39,13 @@ public interface RegionMapper { */ List getRegionByRegionIds(@Param("regionIds")List regionIds); + /** + * 根据区域id获取名称 + * @param regionIds + * @return + */ + List getRegionNameByRegionIds(@Param("regionIds")List regionIds); + /** * 获取区域基本信息 * @return diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml index f9eb941e8..8c0beb799 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml @@ -169,6 +169,16 @@ + +