ycl-common/src/main/java/com/ycl/dto/user/DepartUserDTO.java
New file @@ -0,0 +1,22 @@ package com.ycl.dto.user; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * <p> * 类说明 * </p> * * @author mg * @since 2022-10-12 */ @Data @ApiModel("负责人信息") public class DepartUserDTO { @ApiModelProperty(value = "用户Id") private Long userId; @ApiModelProperty(value = "用户名") private String username; } ycl-common/src/main/java/com/ycl/entity/depart/UmsDepart.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.ycl.api.BaseEntity; import com.ycl.dto.user.AdminDepartDTO; import com.ycl.dto.user.DepartUserDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -60,4 +61,7 @@ @TableField(exist = false) private List<AdminDepartDTO.UserInfoDTO> userInfoDTOS; @TableField(exist = false) private List<DepartUserDTO> departUserDTOS; } ycl-common/src/main/java/com/ycl/entity/user/UmsRole.java
@@ -35,6 +35,9 @@ @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "角色类型") private String type; @ApiModelProperty(value = "描述") private String description; ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java
@@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.depart.UmsDepart; import java.util.List; /** * <p> * 部门表 Mapper 接口 @@ -13,4 +15,6 @@ */ public interface UmsDepartMapper extends BaseMapper<UmsDepart> { List<UmsDepart> selectDepartList(); } ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -122,7 +122,7 @@ @Override public List<UmsDepart> tree() { // 1.查出所有网格 List<UmsDepart> list = list(); List<UmsDepart> list = baseMapper.selectDepartList(); // 2.组装成父子的树型结构 // 2.1、找到所有的一级网格:使用jdk8的stream流进行过滤 ycl-common/src/main/java/com/ycl/service/user/UmsAdminService.java
@@ -111,4 +111,5 @@ List<UmsAdmin> getDepartUser(Long departId); String getTargetTo(String ids, String sendType); } ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -12,6 +12,7 @@ import com.ycl.dto.UpdateAdminPasswordParam; import com.ycl.entity.depart.UmsDepart; import com.ycl.entity.user.*; import com.ycl.exception.ApiException; import com.ycl.exception.Asserts; import com.ycl.mapper.user.*; import com.ycl.service.depart.UmsDepartService; @@ -378,4 +379,22 @@ List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); return adminList; } @Override public String getTargetTo(String ids, String sendType) { String str = null; String[] arr = ids.split(","); QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>(); wrapperUser.in("id", arr); List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); if (adminList == null||adminList.isEmpty()) { throw new ApiException("未查询到用户"); } if ("02".equals(sendType)) { str = adminList.stream().map(UmsAdmin::getEmail).collect(Collectors.joining(",")); } else { str = adminList.stream().map(UmsAdmin::getMobile).collect(Collectors.joining(",")); } return str; } } ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml
@@ -14,5 +14,21 @@ <result column="update_time" property="updateTime" /> <result column="is_deleted" property="isDeleted" /> </resultMap> <resultMap type="com.ycl.entity.depart.UmsDepart" id="UserDepartResultMap" extends="BaseResultMap"> <collection property="userInfoDTOS" javaType="ArrayList" ofType="com.ycl.dto.user.DepartUserDTO"> <id column="user_id" property="userId" /> <result column="username" property="username" /> </collection> </resultMap> <select id="selectDepartList" resultMap="UserDepartResultMap"> SELECT ud.*,ua.id user_id,ua.username FROM ums_depart ud LEFT JOIN ums_depart_manager udm ON ud.id = udm.depart_id LEFT JOIN ums_admin ua ON udm.user_id = ua.id </select> </mapper> ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java
@@ -28,7 +28,6 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.UUID; /** @@ -259,4 +258,6 @@ baseCaseService.endCase(caseId, result); return CommonResult.success("end case success~!"); } } ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnSetController.java
New file @@ -0,0 +1,86 @@ package com.ycl.controller.message; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ycl.api.CommonResult; import com.ycl.entity.message.MessageColumnSet; import com.ycl.service.message.IMessageColumnSetService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * <p> * 消息栏目设置 前端控制器 * </p> * * @author mg * @since 2022-10-08 */ @RestController @RequestMapping("/message_column_set") @Api(tags = "用户消息栏目设置") public class MessageColumnSetController { @Autowired private IMessageColumnSetService iMessageColumnSetService; @ApiOperation(value = "添加栏目设置") @RequestMapping(value = "/addColumnSet", method = RequestMethod.POST) @ResponseBody public CommonResult addColumnSet(@Validated @RequestBody MessageColumnSet messageColumnSet) { return CommonResult.success(iMessageColumnSetService.save(messageColumnSet)); } @ApiOperation("获取指定栏目") @RequestMapping(value = "/getColumnSet/{id}", method = RequestMethod.GET) @ResponseBody public CommonResult<MessageColumnSet> getMessage(@PathVariable Long id) { MessageColumnSet columnSet = iMessageColumnSetService.getById(id); return CommonResult.success(columnSet); } @ApiOperation("获取用户栏目设置") @RequestMapping(value = "/getUserColumnSet/{userId}", method = RequestMethod.GET) @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户Id",required = true, dataType = "Long") }) @ResponseBody public CommonResult<List<MessageColumnSet>> getUserColumnSet(@PathVariable Long userId) { QueryWrapper<MessageColumnSet> setQueryWrapper = new QueryWrapper<>(); setQueryWrapper.eq("user_id", userId); List<MessageColumnSet> sets = iMessageColumnSetService.list(setQueryWrapper); return CommonResult.success(sets); } @ApiOperation("修改指定栏目") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody public CommonResult update(@PathVariable Long id, @RequestBody MessageColumnSet messageColumnSet) { messageColumnSet.setId(id); boolean success = iMessageColumnSetService.updateById(messageColumnSet); if (success) { return CommonResult.success(null); } return CommonResult.failed(); } @ApiOperation("批量删除") @RequestMapping(value = "/delete", method = RequestMethod.POST) @ResponseBody public CommonResult delete(@RequestParam("ids") List<Long> ids) { boolean success = iMessageColumnSetService.removeBatchByIds(ids); if (success) { return CommonResult.success(null); } return CommonResult.failed(); } } ycl-platform/src/main/java/com/ycl/entity/message/MessageColumnSet.java
New file @@ -0,0 +1,55 @@ package com.ycl.entity.message; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.NotNull; /** * <p> * 消息栏目用户设置 实体类 * </p> * * @author mg * @since 2022-10-10 */ @Data @EqualsAndHashCode(callSuper = false) @TableName("ums_message_column_set") @ApiModel(value = "消息栏目用户设置表") public class MessageColumnSet { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "主键") private Long id; /** * 用户Id */ @TableField("user_id") @ApiModelProperty(value = "用户Id", required = true) private Long userId; /** * 消息栏目Id */ @TableField("message_column_id") @ApiModelProperty(value = "消息栏目Id", required = true) @NotNull private Long messageColumnId; /** * 是否接收0-不接收1-接收 */ @TableField("is_receive") @ApiModelProperty(value = "是否接收0-不接收1-接收", required = true) private Integer isReceive; } ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java
New file @@ -0,0 +1,15 @@ package com.ycl.mapper.message; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.message.MessageColumnSet; /** * <p> * 消息栏目设置 Mapper 接口 * </p> * * @author mg * @since 2022-10-12 */ public interface MessageColumnSetMapper extends BaseMapper<MessageColumnSet> { } ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnSetService.java
New file @@ -0,0 +1,15 @@ package com.ycl.service.message; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.message.MessageColumnSet; /** * <p> * 消息栏目设置 * </p> * * @author mg * @since 2022-10-12 */ public interface IMessageColumnSetService extends IService<MessageColumnSet> { } ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
@@ -3,6 +3,7 @@ import com.ycl.common.util.PropertyValueUtil; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; import com.ycl.exception.ApiException; import com.ycl.service.message.Sender; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,10 +60,12 @@ try { sender.send(messageList); logger.info("简单邮件已发送"); }catch (Exception e){ e.printStackTrace(); logger.error("发送简单邮件时发生异常!", e); e.printStackTrace(); throw new ApiException("发送简单邮件时发生异常"); } return message; } ycl-platform/src/main/java/com/ycl/service/message/impl/IMessageColumnSetServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.ycl.service.message.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.entity.message.MessageColumnSet; import com.ycl.mapper.message.MessageColumnSetMapper; import com.ycl.service.message.IMessageColumnSetService; import org.springframework.stereotype.Service; /** * <p> * 消息栏目设置 服务实现类 * </p> * * @author mg * @since 2022-10-10 */ @Service public class IMessageColumnSetServiceImpl extends ServiceImpl<MessageColumnSetMapper, MessageColumnSet> implements IMessageColumnSetService { } ycl-platform/src/main/java/com/ycl/service/message/impl/IMessageServiceImpl.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; import com.ycl.exception.ApiException; import com.ycl.mapper.message.MessageMapper; import com.ycl.service.message.IMessageService; import com.ycl.service.message.Provider; @@ -13,6 +14,8 @@ import com.ycl.service.message.factory.InnerFactory; import com.ycl.service.message.factory.MailFactory; import com.ycl.service.message.factory.SmsFactory; import com.ycl.service.user.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -25,6 +28,10 @@ */ @Service public class IMessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements IMessageService { @Autowired private UmsAdminService adminService; @Override public Message sendMessage(MessageParam messageParam) { Message message = null; @@ -38,13 +45,20 @@ //邮件发送 case "02": provider = new MailFactory(); //id换成邮箱号 String targetToMail = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode()); messageParam.setTargetTo(targetToMail); break; //短信发送 case "03": provider = new SmsFactory(); //id换成手机号 String targetToPhone = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode()); messageParam.setTargetTo(targetToPhone); break; default: System.out.println("抛异常"); throw new ApiException("未匹配到该类型"); } Sender sender = provider.produce(); sender.sendMessage(messageParam);