lisai17@sina.com 2020-11-09 10:42:37 +08:00
parent 9f92675ba1
commit b1fe10d98a
6 changed files with 168 additions and 25 deletions

View File

@ -3,6 +3,7 @@ package com.cowr.service.ssjygl.jobs;
import com.aliyun.oss.model.OSSObjectSummary;
import com.aliyun.oss.model.ObjectListing;
import com.cowr.common.oss.OSSKit;
import com.cowr.service.ssjygl.main.Config;
import com.jfinal.kit.Prop;
import com.jfinal.kit.PropKit;
import com.jfinal.log.Log;
@ -17,6 +18,8 @@ public class CleanOSSBakFileJob implements Job {
public void execute() {
try {
// 黄州和浠水的本地备份库
// 保留近两天的
String[] prefixkeys = new String[]{"ssjy/xsx/dbbak/ssjy_xsx_", "ssjy/dbbak/ssjy"};
List<String> delkeys = new ArrayList<>();
long st = System.currentTimeMillis();
@ -49,7 +52,15 @@ public class CleanOSSBakFileJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) {
try {
if (Config.isDev()) {
return;
}
execute();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
public static void main(String[] args) {

View File

@ -2,6 +2,7 @@ package com.cowr.service.ssjygl.jobs;
import com.alibaba.fastjson.JSONObject;
import com.cowr.common.utils.DateTimeUtil;
import com.cowr.service.ssjygl.main.Config;
import com.cowr.service.ssjygl.main.SvrCacheData;
import com.cowr.service.ssjygl.sms.log.SmsService;
import com.jfinal.kit.StrKit;
@ -98,13 +99,16 @@ public class StatSmsJob implements Job {
}
if (smsmap.isEmpty()) {
log.debug("%s 可以发送的短信内容", predaytm);
log.debug("%s 没有可以发送的短信内容", predaytm);
return;
}
SmsService.me.sendCustomerDayStat(smsmap);
}
/**
*
*/
public void stat() {
Date now = new Date();
Calendar c = Calendar.getInstance();
@ -121,11 +125,11 @@ public class StatSmsJob implements Job {
" from order_temp t\n" +
" where t.state = 5\n" +
" and t.customer_id is not null\n" +
// " and t.create_time like ?\n" +
" and t.create_time like ?\n" +
" group by t.supermarket_id\n" +
" ) a on a.supermarket_id = t.id\n" +
" order by t.id";
List<Record> list = Db.find(sql);//, predaytm + "%");
List<Record> list = Db.find(sql, predaytm + "%");
if (list.isEmpty()) {
log.debug("%s 没有销售数据", predaytm);
@ -156,23 +160,38 @@ public class StatSmsJob implements Job {
);
}
if (truck_num <= 0) {
log.debug("%s 无销售数据", sendtmtext);
return;
}
String supermarket_detail = StrKit.join(supdetail, "");
sendobj.put("time", sendtmtext);
sendobj.put("supermarket_count", list.size());
sendobj.put("weight", String.format("%.2f", weight));
sendobj.put("total_price", String.format("%.2f", total_price));
sendobj.put("truck_num", truck_num);
sendobj.put("supermarket_detail", supermarket_detail.substring(0, supermarket_detail.length() - 1));
System.out.println(sendobj);
SmsService.me.sendDayStat(sendobj);
}
@Override
public void execute(JobExecutionContext jobExecutionContext) {
if (Config.isDev()) {
return;
}
try {
statCustomer();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
try {
stat();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}

View File

@ -294,8 +294,6 @@ public class Config extends JFinalConfig {
} catch (Exception e) {
log.error(e.getMessage(), e);
}
new StatSmsJob().stat();
} catch (Exception e) {
log.error(e.getMessage(), e);
}

View File

@ -10,8 +10,11 @@ import com.cowr.service.ssjygl.main.SvrCacheData;
import com.cowr.sms.AliyunSmsService;
import com.jfinal.kit.StrKit;
import com.jfinal.log.Log;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.IAtom;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.*;
public class SmsService {
@ -80,6 +83,7 @@ public class SmsService {
private boolean sendBySysusers(List<Sysuser> users, String temp_code, JSONObject obj, String content, String relate_table, String relate_id) {
Date now = new Date();
List<SmsLog> logs = new ArrayList<>();
for (Sysuser sysuser : users) {
try {
@ -123,13 +127,26 @@ public class SmsService {
smslog.setRelateTable(relate_table);
smslog.setRelateId(relate_id);
smslog.save();
logs.add(smslog);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
return true;
try {
return Db.tx(new IAtom() {
@Override
public boolean run() {
int[] ret = Db.batchSave(logs, logs.size());
return ret.length == logs.size();
}
});
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return false;
}
/**
@ -295,6 +312,7 @@ public class SmsService {
/**
*
* ${time}${weight}${truck_num}${total_price}${supermarket_detail}
*
* @return
*/
public boolean sendCustomerDayStat(Map<Integer, JSONObject> smsmap) {
@ -323,6 +341,7 @@ public class SmsService {
}
Date now = new Date();
List<SmsLog> logs = new ArrayList<>();
for (Sysuser sysuser : users) {
try {
@ -335,9 +354,10 @@ public class SmsService {
String phone = sysuser.getPhone();
if (Config.isDev()) {
// 客户的这个,先全部往 13627293906 这里发,看看运行情况
// if (Config.isDev()) {
phone = "13627293906";
}
// }
log.debug("给 %s 发送短信", phone);
@ -382,12 +402,103 @@ public class SmsService {
smslog.setRelateTable(Customer.tablename);
smslog.setRelateId(customer_id.toString());
smslog.save();
logs.add(smslog);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
return true;
try {
return Db.tx(new IAtom() {
@Override
public boolean run() {
int[] ret = Db.batchSave(logs, logs.size());
return ret.length == logs.size();
}
});
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return false;
}
public boolean sendDayStat(JSONObject obj) {
try {
Date now = new Date();
List<SmsNoticeContact> list = SmsNoticeContact.dao.find("select * from sms_notice_contact t where json_contains(t.type, \"1\")");
if (list.isEmpty()) {
log.debug("没有找到短信通知联系人");
return false;
}
List<SmsLog> logs = new ArrayList<>();
for (SmsNoticeContact contact : list) {
String content = null;
try {
content = this.aliyunsms.generator(Const.SMS_TEMP_MAP.get(Const.TEMP_CODE_DAY_STAT), obj);
} catch (Exception e) {
log.error(e.getMessage(), e);
return false;
}
String phone = contact.getPhone();
if (Config.isDev()) {
phone = "13627293906";
}
String response = this.aliyunsms.send(phone, Const.TEMP_CODE_DAY_STAT, obj);
log.debug(response);
JSONObject ret = JSONObject.parseObject(response);
SmsLog smslog = new SmsLog();
smslog.setId(StrKit.getRandomUUID());
smslog.setPhone(phone);
smslog.setName(contact.getName());
smslog.setContent(obj.toJSONString());
smslog.setCreateTime(now);
smslog.setSendcontent(content);
if (ret.containsKey("BizId")) {
smslog.setBizid(ret.getString("BizId"));
}
if (ret.containsKey("Code")) {
smslog.setCode(ret.getString("Code"));
}
if (ret.containsKey("RequestId")) {
smslog.setRequestid(ret.getString("RequestId"));
}
if (ret.containsKey("RequestId")) {
smslog.setRequestid(ret.getString("RequestId"));
}
smslog.setRelateTable("stat");
smslog.setRelateId(null);
logs.add(smslog);
}
return Db.tx(new IAtom() {
@Override
public boolean run() throws SQLException {
int[] ret = Db.batchSave(logs, logs.size());
return ret.length == logs.size();
}
});
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return false;
}
}

View File

@ -38,6 +38,8 @@ public class SmsNoticeContactService extends BaseService {
}
}
model.setType(JSONArray.toJSONString(list)); // 将 ["1"] 转为 [1]
Result ret = super.save(model, sysuser);
if(ret.getCode() == Result.SUCCESS){
@ -70,6 +72,8 @@ public class SmsNoticeContactService extends BaseService {
}
}
model.setType(JSONArray.toJSONString(list)); // 将 ["1"] 转为 [1]
Result ret = super.update(model, sysuser);
if(ret.getCode() == Result.SUCCESS){

View File

@ -14,7 +14,7 @@ cleanossbakfile.job=com.cowr.service.ssjygl.jobs.CleanOSSBakFileJob
cleanossbakfile.cron= 1 0 1 * * ?
cleanossbakfile.enable=true
# 每天 8 点统计发送前一天各客户销售情况
# 每天 8 点统计发送前一天各销售情况,包含了客户信息汇总(发给客户)和总的汇总(发给公司)
statsms.job=com.cowr.service.ssjygl.jobs.StatSmsJob
statsms.cron= 0 0 8 * * ?
statsms.enable=false