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<SysNoticeModel> 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<SysNoticeModel> 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<SysNoticeModel> pageInfo=new PageInfo<>(list); 
 | 
        return pageInfo; 
 | 
    } 
 | 
    public List<SysNoticeVo> getSysNoticeByType(SysNoticeReq sysNoticeReq) { 
 | 
        List<SysNoticeVo> noticeList = null; 
 | 
        Map<String,Object> 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<String,Object> 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<String,Object> 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; 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |