package cn.ksource.web.service.message;
|
|
import cn.ksource.beans.GG_MESSAGE;
|
import cn.ksource.beans.WORKFLOW_BASE;
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.page.PageInfo;
|
import cn.ksource.core.util.*;
|
import cn.ksource.core.web.LoginUser;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.entity.SysMessage;
|
import cn.ksource.web.Constants;
|
import cn.ksource.web.entity.message.CmsNews;
|
import cn.ksource.web.service.file.FileService;
|
import cn.ksource.web.service.wechat.WechatService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.context.ContextLoader;
|
import org.springframework.web.context.request.async.DeferredResult;
|
|
import javax.annotation.Resource;
|
import javax.servlet.ServletContext;
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.*;
|
|
@Service("messageService")
|
@SuppressWarnings("unchecked")
|
public class MessageServiceImpl implements MessageService {
|
|
@Autowired
|
private BaseDao baseDao;
|
|
@Resource(name="fileService")
|
private FileService fileService;
|
|
@Autowired
|
private WechatService wechatService;
|
|
@Override
|
public List<Map> queryMeunListById() {
|
String sql = "SELECT * FROM CMS_CATEGORY WHERE USINGSTATE = 1 ORDER BY LEVEL,ORDERNUM";
|
/*List<Map> list = baseDao.queryForList(sql, new HashMap());
|
List<Map> yjLevel = new ArrayList();
|
if(null!=list && list.size()>0) {
|
for(Map m: list) {
|
if(ConvertUtil.obj2StrBlank(m.get("LEVEL")).equals("1")) {
|
m.put("subMenu", new ArrayList());
|
yjLevel.add(m);
|
} else if(ConvertUtil.obj2StrBlank(m.get("LEVEL")).equals("2")) {
|
for(Map map : yjLevel) {
|
if(m.get("UP_ID").equals(map.get("ID"))) {
|
List listSub = (List)map.get("subMenu");
|
listSub.add(m);
|
}
|
}
|
}
|
}
|
System.out.println(yjLevel);
|
return yjLevel;
|
}*/
|
List<Map> xtgnList = baseDao.queryForList(sql, new SqlParameter());
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : xtgnList) {
|
|
//一级功能
|
if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
|
yjgnCache.put(map.get("ID").toString(), map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("subMenu", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
if (map.get("LEVEL").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("UP_ID").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("subMenu");
|
map.put("subMenu", new LinkedList<Map>());
|
list.add(map);
|
|
ejgnCache.put(map.get("ID").toString(), map);
|
continue;
|
}
|
if (map.get("LEVEL").toString().equalsIgnoreCase("3")) {
|
Map ejgnMap = ejgnCache.get(map.get("UP_ID").toString());
|
List<Map> list = (List<Map>)ejgnMap.get("subMenu");
|
map.put("subMenu", new LinkedList<Map>());
|
list.add(map);
|
sjgnCache.put(map.get("ID").toString(), map);
|
continue;
|
}
|
}
|
return resultList;
|
}
|
|
/**
|
* 通过分类id查询该分类下的信息数量
|
* @param categoryId 分类编号
|
* @return
|
*/
|
@Override
|
public int queryMessageCountByCategoryId(String categoryId) {
|
String sql = "SELECT COUNT(*) FROM CMS_NEWS WHERE CATEGORY_ID = :categoryId AND SHENPI_STATUS = 1";
|
return baseDao.queryForInteger(sql, new SqlParameter().addValue("categoryId", categoryId));
|
}
|
|
/**
|
* 保存信息
|
*/
|
@Override
|
public void saveMessage(CmsNews cmsNews,HttpServletRequest request) {
|
String idSql = "SELECT MAX(ID) FROM CMS_NEWS";
|
Integer idObj = baseDao.queryForInteger(idSql);
|
int id = 1;
|
if(null != idObj) {
|
id = idObj;
|
}
|
String sql = "INSERT INTO CMS_NEWS(ID,CATEGORY_ID,TITLE,TITLEIMAGE,CREATE_TIME,THETOP," +
|
"SUMMARY,CONTENT,THEURL,SHENPI_STATUS," +
|
"ISREPORT,REPORTID,MAIN_PEOPLE,MAIN_PEOPLE_NAME,TIMEOUT,SHOOT_ID,SHOOT_NAME,SHOW_NUM) " +
|
"VALUES (:id,:categoryId,:title,:titleimageurl,:createTime" +
|
",:thetop,:summary,:content,:theurl,:status," +
|
"2,null,:main_people,:main_people_name,:timeout,:shoot_id,:shoot_name,:show_num)";
|
Map paramMap = new HashMap();
|
paramMap.put("id", id+1);
|
paramMap.put("categoryId", cmsNews.getCategoryId());
|
paramMap.put("title", cmsNews.getTitle());
|
paramMap.put("titleimageurl", cmsNews.getTitleimageurl());
|
paramMap.put("createTime", DateUtil.getCurrentDate14());
|
paramMap.put("thetop", cmsNews.getThetop());
|
paramMap.put("summary", cmsNews.getSummary());
|
paramMap.put("content", cmsNews.getContent());
|
paramMap.put("theurl", cmsNews.getTheurl());
|
paramMap.put("status", cmsNews.getShenpiStatus());
|
paramMap.put("main_people", cmsNews.getMainPeopleId());
|
paramMap.put("main_people_name", cmsNews.getMainPeopleName());
|
paramMap.put("shoot_id", cmsNews.getShoot_id());
|
paramMap.put("shoot_name", cmsNews.getShoot_name());
|
paramMap.put("show_num", cmsNews.getShow_num());
|
int categoryId = cmsNews.getCategoryId();
|
System.out.println("categoryId:"+categoryId);
|
if(categoryId==10){
|
String timeout = cmsNews.getTimeout();
|
System.out.println("timeout:"+timeout);
|
long timeoutt = Long.valueOf(timeout.replaceAll("-", ""));
|
paramMap.put("timeout", timeoutt);
|
}else{
|
paramMap.put("timeout", null);
|
}
|
baseDao.execute(sql, paramMap);
|
|
//上传附件
|
//fileService.uploadFile(request, ConvertUtil.obj2Str(id+1));
|
LoginUser loginUser = WebUtil.getLoginUser(request);
|
String createUserId = String.valueOf(loginUser.getLoginUser().get("ID"));
|
String createUserName = String.valueOf(loginUser.getLoginUser().get("LOGINNAME"));
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("business_id", ConvertUtil.obj2Str(id+1));
|
params.put("userId", createUserId);
|
params.put("userName", createUserName);
|
fileService.uploadFile(params);
|
}
|
|
/**
|
* 查询指定分类下的列表信息
|
*/
|
@Override
|
public Map queryMessageListJson(String categoryId, int page, int pageSize) {
|
StringBuilder builder = new StringBuilder("SELECT * FROM CMS_NEWS WHERE CATEGORY_ID = :categoryId AND SHENPI_STATUS=1");
|
StringBuilder countBuilder = new StringBuilder("SELECT COUNT(ID) FROM CMS_NEWS WHERE CATEGORY_ID = :categoryId AND SHENPI_STATUS=1");
|
Map paramMap = new HashMap();
|
builder.append(" ORDER BY THETOP ASC,CREATE_TIME DESC");
|
builder.append(" LIMIT :begin,:size");
|
page = page==0?1:page;
|
pageSize = pageSize==0?10:pageSize;
|
int begin = (page-1)*pageSize;
|
paramMap.put("begin", begin);
|
paramMap.put("size", pageSize);
|
paramMap.put("categoryId", categoryId);
|
int count = baseDao.queryForInteger(countBuilder.toString(), paramMap);
|
List<Map> resultList = new ArrayList<Map>();
|
if(count>0) {
|
resultList = baseDao.queryForList(builder.toString(),paramMap);
|
for(Map map : resultList) {
|
map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd", map.get("CREATE_TIME")));
|
}
|
}
|
Map resultMap = new HashMap();
|
resultMap.put("total", count); //信息总数
|
resultMap.put("rows", resultList);
|
return resultMap;
|
}
|
|
/**
|
* 删除指定id的信息
|
*/
|
@Override
|
public void deleteMessage(String id) {
|
String sql = "DELETE FROM CMS_NEWS WHERE ID = :id";
|
baseDao.execute(sql, new SqlParameter().addValue("id", id));
|
}
|
|
/**
|
* 通过信息id查询信息详细信息
|
*/
|
@Override
|
public Map queryMessageById(String messageId) {
|
String sql = "SELECT * FROM CMS_NEWS WHERE ID = :id";
|
return baseDao.queryForMap(sql, new SqlParameter().addValue("id", messageId));
|
}
|
|
/**
|
* 修改信息内容
|
*/
|
@Override
|
public void updateMessage(CmsNews cmsNews) {
|
long updateTime = DateUtil.getCurrentDate14();
|
String sql = "UPDATE CMS_NEWS SET TITLE = :title,TITLEIMAGE = :titleimageurl,UPDATE_TIME = :updateTime,THETOP = :thetop," +
|
"SUMMARY = :summary,CONTENT = :content,THEURL = :theurl" +
|
",MAIN_PEOPLE=:main_people,MAIN_PEOPLE_NAME=:main_people_name,TIMEOUT=:timeout,SHOOT_ID=:shoot_id,SHOOT_NAME=:shoot_name,SHOW_NUM = :show_num WHERE ID = :id";
|
Map paramMap = new HashMap();
|
|
paramMap.put("title", cmsNews.getTitle());
|
paramMap.put("titleimageurl", cmsNews.getTitleimageurl());
|
paramMap.put("updateTime", updateTime);
|
paramMap.put("thetop", cmsNews.getThetop());
|
paramMap.put("summary", cmsNews.getSummary());
|
paramMap.put("content", cmsNews.getContent());
|
paramMap.put("theurl", cmsNews.getTheurl());
|
paramMap.put("main_people", cmsNews.getMainPeopleId());
|
paramMap.put("main_people_name", cmsNews.getMainPeopleName());
|
paramMap.put("shoot_id", cmsNews.getShoot_id());
|
paramMap.put("shoot_name", cmsNews.getShoot_name());
|
paramMap.put("show_num", cmsNews.getShow_num());
|
if(cmsNews.getCategoryId()==10){
|
String time = cmsNews.getTimeout();
|
long timeout = Long.valueOf(time.replaceAll("-", ""));
|
paramMap.put("timeout", timeout);
|
|
}else{
|
paramMap.put("timeout", null);
|
}
|
paramMap.put("id", cmsNews.getId());
|
baseDao.execute(sql, paramMap);
|
|
}
|
|
/**
|
* 查询
|
*/
|
@Override
|
public List queryAttachment(String messageId) {
|
String sql = "SELECT * FROM CMS_ATTACHEMENTS WHERE NEWS_ID = :messageId";
|
return baseDao.queryForList(sql, new SqlParameter().addValue("messageId", messageId));
|
}
|
|
@Override
|
public boolean sendMessage(GG_MESSAGE message) {
|
String msgId = message.getId();
|
String selectSql = "SELECT B.ISWECHAT,B.ISPHONE,B.ISEMAIL,B.SJHM,B.EMAIL,B.OPEN_ID,B.REMIND_TYPE,B.ID AS USER_ID FROM GG_MESSAGE_RECEIVER A,GG_USER B WHERE A.RECEIVER_ID = B.ID AND B.ZT = 1 AND A.MESSAGE_ID = :msgId ";
|
List<Map> msgs = baseDao.queryForList(selectSql,new SqlParameter("msgId",msgId));
|
if(null!=msgs && msgs.size()>0) {
|
//系统内消息推送对象
|
SysMessage sysMessage = new SysMessage(message.getTitle(),message.getWeb_url());
|
|
List<String> emails = new ArrayList<String>();
|
List<String> openIds = new ArrayList<String>();
|
List<String> userIds = new ArrayList<String>();
|
//手机号码字符串
|
String mobile = "";
|
for(Map msg : msgs) {
|
String userId = ConvertUtil.obj2StrBlank(msg.get("USER_ID"));
|
// 推送系统内消息
|
ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext();
|
Map<String,DeferredResult<SysMessage>> messageContext = (Map<String,DeferredResult<SysMessage>>)servletContext.getAttribute("messageContext");
|
if (messageContext != null && !messageContext.isEmpty() && messageContext.keySet() != null) {
|
System.out.println("connection size" + messageContext.size());
|
for (String key : messageContext.keySet()) {
|
try {
|
if (key.indexOf(userId) == 0) {//需要发送
|
if (messageContext.get(key) != null) {
|
if (!messageContext.get(key).isSetOrExpired()) {
|
messageContext.get(key).setResult(sysMessage);
|
}
|
}
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
}
|
//系统内消息推送完毕
|
userIds.add(userId);
|
String remindType = ConvertUtil.obj2StrBlank(msg.get("REMIND_TYPE"));
|
String isWechat = ConvertUtil.obj2StrBlank(msg.get("ISWECHAT"));
|
if(isWechat.equals("2") && ((StringUtil.notEmpty(remindType) && remindType.substring(2, 3).equals("1"))||!StringUtil.notEmpty(remindType))) {
|
openIds.add(ConvertUtil.obj2StrBlank(msg.get("OPEN_ID")));
|
}
|
|
if(StringUtil.notEmpty(remindType)) {
|
String isEmail = ConvertUtil.obj2StrBlank(msg.get("ISEMAIL"));
|
if(isEmail.equals("2") && remindType.substring(1, 2).equals("1")) {
|
emails.add(ConvertUtil.obj2StrBlank(msg.get("EMAIL")));
|
}
|
|
String isPhone = ConvertUtil.obj2StrBlank(msg.get("ISPHONE"));
|
if(isPhone.equals("2") && remindType.substring(0, 1).equals("1")) {
|
//组装手机号码
|
String telphoneNum = ConvertUtil.obj2StrBlank(msg.get("SJHM"));
|
if(StringUtil.isNotBlank(telphoneNum)){
|
if(mobile.equals("")){
|
mobile = mobile + telphoneNum;
|
}else{
|
mobile = mobile + "," + telphoneNum;
|
}
|
}
|
}
|
}
|
|
}
|
//发送短信
|
try {
|
SMSUtil.sendSMS(SMSUtil.getOrderTipMsg(Constants.mapSC_MESSAGE_TYPE.get(String.valueOf(message.getType())),message.getTitle()),mobile);
|
} catch (Exception e) {
|
System.out.println("------------------------>发送短信异常");
|
}
|
|
if(emails.size()>0) {
|
String[] email = (String[])emails.toArray(new String[emails.size()]);
|
try {
|
EmailUtil.sendEmail(email, message.getTitle(), message.getContent(), null);
|
} catch (Exception e) {
|
System.out.println("------------------------>发送邮件异常");
|
}
|
}
|
|
if(openIds.size()>0) {
|
String[] openId = (String[])openIds.toArray(new String[openIds.size()]);
|
try {
|
wechatService.sendSysMsg(openId, message);
|
} catch (Exception e) {
|
System.out.println("------------------------>发送微信信息异常");
|
}
|
}
|
|
}
|
return false;
|
}
|
|
/**
|
* 组装工单短信内容
|
* @param message
|
* @return
|
*/
|
private String assembleOrderContent(GG_MESSAGE message){
|
StringBuilder content = new StringBuilder();
|
content.append("【"+Constants.company_name+"】您有一条");
|
content.append(Constants.mapSC_MESSAGE_TYPE.get(String.valueOf(message.getType())));
|
content.append(message.getOrder_code());
|
content.append("工单,标题:");
|
content.append(message.getTitle());
|
content.append(",请及时处理");
|
return content.toString();
|
}
|
|
@Override
|
public boolean sendOrderRemindersMsg(String flowId,String reminder,String text) {
|
WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
|
//组装工单催办短信内容
|
String msgContent = SMSUtil.getOrderRemindMsg(reminder, base.getOrder_code(), base.getWfname(), text);
|
String title = "新的催办信息,工单编号【"+ base.getOrder_code() +"】";
|
//邮箱内容
|
String emailContent = "工单编号:" + base.getOrder_code() + "<br/>工单名称:" + base.getWfname();
|
if(StringUtil.isNotBlank(text)){
|
emailContent = emailContent + "<br/>工单内容:" + text;
|
}
|
//微信内容
|
String weChatContent = "工单编号:" + base.getOrder_code() + "\n\r工单名称:" + base.getWfname() ;
|
if(StringUtil.isNotBlank(text)){
|
weChatContent = weChatContent + "\n\r工单内容:" + text;
|
}
|
|
Map param = getRemindersUserInfo(flowId);
|
String mobiles = param.get("mobiles").toString();
|
List<String> emails = (List<String>)param.get("emails");
|
List<String> openIds = (List<String>)param.get("openIds");
|
|
System.out.println("mobiles-------------------"+mobiles);
|
System.out.println("emails-------------------"+JsonUtil.list2Json(emails));
|
System.out.println("openIds-------------------"+JsonUtil.list2Json(openIds));
|
//发送短信
|
if(StringUtil.isNotBlank(mobiles)){
|
try {
|
SMSUtil.sendSMS(msgContent,mobiles);
|
} catch (Exception e) {
|
e.printStackTrace();
|
System.out.println("------------------------>发送短信异常");
|
}
|
}
|
//发送email
|
if(emails.size()>0) {
|
String[] email = (String[])emails.toArray(new String[emails.size()]);
|
try {
|
EmailUtil.sendEmail(email, title, emailContent, null);
|
} catch (Exception e) {
|
e.printStackTrace();
|
System.out.println("------------------------>发送邮件异常");
|
}
|
}
|
|
//发送微信
|
if(openIds.size()>0) {
|
String[] openId = (String[])openIds.toArray(new String[openIds.size()]);
|
try {
|
wechatService.sendReminderTemplateMsg(openId,flowId,title,base.getBusinesstype().toString(),weChatContent,reminder,"");
|
} catch (Exception e) {
|
System.out.println("------------------------>发送微信信息异常");
|
}
|
}
|
return true;
|
}
|
|
|
/**
|
* 获取催办用户信息
|
* @param flowId
|
* @return
|
*/
|
private Map getRemindersUserInfo(String flowId){
|
Map param = new HashMap();
|
String mobiles = "";
|
List<String> emails = new ArrayList<String>();
|
List<String> openIds = new ArrayList<String>();
|
|
StringBuilder builder = new StringBuilder();
|
builder.append(" select DEAL_TYPE,CURRENT_NODE_ID,CURRENT_DEAL_ROLEIDA from workflow_base where id=:flowId ");
|
Map flowInfo = baseDao.queryForMap(builder.toString(), new SqlParameter("flowId",flowId));
|
builder.setLength(0);
|
List<Map> list = new ArrayList<Map>();
|
String nodeType = flowInfo.get("DEAL_TYPE").toString();
|
if(nodeType.equals("1")){//指定角色
|
builder.append(" SELECT U.REMIND_TYPE,U.SJHM,U.OPEN_ID,U.EMAIL FROM AC_USER_REF_ROLE G,GG_USER U ");
|
builder.append(" WHERE U.ID = G.YHBH AND G.JSBH = :groupId AND U.ZT=1 ");
|
list = baseDao.queryForList(builder.toString(),new SqlParameter("groupId",flowInfo.get("CURRENT_DEAL_ROLEIDA")));
|
}else if(nodeType.equals("2")){//指定人
|
builder.append(" SELECT u.REMIND_TYPE,u.SJHM,u.OPEN_ID,u.EMAIL FROM workflow_node n,gg_user u ");
|
builder.append(" WHERE n.CURRENT_DEALER_ID = u.ID and ( ");
|
builder.append(" ( ");
|
builder.append(" n.SAME_NODE_KEY IS NULL AND n.id = :nodeId ");
|
builder.append(" ) ");
|
builder.append(" OR ( ");
|
builder.append(" n.SAME_NODE_KEY IS NOT NULL ");
|
builder.append(" AND n.SAME_NODE_KEY = ( ");
|
builder.append(" SELECT SAME_NODE_KEY FROM workflow_node WHERE id = :nodeId ");
|
builder.append(" ) ");
|
builder.append(" ) ");
|
builder.append(" ) ");
|
list = baseDao.queryForList(builder.toString(),new SqlParameter("nodeId",flowInfo.get("CURRENT_NODE_ID")));
|
}
|
|
if(list!=null&&list.size()>0){
|
for(Map map:list){
|
//手机
|
if(map.get("REMIND_TYPE")!=null&&map.get("REMIND_TYPE").toString().substring(0, 1).equals("1")){
|
if(map.get("SJHM")!=null){
|
if(mobiles.equals("")){
|
mobiles = map.get("SJHM").toString();
|
}else{
|
mobiles = mobiles + "," + map.get("SJHM").toString();
|
}
|
}
|
}
|
//邮箱
|
if(map.get("REMIND_TYPE")!=null&&map.get("REMIND_TYPE").toString().substring(1, 2).equals("1")){
|
if(map.get("EMAIL")!=null){
|
emails.add(map.get("EMAIL").toString());
|
}
|
}
|
//微信号
|
if((map.get("REMIND_TYPE")!=null&&map.get("REMIND_TYPE").toString().substring(2, 3).equals("1"))||map.get("REMIND_TYPE")==null){
|
if(map.get("OPEN_ID")!=null){
|
openIds.add(map.get("OPEN_ID").toString());
|
}
|
}
|
}
|
}
|
param.put("mobiles", mobiles);
|
param.put("emails", emails);
|
param.put("openIds", openIds);
|
|
return param;
|
}
|
|
@Override
|
public boolean sendNoticeMessage(GG_MESSAGE message) {
|
String msgId = message.getId();
|
String selectSql = "SELECT B.ISWECHAT,B.ISPHONE,B.ISEMAIL,B.SJHM,B.EMAIL,B.OPEN_ID,B.REMIND_TYPE,A.WX_URL FROM GG_MESSAGE_RECEIVER A,GG_USER B WHERE A.RECEIVER_ID = B.ID AND B.ZT = 1 AND A.MESSAGE_ID = :msgId ";
|
List<Map> msgs = baseDao.queryForList(selectSql,new SqlParameter("msgId",msgId));
|
if(null!=msgs && msgs.size()>0) {
|
List<String> emails = new ArrayList<String>();
|
List<Map> openIds = new ArrayList<Map>();
|
//手机号码字符串
|
String mobile = "";
|
for(Map msg : msgs) {
|
String isWechat = ConvertUtil.obj2StrBlank(msg.get("ISWECHAT"));
|
|
String remindType = ConvertUtil.obj2StrBlank(msg.get("REMIND_TYPE"));
|
|
|
if(isWechat.equals("2") && ((StringUtil.notEmpty(remindType) && remindType.substring(2, 3).equals("1"))||!StringUtil.notEmpty(remindType))) {
|
String wxUrl = ConvertUtil.obj2StrBlank(msg.get("WX_URL"));
|
Map map = new HashMap();
|
map.put("openId", ConvertUtil.obj2StrBlank(msg.get("OPEN_ID")));
|
map.put("wxUrl", wxUrl);
|
openIds.add(map);
|
}
|
|
if(StringUtil.notEmpty(remindType)) {
|
String isEmail = ConvertUtil.obj2StrBlank(msg.get("ISEMAIL"));
|
if(isEmail.equals("2") && remindType.substring(1, 2).equals("1")) {
|
emails.add(ConvertUtil.obj2StrBlank(msg.get("EMAIL")));
|
}
|
|
String isPhone = ConvertUtil.obj2StrBlank(msg.get("ISPHONE"));
|
if(isPhone.equals("2") && remindType.substring(0, 1).equals("1")) {
|
//组装手机号码
|
String telphoneNum = ConvertUtil.obj2StrBlank(msg.get("SJHM"));
|
if(StringUtil.isNotBlank(telphoneNum)){
|
if(mobile.equals("")){
|
mobile = mobile + telphoneNum;
|
}else{
|
mobile = mobile + "," + telphoneNum;
|
}
|
}
|
}
|
}
|
/*String isWechat = ConvertUtil.obj2StrBlank(msg.get("ISWECHAT"));
|
if(isWechat.equals("2") && ((msg.get("REMIND_TYPE")!=null && msg.get("REMIND_TYPE").toString().substring(2, 3).equals("1"))||msg.get("REMIND_TYPE")==null)) {
|
String wxUrl = ConvertUtil.obj2StrBlank(msg.get("WX_URL"));
|
Map map = new HashMap();
|
map.put("openId", ConvertUtil.obj2StrBlank(msg.get("OPEN_ID")));
|
map.put("wxUrl", wxUrl);
|
openIds.add(map);
|
}
|
|
String isEmail = ConvertUtil.obj2StrBlank(msg.get("ISEMAIL"));
|
if(isEmail.equals("2") && msg.get("REMIND_TYPE")!=null && msg.get("REMIND_TYPE").toString().substring(1, 2).equals("1")) {
|
emails.add(ConvertUtil.obj2StrBlank(msg.get("EMAIL")));
|
}
|
|
String isPhone = ConvertUtil.obj2StrBlank(msg.get("ISPHONE"));
|
if(isPhone.equals("2") && msg.get("REMIND_TYPE")!=null && msg.get("REMIND_TYPE").toString().substring(0, 1).equals("1")) {
|
//组装手机号码
|
String telphoneNum = ConvertUtil.obj2StrBlank(msg.get("SJHM"));
|
if(StringUtil.isNotBlank(telphoneNum)){
|
if(mobile.equals("")){
|
mobile = mobile + telphoneNum;
|
}else{
|
mobile = mobile + "," + telphoneNum;
|
}
|
}
|
}*/
|
}
|
//发送短信
|
try {
|
SMSUtil.sendSMS(SMSUtil.getOrderTipMsg(Constants.mapSC_MESSAGE_TYPE.get(String.valueOf(message.getType())),message.getTitle()),mobile);
|
} catch (Exception e) {
|
System.out.println("------------------------>发送短信异常");
|
}
|
|
if(emails.size()>0) {
|
String[] email = (String[])emails.toArray(new String[emails.size()]);
|
try {
|
EmailUtil.sendEmail(email, message.getTitle(), message.getContent(), null);
|
} catch (Exception e) {
|
System.out.println("------------------------>发送邮件异常");
|
}
|
}
|
|
if(openIds.size()>0) {
|
//String[] openId = (String[])openIds.toArray(new String[openIds.size()]);
|
try {
|
//wechatService.sendWxMsg(openIds, message);
|
} catch (Exception e) {
|
System.out.println("------------------------>发送微信信息异常");
|
}
|
}
|
|
}
|
return false;
|
}
|
|
@Override
|
public PageInfo getMessageData(PageInfo pageInfo, Map<String, String> params) {
|
String sql = messageListSupport(params);
|
return baseDao.queryforSplitPageInfo(pageInfo,sql,params);
|
}
|
|
private String messageListSupport(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select m.id,m.send_time,m.title,m.web_url,m.sender_name,r.state,r.id receiveId from gg_message m inner join gg_message_receiver r ");
|
sql.append(" on m.id = r.message_Id where r.receiver_id = :userId ");
|
//根据标题查找标题
|
if(StringUtil.isNotBlank(params.get("title"))){
|
sql.append(" and m.title like :title ");
|
params.put("title","%"+ params.get("title") +"%");
|
}
|
//根据内容查找标题
|
if(StringUtil.isNotBlank(params.get("content"))){
|
sql.append(" and m.content like :content ");
|
params.put("content","%"+ params.get("content") +"%");
|
}
|
//根据类型查找
|
if(StringUtil.isNotBlank(params.get("type"))){
|
sql.append(" and type = :type ");
|
}
|
//根据状态查找
|
if(StringUtil.isNotBlank(params.get("state"))){
|
sql.append(" and r.state = :state ");
|
}
|
sql.append(" order by m.send_time desc ");
|
return sql.toString();
|
}
|
|
@Override
|
public Integer getMessageCount(Map<String, String> params) {
|
String sql = "select count(*) from ( " + messageListSupport(params) + " ) temp";
|
return baseDao.queryForInteger(sql,params);
|
}
|
|
@Override
|
public void doReadMessage(String businessId, String receiverId) {
|
String sql = "update gg_message m inner join gg_message_receiver r on m.id = r.message_id set state=2, READ_TIME=:curDate where "+
|
" m.BUSINESS_ID=:businessId and r.RECEIVER_ID=:receviceId";
|
Long curDate = DateUtil.getCurrentDate14();
|
SqlParameter param = new SqlParameter();
|
|
param.addValue("businessId", businessId)
|
.addValue("receviceId", receiverId)
|
.addValue("curDate", curDate);
|
baseDao.execute(sql, param);
|
}
|
|
|
}
|