Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
task-kolon
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
piplus-v3
task-kolon
Commits
56de2d07
Commit
56de2d07
authored
Jul 06, 2016
by
陈家荣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发送给kolon的数据新增字段
parent
e88b2d8b
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
149 additions
and
28 deletions
+149
-28
MongoPiShop.java
src/main/java/com/hdp/pi/domain/kolon/MongoPiShop.java
+35
-0
MongoPiShopRepository.java
...va/com/hdp/pi/repository/kolon/MongoPiShopRepository.java
+13
-0
KolonMemberServiceImpl.java
...java/com/hdp/pi/service/kolon/KolonMemberServiceImpl.java
+58
-6
KolonStarter.java
src/main/java/com/hdp/pi/starter/kolon/KolonStarter.java
+2
-0
FtpMemberUtil.java
src/main/java/com/hdp/pi/utils/kolon/FtpMemberUtil.java
+1
-1
Util.java
src/main/java/com/hdp/pi/utils/kolon/Util.java
+10
-0
applicationContext.xml
src/main/resources/META-INF/spring/applicationContext.xml
+3
-1
kolon.dev.properties
src/main/resources/kolon.dev.properties
+14
-12
kolon.prod.properties
src/main/resources/kolon.prod.properties
+7
-4
kolon.sandbox.properties
src/main/resources/kolon.sandbox.properties
+6
-4
No files found.
src/main/java/com/hdp/pi/domain/kolon/MongoPiShop.java
0 → 100644
View file @
56de2d07
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
;
}
src/main/java/com/hdp/pi/repository/kolon/MongoPiShopRepository.java
0 → 100644
View file @
56de2d07
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
src/main/java/com/hdp/pi/service/kolon/KolonMemberServiceImpl.java
View file @
56de2d07
...
...
@@ -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
;
}
...
...
src/main/java/com/hdp/pi/starter/kolon/KolonStarter.java
View file @
56de2d07
...
...
@@ -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
...
...
src/main/java/com/hdp/pi/utils/kolon/FtpMemberUtil.java
View file @
56de2d07
...
...
@@ -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
(
"YYYY
MM
dd"
);
ftpClient
=
this
.
getFTPClient
();
ftpClient
.
mkd
(
putFileDir
);
ftpClient
.
changeWorkingDirectory
(
putFileDir
);
...
...
src/main/java/com/hdp/pi/utils/kolon/Util.java
View file @
56de2d07
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
());
}
}
src/main/resources/META-INF/spring/applicationContext.xml
View file @
56de2d07
...
...
@@ -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
src/main/resources/kolon.dev.properties
View file @
56de2d07
...
...
@@ -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
=
new
Contact
_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
update
Contact
_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
=
new
Member
_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
update
Member
_YYYY-MM-dd.csv
kolon.property.product.ftp.server
=
exchange.si.emarsys.net
kolon.property.product.ftp.port
=
21
...
...
src/main/resources/kolon.prod.properties
View file @
56de2d07
...
...
@@ -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/tempAdd
Contact
.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdate
Contact
.csv
kolon.property.member.ftp.tempAddFileName
=
/temp/tempAdd
Member
.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdate
Member
.csv
kolon.property.member.ftp.putFileDir
=
/SCRM/
kolon.property.member.ftp.putAddFileName
=
new
Contact
_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
update
Contact
_YYYY-MM-dd.csv
kolon.property.member.ftp.putAddFileName
=
new
Member
_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
update
Member
_YYYY-MM-dd.csv
kolon.property.product.ftp.server
=
exchange.si.emarsys.net
kolon.property.product.ftp.port
=
21
...
...
src/main/resources/kolon.sandbox.properties
View file @
56de2d07
...
...
@@ -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/tempAdd
Contact
.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdate
Contact
.csv
kolon.property.member.ftp.tempAddFileName
=
/temp/tempAdd
Member
.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdate
Member
.csv
kolon.property.member.ftp.putFileDir
=
/SCRM/
kolon.property.member.ftp.putAddFileName
=
new
Contact
_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
update
Contact
_YYYY-MM-dd.csv
kolon.property.member.ftp.putAddFileName
=
new
Member
_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
update
Member
_YYYY-MM-dd.csv
kolon.property.product.ftp.server
=
exchange.si.emarsys.net
kolon.property.product.ftp.port
=
21
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment