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
2288fff5
Commit
2288fff5
authored
Jun 08, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
c541f3d9
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
141 additions
and
2 deletions
+141
-2
ExcelListener.java
.../com/gogirl/infrastructure/common/util/ExcelListener.java
+75
-0
PurchaseSkuMapper.java
...astructure/mapper/product/purchase/PurchaseSkuMapper.java
+8
-1
ImportPurchaseSkuExcel.java
.../java/com/gogirl/shared/order/ImportPurchaseSkuExcel.java
+36
-0
application.yml
src/main/resources/application.yml
+1
-1
PurchaseSkuMapper.xml
src/main/resources/mapper/product/PurchaseSkuMapper.xml
+6
-0
Test.java
src/test/java/com/gogirl/Test.java
+15
-0
No files found.
src/main/java/com/gogirl/infrastructure/common/util/ExcelListener.java
0 → 100644
View file @
2288fff5
package
com
.
gogirl
.
infrastructure
.
common
.
util
;
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.mapper.product.purchase.PurchaseSkuMapper
;
import
com.gogirl.shared.order.ImportPurchaseSkuExcel
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去
* </p>
*
* @author robbendev
* @since 2020/6/6 5:29 下午
*/
public
class
ExcelListener
extends
AnalysisEventListener
<
ImportPurchaseSkuExcel
>
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ImportPurchaseSkuExcel
.
class
);
private
final
PurchaseSkuMapper
purchaseSkuMapper
;
/**
* 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
*/
private
static
final
int
BATCH_COUNT
=
5
;
List
<
ImportPurchaseSkuExcel
>
list
=
new
ArrayList
<>();
public
ExcelListener
(
PurchaseSkuMapper
purchaseSkuMapper
)
{
this
.
purchaseSkuMapper
=
purchaseSkuMapper
;
}
@Override
public
void
invoke
(
ImportPurchaseSkuExcel
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
(
importPurchaseSkuExcel
->
{
if
(
importPurchaseSkuExcel
.
getPurchasePrice
()
==
null
&&
StringUtils
.
isNotEmpty
(
importPurchaseSkuExcel
.
getSku
()))
{
purchaseSkuMapper
.
delete
(
new
LambdaQueryWrapper
<
PurchaseSku
>().
eq
(
PurchaseSku:
:
getSku
,
importPurchaseSkuExcel
.
getSku
()));
}
PurchaseSku
purchaseSku
=
purchaseSkuMapper
.
selectBySku
(
importPurchaseSkuExcel
.
getSku
());
if
(
purchaseSku
!=
null
)
{
purchaseSku
.
setShopPrice
(
importPurchaseSkuExcel
.
getShopPrice
());
purchaseSku
.
setPurchasePrice
(
importPurchaseSkuExcel
.
getPurchasePrice
());
purchaseSkuMapper
.
updateById
(
purchaseSku
);
}
});
LOGGER
.
info
(
"存储数据库成功!"
);
}
}
\ No newline at end of file
src/main/java/com/gogirl/infrastructure/mapper/product/purchase/PurchaseSkuMapper.java
View file @
2288fff5
...
@@ -35,7 +35,6 @@ public interface PurchaseSkuMapper extends BaseMapper<PurchaseSku> {
...
@@ -35,7 +35,6 @@ public interface PurchaseSkuMapper extends BaseMapper<PurchaseSku> {
/**
/**
*
* @return
* @return
*/
*/
List
<
PurchaseSkuPOI
>
purchaseSkuExcel
();
List
<
PurchaseSkuPOI
>
purchaseSkuExcel
();
...
@@ -43,8 +42,16 @@ public interface PurchaseSkuMapper extends BaseMapper<PurchaseSku> {
...
@@ -43,8 +42,16 @@ public interface PurchaseSkuMapper extends BaseMapper<PurchaseSku> {
/**
/**
* 获取款式id对应的采购sku
* 获取款式id对应的采购sku
*
* @param list
* @param list
* @return
* @return
*/
*/
List
<
PurchaseSku
>
listByProduceIds
(
List
<
Integer
>
list
);
List
<
PurchaseSku
>
listByProduceIds
(
List
<
Integer
>
list
);
/**
* 根据sku获取采购Sku
*
* @param sku
*/
PurchaseSku
selectBySku
(
String
sku
);
}
}
src/main/java/com/gogirl/shared/order/ImportPurchaseSkuExcel.java
0 → 100644
View file @
2288fff5
package
com
.
gogirl
.
shared
.
order
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/6/6 5:35 下午
*/
@Data
public
class
ImportPurchaseSkuExcel
{
@ExcelProperty
(
"sku"
)
private
String
sku
;
@ExcelProperty
(
"名称"
)
private
String
name
;
@ExcelProperty
(
"店铺看到的价格"
)
private
BigDecimal
shopPrice
;
@ExcelProperty
(
"采购价格"
)
private
BigDecimal
purchasePrice
;
@ExcelProperty
(
"分类"
)
private
String
category
;
@ExcelProperty
(
"型号"
)
private
String
model
;
}
src/main/resources/application.yml
View file @
2288fff5
spring
:
spring
:
profiles
:
profiles
:
active
:
pr
e
active
:
pr
od
servlet
:
servlet
:
#文件上传最大容量
#文件上传最大容量
multipart
:
multipart
:
...
...
src/main/resources/mapper/product/PurchaseSkuMapper.xml
View file @
2288fff5
...
@@ -40,5 +40,11 @@
...
@@ -40,5 +40,11 @@
#{id}
#{id}
</foreach>
</foreach>
</select>
</select>
<select
id=
"selectBySku"
resultType=
"com.gogirl.domain.product.purchase.PurchaseSku"
>
select *
from purchase_sku
where sku = #{sku}
limit 1
</select>
</mapper>
</mapper>
src/test/java/com/gogirl/Test.java
View file @
2288fff5
package
com
.
gogirl
;
package
com
.
gogirl
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.gogirl.application.market.coupon.CouponCustomerRelevanceService
;
import
com.gogirl.application.market.coupon.CouponCustomerRelevanceService
;
...
@@ -30,6 +31,7 @@ import com.gogirl.domain.user.customer.CustomerBalanceRecord;
...
@@ -30,6 +31,7 @@ import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import
com.gogirl.domain.xcx.GogirlToken
;
import
com.gogirl.domain.xcx.GogirlToken
;
import
com.gogirl.domain.xcx.TimeNode
;
import
com.gogirl.domain.xcx.TimeNode
;
import
com.gogirl.domain.xcx.WeekConfig
;
import
com.gogirl.domain.xcx.WeekConfig
;
import
com.gogirl.infrastructure.common.util.ExcelListener
;
import
com.gogirl.infrastructure.common.util.JsonUtilByFsJson
;
import
com.gogirl.infrastructure.common.util.JsonUtilByFsJson
;
import
com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper
;
import
com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper
;
import
com.gogirl.infrastructure.mapper.market.discount.DiscountConfigMapper
;
import
com.gogirl.infrastructure.mapper.market.discount.DiscountConfigMapper
;
...
@@ -38,6 +40,7 @@ import com.gogirl.infrastructure.mapper.market.timescard.TimesCardCustomerReleva
...
@@ -38,6 +40,7 @@ import com.gogirl.infrastructure.mapper.market.timescard.TimesCardCustomerReleva
import
com.gogirl.infrastructure.mapper.order.pay.OrderPayMapper
;
import
com.gogirl.infrastructure.mapper.order.pay.OrderPayMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper
;
import
com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseSkuMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseStockMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseStockMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseStockRecordMapper
;
import
com.gogirl.infrastructure.mapper.product.purchase.PurchaseStockRecordMapper
;
import
com.gogirl.infrastructure.mapper.store.complaint.ComplaintDetailedMapper
;
import
com.gogirl.infrastructure.mapper.store.complaint.ComplaintDetailedMapper
;
...
@@ -52,6 +55,7 @@ import com.gogirl.infrastructure.mapper.xcx.TimeNodeMapper;
...
@@ -52,6 +55,7 @@ import com.gogirl.infrastructure.mapper.xcx.TimeNodeMapper;
import
com.gogirl.infrastructure.mapper.xcx.WeekConfigMapper
;
import
com.gogirl.infrastructure.mapper.xcx.WeekConfigMapper
;
import
com.gogirl.infrastructure.schedule.Schedule
;
import
com.gogirl.infrastructure.schedule.Schedule
;
import
com.gogirl.infrastructure.service.mail.MailService
;
import
com.gogirl.infrastructure.service.mail.MailService
;
import
com.gogirl.shared.order.ImportPurchaseSkuExcel
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.assertj.core.util.Lists
;
import
org.assertj.core.util.Lists
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
...
@@ -61,6 +65,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
...
@@ -61,6 +65,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
...
@@ -670,4 +675,14 @@ public class Test {
...
@@ -670,4 +675,14 @@ public class Test {
marketService
.
calcOrderAmount
(
13431
);
marketService
.
calcOrderAmount
(
13431
);
}
}
@Resource
PurchaseSkuMapper
purchaseSkuMapper
;
@org
.
junit
.
Test
public
void
importSku
()
{
String
filePath
=
"/Users/huluobin/Library/Containers/com.tencent.WeWorkMac/Data/Library/Application Support/WXWork/Data/1688853793439460/Cache/File/2020-06/价格补录.xlsx"
;
File
file
=
new
File
(
"/Users/huluobin/Library/Containers/com.tencent.WeWorkMac/Data/Library/Application Support/WXWork/Data/1688853793439460/Cache/File/2020-06/价格补录.xlsx"
);
EasyExcel
.
read
(
filePath
,
ImportPurchaseSkuExcel
.
class
,
new
ExcelListener
(
purchaseSkuMapper
)).
sheet
().
doRead
();
}
}
}
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