Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gogirl-miniapp-backend
Overview
Overview
Details
Activity
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
huluobin
gogirl-miniapp-backend
Commits
e91cb4a9
Commit
e91cb4a9
authored
Jun 15, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
excel 导入
parent
5a9e3490
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
153 additions
and
5 deletions
+153
-5
MallProduct.java
...main/java/com/gogirl/domain/product/mall/MallProduct.java
+32
-0
ExcelListener.java
...n/java/com/gogirl/infrastructure/excel/ExcelListener.java
+3
-2
MallProductExcelListener.java
...gogirl/infrastructure/excel/MallProductExcelListener.java
+72
-0
ImportMallProductExcel.java
...m/gogirl/shared/product/excel/ImportMallProductExcel.java
+30
-0
ImportPurchaseSkuExcel.java
...m/gogirl/shared/product/excel/ImportPurchaseSkuExcel.java
+1
-1
Test.java
src/test/java/com/gogirl/Test.java
+15
-2
No files found.
src/main/java/com/gogirl/domain/product/mall/MallProduct.java
View file @
e91cb4a9
...
...
@@ -20,57 +20,86 @@ public class MallProduct {
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
private
String
productSku
;
@ApiModelProperty
(
"商品名称"
)
private
String
name
;
@ApiModelProperty
(
"商品副标题"
)
private
String
subTitle
;
@ApiModelProperty
(
"商品封面图"
)
private
String
coverImages
;
@ApiModelProperty
(
"商品头图,逗号分隔"
)
private
String
headImages
;
@ApiModelProperty
(
"商品详情图,逗号分隔"
)
private
String
detailImages
;
@ApiModelProperty
(
"颜色,逗号分隔"
)
private
String
color
;
@ApiModelProperty
(
"商品价格"
)
private
BigDecimal
price
;
@ApiModelProperty
(
"原产地"
)
private
String
originPlace
;
@ApiModelProperty
(
"原产地"
)
private
String
shelfLife
;
@ApiModelProperty
(
"成分"
)
private
String
ingredient
;
@ApiModelProperty
(
"商品描述"
)
private
String
description
;
@ApiModelProperty
(
"商品规格"
)
private
String
specification
;
@ApiModelProperty
(
"规格单位"
)
private
String
unit
;
@ApiModelProperty
(
"品牌"
)
private
String
brand
;
@ApiModelProperty
(
"重量"
)
private
String
weight
;
@ApiModelProperty
(
"物流说明"
)
private
String
courierInfo
;
@ApiModelProperty
(
"保障说明"
)
private
String
guaranteeInfo
;
@ApiModelProperty
(
"售后说明"
)
private
String
afterSaleInfo
;
@ApiModelProperty
(
"详情视频"
)
private
String
detailVideo
;
@ApiModelProperty
(
"是否热卖 1-是 2-否"
)
private
Integer
isHot
;
@ApiModelProperty
(
"1-已上架 ,2-已下架"
)
private
Integer
status
;
private
Date
createTime
;
private
String
parentId
;
private
String
colorNo
;
private
Date
updateTime
;
@ApiModelProperty
(
"会员价"
)
private
BigDecimal
memberPrice
;
@ApiModelProperty
(
"特价"
)
private
BigDecimal
bargainPrice
;
@ApiModelProperty
(
"是否开启特价 1-是 2否"
)
private
Integer
isBargainPrice
;
...
...
@@ -81,6 +110,9 @@ public class MallProduct {
@ApiModelProperty
(
"首页标题"
)
private
String
indexTitle
;
@ApiModelProperty
(
"生产系统编码"
)
private
String
prodSysCode
;
@TableField
(
exist
=
false
)
private
List
<
MallCategory
>
mallCategoryList
;
...
...
src/main/java/com/gogirl/infrastructure/
common/uti
l/ExcelListener.java
→
src/main/java/com/gogirl/infrastructure/
exce
l/ExcelListener.java
View file @
e91cb4a9
package
com
.
gogirl
.
infrastructure
.
common
.
uti
l
;
package
com
.
gogirl
.
infrastructure
.
exce
l
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.gogirl.domain.product.purchase.PurchaseSku
;
import
com.gogirl.infrastructure.common.util.StringUtils
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseSkuMapper
;
import
com.gogirl.shared.
order
.ImportPurchaseSkuExcel
;
import
com.gogirl.shared.
product.excel
.ImportPurchaseSkuExcel
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
src/main/java/com/gogirl/infrastructure/excel/MallProductExcelListener.java
0 → 100644
View file @
e91cb4a9
package
com
.
gogirl
.
infrastructure
.
excel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.gogirl.domain.product.mall.MallProduct
;
import
com.gogirl.infrastructure.mapper.product.mall.MallProductMapper
;
import
com.gogirl.shared.product.excel.ImportMallProductExcel
;
import
com.gogirl.shared.product.excel.ImportPurchaseSkuExcel
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/6/12 5:54 下午
*/
public
class
MallProductExcelListener
extends
AnalysisEventListener
<
ImportMallProductExcel
>
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ImportPurchaseSkuExcel
.
class
);
private
final
MallProductMapper
mallProductMapper
;
/**
* 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
*/
private
static
final
int
BATCH_COUNT
=
5
;
List
<
ImportMallProductExcel
>
list
=
new
ArrayList
<>();
public
MallProductExcelListener
(
MallProductMapper
mallProductMapper
)
{
this
.
mallProductMapper
=
mallProductMapper
;
}
@Override
public
void
invoke
(
ImportMallProductExcel
data
,
AnalysisContext
context
)
{
LOGGER
.
info
(
"解析到一条数据:{}"
,
JSON
.
toJSONString
(
data
));
list
.
add
(
data
);
if
(
list
.
size
()
>=
BATCH_COUNT
)
{
syncData
();
list
.
clear
();
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
syncData
();
LOGGER
.
info
(
"所有数据解析完成!"
);
}
/**
* 加上存储数据库
*/
private
void
syncData
()
{
LOGGER
.
info
(
"{}条数据,开始存储数据库!"
,
list
.
size
());
list
.
forEach
(
importMallProductExcel
->
{
MallProduct
mallProduct
=
mallProductMapper
.
selectOne
(
new
LambdaQueryWrapper
<
MallProduct
>()
.
eq
(
MallProduct:
:
getProdSysCode
,
importMallProductExcel
.
getProdSysCode
()));
mallProduct
.
setPrice
(
importMallProductExcel
.
getPrice
());
mallProduct
.
setBargainPrice
(
importMallProductExcel
.
getBargainPrice
());
mallProductMapper
.
updateById
(
mallProduct
);
});
LOGGER
.
info
(
"存储数据库成功!"
);
}
}
src/main/java/com/gogirl/shared/product/excel/ImportMallProductExcel.java
0 → 100644
View file @
e91cb4a9
package
com
.
gogirl
.
shared
.
product
.
excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/6/12 5:55 下午
*/
@Data
public
class
ImportMallProductExcel
{
@ExcelProperty
(
"商品编码"
)
private
String
prodSysCode
;
@ExcelProperty
(
"售价"
)
private
BigDecimal
price
;
@ExcelProperty
(
"名称"
)
private
String
name
;
@ExcelProperty
(
"折扣价"
)
private
BigDecimal
bargainPrice
;
}
src/main/java/com/gogirl/shared/
order
/ImportPurchaseSkuExcel.java
→
src/main/java/com/gogirl/shared/
product/excel
/ImportPurchaseSkuExcel.java
View file @
e91cb4a9
package
com
.
gogirl
.
shared
.
order
;
package
com
.
gogirl
.
shared
.
product
.
excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
...
...
src/test/java/com/gogirl/Test.java
View file @
e91cb4a9
...
...
@@ -31,8 +31,9 @@ import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import
com.gogirl.domain.xcx.GogirlToken
;
import
com.gogirl.domain.xcx.TimeNode
;
import
com.gogirl.domain.xcx.WeekConfig
;
import
com.gogirl.infrastructure.common.util.ExcelListener
;
import
com.gogirl.infrastructure.common.util.JsonUtilByFsJson
;
import
com.gogirl.infrastructure.excel.ExcelListener
;
import
com.gogirl.infrastructure.excel.MallProductExcelListener
;
import
com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper
;
import
com.gogirl.infrastructure.mapper.market.discount.DiscountConfigMapper
;
import
com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigWeekMapper
;
...
...
@@ -40,6 +41,7 @@ import com.gogirl.infrastructure.mapper.market.timescard.TimesCardCustomerReleva
import
com.gogirl.infrastructure.mapper.order.pay.OrderPayMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper
;
import
com.gogirl.infrastructure.mapper.product.mall.MallProductMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseSkuMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseStockMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseStockRecordMapper
;
...
...
@@ -55,7 +57,8 @@ import com.gogirl.infrastructure.mapper.xcx.TimeNodeMapper;
import
com.gogirl.infrastructure.mapper.xcx.WeekConfigMapper
;
import
com.gogirl.infrastructure.schedule.Schedule
;
import
com.gogirl.infrastructure.service.mail.MailService
;
import
com.gogirl.shared.order.ImportPurchaseSkuExcel
;
import
com.gogirl.shared.product.excel.ImportMallProductExcel
;
import
com.gogirl.shared.product.excel.ImportPurchaseSkuExcel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.assertj.core.util.Lists
;
import
org.junit.runner.RunWith
;
...
...
@@ -687,6 +690,16 @@ public class Test {
EasyExcel
.
read
(
filePath
,
ImportPurchaseSkuExcel
.
class
,
new
ExcelListener
(
purchaseSkuMapper
)).
sheet
().
doRead
();
}
@Resource
MallProductMapper
mallProductMapper
;
@org
.
junit
.
Test
public
void
importMallProduct
()
{
String
filePath
=
"/Users/huluobin/Library/Containers/com.tencent.WeWorkMac/Data/Library/Application Support/WXWork/Data/1688853793439460/Cache/File/2020-06/GOGIRL商城部分SKU价格更改2020.06.12.xlsx"
;
EasyExcel
.
read
(
filePath
,
ImportMallProductExcel
.
class
,
new
MallProductExcelListener
(
mallProductMapper
)).
sheet
().
doRead
();
}
@org
.
junit
.
Test
public
void
duplicateCouponFix
()
{
List
<
OrderManage
>
orderManageList
=
orderManageMapper
.
selectBatchIds
(
Lists
.
newArrayList
(
"13711,13744,13766,13921"
.
split
(
","
)));
...
...
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