|
@@ -0,0 +1,127 @@
|
|
|
+package com.yonge.cooleshow.student.controller;
|
|
|
+
|
|
|
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.yonge.cooleshow.biz.dal.dao.AppVersionInfoDao;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.search.SysMessageQueryInfo;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageSendMode;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
|
|
|
+import com.yonge.cooleshow.common.controller.BaseController;
|
|
|
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
+import com.yonge.cooleshow.common.entity.Mapper;
|
|
|
+import com.yonge.cooleshow.common.exception.BizException;
|
|
|
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
+import com.yonge.toolset.utils.validator.CommonValidator;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+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 java.util.List;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@Api(tags = "消息服务")
|
|
|
+@RequestMapping("sysMessage")
|
|
|
+public class SysMessageController extends BaseController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AppVersionInfoDao appVersionInfoDao;
|
|
|
+
|
|
|
+ @ApiOperation("获取所有消息列表")
|
|
|
+ @GetMapping(value = "list")
|
|
|
+ public Object list(SysMessageQueryInfo queryInfo){
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ queryInfo.setUserId(sysUser.getId());
|
|
|
+ queryInfo.setType(MessageSendMode.PUSH.getCode());
|
|
|
+ queryInfo.setJpushType("STUDENT");
|
|
|
+ return succeed(sysMessageService.queryPage(queryInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+ // @ApiOperation("获取消息分类类型")
|
|
|
+ // @GetMapping(value = "typeList")
|
|
|
+ // public Object typeList(String memo){
|
|
|
+ // //如果用户使用的版本比当前版本号大,那么屏蔽缴费信息
|
|
|
+ // if(StringUtils.isNotEmpty(memo)){
|
|
|
+ // //获取当前使用的版本
|
|
|
+ // AppVersionInfo appVersionInfo = appVersionInfoDao.queryNewestByPlatform("ios-student").get(0);
|
|
|
+ // int defaultVersion = Integer.parseInt(appVersionInfo.getVersion().replaceAll("\\.",""));
|
|
|
+ // int currentVersion = Integer.parseInt(memo.replaceAll("\\.",""));
|
|
|
+ // if(currentVersion > defaultVersion){
|
|
|
+ // return succeed(JSON.parseArray("[{\"value\":\"全部\",\"key\":\"ALL\"}," +
|
|
|
+ // "{\"value\":\"课程信息\",\"key\":\"COURSE\"}," +
|
|
|
+ // "{\"value\":\"训练信息\",\"key\":\"WORK\"}," +
|
|
|
+ // "{\"value\":\"其他\",\"key\":\"DEFAULT\"}]"));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // return succeed(JSON.parseArray("[{\"value\":\"全部\",\"key\":\"ALL\"}," +
|
|
|
+ // "{\"value\":\"缴费信息\",\"key\":\"PAY\"}," +
|
|
|
+ // "{\"value\":\"课程信息\",\"key\":\"COURSE\"}," +
|
|
|
+ // "{\"value\":\"训练信息\",\"key\":\"WORK\"}," +
|
|
|
+ // "{\"value\":\"其他\",\"key\":\"DEFAULT\"}]"));
|
|
|
+ // }
|
|
|
+
|
|
|
+ @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,"STUDENT") > 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 HttpResponseResult<List<Mapper>> queryCountOfUnread() {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ List<Mapper> map = sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId(), "STUDENT");
|
|
|
+
|
|
|
+ return succeed(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "发送消息")
|
|
|
+ @PostMapping("/sendMessage")
|
|
|
+ public Object sendMessage(MessageSenderPluginContext.MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
+ }
|
|
|
+ Long 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, group, "STUDENT");
|
|
|
+ return succeed();
|
|
|
+ }
|
|
|
+}
|