Search in sources :

Example 1 with SysAnnouncementSend

use of org.jeecg.modules.system.entity.SysAnnouncementSend in project jeecg-boot by jeecgboot.

the class SysAnnouncementController method listByUser.

/**
 * @功能:补充用户数据,并返回系统消息
 * @return
 */
@RequestMapping(value = "/listByUser", method = RequestMethod.GET)
public Result<Map<String, Object>> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize) {
    Result<Map<String, Object>> result = new Result<Map<String, Object>>();
    LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
    String userId = sysUser.getId();
    // 1.将系统消息补充到用户通告阅读标记表中
    LambdaQueryWrapper<SysAnnouncement> querySaWrapper = new LambdaQueryWrapper<SysAnnouncement>();
    // 全部人员
    querySaWrapper.eq(SysAnnouncement::getMsgType, CommonConstant.MSG_TYPE_ALL);
    // 未删除
    querySaWrapper.eq(SysAnnouncement::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
    // 已发布
    querySaWrapper.eq(SysAnnouncement::getSendStatus, CommonConstant.HAS_SEND);
    // 新注册用户不看结束通知
    querySaWrapper.ge(SysAnnouncement::getEndTime, sysUser.getCreateTime());
    // update-begin--Author:liusq  Date:20210108 for:[JT-424] 【开源issue】bug处理--------------------
    querySaWrapper.notInSql(SysAnnouncement::getId, "select annt_id from sys_announcement_send where user_id='" + userId + "'");
    // update-begin--Author:liusq  Date:20210108  for: [JT-424] 【开源issue】bug处理--------------------
    List<SysAnnouncement> announcements = sysAnnouncementService.list(querySaWrapper);
    if (announcements.size() > 0) {
        for (int i = 0; i < announcements.size(); i++) {
            // update-begin--Author:wangshuai  Date:20200803  for: 通知公告消息重复LOWCOD-759--------------------
            // 因为websocket没有判断是否存在这个用户,要是判断会出现问题,故在此判断逻辑
            LambdaQueryWrapper<SysAnnouncementSend> query = new LambdaQueryWrapper<>();
            query.eq(SysAnnouncementSend::getAnntId, announcements.get(i).getId());
            query.eq(SysAnnouncementSend::getUserId, userId);
            SysAnnouncementSend one = sysAnnouncementSendService.getOne(query);
            if (null == one) {
                log.info("listByUser接口新增了SysAnnouncementSend:pageSize{}:" + pageSize);
                SysAnnouncementSend announcementSend = new SysAnnouncementSend();
                announcementSend.setAnntId(announcements.get(i).getId());
                announcementSend.setUserId(userId);
                announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
                sysAnnouncementSendService.save(announcementSend);
                log.info("announcementSend.toString()", announcementSend.toString());
            }
        // update-end--Author:wangshuai  Date:20200803  for: 通知公告消息重复LOWCOD-759------------
        }
    }
    // 2.查询用户未读的系统消息
    Page<SysAnnouncement> anntMsgList = new Page<SysAnnouncement>(0, pageSize);
    // 通知公告消息
    anntMsgList = sysAnnouncementService.querySysCementPageByUserId(anntMsgList, userId, "1");
    Page<SysAnnouncement> sysMsgList = new Page<SysAnnouncement>(0, pageSize);
    // 系统消息
    sysMsgList = sysAnnouncementService.querySysCementPageByUserId(sysMsgList, userId, "2");
    Map<String, Object> sysMsgMap = new HashMap<String, Object>();
    sysMsgMap.put("sysMsgList", sysMsgList.getRecords());
    sysMsgMap.put("sysMsgTotal", sysMsgList.getTotal());
    sysMsgMap.put("anntMsgList", anntMsgList.getRecords());
    sysMsgMap.put("anntMsgTotal", anntMsgList.getTotal());
    result.setSuccess(true);
    result.setResult(sysMsgMap);
    return result;
}
Also used : SysAnnouncementSend(org.jeecg.modules.system.entity.SysAnnouncementSend) SysAnnouncement(org.jeecg.modules.system.entity.SysAnnouncement) HashMap(java.util.HashMap) IPage(com.baomidou.mybatisplus.core.metadata.IPage) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) LoginUser(org.jeecg.common.system.vo.LoginUser) Result(org.jeecg.common.api.vo.Result) LambdaQueryWrapper(com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper) JSONObject(com.alibaba.fastjson.JSONObject) Map(java.util.Map) HashMap(java.util.HashMap)

Example 2 with SysAnnouncementSend

use of org.jeecg.modules.system.entity.SysAnnouncementSend in project jeecg-boot by jeecgboot.

the class SysAnnouncementSendController method eidt.

/**
 *  编辑
 * @param sysAnnouncementSend
 * @return
 */
@PutMapping(value = "/edit")
public Result<SysAnnouncementSend> eidt(@RequestBody SysAnnouncementSend sysAnnouncementSend) {
    Result<SysAnnouncementSend> result = new Result<SysAnnouncementSend>();
    SysAnnouncementSend sysAnnouncementSendEntity = sysAnnouncementSendService.getById(sysAnnouncementSend.getId());
    if (sysAnnouncementSendEntity == null) {
        result.error500("未找到对应实体");
    } else {
        boolean ok = sysAnnouncementSendService.updateById(sysAnnouncementSend);
        // TODO 返回false说明什么?
        if (ok) {
            result.success("修改成功!");
        }
    }
    return result;
}
Also used : SysAnnouncementSend(org.jeecg.modules.system.entity.SysAnnouncementSend) Result(org.jeecg.common.api.vo.Result) PutMapping(org.springframework.web.bind.annotation.PutMapping)

