package com.stylefeng.guns.modular.api; import com.stylefeng.guns.modular.system.service.ISystemNoticeService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.SystemNoticeWarpper; 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.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; /** * 个人系统消息和公告控制器 */ @Api @RestController @RequestMapping("/api/systemNotice") public class SystemNoticeController { @Autowired private ISystemNoticeService systemNoticeService; @Autowired private IUserInfoService userInfoService; @ResponseBody @PostMapping("/queryNoReadNoticeNum") @ApiOperation(value = "获取未读的消息数量", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryNoReadNoticeNum(HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } int num = systemNoticeService.queryNoReadNoticeNum(uid); BaseWarpper baseWarpper = new BaseWarpper(); baseWarpper.setNumber(num); return ResultUtil.success(baseWarpper); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取系统消息和公告 * @param type * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/queryNotices") @ApiOperation(value = "获取系统消息和公告", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "数据类型(1=公告,2=系统消息)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryNotices(Integer type, Integer pageNum, Integer size, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = systemNoticeService.queryList(type, pageNum, size, uid, language); return ResultUtil.success(SystemNoticeWarpper.getSystemNoticeWarpper(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 阅读操作 * @param id * @param request * @return */ @ResponseBody @PostMapping("/readSystemNotice") @ApiOperation(value = "阅读系统消息和公告操作", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "消息id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil readSystemNotice(Integer id, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } systemNoticeService.readSystemNotice(id, uid); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 删除单个消息或公告 * @param id * @param request * @return */ @ResponseBody @PostMapping("/delSystemNotice") @ApiOperation(value = "删除单个消息或公告", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "消息id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil delSystemNotice(Integer id, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } systemNoticeService.delSystemNotice(id, uid); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 清除所有消息或公告 * @param request * @return */ @ResponseBody @PostMapping("/clearSystemNotice") @ApiOperation(value = "清除所有消息或公告", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil clearSystemNotice(HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } systemNoticeService.clearSystemNotice(uid); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }