parent
d19bc70a16
commit
0582321556
@ -1,628 +0,0 @@
|
|||||||
package au.com.royalpay.payment.manage.apps.core.impls;
|
|
||||||
|
|
||||||
import au.com.royalpay.payment.manage.analysis.core.WeekReporter;
|
|
||||||
import au.com.royalpay.payment.manage.citypartner.core.CityPartnerPrizeService;
|
|
||||||
import au.com.royalpay.payment.manage.mappers.payment.OrderMapper;
|
|
||||||
import au.com.royalpay.payment.manage.mappers.system.ClientConfigMapper;
|
|
||||||
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
|
|
||||||
import au.com.royalpay.payment.manage.mappers.system.OrgMapper;
|
|
||||||
import au.com.royalpay.payment.manage.merchants.core.ClientManager;
|
|
||||||
import au.com.royalpay.payment.manage.notice.core.MailService;
|
|
||||||
import au.com.royalpay.payment.tools.mail.MailGunClient;
|
|
||||||
import au.com.royalpay.payment.tools.mail.SendMail;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
|
|
||||||
import org.apache.commons.codec.binary.Base64;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
import org.apache.poi.hssf.usermodel.HSSFCell;
|
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
|
||||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
import org.springframework.data.redis.core.BoundListOperations;
|
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
import cn.yixblog.platform.http.HttpRequestGenerator;
|
|
||||||
import cn.yixblog.platform.http.HttpRequestResult;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by wangning on 05/01/2018.
|
|
||||||
*/
|
|
||||||
// @SpringBootTest
|
|
||||||
// @ActiveProfiles({ "local", "alipay", "wechat", "jd", "bestpay" })
|
|
||||||
// @RunWith(SpringRunner.class)
|
|
||||||
public class CustomerImpressionImplTest {
|
|
||||||
@Resource
|
|
||||||
private OrderMapper orderMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
|
||||||
@Resource
|
|
||||||
private ClientMapper clientMapper;
|
|
||||||
@Resource
|
|
||||||
private OrgMapper orgMapper;
|
|
||||||
@Resource
|
|
||||||
private MailGunClient mailGunClient;
|
|
||||||
@Resource
|
|
||||||
private ClientConfigMapper clientConfigMapper;
|
|
||||||
@Resource
|
|
||||||
private ClientManager clientManager;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private MailService mailService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private WeekReporter weekReporter;
|
|
||||||
@Resource
|
|
||||||
private CityPartnerPrizeService cityPartnerPrizeService;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void redisQueue() {
|
|
||||||
BoundListOperations<String, String> ops = stringRedisTemplate.boundListOps("customer_impression");
|
|
||||||
JSONObject order = orderMapper.find("00009201711300930013961422");
|
|
||||||
for (int i = 0; i < 10000; i++) {
|
|
||||||
ops.rightPush(order.toJSONString());
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void excel1() {
|
|
||||||
try {
|
|
||||||
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("/Users/wangning/Desktop/asd.xlsx")));
|
|
||||||
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
||||||
Iterator<Row> rowIterator = sheet.rowIterator();
|
|
||||||
Row row = null;
|
|
||||||
Cell cell = null;
|
|
||||||
Map<String, Map<String, String>> result = new HashMap<>();
|
|
||||||
while (rowIterator.hasNext()) {
|
|
||||||
row = rowIterator.next();
|
|
||||||
cell = row.getCell(0);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
|
|
||||||
String amount = cell.getStringCellValue().trim();
|
|
||||||
cell = row.getCell(1);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String dateStr = cell.getStringCellValue();
|
|
||||||
|
|
||||||
cell = row.getCell(2);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String clientId = cell.getStringCellValue();
|
|
||||||
|
|
||||||
if (result.containsKey(clientId)) {
|
|
||||||
result.get(clientId).put(dateStr, amount);
|
|
||||||
} else {
|
|
||||||
Map<String, String> ele = new HashMap<>();
|
|
||||||
ele.put(dateStr, amount);
|
|
||||||
result.put(clientId, ele);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Set<String> clients = new HashSet<>();
|
|
||||||
|
|
||||||
result.entrySet().parallelStream().forEach(p -> {
|
|
||||||
|
|
||||||
p.getValue().entrySet().parallelStream().forEach(o -> {
|
|
||||||
BigDecimal insAvg = BigDecimal.valueOf(Double.valueOf(o.getValue()));
|
|
||||||
BigDecimal pastTotal = BigDecimal.ZERO;
|
|
||||||
for (int i = 1; i < 4; i++) {
|
|
||||||
if (i == 1) {
|
|
||||||
pastTotal = BigDecimal.ZERO;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
Date tmp = DateUtils.addMonths(DateUtils.parseDate(o.getKey(), "YYYYMM"), (-i + 1));
|
|
||||||
String pastKey = String.valueOf(tmp.getYear() + 1900) + String.valueOf(tmp.getMonth());
|
|
||||||
|
|
||||||
if (p.getValue().containsKey(String.valueOf(pastKey))) {
|
|
||||||
BigDecimal pastAvgtmp = BigDecimal.valueOf(Double.parseDouble(p.getValue().get(String.valueOf(pastKey))));
|
|
||||||
pastTotal = pastTotal.add(pastAvgtmp);
|
|
||||||
} else {
|
|
||||||
i = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i == 3) {
|
|
||||||
try {
|
|
||||||
BigDecimal pastAvg = pastTotal.divide(BigDecimal.valueOf(3L), 5, BigDecimal.ROUND_HALF_DOWN);
|
|
||||||
if (pastAvg.compareTo(BigDecimal.ZERO) > 0) {
|
|
||||||
if (insAvg.divide(pastAvg, 5, BigDecimal.ROUND_HALF_DOWN).intValue() > 3) {
|
|
||||||
clients.add(p.getKey());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception ignore) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (ParseException e) {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
clients.forEach(p -> {
|
|
||||||
System.out.println(p);
|
|
||||||
});
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
|
|
||||||
OutputStream out = new FileOutputStream("/Users/wangning/Desktop/春节活动报名结果通知(包含BD名称).xlsx");
|
|
||||||
workbook.write(out);
|
|
||||||
workbook.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void excel2() {
|
|
||||||
try {
|
|
||||||
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("/Users/wangning/Desktop/qwe.xlsx")));
|
|
||||||
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
||||||
Iterator<Row> rowIterator = sheet.rowIterator();
|
|
||||||
Row row = null;
|
|
||||||
Cell cell = null;
|
|
||||||
Map<String, LinkedHashMap<String, String>> result = new HashMap<>();
|
|
||||||
while (rowIterator.hasNext()) {
|
|
||||||
row = rowIterator.next();
|
|
||||||
cell = row.getCell(3);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String orders = cell.getStringCellValue().trim();
|
|
||||||
|
|
||||||
cell = row.getCell(1);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String dateStr = cell.getStringCellValue();
|
|
||||||
|
|
||||||
cell = row.getCell(2);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String clientId = cell.getStringCellValue();
|
|
||||||
|
|
||||||
if (result.containsKey(clientId)) {
|
|
||||||
result.get(clientId).put(dateStr, orders);
|
|
||||||
} else {
|
|
||||||
LinkedHashMap<String, String> ele = new LinkedHashMap<>();
|
|
||||||
ele.put(dateStr, orders);
|
|
||||||
result.put(clientId, ele);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Set<String> clients = new HashSet<>();
|
|
||||||
|
|
||||||
for (Map.Entry<String, LinkedHashMap<String, String>> p : result.entrySet()) {
|
|
||||||
int count = 1;
|
|
||||||
for (Map.Entry<String, String> o : p.getValue().entrySet()) {
|
|
||||||
count += 1;
|
|
||||||
for (int i = 1; i < 4; i++) {
|
|
||||||
if (p.getValue().size() < 4 && count == p.getValue().size()) {
|
|
||||||
try {
|
|
||||||
if (DateUtils.addMonths(DateUtils.parseDate(o.getKey(), "YYYYMM"), 3).compareTo(new Date()) < 0) {
|
|
||||||
clients.add(p.getKey());
|
|
||||||
}
|
|
||||||
} catch (ParseException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Date tmp = null;
|
|
||||||
try {
|
|
||||||
tmp = DateUtils.addMonths(DateUtils.parseDate(o.getKey(), "YYYYMM"), i);
|
|
||||||
String pastKey = String.valueOf(tmp.getYear() + 1900) + String.valueOf(tmp.getMonth());
|
|
||||||
if (p.getValue().containsKey(String.valueOf(pastKey))) {
|
|
||||||
i = 10;
|
|
||||||
} else {
|
|
||||||
if (i == 3 && (Integer.valueOf(o.getValue()) > 99)) {
|
|
||||||
clients.add(p.getKey());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (ParseException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
System.out.println(clients.size());
|
|
||||||
|
|
||||||
// OutputStream out = new FileOutputStream("/Users/wangning/Desktop/春节活动报名结果通知(包含BD名称).xlsx");
|
|
||||||
// workbook.write(out);
|
|
||||||
workbook.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void excel3() {
|
|
||||||
|
|
||||||
List<JSONObject> clients = clientMapper.listValidClient();
|
|
||||||
Map<String,JSONObject> clientMap = new HashMap<>();
|
|
||||||
clients.parallelStream().forEach(p->{
|
|
||||||
clientMap.put(p.getString("client_id"),p);
|
|
||||||
});
|
|
||||||
try {
|
|
||||||
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("/Users/wangning/Desktop/e4.xlsx")));
|
|
||||||
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
||||||
Iterator<Row> rowIterator = sheet.rowIterator();
|
|
||||||
Row row = null;
|
|
||||||
Cell cell = null;
|
|
||||||
Map<String, LinkedHashMap<String, String>> result = new HashMap<>();
|
|
||||||
while (rowIterator.hasNext()) {
|
|
||||||
row = rowIterator.next();
|
|
||||||
cell = row.getCell(0);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String orderCounts = cell.getStringCellValue().trim();
|
|
||||||
|
|
||||||
cell = row.getCell(1);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String clientId = cell.getStringCellValue().trim();
|
|
||||||
|
|
||||||
cell = row.getCell(2);
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String dateStr = cell.getStringCellValue().trim();
|
|
||||||
|
|
||||||
if (result.containsKey(clientId)) {
|
|
||||||
result.get(clientId).put(dateStr, orderCounts);
|
|
||||||
} else {
|
|
||||||
LinkedHashMap<String, String> ele = new LinkedHashMap<>();
|
|
||||||
ele.put(dateStr, orderCounts);
|
|
||||||
result.put(clientId, ele);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Set<String> resultClients = new HashSet<>();
|
|
||||||
Date now = new Date();
|
|
||||||
for (Map.Entry<String, LinkedHashMap<String, String>> p : result.entrySet()) {
|
|
||||||
JSONObject tmpClient = clientMap.get(p.getKey());
|
|
||||||
if(tmpClient==null){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(DateUtils.addMonths(tmpClient.getDate("create_time"), 7).compareTo(now)>-1){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Map.Entry<String, String> o : p.getValue().entrySet()) {
|
|
||||||
LinkedHashMap<String,String> resultEle = p.getValue();
|
|
||||||
int compareCount = 0;
|
|
||||||
for (int i = 1; i < 7; i++) {
|
|
||||||
compareCount+=1;
|
|
||||||
if(DateUtils.addMonths(DateUtils.parseDate(o.getKey(), "YYYY-MM"), 7).compareTo(now)>-1){
|
|
||||||
i=10;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Date compareDate = DateUtils.addMonths(DateUtils.parseDate(o.getKey(), "YYYY-MM"), i);
|
|
||||||
String compareKey = DateFormatUtils.format(compareDate,"YYYY-MM");
|
|
||||||
if(resultEle.containsKey(compareKey)){
|
|
||||||
i=10;
|
|
||||||
}
|
|
||||||
if(compareCount==6){
|
|
||||||
resultClients.add(p.getKey());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
System.out.println("0---"+resultClients.size());
|
|
||||||
|
|
||||||
resultClients.forEach(p->{
|
|
||||||
System.out.println(p);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// OutputStream out = new FileOutputStream("/Users/wangning/Desktop/春节活动报名结果通知(包含BD名称).xlsx");
|
|
||||||
// workbook.write(out);
|
|
||||||
workbook.close();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void sendSimpleMessage() throws Exception {
|
|
||||||
String url = "https://api.mailgun.net/v3/dev.showcodes.com/messages?from=postmaster@mail.royalpay.com.au&to=164851225@qq.com,1029811920@qq.com&subject=啊是记录&text=暗杀苏&v:my-custom-data={\"key\":\"value\"}";
|
|
||||||
String asd = "王宁测试标题";
|
|
||||||
HttpRequestGenerator generator = new HttpRequestGenerator(url, RequestMethod.POST).addHeader("Authorization", getHeader());
|
|
||||||
|
|
||||||
HttpRequestResult res = null;
|
|
||||||
try {
|
|
||||||
res = generator.execute();
|
|
||||||
} catch (URISyntaxException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
System.out.println(res.getException());
|
|
||||||
System.out.println();
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
try {
|
|
||||||
System.out.println(res.getResponseContentJSONObj().toJSONString());
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void sendSimeMessage() throws Exception {
|
|
||||||
String url = "https://api.mailgun.net/v3/dev.showcodes.com/events";
|
|
||||||
HttpRequestGenerator generator = new HttpRequestGenerator(url, RequestMethod.POST).addHeader("Authorization", getHeader());
|
|
||||||
|
|
||||||
generator.addQueryString("ascending", "yes");
|
|
||||||
generator.addQueryString("v:my-custom-data", "123456789");
|
|
||||||
generator.addQueryString("limit", "12");
|
|
||||||
System.out.println(String.valueOf(DateUtils.addDays(new Date(), 1)));
|
|
||||||
HttpRequestResult res = null;
|
|
||||||
try {
|
|
||||||
res = generator.execute();
|
|
||||||
} catch (URISyntaxException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
System.out.println(res.getException());
|
|
||||||
System.out.println();
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
try {
|
|
||||||
System.out.println(res.getResponseContentJSONObj().toJSONString());
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getHeader() {
|
|
||||||
String auth = "api:key-96fa3b5866ace125b8ec5a9d27e19353";
|
|
||||||
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("UTF-8")));
|
|
||||||
String authHeader = "Basic " + new String(encodedAuth);
|
|
||||||
return authHeader;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void sendSimpleMessages() throws Exception {
|
|
||||||
SendMail sendMail = new SendMail();
|
|
||||||
sendMail.setFrom("info@mail.royalpay.com.au");
|
|
||||||
sendMail.setContent("<html><p>Hi</p ></html>");
|
|
||||||
List<String> list = new ArrayList<>();
|
|
||||||
list.add("testTag");
|
|
||||||
// sendMail.setTags(list);
|
|
||||||
Set<String> mailCCs = new HashSet<>();
|
|
||||||
mailCCs.add("asd1159111@163.com");
|
|
||||||
sendMail.setMailCcs(mailCCs);
|
|
||||||
Set<String> mailtos = new HashSet<>();
|
|
||||||
mailtos.add("eason.qian@royalpay.com.au");
|
|
||||||
sendMail.setMailTos(mailtos);
|
|
||||||
sendMail.setTitle("Final Test");
|
|
||||||
|
|
||||||
JSONObject result = mailGunClient.sendMail(sendMail);
|
|
||||||
System.out.println(result.toJSONString());
|
|
||||||
System.out.println(result.toJSONString());
|
|
||||||
System.out.println(result.toJSONString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void asd() {
|
|
||||||
JSONObject client = clientMapper.findClient(9);
|
|
||||||
JSONObject var = new JSONObject();
|
|
||||||
var.put("client_moniker", client.getString("client_moniker"));
|
|
||||||
var.put("short_name", client.getString("short_name"));
|
|
||||||
JSONObject result = mailGunClient.addListMember(client.getString("contact_email"), "merchants@mail.royalpay.com.au", client.getString("contact_person"),
|
|
||||||
"", var);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void fd() {
|
|
||||||
List<String> asd12eq = new ArrayList<>();
|
|
||||||
asd12eq.add("9");
|
|
||||||
JSONObject asd = clientManager.getByEmail("164851225@qq.com", 1, 1, asd12eq);
|
|
||||||
JSONArray qwe = asd.getJSONArray("data");
|
|
||||||
System.out.println(asd.getJSONArray("data"));
|
|
||||||
System.out.println(qwe);
|
|
||||||
System.out.println(asd);
|
|
||||||
System.out.println(asd);
|
|
||||||
System.out.println(asd);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void addMailUnsub() {
|
|
||||||
try {
|
|
||||||
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("/Users/wangning/Desktop/asd.xlsx")));
|
|
||||||
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
||||||
Iterator<Row> rowIterator = sheet.rowIterator();
|
|
||||||
Row row = null;
|
|
||||||
Cell cell = null;
|
|
||||||
|
|
||||||
while (rowIterator.hasNext()) {
|
|
||||||
row = rowIterator.next();
|
|
||||||
cell = row.getCell(1);
|
|
||||||
if (cell == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
CellStyle cellStyle = cell.getCellStyle();
|
|
||||||
if (cellStyle.getFillForegroundColor() == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
String clientMonikers = cell.getStringCellValue().trim();
|
|
||||||
if (clientMonikers.contains("/")) {
|
|
||||||
String[] clientMonikerArr = clientMonikers.split("/");
|
|
||||||
for (String s : clientMonikerArr) {
|
|
||||||
String tmp = s.trim().toUpperCase();
|
|
||||||
if (tmp.length() > 4 || tmp.length() == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
mailService.addUnsub(s.trim().toUpperCase());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
String tmp = clientMonikers.trim().toUpperCase();
|
|
||||||
if (tmp.length() > 4 || tmp.length() == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
mailService.addUnsub(clientMonikers.trim().toUpperCase());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void zxc() {
|
|
||||||
weekReporter.generateReport("2018-06-04", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void royalpayIndustryTransform() {
|
|
||||||
String json = "[\n" + " {\n" + " \"children\": [\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"机票\",\n"
|
|
||||||
+ " \"mccCode\": \"10001\"\n" + " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"旅游行业\",\n"
|
|
||||||
+ " \"mccCode\": \"10002\"\n" + " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"私人定制旅游\",\n"
|
|
||||||
+ " \"mccCode\": \"10003\"\n" + " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"租车\",\n"
|
|
||||||
+ " \"mccCode\": \"10004\"\n" + " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"巴士\",\n"
|
|
||||||
+ " \"mccCode\": \"10005\"\n" + " }\n" + " ],\n" + " \"label\": \"旅游出行\",\n" + " \"mccCode\": \"1\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"饭店\",\n" + " \"mccCode\": \"20001\"\n"
|
|
||||||
+ " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"奶茶店\",\n" + " \"mccCode\": \"20002\"\n"
|
|
||||||
+ " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"烧烤\",\n" + " \"mccCode\": \"20003\"\n"
|
|
||||||
+ " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"火锅\",\n" + " \"mccCode\": \"20004\"\n"
|
|
||||||
+ " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"Coffee\",\n" + " \"mccCode\": \"20005\"\n"
|
|
||||||
+ " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"酒吧\",\n" + " \"mccCode\": \"20006\"\n" + " }\n"
|
|
||||||
+ " ],\n" + " \"label\": \"餐饮\",\n" + " \"mccCode\": \"2\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"培训类\",\n" + " \"mccCode\": \"30001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"移民留学\",\n" + " \"mccCode\": \"30002\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"私人幼儿园\",\n" + " \"mccCode\": \"30003\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"教育\",\n" + " \"mccCode\": \"3\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"换汇\",\n" + " \"mccCode\": \"40001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"房产\",\n" + " \"mccCode\": \"40002\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"商务咨询\",\n" + " \"mccCode\": \"4\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"公众号服务商\",\n" + " \"mccCode\": \"50001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"各种媒体类宣传\",\n" + " \"mccCode\": \"50002\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"传媒\",\n" + " \"mccCode\": \"5\",\n"
|
|
||||||
+ " \"value\": \"{\\\"category\\\":\\\"SERVICE\\\",\\\"code\\\":\\\"7542\\\",\\\"description\\\":\\\"Car Washes\\\",\\\"parentCode\\\":\\\"S10\\\"}\"\n"
|
|
||||||
+ " },\n" + " {\n" + " \"children\": [\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"美容院\",\n"
|
|
||||||
+ " \"mccCode\": \"60001\"\n" + " },\n" + " {\n" + " \"children\": [],\n" + " \"label\": \"医疗美容\",\n"
|
|
||||||
+ " \"mccCode\": \"60002\"\n" + " }\n" + " ],\n" + " \"label\": \"医美\",\n" + " \"mccCode\": \"6\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [\n" + " {\n" + " \"label\": \"超市\",\n" + " \"mccCode\": \"70001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"服装店\",\n" + " \"mccCode\": \"70002\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"鞋店\",\n" + " \"mccCode\": \"70003\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"珠宝店\",\n" + " \"mccCode\": \"70004\"\n" + " },{\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"箱包\",\n" + " \"mccCode\": \"70005\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"零售\",\n" + " \"mccCode\": \"7\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"桌游吧\",\n" + " \"mccCode\": \"80001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"演唱会\",\n" + " \"mccCode\": \"80002\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"马术训练\",\n" + " \"mccCode\": \"80003\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"瑜伽\",\n" + " \"mccCode\": \"80004\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"健身\",\n" + " \"mccCode\": \"80005\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"社团\",\n" + " \"mccCode\": \"80006\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"网吧\",\n" + " \"mccCode\": \"80007\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"KTV\",\n" + " \"mccCode\": \"80008\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"电影\",\n" + " \"mccCode\": \"80009\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"休闲娱乐\",\n" + " \"mccCode\": \"8\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"摄影\",\n" + " \"mccCode\": \"90001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"massage\",\n" + " \"mccCode\": \"90002\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"通讯运营商\",\n" + " \"mccCode\": \"90003\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"车行\",\n" + " \"mccCode\": \"90004\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children:\":[],\n" + " \"label\":\"软件服务\",\n" + " \"mccCode\":\"90005\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"其他服务类\",\n" + " \"mccCode\": \"9\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"Hotel\",\n" + " \"mccCode\": \"100001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"Motel\",\n" + " \"mccCode\": \"100002\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"酒店\",\n" + " \"mccCode\": \"10\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"代购\",\n" + " \"mccCode\": \"110001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"物流(大宗出口贸易)\",\n" + " \"mccCode\": \"110002\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"红酒出口\",\n" + " \"mccCode\": \"110003\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"综合电商\",\n" + " \"mccCode\": \"110004\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"出口贸易\",\n" + " \"mccCode\": \"11\"\n" + " },\n" + " {\n" + " \"children\": [\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"建材\",\n" + " \"mccCode\": \"120001\"\n" + " },\n" + " {\n"
|
|
||||||
+ " \"children\": [],\n" + " \"label\": \"家居\",\n" + " \"mccCode\": \"120002\"\n" + " }\n" + " ],\n"
|
|
||||||
+ " \"label\": \"家居建材\",\n" + " \"mccCode\": \"12\"\n" + " }\n" + "]";
|
|
||||||
|
|
||||||
JSONArray jsonArray = JSONObject.parseArray(json);
|
|
||||||
|
|
||||||
try {
|
|
||||||
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("/Users/wangning/Desktop/asd.xlsx")));
|
|
||||||
XSSFSheet sheet = workbook.getSheetAt(0);
|
|
||||||
Iterator<Row> rowIterator = sheet.rowIterator();
|
|
||||||
Row row = null;
|
|
||||||
Cell cell = null;
|
|
||||||
while (rowIterator.hasNext()) {
|
|
||||||
row = rowIterator.next();
|
|
||||||
cell = row.getCell(2);
|
|
||||||
if (cell == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
|
||||||
String industryChinese = recursionIndustry(jsonArray, cell.getStringCellValue());
|
|
||||||
cell.setCellValue(industryChinese);
|
|
||||||
|
|
||||||
}
|
|
||||||
OutputStream out = new FileOutputStream("/Users/wangning/Desktop/qwe.xlsx");
|
|
||||||
workbook.write(out);
|
|
||||||
workbook.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String recursionIndustry(JSONArray jsonArray, String mccCode) {
|
|
||||||
String result = "";
|
|
||||||
for (Object o : jsonArray) {
|
|
||||||
if (StringUtils.isNotEmpty(result)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
JSONObject tmp = (JSONObject) o;
|
|
||||||
if (tmp.getString("mccCode").equals(mccCode)) {
|
|
||||||
result = tmp.getString("label");
|
|
||||||
} else {
|
|
||||||
if (tmp.getJSONArray("children") != null) {
|
|
||||||
result = recursionIndustry(tmp.getJSONArray("children"), mccCode);
|
|
||||||
} else {
|
|
||||||
result = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void zxcs(){
|
|
||||||
cityPartnerPrizeService.generateSenior("2018-02");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in new issue