Commit 56de2d07 authored by 陈家荣's avatar 陈家荣

发送给kolon的数据新增字段

parent e88b2d8b
package com.hdp.pi.domain.kolon;
import java.io.Serializable;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Document(collection = "pi_shop")
public class MongoPiShop implements Serializable{
private static final long serialVersionUID = 1L;
@Id
public String id;
@Field("shop_name")
public String shopName;
@Field("shop_address")
public String shopAddress;
@Field("ent_code")
public Integer entCode;
@Field("location")
public Double[] location;
@Field("phone")
public String phone;
@Field("shop_code")
public String shopCode;
}
package com.hdp.pi.repository.kolon;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.hdp.pi.domain.kolon.MongoPiShop;
public interface MongoPiShopRepository extends MongoRepository<MongoPiShop, String> {
public MongoPiShop findFirstById(String id);
}
\ No newline at end of file
...@@ -12,19 +12,24 @@ import org.apache.commons.lang.StringUtils; ...@@ -12,19 +12,24 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import au.com.bytecode.opencsv.CSVWriter; import au.com.bytecode.opencsv.CSVWriter;
import com.hdp.pi.domain.kolon.KolonMember; import com.hdp.pi.domain.kolon.KolonMember;
import com.hdp.pi.domain.kolon.MongoPiShop;
import com.hdp.pi.domain.kolon.Product; import com.hdp.pi.domain.kolon.Product;
import com.hdp.pi.domain.kolon.Sale; import com.hdp.pi.domain.kolon.Sale;
import com.hdp.pi.domain.member.Member;
import com.hdp.pi.dto.kolon.KolonMemberDTO; import com.hdp.pi.dto.kolon.KolonMemberDTO;
import com.hdp.pi.repository.kolon.KolonMemberPreassignSnRepository; import com.hdp.pi.repository.kolon.KolonMemberPreassignSnRepository;
import com.hdp.pi.repository.kolon.KolonMemberRepository; import com.hdp.pi.repository.kolon.KolonMemberRepository;
import com.hdp.pi.repository.kolon.MongoPiShopRepository;
import com.hdp.pi.repository.kolon.ProductRepository; import com.hdp.pi.repository.kolon.ProductRepository;
import com.hdp.pi.repository.kolon.SaleRepository; import com.hdp.pi.repository.kolon.SaleRepository;
import com.hdp.pi.service.member.MemberService;
import com.hdp.pi.utils.kolon.FtpMemberUtil; import com.hdp.pi.utils.kolon.FtpMemberUtil;
import com.hdp.pi.utils.kolon.FtpProductUtil; import com.hdp.pi.utils.kolon.FtpProductUtil;
import com.hdp.pi.utils.kolon.FtpSaleUtil; import com.hdp.pi.utils.kolon.FtpSaleUtil;
...@@ -34,6 +39,7 @@ import com.hdp.pi.utils.kolon.Util; ...@@ -34,6 +39,7 @@ import com.hdp.pi.utils.kolon.Util;
* @author yangyw * @author yangyw
* *
*/ */
@Service
public class KolonMemberServiceImpl implements KolonMemberService { public class KolonMemberServiceImpl implements KolonMemberService {
private static final Logger LOGGER = LoggerFactory private static final Logger LOGGER = LoggerFactory
...@@ -60,6 +66,12 @@ public class KolonMemberServiceImpl implements KolonMemberService { ...@@ -60,6 +66,12 @@ public class KolonMemberServiceImpl implements KolonMemberService {
@Autowired @Autowired
private SaleRepository saleRepository; private SaleRepository saleRepository;
@Autowired
private MongoPiShopRepository mongoPiShopRepository;
@Autowired
private MemberService memberService;
@Override @Override
public KolonMember findOneByCsNo(String csNo) { public KolonMember findOneByCsNo(String csNo) {
return kolonMemberRepository.findFirstByCsNo(csNo); return kolonMemberRepository.findFirstByCsNo(csNo);
...@@ -342,20 +354,22 @@ public class KolonMemberServiceImpl implements KolonMemberService { ...@@ -342,20 +354,22 @@ public class KolonMemberServiceImpl implements KolonMemberService {
List<String[]> addData = getDataList(); List<String[]> addData = getDataList();
List<String[]> updateData = getDataList(); List<String[]> updateData = getDataList();
for(KolonMember km : kolonMembers){ for(KolonMember km : kolonMembers){
//查询Member,
Member member = memberService.findById(km.mid);
if(km.dataSource == 2){ if(km.dataSource == 2){
updateData.add(new String[] { km.csNo.toString(), km.phone, km.email, km.wechatFirstName, km.wechatLastName}); updateData.add(convertDataUpdate(km, member, null));
}else if(km.dataSource == 1 && km.joinTime.after(lastSendDate)){ //加入时间在发送时间之后,数据是新增的 }else if(km.dataSource == 1 && km.joinTime.after(lastSendDate)){ //加入时间在发送时间之后,数据是新增的
addData.add(new String[] { km.csNo.toString(), km.phone, km.email, km.wechatFirstName, km.wechatLastName}); addData.add(convertDataAdd(km, member, null));
}else{ }else{
updateData.add(new String[] { km.csNo.toString(), km.phone, km.email, km.wechatFirstName, km.wechatLastName}); updateData.add(convertDataUpdate(km, member, null));
} }
if(km.updateTime != null && tempSendDate.before(km.updateTime)){ //获取数据较后的更新时间 if(km.updateTime != null && tempSendDate.before(km.updateTime)){ //获取数据较后的更新时间
tempSendDate = km.updateTime; tempSendDate = km.updateTime;
} }
} }
LOGGER.info("kolon发送新增数据【" + addData.size() + "】条"); LOGGER.info("kolon发送新增数据【" + (addData.size() - 1) + "】条");
LOGGER.info("kolon发送更新数据【" + updateData.size() + "】条"); LOGGER.info("kolon发送更新数据【" + (updateData.size() - 1) + "】条");
lastSendDate = tempSendDate; lastSendDate = tempSendDate;
CSVWriter addWriter = ftpMemberUtil.getCSVWriter(1); CSVWriter addWriter = ftpMemberUtil.getCSVWriter(1);
writeDataToFile(addWriter, addData); writeDataToFile(addWriter, addData);
...@@ -365,10 +379,48 @@ public class KolonMemberServiceImpl implements KolonMemberService { ...@@ -365,10 +379,48 @@ public class KolonMemberServiceImpl implements KolonMemberService {
ftpMemberUtil.uploadFile(); ftpMemberUtil.uploadFile();
return lastSendDate; return lastSendDate;
} }
private String[] convertDataUpdate(KolonMember km,Member member, String channelCode) {
String sex = member == null ? null : member.sex.toString();
String birthday = member == null ? null : Util.dateToString(member.birthday);
String provinceCode = member == null ? null : member.provinceCode.toString();
String cityCode = member == null ? null : member.cityCode.toString();
String sectionCode = member == null ? null : member.sectionCode.toString();
String address = member == null ? null : member.address;
return new String[] { km.csNo.toString(), km.phone, km.email, km.wechatFirstName, km.wechatLastName, sex,
birthday, provinceCode, cityCode, sectionCode,
address, null, Util.dateToString(km.updateTime), channelCode};
}
private String[] convertDataAdd(KolonMember km,Member member, String channelCode) {
//获取门店编号
if(member != null && member.user != null && member.user.sourse != null && member.user.sourse.length() > 0){
String sourse = member.user.sourse;
//获取shopID
String shopId = sourse.substring(sourse.lastIndexOf("_") + 1, sourse.length());
MongoPiShop mongoPiShop = mongoPiShopRepository.findFirstById(shopId);
channelCode = mongoPiShop.shopCode;
}
String sex = member == null ? null : member.sex.toString();
String birthday = member == null ? null : Util.dateToString(member.birthday);
String provinceCode = member == null ? null : member.provinceCode.toString();
String cityCode = member == null ? null : member.cityCode.toString();
String sectionCode = member == null ? null : member.sectionCode.toString();
String address = member == null ? null : member.address;
return new String[] { km.csNo.toString(), km.phone, km.email, km.wechatFirstName, km.wechatLastName, sex,
birthday, provinceCode, cityCode, sectionCode,
address, Util.dateToString(km.joinTime), null, channelCode};
}
private List<String[]> getDataList() { private List<String[]> getDataList() {
List<String[]> addData = new ArrayList<String[]>(); List<String[]> addData = new ArrayList<String[]>();
String[] header = "CS_NO,Phone,Email,Wechat Last Name,Wechat First Name".split(","); String field = "CS_NO,Phone,Email,Wechat Last Name,Wechat First Name, Sex, Birthday, "
+ "Province, City, District, Detail Address, Join Date, Binding Date, Channel Code";
String[] header = field.split(",");
addData.add(header); addData.add(header);
return addData; return addData;
} }
......
...@@ -11,6 +11,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -11,6 +11,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource; import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySource;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration @Configuration
...@@ -18,6 +19,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; ...@@ -18,6 +19,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAutoConfiguration @EnableAutoConfiguration
@PropertySource({ "classpath:kolon.${mode}.properties","classpath:kolon.properties" }) @PropertySource({ "classpath:kolon.${mode}.properties","classpath:kolon.properties" })
@EnableJpaRepositories(value = "com.hdp.pi.repository") @EnableJpaRepositories(value = "com.hdp.pi.repository")
@EnableMongoRepositories("com.hdp.pi.repository")
@EntityScan("com.hdp.pi.domain") @EntityScan("com.hdp.pi.domain")
@ImportResource({ "classpath*:META-INF/spring/applicationContext.xml" }) @ImportResource({ "classpath*:META-INF/spring/applicationContext.xml" })
@EnableScheduling @EnableScheduling
......
...@@ -213,7 +213,7 @@ public class FtpMemberUtil { ...@@ -213,7 +213,7 @@ public class FtpMemberUtil {
public void uploadFile() { public void uploadFile() {
FTPClient ftpClient = null; FTPClient ftpClient = null;
try { try {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");
ftpClient = this.getFTPClient(); ftpClient = this.getFTPClient();
ftpClient.mkd(putFileDir); ftpClient.mkd(putFileDir);
ftpClient.changeWorkingDirectory(putFileDir); ftpClient.changeWorkingDirectory(putFileDir);
......
package com.hdp.pi.utils.kolon; package com.hdp.pi.utils.kolon;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
...@@ -7,6 +9,7 @@ import java.util.Date; ...@@ -7,6 +9,7 @@ import java.util.Date;
public class Util { public class Util {
public static DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
public static boolean isNotNull(String s){ public static boolean isNotNull(String s){
return (s == null || s.trim().length() < 1) ? false : true; return (s == null || s.trim().length() < 1) ? false : true;
...@@ -50,4 +53,11 @@ public class Util { ...@@ -50,4 +53,11 @@ public class Util {
java.util.Date date = Date.from(instant); java.util.Date date = Date.from(instant);
return date; return date;
} }
public static String dateToString(Date date){
if(date == null){
return null;
}
return dateFormat.format(new Date());
}
} }
...@@ -24,5 +24,7 @@ ...@@ -24,5 +24,7 @@
<dubbo:reference interface="com.hdp.pi.service.baseservice.GlobalVariableService" <dubbo:reference interface="com.hdp.pi.service.baseservice.GlobalVariableService"
id="globalVariableService" version="1.0.0" /> id="globalVariableService" version="1.0.0" />
<dubbo:reference interface="com.hdp.pi.service.member.MemberService"
id="MemberService" version="1.0.0" />
</beans> </beans>
\ No newline at end of file
...@@ -7,7 +7,9 @@ spring.datasource.max-active=20 ...@@ -7,7 +7,9 @@ spring.datasource.max-active=20
spring.datasource.initial-size=1 spring.datasource.initial-size=1
spring.datasource.min-idle=1 spring.datasource.min-idle=1
spring.jpa.show-sql=true spring.jpa.show-sql=false
spring.data.mongodb.uri=mongodb://114.215.206.32:27018/piscrm
dubbo.register=172.18.5.201:3181 dubbo.register=172.18.5.201:3181
...@@ -27,19 +29,19 @@ kolon.property.businessCode = 100001 ...@@ -27,19 +29,19 @@ kolon.property.businessCode = 100001
#kolon.property.member.ftp.putFileDir = /SCRM/ #kolon.property.member.ftp.putFileDir = /SCRM/
#kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv #kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv
#kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv #kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv
kolon.property.member.ftp.server = kolon-report.emarsyshk.com kolon.property.member.ftp.server = 112.124.57.138
kolon.property.member.ftp.port = 21 kolon.property.member.ftp.port = 21
kolon.property.member.ftp.userName = wechat2@kolon-report.emarsyshk.com kolon.property.member.ftp.userName = mark
kolon.property.member.ftp.password = RkcsTFO*g7xM kolon.property.member.ftp.password = yang19821123
kolon.property.member.ftp.getFileDir = /export/ kolon.property.member.ftp.getFileDir = /Test/export/
kolon.property.member.ftp.getFileHistoryDir = /export/history/ kolon.property.member.ftp.getFileHistoryDir = /Test/export/history/
kolon.property.member.ftp.fileName = Wechat_export kolon.property.member.ftp.fileName = Wechat_export
kolon.property.member.ftp.tempFileDir = /temp kolon.property.member.ftp.tempFileDir = E:/FTP/SCRM/temp
kolon.property.member.ftp.tempAddFileName = /temp/tempAddContact.csv kolon.property.member.ftp.tempAddFileName = E:/FTP/SCRM/temp/tempAddMember.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateContact.csv kolon.property.member.ftp.tempUpdateFileName = E:/FTP/SCRM/temp/tempUpdateMember.csv
kolon.property.member.ftp.putFileDir = /SCRM/ kolon.property.member.ftp.putFileDir =/SCRM/
kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv kolon.property.member.ftp.putAddFileName = newMember_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv kolon.property.member.ftp.putUpdateFileName = updateMember_YYYY-MM-dd.csv
kolon.property.product.ftp.server = exchange.si.emarsys.net kolon.property.product.ftp.server = exchange.si.emarsys.net
kolon.property.product.ftp.port = 21 kolon.property.product.ftp.port = 21
......
...@@ -9,6 +9,9 @@ spring.datasource.min-idle=10 ...@@ -9,6 +9,9 @@ spring.datasource.min-idle=10
spring.jpa.show-sql=false spring.jpa.show-sql=false
spring.data.mongodb.uri=mongodb://future:future123456@dds-bp1e79fd467a5d542.mongodb.rds.aliyuncs.com:3717,dds-bp1e79fd467a5d541.mongodb.rds.aliyuncs.com:3717/piscrm?replicaSet=mgset-1061465
dubbo.register=10.173.227.160:2181,10.173.224.92:2181,10.173.226.96:2181 dubbo.register=10.173.227.160:2181,10.173.224.92:2181,10.173.226.96:2181
kolon.property.businessCode = 100073 kolon.property.businessCode = 100073
...@@ -21,11 +24,11 @@ kolon.property.member.ftp.getFileDir = /export/ ...@@ -21,11 +24,11 @@ kolon.property.member.ftp.getFileDir = /export/
kolon.property.member.ftp.getFileHistoryDir = /export/history/ kolon.property.member.ftp.getFileHistoryDir = /export/history/
kolon.property.member.ftp.fileName = Wechat_export kolon.property.member.ftp.fileName = Wechat_export
kolon.property.member.ftp.tempFileDir = /temp kolon.property.member.ftp.tempFileDir = /temp
kolon.property.member.ftp.tempAddFileName = /temp/tempAddContact.csv kolon.property.member.ftp.tempAddFileName = /temp/tempAddMember.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateContact.csv kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateMember.csv
kolon.property.member.ftp.putFileDir = /SCRM/ kolon.property.member.ftp.putFileDir = /SCRM/
kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv kolon.property.member.ftp.putAddFileName = newMember_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv kolon.property.member.ftp.putUpdateFileName = updateMember_YYYY-MM-dd.csv
kolon.property.product.ftp.server = exchange.si.emarsys.net kolon.property.product.ftp.server = exchange.si.emarsys.net
kolon.property.product.ftp.port = 21 kolon.property.product.ftp.port = 21
......
...@@ -9,6 +9,8 @@ spring.datasource.min-idle=1 ...@@ -9,6 +9,8 @@ spring.datasource.min-idle=1
spring.jpa.show-sql=false spring.jpa.show-sql=false
spring.data.mongodb.uri=mongodb://114.215.206.32:27018/sandbox
dubbo.register=115.29.165.17:2181 dubbo.register=115.29.165.17:2181
kolon.property.businessCode = 100051 kolon.property.businessCode = 100051
...@@ -22,11 +24,11 @@ kolon.property.member.ftp.getFileDir = /SCRM/export/ ...@@ -22,11 +24,11 @@ kolon.property.member.ftp.getFileDir = /SCRM/export/
kolon.property.member.ftp.getFileHistoryDir = /SCRM/export/history/ kolon.property.member.ftp.getFileHistoryDir = /SCRM/export/history/
kolon.property.member.ftp.fileName = Wechat_export kolon.property.member.ftp.fileName = Wechat_export
kolon.property.member.ftp.tempFileDir = /temp kolon.property.member.ftp.tempFileDir = /temp
kolon.property.member.ftp.tempAddFileName = /temp/tempAddContact.csv kolon.property.member.ftp.tempAddFileName = /temp/tempAddMember.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateContact.csv kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateMember.csv
kolon.property.member.ftp.putFileDir = /SCRM/ kolon.property.member.ftp.putFileDir = /SCRM/
kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv kolon.property.member.ftp.putAddFileName = newMember_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv kolon.property.member.ftp.putUpdateFileName = updateMember_YYYY-MM-dd.csv
kolon.property.product.ftp.server = exchange.si.emarsys.net kolon.property.product.ftp.server = exchange.si.emarsys.net
kolon.property.product.ftp.port = 21 kolon.property.product.ftp.port = 21
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment