123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package service;
- import beans.remind.Remind;
- import beans.user.User;
- import com.alibaba.fastjson.JSONObject;
- import common.Controller;
- import common.ServiceController;
- import common.YosException;
- import common.data.Row;
- import common.data.Rows;
- import common.data.RowsMap;
- import utility.email.EmailContent;
- import java.util.ArrayList;
- /**
- * 线索池消息提醒
- */
- public class OrderClueRemindService extends ServiceController {
- @Override
- public void serviceRun() throws YosException {
- RowsMap rowsMap = getCfgRowsMap();
- ArrayList<String> siteiList = getSiteids();
- for (String siteid : siteiList) {
- Row cfgRow;
- try {
- cfgRow = rowsMap.get(siteid).get(0);
- } catch (Exception e) {
- e.printStackTrace();
- cfgRow = new Row();
- }
- if (cfgRow != null) {
- int cluelife = cfgRow.getInteger("cluelife");
- int linklife = cfgRow.getInteger("linklife");
- //线索撤回
- selectfollowRows(linklife, siteid);
- //3天到期提醒
- selectRows3(siteid);
- //到期提醒
- selectRowsExpire(cluelife, siteid);
- }
- }
- }
- public RowsMap getCfgRowsMap() throws YosException {
- return dbConnect.runSqlQuery("SELECT cluelife,linklife,siteid FROM sat_ordercluerule").toRowsMap("siteid");
- }
- public ArrayList<String> getSiteids() throws YosException {
- return dbConnect.runSqlQuery("SELECT siteid FROM sys_site WHERE siteid !='GEN'").toArrayList("siteid");
- }
- /**
- * 线索撤回
- *
- * @param linklife
- * @throws YosException
- */
- public void selectfollowRows(int linklife, String siteid) throws YosException {
- Rows rows = dbConnect.runSqlQuery("SELECT * FROM sat_orderclue WHERE status='待跟进' AND DATE_SUB(CURRENT_TIME,interval " + linklife + " day) >= changedate AND siteid = '" + siteid + "'");
- ArrayList<String> sqlList = new ArrayList<>();
- for (Row row : rows) {
- Long id = row.getLong("sat_orderclueid");
- sqlList.add("UPDATE sat_orderclue SET status='待分配' WHERE sat_orderclueid = '" + id + "'");
- sqlList.add("UPDATE sat_orderclue_auth SET isused = 0 WHERE sat_orderclueid = '" + id + "' AND isused");
- }
- dbConnect.runSqlUpdate(sqlList);
- }
- /**
- * 线索3天到期
- *
- * @throws YosException
- */
- public void selectRows3(String siteid) throws YosException {
- Rows rows = dbConnect.runSqlQuery("SELECT * FROM sat_orderclue WHERE UNIX_TIMESTAMP(CURRENT_TIME)-UNIX_TIMESTAMP(changedate) >= 86400 * 3 AND status='待分配' AND UNIX_TIMESTAMP(CURRENT_TIME)-UNIX_TIMESTAMP(changedate) <= ( 86400 * 3 +1000) AND siteid = '" + siteid + "'");
- ArrayList<Long> tempIdList = new ArrayList<>();
- for (Row row : rows) {
- Long id = row.getLong("sat_orderclueid");
- Long tempUserid = getUserId(id, siteid);
- Remind remind = new Remind(siteid);
- remind.setType("应用");
- remind.setTitle("线索通知");
- remind.setContent("请注意,您有线索还有三天有效时间,请尽快跟进!");
- remind.setTouserid(tempUserid);
- remind.setObjectname("sat_orderclue");
- remind.setObjectid(id);
- remind.sendByDialogMsg().createSys_message();
- remind.setToemail(tempUserid);
- remind.sendByMail();
- }
- }
- /**
- * 线索到期
- *
- * @throws YosException
- */
- public void selectRowsExpire(int cluelife, String siteid) throws YosException {
- Rows rows = dbConnect.runSqlQuery("SELECT * FROM sat_orderclue WHERE status='待分配' AND DATE_SUB(CURRENT_TIME,interval " + cluelife + " day) >= changedate AND siteid = '" + siteid + "'");
- ArrayList<String> sqlList = new ArrayList<>();
- for (Row row : rows) {
- Long id = row.getLong("sat_orderclueid");
- sqlList.add("UPDATE sat_orderclue SET status='已过期' WHERE sat_orderclueid = '" + id + "'");
- }
- dbConnect.runSqlUpdate(sqlList);
- for (Row row : rows) {
- Long id = row.getLong("sat_orderclueid");
- Long tempUserid = getUserId(id, siteid);
- Remind remind = new Remind(siteid);
- remind.setType("应用");
- remind.setTitle("线索通知");
- remind.setContent("您有线索到期失效,请查看!");
- remind.setTouserid(tempUserid);
- remind.setObjectname("sat_orderclue");
- remind.setObjectid(id);
- remind.sendByDialogMsg().createSys_message();
- remind.setToemail(tempUserid);
- remind.sendByMail();
- }
- }
- public Long getUserId(Long id, String siteid) throws YosException {
- Long tempUserid = 0L;
- Rows useridRows = dbConnect.runSqlQuery("SELECT userid FROM sys_enterprise_hr WHERE sys_enterprise_hrid IN(SELECT hrid FROM sat_orderclue_auth WHERE sat_orderclueid = " + id + " and isused AND siteid='" + siteid + "')");
- if (useridRows.isNotEmpty()) {
- tempUserid = useridRows.get(0).getLong("userid");
- }
- return tempUserid == 0 ? -1 : tempUserid;
- }
- }
|