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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import au.com.bytecode.opencsv.CSVWriter;
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.Sale;
import com.hdp.pi.domain.member.Member;
import com.hdp.pi.dto.kolon.KolonMemberDTO;
import com.hdp.pi.repository.kolon.KolonMemberPreassignSnRepository;
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.SaleRepository;
import com.hdp.pi.service.member.MemberService;
import com.hdp.pi.utils.kolon.FtpMemberUtil;
import com.hdp.pi.utils.kolon.FtpProductUtil;
import com.hdp.pi.utils.kolon.FtpSaleUtil;
......@@ -34,6 +39,7 @@ import com.hdp.pi.utils.kolon.Util;
* @author yangyw
*
*/
@Service
public class KolonMemberServiceImpl implements KolonMemberService {
private static final Logger LOGGER = LoggerFactory
......@@ -60,6 +66,12 @@ public class KolonMemberServiceImpl implements KolonMemberService {
@Autowired
private SaleRepository saleRepository;
@Autowired
private MongoPiShopRepository mongoPiShopRepository;
@Autowired
private MemberService memberService;
@Override
public KolonMember findOneByCsNo(String csNo) {
return kolonMemberRepository.findFirstByCsNo(csNo);
......@@ -342,20 +354,22 @@ public class KolonMemberServiceImpl implements KolonMemberService {
List<String[]> addData = getDataList();
List<String[]> updateData = getDataList();
for(KolonMember km : kolonMembers){
//查询Member,
Member member = memberService.findById(km.mid);
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)){ //加入时间在发送时间之后,数据是新增的
addData.add(new String[] { km.csNo.toString(), km.phone, km.email, km.wechatFirstName, km.wechatLastName});
addData.add(convertDataAdd(km, member, null));
}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)){ //获取数据较后的更新时间
tempSendDate = km.updateTime;
}
}
LOGGER.info("kolon发送新增数据【" + addData.size() + "】条");
LOGGER.info("kolon发送更新数据【" + updateData.size() + "】条");
LOGGER.info("kolon发送新增数据【" + (addData.size() - 1) + "】条");
LOGGER.info("kolon发送更新数据【" + (updateData.size() - 1) + "】条");
lastSendDate = tempSendDate;
CSVWriter addWriter = ftpMemberUtil.getCSVWriter(1);
writeDataToFile(addWriter, addData);
......@@ -365,10 +379,48 @@ public class KolonMemberServiceImpl implements KolonMemberService {
ftpMemberUtil.uploadFile();
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() {
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);
return addData;
}
......
......@@ -11,6 +11,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
......@@ -18,6 +19,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAutoConfiguration
@PropertySource({ "classpath:kolon.${mode}.properties","classpath:kolon.properties" })
@EnableJpaRepositories(value = "com.hdp.pi.repository")
@EnableMongoRepositories("com.hdp.pi.repository")
@EntityScan("com.hdp.pi.domain")
@ImportResource({ "classpath*:META-INF/spring/applicationContext.xml" })
@EnableScheduling
......
......@@ -213,7 +213,7 @@ public class FtpMemberUtil {
public void uploadFile() {
FTPClient ftpClient = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");
ftpClient = this.getFTPClient();
ftpClient.mkd(putFileDir);
ftpClient.changeWorkingDirectory(putFileDir);
......
package com.hdp.pi.utils.kolon;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
......@@ -7,6 +9,7 @@ import java.util.Date;
public class Util {
public static DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
public static boolean isNotNull(String s){
return (s == null || s.trim().length() < 1) ? false : true;
......@@ -50,4 +53,11 @@ public class Util {
java.util.Date date = Date.from(instant);
return date;
}
public static String dateToString(Date date){
if(date == null){
return null;
}
return dateFormat.format(new Date());
}
}
......@@ -24,5 +24,7 @@
<dubbo:reference interface="com.hdp.pi.service.baseservice.GlobalVariableService"
id="globalVariableService" version="1.0.0" />
<dubbo:reference interface="com.hdp.pi.service.member.MemberService"
id="MemberService" version="1.0.0" />
</beans>
\ No newline at end of file
......@@ -7,7 +7,9 @@ spring.datasource.max-active=20
spring.datasource.initial-size=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
......@@ -27,19 +29,19 @@ kolon.property.businessCode = 100001
#kolon.property.member.ftp.putFileDir = /SCRM/
#kolon.property.member.ftp.putAddFileName = newContact_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.userName = wechat2@kolon-report.emarsyshk.com
kolon.property.member.ftp.password = RkcsTFO*g7xM
kolon.property.member.ftp.getFileDir = /export/
kolon.property.member.ftp.getFileHistoryDir = /export/history/
kolon.property.member.ftp.userName = mark
kolon.property.member.ftp.password = yang19821123
kolon.property.member.ftp.getFileDir = /Test/export/
kolon.property.member.ftp.getFileHistoryDir = /Test/export/history/
kolon.property.member.ftp.fileName = Wechat_export
kolon.property.member.ftp.tempFileDir = /temp
kolon.property.member.ftp.tempAddFileName = /temp/tempAddContact.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateContact.csv
kolon.property.member.ftp.putFileDir = /SCRM/
kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv
kolon.property.member.ftp.tempFileDir = E:/FTP/SCRM/temp
kolon.property.member.ftp.tempAddFileName = E:/FTP/SCRM/temp/tempAddMember.csv
kolon.property.member.ftp.tempUpdateFileName = E:/FTP/SCRM/temp/tempUpdateMember.csv
kolon.property.member.ftp.putFileDir =/SCRM/
kolon.property.member.ftp.putAddFileName = newMember_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.port = 21
......
......@@ -9,6 +9,9 @@ spring.datasource.min-idle=10
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
kolon.property.businessCode = 100073
......@@ -21,11 +24,11 @@ kolon.property.member.ftp.getFileDir = /export/
kolon.property.member.ftp.getFileHistoryDir = /export/history/
kolon.property.member.ftp.fileName = Wechat_export
kolon.property.member.ftp.tempFileDir = /temp
kolon.property.member.ftp.tempAddFileName = /temp/tempAddContact.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateContact.csv
kolon.property.member.ftp.tempAddFileName = /temp/tempAddMember.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateMember.csv
kolon.property.member.ftp.putFileDir = /SCRM/
kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putAddFileName = newMember_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.port = 21
......
......@@ -9,6 +9,8 @@ spring.datasource.min-idle=1
spring.jpa.show-sql=false
spring.data.mongodb.uri=mongodb://114.215.206.32:27018/sandbox
dubbo.register=115.29.165.17:2181
kolon.property.businessCode = 100051
......@@ -22,11 +24,11 @@ kolon.property.member.ftp.getFileDir = /SCRM/export/
kolon.property.member.ftp.getFileHistoryDir = /SCRM/export/history/
kolon.property.member.ftp.fileName = Wechat_export
kolon.property.member.ftp.tempFileDir = /temp
kolon.property.member.ftp.tempAddFileName = /temp/tempAddContact.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateContact.csv
kolon.property.member.ftp.tempAddFileName = /temp/tempAddMember.csv
kolon.property.member.ftp.tempUpdateFileName = /temp/tempUpdateMember.csv
kolon.property.member.ftp.putFileDir = /SCRM/
kolon.property.member.ftp.putAddFileName = newContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName = updateContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putAddFileName = newMember_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.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