Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
e4d82d54
Commit
e4d82d54
authored
Jun 16, 2023
by
王祖波
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feature-content3' into feature-content3
parents
ca7bb715
275d512f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
146 additions
and
3 deletions
+146
-3
pom.xml
haoban-manage3-wx/pom.xml
+6
-0
CommissionManager.java
...n/manage/web/controller/commission/CommissionManager.java
+92
-0
ContentMaterialController.java
...age/web/controller/content/ContentMaterialController.java
+17
-3
GoodsInfoAdaptor.java
.../haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
+27
-0
dubbo-haoban-manage-wx.xml
...ge3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
+4
-0
No files found.
haoban-manage3-wx/pom.xml
View file @
e4d82d54
...
@@ -246,6 +246,12 @@
...
@@ -246,6 +246,12 @@
<artifactId>
haoban-task-api
</artifactId>
<artifactId>
haoban-task-api
</artifactId>
<version>
${haoban-task-api}
</version>
<version>
${haoban-task-api}
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.gic
</groupId>
<artifactId>
haoban-commission-api
</artifactId>
<version>
${haoban-commission-api}
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/commission/CommissionManager.java
0 → 100644
View file @
e4d82d54
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
commission
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.commission.api.dto.commissiondetail.CommissionSettleDetailDTO
;
import
com.gic.haoban.commission.api.qdto.commissiondetail.CommissionSettleOrderItemQDTO
;
import
com.gic.haoban.commission.api.qdto.commissiondetail.CommissionSettleOrderQDTO
;
import
com.gic.haoban.commission.api.service.local.CommissionSettleDetailApiService
;
import
com.gic.haoban.manage.web.controller.goods.GoodsInfoAdaptor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
* @Author MUSI
* @Date 2023/6/16 4:30 PM
* @Description
* @Version
* 佣金管理
**/
@Slf4j
@Component
public
class
CommissionManager
{
@Autowired
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
@Autowired
private
CommissionSettleDetailApiService
commissionSettleDetailApiService
;
/**
* 查询商品佣金
* @param enterpriseId
* @param storeId
* @param clerkId
* @param goodsIds
* @return
*/
public
Map
<
String
,
BigDecimal
>
calcGoodsCommission
(
String
enterpriseId
,
String
storeId
,
String
clerkId
,
List
<
String
>
goodsIds
)
{
if
(
CollectionUtils
.
isEmpty
(
goodsIds
))
{
return
Collections
.
emptyMap
();
}
if
(
StringUtils
.
isAnyBlank
(
storeId
,
clerkId
,
enterpriseId
))
{
log
.
info
(
"查询商品佣金异常 参数缺失 storeId:{} clerkID:{}"
,
storeId
,
clerkId
);
return
Collections
.
emptyMap
();
}
Map
<
String
,
BigDecimal
>
minPriceMap
=
goodsInfoAdaptor
.
queryGoodsMinPrice
(
enterpriseId
,
goodsIds
);
if
(
MapUtils
.
isEmpty
(
minPriceMap
))
{
log
.
info
(
"计算商品佣金 参数异常"
);
return
Collections
.
emptyMap
();
}
List
<
CommissionSettleOrderItemQDTO
>
settleOrderItems
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
BigDecimal
>
entry
:
minPriceMap
.
entrySet
())
{
String
goodsId
=
entry
.
getKey
();
BigDecimal
minPrice
=
entry
.
getValue
();
CommissionSettleOrderItemQDTO
commissionSettleOrderItemQDTO
=
new
CommissionSettleOrderItemQDTO
();
commissionSettleOrderItemQDTO
.
setGoodsId
(
goodsId
);
commissionSettleOrderItemQDTO
.
setGoodsNum
(
1
);
commissionSettleOrderItemQDTO
.
setGoodsPayAmount
(
minPrice
.
doubleValue
());
settleOrderItems
.
add
(
commissionSettleOrderItemQDTO
);
}
CommissionSettleOrderQDTO
commissionSettleOrderQDTO
=
new
CommissionSettleOrderQDTO
();
commissionSettleOrderQDTO
.
setIsOrder
(
0
);
commissionSettleOrderQDTO
.
setEnterpriseId
(
enterpriseId
);
commissionSettleOrderQDTO
.
setOrderStoreId
(
storeId
);
commissionSettleOrderQDTO
.
setOrderClerkId
(
clerkId
);
commissionSettleOrderQDTO
.
setItems
(
settleOrderItems
);
ServiceResponse
<
List
<
CommissionSettleDetailDTO
>>
serviceResponse
=
commissionSettleDetailApiService
.
calcDetailByOrder
(
commissionSettleOrderQDTO
);
if
(!
serviceResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()))
{
log
.
info
(
"计算商品佣金, 商品佣金为空 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyMap
();
}
return
serviceResponse
.
getResult
()
.
stream
()
.
collect
(
Collectors
.
toMap
(
CommissionSettleDetailDTO:
:
getGoodsId
,
item
->
{
Double
commissionAmount
=
item
.
getCommissionAmount
();
return
Optional
.
ofNullable
(
commissionAmount
).
map
(
BigDecimal:
:
new
).
orElse
(
BigDecimal
.
ZERO
);
},
(
v1
,
v2
)
->
v1
));
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ContentMaterialController.java
View file @
e4d82d54
...
@@ -17,6 +17,7 @@ import com.gic.content.api.service.ContentMaterialApiService;
...
@@ -17,6 +17,7 @@ import com.gic.content.api.service.ContentMaterialApiService;
import
com.gic.content.api.service.ContentMaterialShareApiService
;
import
com.gic.content.api.service.ContentMaterialShareApiService
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.web.controller.commission.CommissionManager
;
import
com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor
;
import
com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor
;
import
com.gic.haoban.manage.web.controller.goods.GoodsInfoAdaptor
;
import
com.gic.haoban.manage.web.controller.goods.GoodsInfoAdaptor
;
import
com.gic.haoban.manage.web.qo.content.ContentColumnClerkViewQO
;
import
com.gic.haoban.manage.web.qo.content.ContentColumnClerkViewQO
;
...
@@ -36,10 +37,12 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -36,10 +37,12 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -56,11 +59,12 @@ public class ContentMaterialController {
...
@@ -56,11 +59,12 @@ public class ContentMaterialController {
private
ContentMaterialApiService
contentMaterialApiService
;
private
ContentMaterialApiService
contentMaterialApiService
;
@Autowired
@Autowired
private
ContentMaterialShareApiService
contentMaterialShareApiService
;
private
ContentMaterialShareApiService
contentMaterialShareApiService
;
@Autowired
@Autowired
private
ClerkStoreAdaptor
clerkStoreAdaptor
;
private
ClerkStoreAdaptor
clerkStoreAdaptor
;
@Autowired
@Autowired
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
@Autowired
private
CommissionManager
commissionManager
;
/**
/**
...
@@ -141,8 +145,16 @@ public class ContentMaterialController {
...
@@ -141,8 +145,16 @@ public class ContentMaterialController {
Page
<
ContentMaterialFrontDTO
>
responseResult
=
serviceResponse
.
getResult
();
Page
<
ContentMaterialFrontDTO
>
responseResult
=
serviceResponse
.
getResult
();
Page
<
ContentMaterialInfoVO
>
result
=
new
Page
<>();
Page
<
ContentMaterialInfoVO
>
result
=
new
Page
<>();
result
.
setTotalCount
(
responseResult
.
getTotalCount
());
result
.
setTotalCount
(
responseResult
.
getTotalCount
());
List
<
String
>
goodsIds
=
responseResult
.
getResult
()
.
stream
()
.
filter
(
item
->
CollectionUtils
.
isNotEmpty
(
item
.
getContentGoodsList
()))
.
map
(
item
->
item
.
getContentGoodsList
().
get
(
0
).
getGoodsId
())
.
distinct
()
.
collect
(
Collectors
.
toList
());
Map
<
String
,
BigDecimal
>
commissionMap
=
commissionManager
.
calcGoodsCommission
(
contentMaterialQO
.
getEnterpriseId
(),
contentMaterialQO
.
getStoreId
(),
contentMaterialQO
.
getClerkId
(),
goodsIds
);
List
<
ContentMaterialInfoVO
>
contentMaterialInfos
=
responseResult
.
getResult
().
stream
()
List
<
ContentMaterialInfoVO
>
contentMaterialInfos
=
responseResult
.
getResult
().
stream
()
.
map
(
item
->
getContentMaterialInfoVO
(
goodsShowStatus
,
item
))
.
map
(
item
->
getContentMaterialInfoVO
(
goodsShowStatus
,
item
,
commissionMap
))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
result
.
setResult
(
contentMaterialInfos
);
result
.
setResult
(
contentMaterialInfos
);
result
.
setCurrentPage
(
contentMaterialQO
.
getPageNum
());
result
.
setCurrentPage
(
contentMaterialQO
.
getPageNum
());
...
@@ -156,7 +168,7 @@ public class ContentMaterialController {
...
@@ -156,7 +168,7 @@ public class ContentMaterialController {
* @param item
* @param item
* @return
* @return
*/
*/
private
ContentMaterialInfoVO
getContentMaterialInfoVO
(
List
<
Integer
>
goodsShowStatus
,
ContentMaterialFrontDTO
item
)
{
private
ContentMaterialInfoVO
getContentMaterialInfoVO
(
List
<
Integer
>
goodsShowStatus
,
ContentMaterialFrontDTO
item
,
Map
<
String
,
BigDecimal
>
commissionMap
)
{
ContentMaterialInfoVO
contentMaterialInfoVO
=
new
ContentMaterialInfoVO
();
ContentMaterialInfoVO
contentMaterialInfoVO
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
item
,
contentMaterialInfoVO
);
BeanUtils
.
copyProperties
(
item
,
contentMaterialInfoVO
);
if
(
CollectionUtils
.
isNotEmpty
(
item
.
getContentGoodsList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
item
.
getContentGoodsList
()))
{
...
@@ -167,6 +179,8 @@ public class ContentMaterialController {
...
@@ -167,6 +179,8 @@ public class ContentMaterialController {
SimpleGoodsInfoVO
simpleGoodsInfoVO
=
new
SimpleGoodsInfoVO
();
SimpleGoodsInfoVO
simpleGoodsInfoVO
=
new
SimpleGoodsInfoVO
();
BeanUtils
.
copyProperties
(
temp
,
simpleGoodsInfoVO
);
BeanUtils
.
copyProperties
(
temp
,
simpleGoodsInfoVO
);
simpleGoodsInfoVO
.
setGoodsImg
(
temp
.
getGoodsImageUrl
());
simpleGoodsInfoVO
.
setGoodsImg
(
temp
.
getGoodsImageUrl
());
BigDecimal
commission
=
commissionMap
.
get
(
temp
.
getGoodsId
());
simpleGoodsInfoVO
.
setCommission
(
commission
);
return
simpleGoodsInfoVO
;
return
simpleGoodsInfoVO
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
goodsInfoVOS
))
{
if
(
CollectionUtils
.
isNotEmpty
(
goodsInfoVOS
))
{
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
View file @
e4d82d54
...
@@ -8,6 +8,7 @@ import com.gic.haoban.app.aggregation.api.service.SettingApiService;
...
@@ -8,6 +8,7 @@ import com.gic.haoban.app.aggregation.api.service.SettingApiService;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialQO
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialQO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -16,9 +17,11 @@ import org.slf4j.LoggerFactory;
...
@@ -16,9 +17,11 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -37,6 +40,8 @@ public class GoodsInfoAdaptor {
...
@@ -37,6 +40,8 @@ public class GoodsInfoAdaptor {
private
SettingApiService
settingApiService
;
private
SettingApiService
settingApiService
;
@Autowired
@Autowired
private
GoodsInfoOutApiService
goodsInfoOutApiService
;
private
GoodsInfoOutApiService
goodsInfoOutApiService
;
@Autowired
private
GoodsCenterApiService
goodsCenterApiService
;
public
List
<
String
>
queryGoodsIdWithSearch
(
String
enterpriseId
,
String
search
)
{
public
List
<
String
>
queryGoodsIdWithSearch
(
String
enterpriseId
,
String
search
)
{
// 根据关键字查询1000个商品
// 根据关键字查询1000个商品
...
@@ -101,4 +106,26 @@ public class GoodsInfoAdaptor {
...
@@ -101,4 +106,26 @@ public class GoodsInfoAdaptor {
}
}
return
showStatus
;
return
showStatus
;
}
}
/**
* 查询商品最小价格
* @param enterpriseId
* @param goodsIds
* @return
*/
public
Map
<
String
,
BigDecimal
>
queryGoodsMinPrice
(
String
enterpriseId
,
List
<
String
>
goodsIds
)
{
if
(
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
goodsIds
))
{
return
Collections
.
emptyMap
();
}
ServiceResponse
<
List
<
GoodsSpuInfoDTO
>>
serviceResponse
=
goodsCenterApiService
.
queryGoodsMinPrice
(
enterpriseId
,
goodsIds
);
if
(!
serviceResponse
.
isSuccess
()
||
com
.
alibaba
.
dubbo
.
common
.
utils
.
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()))
{
log
.
info
(
"查询商品最小价格异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyMap
();
}
return
serviceResponse
.
getResult
()
.
stream
()
.
collect
(
Collectors
.
toMap
(
GoodsSpuInfoDTO:
:
getGoodsId
,
GoodsSpuInfoDTO:
:
getMinPrice
));
}
}
}
haoban-manage3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
View file @
e4d82d54
...
@@ -143,5 +143,9 @@
...
@@ -143,5 +143,9 @@
<dubbo:reference
interface=
"com.gic.haoban.task.manage.api.service.IMarketClueTaskApiService"
id=
"iMarketClueTaskApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.task.manage.api.service.IMarketClueTaskApiService"
id=
"iMarketClueTaskApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.task.api.service.TelTaskApiService"
id=
"telTaskApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.task.api.service.TelTaskApiService"
id=
"telTaskApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsCenterApiService"
id=
"goodsCenterApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.commission.api.service.local.CommissionSettleDetailApiService"
id=
"commissionSettleDetailApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
</beans>
</beans>
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