|  | @ -0,0 +1,68 @@
 | 
												
													
														
															|  | 
 |  | package com.yihu.wlyy.job.consult;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import com.alibaba.fastjson.JSONObject;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.util.HttpUtil;
 | 
												
													
														
															|  | 
 |  | import org.quartz.Job;
 | 
												
													
														
															|  | 
 |  | import org.quartz.JobExecutionContext;
 | 
												
													
														
															|  | 
 |  | import org.quartz.JobExecutionException;
 | 
												
													
														
															|  | 
 |  | import org.slf4j.Logger;
 | 
												
													
														
															|  | 
 |  | import org.slf4j.LoggerFactory;
 | 
												
													
														
															|  | 
 |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
												
													
														
															|  | 
 |  | import org.springframework.beans.factory.annotation.Value;
 | 
												
													
														
															|  | 
 |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
												
													
														
															|  | 
 |  | import org.springframework.web.context.support.SpringBeanAutowiringSupport;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import java.util.List;
 | 
												
													
														
															|  | 
 |  | import java.util.Map;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | /**
 | 
												
													
														
															|  | 
 |  |  * 居民24小时未回复的咨询自动关闭
 | 
												
													
														
															|  | 
 |  |  * Created by yeshijie on 2017/9/10.
 | 
												
													
														
															|  | 
 |  |  */
 | 
												
													
														
															|  | 
 |  | public class FinishConsultJob implements Job {
 | 
												
													
														
															|  | 
 |  |     private static Logger logger = LoggerFactory.getLogger(FinishConsultJob.class);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @Value("${im.data_base_name}")
 | 
												
													
														
															|  | 
 |  |     private String imDb;
 | 
												
													
														
															|  | 
 |  |     @Value("${server.server_url}")
 | 
												
													
														
															|  | 
 |  |     private String server_url;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private JdbcTemplate jdbcTemplate;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private HttpUtil httpUtil;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @Override
 | 
												
													
														
															|  | 
 |  |     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
 | 
												
													
														
															|  | 
 |  |         try{
 | 
												
													
														
															|  | 
 |  |             logger.info("FinishConsultJob start.....");
 | 
												
													
														
															|  | 
 |  |             SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
 | 
												
													
														
															|  | 
 |  |             StringBuffer sql = new StringBuffer();
 | 
												
													
														
															|  | 
 |  |             sql.append("SELECT s.id session_id, s.name session_name, s.create_date session_create_time, s.last_message_time, ")
 | 
												
													
														
															|  | 
 |  |             .append("t.id topic_id, t.name topic_name, t.create_time topic_create_time, t.start_message_id ")
 | 
												
													
														
															|  | 
 |  |             .append("FROM ").append(imDb).append(".sessions s,").append(imDb).append(".wlyy_consults t ")
 | 
												
													
														
															|  | 
 |  |             .append("WHERE s.id = t.session_id  AND t.end_message_id IS NULL AND s.last_content_type in(1,2,3,4) and s.last_sender_id IN ( ")
 | 
												
													
														
															|  | 
 |  |             .append("SELECT id FROM ").append(imDb).append(".doctors d where d.id<>t.patient) ")
 | 
												
													
														
															|  | 
 |  |             .append("AND UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(s.last_message_time) > 24*3600 ")
 | 
												
													
														
															|  | 
 |  |             .append("ORDER BY t.create_time");
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             List<Map<String,Object>> list = jdbcTemplate.queryForList(sql.toString());
 | 
												
													
														
															|  | 
 |  |             list.stream().forEach(one->{
 | 
												
													
														
															|  | 
 |  |                 String topicId = one.get("topic_id").toString();
 | 
												
													
														
															|  | 
 |  |                 String topicName = one.get("topic_name").toString();
 | 
												
													
														
															|  | 
 |  |                 JSONObject userAgent = new JSONObject();
 | 
												
													
														
															|  | 
 |  |                 userAgent.put("uid","admin");
 | 
												
													
														
															|  | 
 |  |                 userAgent.put("admin_token","0a5c5258-8863-4b07-a3f9-88c768528ab4");
 | 
												
													
														
															|  | 
 |  |                 userAgent.put("token","");
 | 
												
													
														
															|  | 
 |  |                 userAgent.put("imei","admin_imei");
 | 
												
													
														
															|  | 
 |  |                 logger.info("Got topic to terminate, " + topicId + ": " + topicName + ", last active time: " + one.get("last_message_time"));
 | 
												
													
														
															|  | 
 |  |                 String response = httpUtil.sendLoginGet(server_url+"/doctor/consult/finish_consult","consult="+topicId,userAgent.toString());
 | 
												
													
														
															|  | 
 |  |                 logger.info("FinishConsultJob response....."+response);
 | 
												
													
														
															|  | 
 |  |             });
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             logger.info("FinishConsultJob end.....");
 | 
												
													
														
															|  | 
 |  |         }catch (Exception e){
 | 
												
													
														
															|  | 
 |  |             logger.error("FinishConsultJob error....."+e.getMessage());
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | }
 |