123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.ym.mec.student.controller;
- import com.alibaba.fastjson.JSON;
- import com.ym.mec.auth.api.client.SysUserFeignService;
- import com.ym.mec.auth.api.entity.SysUser;
- import com.ym.mec.biz.dal.dao.AppVersionInfoDao;
- import com.ym.mec.biz.dal.entity.AppVersionInfo;
- 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.thirdparty.message.MessageSenderPluginContext.MessageSender;
- import com.ym.mec.util.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.io.IOException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- @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 Object queryCountOfUnread() {
- SysUser sysUser = sysUserFeignService.queryUserInfo();
- if (sysUser == null) {
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- Map<String, Integer> map = sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId(),"STUDENT");
- if (map == null || map.size() == 0) {
- return succeed();
- }
- return succeed(map);
- }
- @ApiOperation(value = "发送消息")
- @PostMapping("/sendMessage")
- public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
- 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, group, "STUDENT");
- return succeed();
- }
- }
|