记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
671ae42c
Commit
671ae42c
authored
Nov 08, 2022
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
~api:店铺商品管理:批量导入数据;
parent
067636dd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
7 deletions
+27
-7
GoblinStoreMgtGoodsImportService.java
...service/impl/manage/GoblinStoreMgtGoodsImportService.java
+21
-7
GoblinMongoUtils.java
...a/com/liquidnet/service/goblin/util/GoblinMongoUtils.java
+6
-0
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/manage/GoblinStoreMgtGoodsImportService.java
View file @
671ae42c
...
...
@@ -24,6 +24,7 @@ import org.apache.commons.lang3.ArrayUtils;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
...
...
@@ -54,11 +55,16 @@ public class GoblinStoreMgtGoodsImportService {
public
static
final
String
ALPHABET_NUMBER_32
=
"^[a-zA-Z0-9]{0,32}$"
;
public
void
goodsInformationDataAnalysisProcessing
(
MultipartFile
file
,
String
uid
,
String
storeId
)
throws
IOException
{
ArrayList
<
String
>
skuBarCodeTmpList
=
CollectionUtil
.
arrayListString
();
ArrayList
<
GoblinGoodsInfoVo
>
goodsInfoVos
=
ObjectUtil
.
goblinGoodsInfoVoArrayList
();
ArrayList
<
GoblinGoodsSkuInfoVo
>
goodsSkuInfoVos
=
ObjectUtil
.
getGoblinGoodsSkuInfoVoArrayList
();
LinkedList
<
Object
[]>
initGoodsSkuObjs
=
CollectionUtil
.
linkedListObjectArr
();
EasyExcel
.
read
(
file
.
getInputStream
(),
GoblinGoodsImportDto
.
class
,
new
PageReadListener
<
GoblinGoodsImportDto
>(
dts
->
{
if
(
CollectionUtils
.
isEmpty
(
dts
))
{
throw
new
LiquidnetServiceException
(
"-1"
,
"无效操作,导入数据为空"
);
}
GoblinGoodsInfoVo
lastGoodsInfoVo
=
null
;
GoblinGoodsSkuInfoVo
lastGoodsSkuInfoVo
;
LocalDateTime
now
=
LocalDateTime
.
now
();
for
(
GoblinGoodsImportDto
dt
:
dts
)
{
log
.
debug
(
"dt1:{}"
,
dt
.
toString
());
...
...
@@ -79,7 +85,7 @@ public class GoblinStoreMgtGoodsImportService {
if
(
tobeNextSpuFlg
)
{
lastGoodsInfoVo
.
setName
(
dt
.
getSpuName
());
//*
if
(
StringUtils
.
isNotEmpty
(
dt
.
getSpuCode
()))
{
if
(
Pattern
.
matches
(
ALPHABET_NUMBER_UNDER_50
,
dt
.
getSpuCode
()))
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【商品编码格式错误】"
);
if
(
!
Pattern
.
matches
(
ALPHABET_NUMBER_UNDER_50
,
dt
.
getSpuCode
()))
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【商品编码格式错误】"
);
lastGoodsInfoVo
.
setSpuId
(
IDGenerator
.
nextMilliId2
()
+
dt
.
getSpuCode
());
//*
}
else
{
lastGoodsInfoVo
.
setSpuId
(
IDGenerator
.
nextMilliId2
());
//*
...
...
@@ -112,17 +118,24 @@ public class GoblinStoreMgtGoodsImportService {
lastGoodsInfoVo
.
setCreatedBy
(
uid
);
//*
lastGoodsInfoVo
.
setStoreId
(
storeId
);
//*
this
.
goodsInformationDataAnalysisProcessingForSku
(
dt
,
lastGoodsInfoVo
,
uid
,
storeId
,
now
,
true
,
goodsSkuInfoVos
,
initGoodsSkuObjs
);
lastGoodsSkuInfoVo
=
this
.
goodsInformationDataAnalysisProcessingForSku
(
dt
,
lastGoodsInfoVo
,
uid
,
storeId
,
now
,
true
,
goodsSkuInfoVos
,
initGoodsSkuObjs
);
goodsInfoVos
.
add
(
lastGoodsInfoVo
);
}
else
{
this
.
goodsInformationDataAnalysisProcessingForSku
(
dt
,
lastGoodsInfoVo
,
uid
,
storeId
,
now
,
false
,
goodsSkuInfoVos
,
initGoodsSkuObjs
);
lastGoodsSkuInfoVo
=
this
.
goodsInformationDataAnalysisProcessingForSku
(
dt
,
lastGoodsInfoVo
,
uid
,
storeId
,
now
,
false
,
goodsSkuInfoVos
,
initGoodsSkuObjs
);
}
if
(
null
!=
lastGoodsSkuInfoVo
&&
skuBarCodeTmpList
.
contains
(
lastGoodsSkuInfoVo
.
getSkuNo
()))
{
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【表格内规格条码重复】"
);
}
log
.
debug
(
"dt2:{}"
,
lastGoodsInfoVo
);
}
log
.
debug
(
"dt3-1:{}"
,
JsonUtils
.
toJson
(
goodsInfoVos
));
log
.
debug
(
"dt3-2:{}"
,
JsonUtils
.
toJson
(
goodsSkuInfoVos
));
if
(
goblinMongoUtils
.
countMgtGoodsSkuBySkuNoList
(
storeId
,
skuBarCodeTmpList
)
>
0
)
{
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【规格条码与已添加商品条码重复】"
);
}
goblinMongoUtils
.
insertMgtGoodsInfoVos
(
goodsInfoVos
);
goblinMongoUtils
.
insertMgtGoodsSkuInfoVos
(
goodsSkuInfoVos
);
goodsSkuInfoVos
.
forEach
(
r
->
goblinRedisUtils
.
setSkuStock
(
null
,
r
.
getSkuId
(),
r
.
getSkuStock
()));
...
...
@@ -154,7 +167,7 @@ public class GoblinStoreMgtGoodsImportService {
}).
sheet
().
doReadSync
();
}
private
void
goodsInformationDataAnalysisProcessingForSku
(
GoblinGoodsImportDto
dt
,
GoblinGoodsInfoVo
lastGoodsInfoVo
,
private
GoblinGoodsSkuInfoVo
goodsInformationDataAnalysisProcessingForSku
(
GoblinGoodsImportDto
dt
,
GoblinGoodsInfoVo
lastGoodsInfoVo
,
String
uid
,
String
storeId
,
LocalDateTime
now
,
boolean
hasNextSpuFlg
,
List
<
GoblinGoodsSkuInfoVo
>
goodsSkuInfoVos
,
LinkedList
<
Object
[]>
initGoodsSkuObjs
)
{
GoblinGoodsSkuInfoVo
skuInfoVo
=
GoblinGoodsSkuInfoVo
.
getNew
();
...
...
@@ -201,7 +214,7 @@ public class GoblinStoreMgtGoodsImportService {
spuSpecVo
.
setSpecValues
(
spuSpecValueVos
);
}
}
else
{
// 不匹配的规格直接跳过(默认只匹配商品第一行数据中的规格项)
return
;
return
null
;
}
}
}
...
...
@@ -211,7 +224,7 @@ public class GoblinStoreMgtGoodsImportService {
skuInfoVo
.
setPrice
(
dt
.
getPrice
());
//*
skuInfoVo
.
setPriceMember
(
dt
.
getPrice
());
//*
if
(
StringUtils
.
isNotEmpty
(
dt
.
getSkuCode
()))
{
if
(
Pattern
.
matches
(
ALPHABET_NUMBER_UNDER_50
,
dt
.
getSkuCode
()))
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【规格编码格式错误】"
);
if
(
!
Pattern
.
matches
(
ALPHABET_NUMBER_UNDER_50
,
dt
.
getSkuCode
()))
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【规格编码格式错误】"
);
skuInfoVo
.
setSkuId
(
lastGoodsInfoVo
.
getSpuId
().
concat
(
dt
.
getSkuCode
()).
concat
(
StringUtils
.
right
(
String
.
valueOf
(
System
.
nanoTime
()),
5
)));
//*
}
else
{
skuInfoVo
.
setSkuId
(
lastGoodsInfoVo
.
getSpuId
().
concat
(
StringUtils
.
right
(
String
.
valueOf
(
System
.
nanoTime
()),
5
)));
//*
...
...
@@ -225,7 +238,7 @@ public class GoblinStoreMgtGoodsImportService {
// skuInfoVo.setSkuPic("");// 设置默认图片
}
if
(
StringUtils
.
isNotEmpty
(
dt
.
getSkuBarCode
()))
{
if
(
Pattern
.
matches
(
ALPHABET_NUMBER_32
,
dt
.
getSkuCode
()))
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【规格条码格式错误】"
);
if
(
!
Pattern
.
matches
(
ALPHABET_NUMBER_32
,
dt
.
getSkuCode
()))
throw
new
LiquidnetServiceException
(
"-1"
,
"数据内容不规范【规格条码格式错误】"
);
skuInfoVo
.
setSkuNo
(
dt
.
getSkuBarCode
());
//*
}
else
{
skuInfoVo
.
setSkuNo
(
lastGoodsInfoVo
.
getSpuNo
());
//*
...
...
@@ -275,5 +288,6 @@ public class GoblinStoreMgtGoodsImportService {
lastGoodsInfoVo
.
setPriceGe
(
skuInfoVo
.
getPrice
().
compareTo
(
priceGe
)
<
0
?
skuInfoVo
.
getPrice
()
:
priceGe
);
lastGoodsInfoVo
.
setPriceLe
(
priceLe
.
compareTo
(
skuInfoVo
.
getPrice
())
<
0
?
skuInfoVo
.
getPrice
()
:
priceLe
);
}
return
skuInfoVo
;
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinMongoUtils.java
View file @
671ae42c
...
...
@@ -840,6 +840,12 @@ public class GoblinMongoUtils {
return
pagedResult
.
setList
(
list
).
setTotal
(
count
,
pageSize
);
}
// 根据sku条码获取sku总数
public
long
countMgtGoodsSkuBySkuNoList
(
String
storeId
,
List
<
String
>
skuNoList
)
{
return
mongoTemplate
.
count
(
Query
.
query
(
Criteria
.
where
(
"delFlg"
).
is
(
"0"
).
and
(
"storeId"
).
is
(
storeId
).
and
(
"skuNo"
).
in
(
skuNoList
)),
GoblinMixDetailsVo
.
class
,
GoblinMixDetailsVo
.
class
.
getSimpleName
());
}
// SKU信息
public
GoblinGoodsSkuInfoVo
getGoodsSkuInfoVo
(
String
skuId
)
{
// return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0").and("shelvesStatus").is("3")),
...
...
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