Example 3 with SysAnnouncementSend

use of org.jeecg.modules.system.entity.SysAnnouncementSend in project jeecg-boot by jeecgboot.

the class SysAnnouncementSendController method queryById.

/**
 * 通过id查询
 * @param id
 * @return
 */
@GetMapping(value = "/queryById")
public Result<SysAnnouncementSend> queryById(@RequestParam(name = "id", required = true) String id) {
    Result<SysAnnouncementSend> result = new Result<SysAnnouncementSend>();
    SysAnnouncementSend sysAnnouncementSend = sysAnnouncementSendService.getById(id);
    if (sysAnnouncementSend == null) {
        result.error500("未找到对应实体");
    } else {
        result.setResult(sysAnnouncementSend);
        result.setSuccess(true);
    }
    return result;
}
Also used : SysAnnouncementSend(org.jeecg.modules.system.entity.SysAnnouncementSend) Result(org.jeecg.common.api.vo.Result) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 4 with SysAnnouncementSend

use of org.jeecg.modules.system.entity.SysAnnouncementSend in project jeecg-boot by jeecgboot.

the class SysAnnouncementServiceImpl method saveAnnouncement.

@Transactional
@Override
public void saveAnnouncement(SysAnnouncement sysAnnouncement) {
    if (sysAnnouncement.getMsgType().equals(CommonConstant.MSG_TYPE_ALL)) {
        sysAnnouncementMapper.insert(sysAnnouncement);
    } else {
        // 1.插入通告表记录
        sysAnnouncementMapper.insert(sysAnnouncement);
        // 2.插入用户通告阅读标记表记录
        String userId = sysAnnouncement.getUserIds();
        String[] userIds = userId.substring(0, (userId.length() - 1)).split(",");
        String anntId = sysAnnouncement.getId();
        Date refDate = new Date();
        for (int i = 0; i < userIds.length; i++) {
            SysAnnouncementSend announcementSend = new SysAnnouncementSend();
            announcementSend.setAnntId(anntId);
            announcementSend.setUserId(userIds[i]);
            announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
            announcementSend.setReadTime(refDate);
            sysAnnouncementSendMapper.insert(announcementSend);
        }
    }
}
Also used : SysAnnouncementSend(org.jeecg.modules.system.entity.SysAnnouncementSend) Date(java.util.Date) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with SysAnnouncementSend

use of org.jeecg.modules.system.entity.SysAnnouncementSend in project jeecg-boot by jeecgboot.

the class SysAnnouncementServiceImpl method upDateAnnouncement.

/**
 * @功能:编辑消息信息
 */
@Transactional
@Override
public boolean upDateAnnouncement(SysAnnouncement sysAnnouncement) {
    // 1.更新系统信息表数据
    sysAnnouncementMapper.updateById(sysAnnouncement);
    String userId = sysAnnouncement.getUserIds();
    if (oConvertUtils.isNotEmpty(userId) && sysAnnouncement.getMsgType().equals(CommonConstant.MSG_TYPE_UESR)) {
        // 2.补充新的通知用户数据
        String[] userIds = userId.substring(0, (userId.length() - 1)).split(",");
        String anntId = sysAnnouncement.getId();
        Date refDate = new Date();
        for (int i = 0; i < userIds.length; i++) {
            LambdaQueryWrapper<SysAnnouncementSend> queryWrapper = new LambdaQueryWrapper<SysAnnouncementSend>();
            queryWrapper.eq(SysAnnouncementSend::getAnntId, anntId);
            queryWrapper.eq(SysAnnouncementSend::getUserId, userIds[i]);
            List<SysAnnouncementSend> announcementSends = sysAnnouncementSendMapper.selectList(queryWrapper);
            if (announcementSends.size() <= 0) {
                SysAnnouncementSend announcementSend = new SysAnnouncementSend();
                announcementSend.setAnntId(anntId);
                announcementSend.setUserId(userIds[i]);
                announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
                announcementSend.setReadTime(refDate);
                sysAnnouncementSendMapper.insert(announcementSend);
            }
        }
        // 3. 删除多余通知用户数据
        Collection<String> delUserIds = Arrays.asList(userIds);
        LambdaQueryWrapper<SysAnnouncementSend> queryWrapper = new LambdaQueryWrapper<SysAnnouncementSend>();
        queryWrapper.notIn(SysAnnouncementSend::getUserId, delUserIds);
        queryWrapper.eq(SysAnnouncementSend::getAnntId, anntId);
        sysAnnouncementSendMapper.delete(queryWrapper);
    }
    return true;
}
Also used : SysAnnouncementSend(org.jeecg.modules.system.entity.SysAnnouncementSend) Date(java.util.Date) LambdaQueryWrapper(com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

SysAnnouncementSend (org.jeecg.modules.system.entity.SysAnnouncementSend)24 Result (org.jeecg.common.api.vo.Result)18 Date (java.util.Date)12 LoginUser (org.jeecg.common.system.vo.LoginUser)9 PutMapping (org.springframework.web.bind.annotation.PutMapping)9 LambdaQueryWrapper (com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper)6 LambdaUpdateWrapper (com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper)6 UpdateWrapper (com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper)6 Transactional (org.springframework.transaction.annotation.Transactional)6 JSONObject (com.alibaba.fastjson.JSONObject)4 IPage (com.baomidou.mybatisplus.core.metadata.IPage)3 Page (com.baomidou.mybatisplus.extension.plugins.pagination.Page)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 SysAnnouncement (org.jeecg.modules.system.entity.SysAnnouncement)3 DeleteMapping (org.springframework.web.bind.annotation.DeleteMapping)3 GetMapping (org.springframework.web.bind.annotation.GetMapping)3