shicf
2024-08-29 ed09402ec0025eaae680d0bb15defcdec343661d
src/main/java/com/product/mobile/core/service/SysMessageService.java
@@ -1,12 +1,15 @@
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;
@@ -31,13 +34,26 @@
     * @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.mobile_url,'') url ");
        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=?");
        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(), new Object[]{SpringMVCContextHolder.getCurrentUserId()}, fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE));
        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);
@@ -50,4 +66,26 @@
        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;
    }
}