| 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();	}}
 |