package com.xzx.gc.system.service; import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.constant.SysEnum; import com.xzx.gc.common.utils.DateUtils; import com.xzx.gc.common.utils.ExceptionUtils; import com.xzx.gc.common.utils.RedisUtil; import com.xzx.gc.common.utils.StringUtils; import com.xzx.gc.entity.CityPartner; import com.xzx.gc.entity.SysNotice; import com.xzx.gc.model.admin.SysNoticeModel; import com.xzx.gc.model.system.SysNoticeReq; import com.xzx.gc.model.system.SysNoticeVo; import com.xzx.gc.system.mapper.SysNoticeMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Transactional public class SysNoticeService { @Autowired private SysNoticeMapper sysNoticeMapper; @Autowired private CityPartnerService cityPartnerService; @Autowired private RedisUtil redisUtil; public PageInfo queryNoticeList(SysNoticeModel model) { if(null!=model.getStartTime()&&!"".equals(model.getStartTime())){ model.setStartTime(model.getStartTime()+" 00:00:00"); } if(null!=model.getEndTime()&&!"".equals(model.getEndTime())){ model.setEndTime(model.getEndTime()+" 23:59:59"); } PageHelper.startPage(model.getPage(),model.getLimit()); List list = sysNoticeMapper.queryNoticeList(model); for (SysNoticeModel resModel:list) { String nickName = resModel.getNickName(); if(nickName!=null&&!"".equals(nickName)){ nickName = cn.hutool.core.codec.Base64.decodeStr(nickName); } if(null!=resModel.getContent()&&!"".equals(resModel.getContent())){ if(StringUtils.isBase64(resModel.getContent())){ resModel.setContent(Base64.decodeStr(resModel.getContent())); } } resModel.setNickName(nickName); String upid = resModel.getPartnerId(); StringBuffer partnerName=new StringBuffer(); if(null!=upid&&!"".equals(upid)){ String[] pIds = upid.split(","); for (String pid:pIds) { CityPartner cityPartner = cityPartnerService.queryById(Long.parseLong(pid)); partnerName.append(cityPartner.getPartnerName()).append(","); } String ax = partnerName.toString(); if(null!=ax&&!"".equals(ax)){ ax = ax.substring(0,ax.length()-1); resModel.setPartnerName(ax); }else{ resModel.setPartnerName("-"); } }else{ resModel.setPartnerName("-"); } } PageInfo pageInfo=new PageInfo<>(list); return pageInfo; } public List getSysNoticeByType(SysNoticeReq sysNoticeReq) { List noticeList = null; Map params = new HashMap<>(16); params.put("noticeType",sysNoticeReq.getNoticeType()); noticeList = sysNoticeMapper.getSysNoticeByType(params); if(CollUtil.isNotEmpty(noticeList)){ for (SysNoticeVo sysNoticeVo : noticeList) { String s = StringUtils.intChange2Str(Convert.toInt(sysNoticeVo.getReadNum())); sysNoticeVo.setReadNum(s); } } return noticeList; } public SysNoticeVo getSysNoticeById(SysNoticeReq sysNoticeReq) { Map params = new HashMap<>(16); params.put("noticeId",sysNoticeReq.getNoticeId()); SysNoticeVo sysNoticeById = sysNoticeMapper.getSysNoticeById(params); int num=Convert.toInt(sysNoticeById.getReadNum()); SysNotice sysNotice=new SysNotice(); sysNotice.setNoticeId(sysNoticeById.getNoticeId()); sysNotice.setReadNum(++num); sysNoticeMapper.updateByPrimaryKeySelective(sysNotice); return sysNoticeById; } public int addSysNotice(SysNoticeReq sysNoticeReq) { try { if(SysEnum.反馈建议.getValue().equals(sysNoticeReq.getNoticeType())){ sysNoticeReq.setContent(Base64.encode(sysNoticeReq.getContent())); } // Map params = new HashMap<>(16); // params.put("title",sysNoticeReq.getTitle()); // params.put("content",sysNoticeReq.getContent()); // sysNoticeReq.setCreateTime(DateUtils.getCurDateTime()); // params.put("createTime",sysNoticeReq.getCreateTime()); // params.put("createUserId",sysNoticeReq.getCreateUserId()); // params.put("picture",sysNoticeReq.getPicture()); // params.put("noticeType",sysNoticeReq.getNoticeType()); // params.put("complaintType",sysNoticeReq.getComplaintType()); sysNoticeReq.setCreateTime(DateUtils.getCurDateTime()); sysNoticeMapper.addSysNotice(sysNoticeReq); } catch (Exception e) { ExceptionUtils.err("新增公告失败",e); } return 0; } }