|
@@ -0,0 +1,143 @@
|
|
|
+package com.ym.mec.web.controller;
|
|
|
+
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
+import com.ym.mec.auth.api.entity.SysUser;
|
|
|
+import com.ym.mec.biz.dal.entity.SysMessage;
|
|
|
+import com.ym.mec.biz.dal.enums.MessageSendMode;
|
|
|
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
|
|
|
+import com.ym.mec.biz.service.SysMessageService;
|
|
|
+import com.ym.mec.common.controller.BaseController;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
+import com.ym.mec.common.page.PageInfo;
|
|
|
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
|
+import com.ym.mec.util.validator.CommonValidator;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@Api(tags = "消息服务")
|
|
|
+@RequestMapping("sysMessage")
|
|
|
+public class SysMessageController extends BaseController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
+
|
|
|
+ @ApiOperation("获取所有消息列表")
|
|
|
+ @GetMapping(value = "list")
|
|
|
+ public Object list(SysMessageQueryInfo queryInfo) throws IOException {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ queryInfo.setUserId(sysUser.getId());
|
|
|
+ queryInfo.setType(MessageSendMode.SEO.getCode());
|
|
|
+ PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
|
|
|
+ return succeed(pageInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("一键已读")
|
|
|
+ @PostMapping("batchSetRead")
|
|
|
+ public Object batchSetRead() {
|
|
|
+ int status = 1;
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ return sysMessageService.updateStatus(sysUser.getId(), status) > 0 ? succeed() : failed();
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("设置已读")
|
|
|
+ @PostMapping("setRead")
|
|
|
+ public Object setRead(Long id) {
|
|
|
+ int status = 1;
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "查询用户未读消息条数")
|
|
|
+ @GetMapping("/queryCountOfUnread")
|
|
|
+ public Object queryCountOfUnread() {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ /*@ApiOperation(value = "发送短信验证码")
|
|
|
+ @PostMapping("/sendSmsCode")
|
|
|
+ public Object sendSmsCode(String sendCodeType, String mobileNo) {
|
|
|
+
|
|
|
+ SysUser sysUser;
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(mobileNo)) {
|
|
|
+ sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ } else {
|
|
|
+ sysUser = sysUserFeignService.queryUserByMobile(mobileNo);
|
|
|
+ }
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ Integer userId = sysUser.getId();
|
|
|
+
|
|
|
+ mobileNo = sysUser.getPhone();
|
|
|
+
|
|
|
+ MessageType messageType = MessageType.getMessageType(sendCodeType);
|
|
|
+ if (messageType == null) {
|
|
|
+ throw new BizException("消息类型参数错误");
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
|
|
|
+ throw new BizException("请输入正确的手机号");
|
|
|
+ }
|
|
|
+ sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
|
|
|
+ return succeed();
|
|
|
+ }*/
|
|
|
+
|
|
|
+ /*@ApiOperation(value = "发送短信验证码")
|
|
|
+ @PostMapping("/noAuth/sendSmsCode")
|
|
|
+ public Object noAuthSendSmsCode(String sendCodeType, String mobileNo) {
|
|
|
+ MessageType messageType = MessageType.getMessageType(sendCodeType);
|
|
|
+ if (messageType == null) {
|
|
|
+ throw new BizException("消息类型参数错误");
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
|
|
|
+ throw new BizException("请输入正确的手机号");
|
|
|
+ }
|
|
|
+// sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
|
|
|
+ return succeed();
|
|
|
+ }*/
|
|
|
+
|
|
|
+ @ApiOperation(value = "发送消息")
|
|
|
+ @PostMapping("/sendMessage")
|
|
|
+ public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url) {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ Integer userId = sysUser.getId();
|
|
|
+
|
|
|
+ String mobileNo = sysUser.getPhone();
|
|
|
+ if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
|
|
|
+ throw new BizException("请输入正确的手机号");
|
|
|
+ }
|
|
|
+ sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url);
|
|
|
+ return succeed();
|
|
|
+ }
|
|
|
+}
|