shicf
2024-08-29 ed09402ec0025eaae680d0bb15defcdec343661d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.product.mobile.core.service;
 
import com.product.admin.config.CmnConst;
import com.product.admin.service.PublicService;
import com.product.core.dao.BaseDao;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
import com.product.core.service.support.AbstractBaseService;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.module.sys.service.UserService;
 
import java.util.ArrayList;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
/**
 * Copyright © 6c
 *
 * @Date: 2022-03-18 08:41
 * @Author: 6c
 * @Description:
 */
@Component
public class SysMessageService extends AbstractBaseService {
    @Autowired
    private BaseDao baseDao;
    @Autowired
    private UserService userService;
 
    /**
     * 列表-已读消息
     * @param fse
     * @return
     */
    public DataTableEntity listReadMessage(FieldSetEntity fse) {
        ArrayList <Object> ps= new ArrayList<Object>();
        ps.add(SpringMVCContextHolder.getCurrentUserId());
        StringBuilder f=new StringBuilder();
        if(fse.getString("type")!=null) {
            f.append(" and SUBSTRING(m.message_type,1,1)=?");
            ps.add(fse.getString("type"));
        }
        if(fse.getString("key")!=null) {
            f.append( " and (title like concat('%',?,'%') or content like concat('%',?,'%')  or user_name like concat('%',?,'%') ) ");
            ps.add(fse.getString("key"));
            ps.add(fse.getString("key"));
            ps.add(fse.getString("key"));
        }
        StringBuilder sql = new StringBuilder();
        sql.append("\nselect m.uuid,m.title,m.content,m.send_user_id,mu.user_name send_user_name,m.send_time,m.message_type,ifnull(m.url,'') url,source_table,source_uuid,thumbnail_img ");
        sql.append("\nfrom product_sys_message m");
        sql.append("\nleft join product_sys_users mu on mu.user_id=m.send_user_id ");
        sql.append("\ninner join product_sys_message_user u on u.message_uuid=m.uuid and u.read_type=1 and u.user_id=? ").append(f);
        sql.append("\norder by m.send_time desc");
        DataTableEntity dte = baseDao.listTable(sql.toString(), ps.toArray(), fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE));
        dte.getMeta().addAliasTable("product_sys_message", "m");
        baseDao.loadPromptData(dte);
 
        // 头像
        FieldSetEntity tempFse;
        for (int i = 0;i < dte.getRows();i++) {
            tempFse = dte.getFieldSetEntity(i);
            tempFse.setValue(com.product.core.websocket.config.CmnConst.SEND_THUMBNAIL_IMG, userService.getUserAvatar(tempFse.getString("send_user_id_save_value")));
        }
 
        return dte;
    }
    /**
     * 统计分类型消息
     * @param fse
     * @return
     */
    public DataTableEntity getTypeMessage(Object type,int read) {
        
        ArrayList<Object> ps= new ArrayList<Object>();
        ps.add(SpringMVCContextHolder.getCurrentUserId());
        ps.add(read);
        String f="";
        if(type!=null) {
            f=" and SUBSTRING(message_type,1,1)=?";
            ps.add(type);
        }
        StringBuilder sql = new StringBuilder();
        sql.append("\nselect  SUBSTRING(message_type,1,1)  message_type, count(*) num from product_db_lift.product_sys_message m inner join product_db_lift.product_sys_message_user u on u.message_uuid=m.uuid  \r\n"
                + "and u.user_id=? and u.read_type=?").append(f).append(" group by  SUBSTRING(message_type,1,1)  ");
        DataTableEntity dte = baseDao.listTable(sql.toString(),ps.toArray(),Integer.MAX_VALUE, 1);
        return dte;
    }
    
}