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;
|
}
|
|
}
|