Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
3a7e2268
Commit
3a7e2268
authored
Apr 17, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
藏馆订单详情新增返佣比例
parent
bd7a5db2
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
283 additions
and
8 deletions
+283
-8
ch-dao/src/main/java/com/wwdz/ch/db/dao/FollowFansRecordDao.java
...src/main/java/com/wwdz/ch/db/dao/FollowFansRecordDao.java
+7
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/ShopWhiteListDao.java
...ava/com/wwdz/ch/db/dao/distribution/ShopWhiteListDao.java
+7
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/SupplierItemDao.java
...java/com/wwdz/ch/db/dao/distribution/SupplierItemDao.java
+13
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/FollowFansRecordRequestDto.java
...om/wwdz/ch/db/dto/request/FollowFansRecordRequestDto.java
+6
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/SupplierItemRequestDto.java
...h/db/dto/request/distribution/SupplierItemRequestDto.java
+2
-2
ch-dao/src/main/java/com/wwdz/ch/db/impl/FollowFansRecordDaoImpl.java
...ain/java/com/wwdz/ch/db/impl/FollowFansRecordDaoImpl.java
+12
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/DistributionOrderDaoImpl.java
...wdz/ch/db/impl/distribution/DistributionOrderDaoImpl.java
+1
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/ShopWhiteListDaoImpl.java
...om/wwdz/ch/db/impl/distribution/ShopWhiteListDaoImpl.java
+19
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SupplierItemDaoImpl.java
...com/wwdz/ch/db/impl/distribution/SupplierItemDaoImpl.java
+24
-0
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/FollowFansRecordMapper.xml
...esources/com/wwdz/ch/db/mapper/FollowFansRecordMapper.xml
+1
-1
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/distribution/SupplierItemMapper.xml
...com/wwdz/ch/db/mapper/distribution/SupplierItemMapper.xml
+1
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/DistributionOrderDetailVo.java
.../wx/entity/vo/distribution/DistributionOrderDetailVo.java
+5
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+7
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SendMsgServiceImpl.java
.../com/wwdz/ch/wx/impl/distribution/SendMsgServiceImpl.java
+5
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/job/NewItemNoticeJob.java
...pi/src/main/java/com/wwdz/ch/wx/job/NewItemNoticeJob.java
+142
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SendMsgService.java
...a/com/wwdz/ch/wx/service/distribution/SendMsgService.java
+9
-2
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/ChatApiTest.java
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/ChatApiTest.java
+2
-0
ch-wx-api/src/test/java/com/wwdz/ch/wx/impl/ShopServiceImplTest.java
...rc/test/java/com/wwdz/ch/wx/impl/ShopServiceImplTest.java
+20
-2
No files found.
ch-dao/src/main/java/com/wwdz/ch/db/dao/FollowFansRecordDao.java
View file @
3a7e2268
...
@@ -57,4 +57,11 @@ public interface FollowFansRecordDao {
...
@@ -57,4 +57,11 @@ public interface FollowFansRecordDao {
*/
*/
long
countFansByIntroducerId
(
long
introducerId
,
long
followerId
);
long
countFansByIntroducerId
(
long
introducerId
,
long
followerId
);
/**
* 查询不重复的粉丝列表数据
* @param dto
* @return
*/
List
<
FollowFansRecord
>
findDistinctFans
(
FollowFansRecordRequestDto
dto
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/ShopWhiteListDao.java
View file @
3a7e2268
package
com.wwdz.ch.db.dao.distribution
;
package
com.wwdz.ch.db.dao.distribution
;
import
com.wwdz.ch.db.domain.distribution.ShopWhiteList
;
import
com.wwdz.ch.db.domain.distribution.ShopWhiteList
;
import
com.wwdz.ch.db.dto.request.BaseRequestDto
;
import
java.util.List
;
public
interface
ShopWhiteListDao
{
public
interface
ShopWhiteListDao
{
int
insert
(
ShopWhiteList
shopWhiteList
);
boolean
isExisted
(
long
userId
);
boolean
isExisted
(
long
userId
);
ShopWhiteList
findByUserId
(
long
userId
);
ShopWhiteList
findByUserId
(
long
userId
);
List
<
ShopWhiteList
>
find
(
BaseRequestDto
dto
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/SupplierItemDao.java
View file @
3a7e2268
...
@@ -63,5 +63,18 @@ public interface SupplierItemDao {
...
@@ -63,5 +63,18 @@ public interface SupplierItemDao {
List
<
SupplierItem
>
findByCreatorId
(
long
creatorId
);
List
<
SupplierItem
>
findByCreatorId
(
long
creatorId
);
/**
* 统计上新商品的数量
* @param supplierItemRequestDto
* @return
*/
long
countOfNewItem
(
SupplierItemRequestDto
supplierItemRequestDto
);
/**
* 查询上新藏品
* @param supplierItemRequestDto
* @return
*/
List
<
SupplierItem
>
findDistinctCreator
(
SupplierItemRequestDto
supplierItemRequestDto
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/FollowFansRecordRequestDto.java
View file @
3a7e2268
...
@@ -4,6 +4,7 @@ import com.xxdxxs.entity.Entity;
...
@@ -4,6 +4,7 @@ import com.xxdxxs.entity.Entity;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
@Data
@Data
public
class
FollowFansRecordRequestDto
extends
BaseRequestDto
implements
Entity
{
public
class
FollowFansRecordRequestDto
extends
BaseRequestDto
implements
Entity
{
...
@@ -35,6 +36,11 @@ public class FollowFansRecordRequestDto extends BaseRequestDto implements Entity
...
@@ -35,6 +36,11 @@ public class FollowFansRecordRequestDto extends BaseRequestDto implements Entity
*/
*/
private
Long
followerId
;
private
Long
followerId
;
/**
* 被关注人id集合
*/
private
List
<
Long
>
followerIdList
;
/**
/**
* 创建时间
* 创建时间
*/
*/
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/SupplierItemRequestDto.java
View file @
3a7e2268
...
@@ -81,13 +81,13 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
...
@@ -81,13 +81,13 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
* 创建开始时间
* 创建开始时间
* 用于查询
* 用于查询
*/
*/
private
String
startCreateTime
;
private
Date
startCreateTime
;
/**
/**
* 创建结束时间
* 创建结束时间
* 用于查询
* 用于查询
*/
*/
private
String
endCreateTime
;
private
Date
endCreateTime
;
/**
/**
* 是否上架
* 是否上架
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/FollowFansRecordDaoImpl.java
View file @
3a7e2268
...
@@ -100,4 +100,16 @@ public class FollowFansRecordDaoImpl implements FollowFansRecordDao {
...
@@ -100,4 +100,16 @@ public class FollowFansRecordDaoImpl implements FollowFansRecordDao {
criteria
.
andStateEqualTo
(
1
);
criteria
.
andStateEqualTo
(
1
);
return
followFansRecordMapper
.
countByExample
(
example
);
return
followFansRecordMapper
.
countByExample
(
example
);
}
}
@Override
public
List
<
FollowFansRecord
>
findDistinctFans
(
FollowFansRecordRequestDto
dto
)
{
FollowFansRecordExample
example
=
new
FollowFansRecordExample
();
example
.
setDistinct
(
true
);
FollowFansRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andFollowerIdIn
(
dto
.
getFollowerIdList
());
criteria
.
andStateEqualTo
(
1
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
followFansRecordMapper
.
selectByExampleSelective
(
example
,
FollowFansRecord
.
Column
.
fansId
);
}
}
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/DistributionOrderDaoImpl.java
View file @
3a7e2268
...
@@ -99,6 +99,7 @@ public class DistributionOrderDaoImpl implements DistributionOrderDao {
...
@@ -99,6 +99,7 @@ public class DistributionOrderDaoImpl implements DistributionOrderDao {
JdbcHelper
.
ifPresent
(
dto
.
getBuyerId
(),
criteria:
:
andBuyerIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getBuyerId
(),
criteria:
:
andBuyerIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getSellerId
(),
criteria:
:
andSellerIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getSellerId
(),
criteria:
:
andSellerIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getType
(),
criteria:
:
andTypeEqualTo
);
example
.
setOrderByClause
(
"create_time desc"
);
example
.
setOrderByClause
(
"create_time desc"
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
distributionOrderMapper
.
selectByExample
(
example
);
return
distributionOrderMapper
.
selectByExample
(
example
);
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/ShopWhiteListDaoImpl.java
View file @
3a7e2268
package
com.wwdz.ch.db.impl.distribution
;
package
com.wwdz.ch.db.impl.distribution
;
import
com.github.pagehelper.PageHelper
;
import
com.wwdz.ch.db.dao.distribution.ShopWhiteListDao
;
import
com.wwdz.ch.db.dao.distribution.ShopWhiteListDao
;
import
com.wwdz.ch.db.domain.distribution.ShopWhiteList
;
import
com.wwdz.ch.db.domain.distribution.ShopWhiteList
;
import
com.wwdz.ch.db.domain.distribution.ShopWhiteListExample
;
import
com.wwdz.ch.db.domain.distribution.ShopWhiteListExample
;
import
com.wwdz.ch.db.domain.distribution.SupplierItemExample
;
import
com.wwdz.ch.db.dto.request.BaseRequestDto
;
import
com.wwdz.ch.db.mapper.distribution.ShopWhiteListMapper
;
import
com.wwdz.ch.db.mapper.distribution.ShopWhiteListMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
@Repository
public
class
ShopWhiteListDaoImpl
implements
ShopWhiteListDao
{
public
class
ShopWhiteListDaoImpl
implements
ShopWhiteListDao
{
@Autowired
@Autowired
ShopWhiteListMapper
shopWhiteListMapper
;
ShopWhiteListMapper
shopWhiteListMapper
;
@Override
public
int
insert
(
ShopWhiteList
shopWhiteList
)
{
return
shopWhiteListMapper
.
insert
(
shopWhiteList
);
}
@Override
@Override
public
boolean
isExisted
(
long
userId
)
{
public
boolean
isExisted
(
long
userId
)
{
ShopWhiteListExample
example
=
new
ShopWhiteListExample
();
ShopWhiteListExample
example
=
new
ShopWhiteListExample
();
...
@@ -29,4 +39,13 @@ public class ShopWhiteListDaoImpl implements ShopWhiteListDao {
...
@@ -29,4 +39,13 @@ public class ShopWhiteListDaoImpl implements ShopWhiteListDao {
criteria
.
andUserIdEqualTo
(
userId
);
criteria
.
andUserIdEqualTo
(
userId
);
return
shopWhiteListMapper
.
selectOneByExample
(
example
);
return
shopWhiteListMapper
.
selectOneByExample
(
example
);
}
}
@Override
public
List
<
ShopWhiteList
>
find
(
BaseRequestDto
dto
)
{
ShopWhiteListExample
example
=
new
ShopWhiteListExample
();
ShopWhiteListExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andIsValidEqualTo
(
true
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
shopWhiteListMapper
.
selectByExample
(
example
);
}
}
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SupplierItemDaoImpl.java
View file @
3a7e2268
...
@@ -143,4 +143,28 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
...
@@ -143,4 +143,28 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
PageHelper
.
startPage
(
1
,
8
);
PageHelper
.
startPage
(
1
,
8
);
return
supplierItemMapper
.
selectByExampleWithBLOBs
(
supplierItemExample
);
return
supplierItemMapper
.
selectByExampleWithBLOBs
(
supplierItemExample
);
}
}
@Override
public
long
countOfNewItem
(
SupplierItemRequestDto
supplierItemRequestDto
)
{
SupplierItemExample
supplierItemExample
=
new
SupplierItemExample
();
SupplierItemExample
.
Criteria
criteria
=
supplierItemExample
.
createCriteria
();
criteria
.
andCreatorIdEqualTo
(
supplierItemRequestDto
.
getCreatorId
());
criteria
.
andCreateTimeGreaterThanOrEqualTo
(
supplierItemRequestDto
.
getStartCreateTime
());
criteria
.
andIsDeletedEqualTo
(
false
);
criteria
.
andIsOnSaleEqualTo
(
true
);
return
supplierItemMapper
.
countByExample
(
supplierItemExample
);
}
@Override
public
List
<
SupplierItem
>
findDistinctCreator
(
SupplierItemRequestDto
supplierItemRequestDto
)
{
SupplierItemExample
supplierItemExample
=
new
SupplierItemExample
();
supplierItemExample
.
setDistinct
(
true
);
SupplierItemExample
.
Criteria
criteria
=
supplierItemExample
.
createCriteria
();
criteria
.
andCreateTimeGreaterThanOrEqualTo
(
supplierItemRequestDto
.
getStartCreateTime
());
criteria
.
andTypeEqualTo
(
supplierItemRequestDto
.
getType
());
criteria
.
andIsDeletedEqualTo
(
false
);
return
supplierItemMapper
.
selectByExampleSelective
(
supplierItemExample
,
SupplierItem
.
Column
.
creatorId
);
}
}
}
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/FollowFansRecordMapper.xml
View file @
3a7e2268
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
@project https://github.com/itfsw/mybatis-generator-plugin
@project https://github.com/itfsw/mybatis-generator-plugin
-->
-->
select
select
'true' as QUERYID,
<if
test=
"example.distinct"
>
<if
test=
"example.distinct"
>
distinct
distinct
</if>
</if>
...
...
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/distribution/SupplierItemMapper.xml
View file @
3a7e2268
...
@@ -128,7 +128,7 @@
...
@@ -128,7 +128,7 @@
@project https://github.com/itfsw/mybatis-generator-plugin
@project https://github.com/itfsw/mybatis-generator-plugin
-->
-->
select
select
'true' as QUERYID,
<if
test=
"example.distinct"
>
<if
test=
"example.distinct"
>
distinct
distinct
</if>
</if>
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/DistributionOrderDetailVo.java
View file @
3a7e2268
...
@@ -190,5 +190,10 @@ public class DistributionOrderDetailVo implements Entity {
...
@@ -190,5 +190,10 @@ public class DistributionOrderDetailVo implements Entity {
private
String
typeName
;
private
String
typeName
;
/**
* 分佣比例
*/
private
String
introduceRebate
;
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
3a7e2268
...
@@ -951,6 +951,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -951,6 +951,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
}
}
}
}
//查询分销订单
//查询分销订单
dto
.
setType
(
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
());
List
<
DistributionOrder
>
distributionOrderList
=
distributionOrderDao
.
findByPage
(
dto
);
List
<
DistributionOrder
>
distributionOrderList
=
distributionOrderDao
.
findByPage
(
dto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
distributionOrderList
);
PageInfo
pageInfo
=
new
PageInfo
<>(
distributionOrderList
);
for
(
DistributionOrder
distributionOrder
:
distributionOrderList
)
{
for
(
DistributionOrder
distributionOrder
:
distributionOrderList
)
{
...
@@ -1004,6 +1005,12 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1004,6 +1005,12 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
DistributorProfit
distributorProfit
=
distributorProfitDao
.
findByIdOfDistributor
(
dto
.
getDistributionOrderId
(),
distributionOrder
.
getSellerId
());
DistributorProfit
distributorProfit
=
distributorProfitDao
.
findByIdOfDistributor
(
dto
.
getDistributionOrderId
(),
distributionOrder
.
getSellerId
());
distributionOrderDetailVo
.
setChannelCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getChannelCost
()));
distributionOrderDetailVo
.
setChannelCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getChannelCost
()));
distributionOrderDetailVo
.
setIntroduceCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getIntroduceCost
()));
distributionOrderDetailVo
.
setIntroduceCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getIntroduceCost
()));
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
followFansRecordRequestDto
.
setFollowerId
(
supplierItem
.
getCreatorId
());
followFansRecordRequestDto
.
setFansId
(
dto
.
getBuyerId
());
double
rebate
=
distributorProfitService
.
getIntroduceRebate
(
followFansRecordRequestDto
);
distributionOrderDetailVo
.
setIntroduceRebate
(
PriceUtil
.
convertPriceFromStr
(
String
.
valueOf
(
rebate
)).
toString
());
distributionOrderDetailVo
.
setProfit
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getProfit
()));
distributionOrderDetailVo
.
setProfit
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getProfit
()));
//一口价支付截止时间为下单半小时后,竞拍为24小时
//一口价支付截止时间为下单半小时后,竞拍为24小时
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SendMsgServiceImpl.java
View file @
3a7e2268
...
@@ -703,4 +703,9 @@ public class SendMsgServiceImpl implements SendMsgService {
...
@@ -703,4 +703,9 @@ public class SendMsgServiceImpl implements SendMsgService {
}
}
return
Result
.
failed
();
return
Result
.
failed
();
}
}
@Override
public
Result
newOrderNoticeMsg
(
FollowFansMsg
followFansMsg
)
{
return
null
;
}
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/job/NewItemNoticeJob.java
0 → 100644
View file @
3a7e2268
package
com.wwdz.ch.wx.job
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dao.FollowFansRecordDao
;
import
com.wwdz.ch.db.dao.distribution.*
;
import
com.wwdz.ch.db.domain.FollowFansRecord
;
import
com.wwdz.ch.db.domain.distribution.*
;
import
com.wwdz.ch.db.dto.request.BaseRequestDto
;
import
com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.wwdz.ch.wx.service.distribution.DistributionOrderService
;
import
com.xxdxxs.utils.DateUtils
;
import
com.xxdxxs.utils.StringUtils
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* 拍卖结束自动创建订单
*/
@Component
public
class
NewItemNoticeJob
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
NewItemNoticeJob
.
class
);
private
final
static
String
NEW_ITEM_NOTICE_KEY
=
"NEW_ITEM_NOTICE_KEY"
;
@Autowired
RedissonClient
redissonClient
;
@Autowired
FollowFansRecordDao
followFansRecordDao
;
@Autowired
SupplierItemDao
supplierItemDao
;
@Autowired
ShopWhiteListDao
shopWhiteListDao
;
/**
* 每天晚上八点执行一次
*/
// @Scheduled(cron = "0 0 20 * * ?")
public
void
execute
()
{
RLock
lock
=
redissonClient
.
getLock
(
NEW_ITEM_NOTICE_KEY
);
if
(!
lock
.
tryLock
())
{
logger
.
warn
(
"发送商品上新通知,当前服务实例获取锁成功: {} 获取锁失败,锁被占用不执行"
,
Thread
.
currentThread
().
getId
());
return
;
}
logger
.
info
(
">>>>>>>>>>>>>>>>>>>>>>> 发送商品上新通知定时作业, 开始执行 <<<<<<<<<<<<<<<<<<<<<"
);
try
{
//查询后台的上新商品,给分销商发送上新通知
SupplierItemRequestDto
supplierItemRequestDto
=
new
SupplierItemRequestDto
();
supplierItemRequestDto
.
setCreatorId
(
CommConsts
.
SYSTEM_ACCOUNT
);
//查询时间范围为昨天晚上八点之后
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
yesterday
=
now
.
minusDays
(
1
);
LocalDateTime
yesterdayEvening
=
yesterday
.
withHour
(
20
).
withMinute
(
0
).
withSecond
(
0
);
Date
yesterdayDate
=
DateUtils
.
fromLocalDateTime
(
yesterdayEvening
);
supplierItemRequestDto
.
setStartCreateTime
(
yesterdayDate
);
long
newItemNumForDistributor
=
supplierItemDao
.
countOfNewItem
(
supplierItemRequestDto
);
if
(
newItemNumForDistributor
>
0
)
{
boolean
isHasNextPage
=
true
;
int
page
=
0
;
BaseRequestDto
baseRequestDto
=
new
BaseRequestDto
();
while
(
isHasNextPage
)
{
page
=
page
+
1
;
baseRequestDto
.
setPage
(
page
);
List
<
ShopWhiteList
>
shopWhiteLists
=
shopWhiteListDao
.
find
(
baseRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
shopWhiteLists
);
logger
.
info
(
"分销商白名单查询,当前第 {} 页, 总共有 {} 页"
,
page
,
pageInfo
.
getPages
());
isHasNextPage
=
pageInfo
.
isHasNextPage
();
for
(
ShopWhiteList
shopWhiteList
:
shopWhiteLists
)
{
//发送模板消息
long
distributorId
=
shopWhiteList
.
getUserId
();
}
}
logger
.
info
(
">>>>>>>>>>>>>> 选品池上新,通知分销商成功 <<<<<<<<<<<<<<<<"
);
}
else
{
logger
.
info
(
">>>>>>>>>>>>>> 选品池没有上新,无需发送通知 <<<<<<<<<<<<<<<<"
);
}
//用户关注列表中有上新藏品,发送通知
SupplierItemRequestDto
supplierItemDto
=
new
SupplierItemRequestDto
();
supplierItemDto
.
setType
(
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
());
supplierItemDto
.
setStartCreateTime
(
yesterdayDate
);
List
<
SupplierItem
>
supplierItemList
=
supplierItemDao
.
findDistinctCreator
(
supplierItemDto
);
List
<
Long
>
creatorIds
=
supplierItemList
.
stream
().
map
(
SupplierItem:
:
getCreatorId
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
creatorIds
))
{
logger
.
info
(
"======================= 没有上新藏品,不发送任何通知消息 ======================= "
);
}
else
{
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
followFansRecordRequestDto
.
setFollowerIdList
(
creatorIds
);
boolean
isHasNextPage
=
true
;
int
page
=
0
;
while
(
isHasNextPage
)
{
page
=
page
+
1
;
followFansRecordRequestDto
.
setPage
(
page
);
List
<
FollowFansRecord
>
followFansRecordList
=
followFansRecordDao
.
findDistinctFans
(
followFansRecordRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
followFansRecordList
);
logger
.
info
(
"关注列表查询,当前第 {} 页, 总共有 {} 页"
,
page
,
pageInfo
.
getPages
());
isHasNextPage
=
pageInfo
.
isHasNextPage
();
for
(
FollowFansRecord
followFansRecord
:
followFansRecordList
)
{
//发送通知
long
fansId
=
followFansRecord
.
getFansId
();
}
}
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"商品上新通知定时作业 error {}"
,
e
);
}
finally
{
if
(
lock
!=
null
&&
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
logger
.
info
(
"======================== 线程id: {} , 发送商品上新通知定时作业执行完毕, 释放锁成功 ========================"
,
Thread
.
currentThread
().
getId
());
}
}
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SendMsgService.java
View file @
3a7e2268
...
@@ -57,7 +57,7 @@ public interface SendMsgService {
...
@@ -57,7 +57,7 @@ public interface SendMsgService {
* @param auctionOfferNoticeMsg
* @param auctionOfferNoticeMsg
* @return
* @return
*/
*/
Result
auctionEndMsg
(
AuctionOfferNoticeMsg
auctionOfferNoticeMsg
);
Result
auctionEndMsg
(
AuctionOfferNoticeMsg
auctionOfferNoticeMsg
);
/**
/**
...
@@ -65,7 +65,7 @@ public interface SendMsgService {
...
@@ -65,7 +65,7 @@ public interface SendMsgService {
* @param auctionOfferNoticeMsg
* @param auctionOfferNoticeMsg
* @return
* @return
*/
*/
Result
offerNoticeToDistributorMsg
(
AuctionOfferNoticeMsg
auctionOfferNoticeMsg
);
Result
offerNoticeToDistributorMsg
(
AuctionOfferNoticeMsg
auctionOfferNoticeMsg
);
/**
/**
* 通知被关注者
* 通知被关注者
...
@@ -74,5 +74,12 @@ public interface SendMsgService {
...
@@ -74,5 +74,12 @@ public interface SendMsgService {
Result
followNoticeMsg
(
FollowFansMsg
followFansMsg
);
Result
followNoticeMsg
(
FollowFansMsg
followFansMsg
);
/**
* 通知被关注者
* @return
*/
Result
newOrderNoticeMsg
(
FollowFansMsg
followFansMsg
);
String
getOpenIdByUserId
(
long
userId
);
String
getOpenIdByUserId
(
long
userId
);
}
}
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/ChatApiTest.java
View file @
3a7e2268
...
@@ -57,6 +57,8 @@ public class ChatApiTest {
...
@@ -57,6 +57,8 @@ public class ChatApiTest {
@Test
@Test
public
void
chatWithModel
()
{
public
void
chatWithModel
()
{
String
question
=
"什么是站洋,请回答钱币相关的内容"
;
String
question
=
"什么是站洋,请回答钱币相关的内容"
;
chatApi
.
chatWithModel
(
question
);
chatApi
.
chatWithModel
(
question
);
}
}
...
...
ch-wx-api/src/test/java/com/wwdz/ch/wx/impl/ShopServiceImplTest.java
View file @
3a7e2268
package
com.wwdz.ch.wx.impl
;
package
com.wwdz.ch.wx.impl
;
import
com.alibaba.dubbo.config.annotation.Reference
;
import
com.alibaba.dubbo.config.annotation.Reference
;
import
com.wwdz.ch.db.dao.FollowFansRecordDao
;
import
com.wwdz.ch.db.domain.FollowFansRecord
;
import
com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto
;
import
com.wwdz.ch.wx.Application
;
import
com.wwdz.ch.wx.Application
;
import
com.wwdz.mall.common.vo.response.CloudServerResponse
;
import
com.wwdz.mall.common.vo.response.CloudServerResponse
;
...
@@ -14,9 +17,14 @@ import org.junit.Test;
...
@@ -14,9 +17,14 @@ import org.junit.Test;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
@SpringBootTest
(
classes
=
Application
.
class
)
@SpringBootTest
(
classes
=
Application
.
class
)
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@EnableDubbo
(
scanBasePackages
=
{
"com.wwdz.ch.wx"
})
@EnableDubbo
(
scanBasePackages
=
{
"com.wwdz.ch.wx"
})
...
@@ -27,14 +35,24 @@ public class ShopServiceImplTest {
...
@@ -27,14 +35,24 @@ public class ShopServiceImplTest {
@Reference
@Reference
ShopReadService
shopReadService
;
ShopReadService
shopReadService
;
@Autowired
FollowFansRecordDao
followFansRecordDao
;
@Test
@Test
public
void
test
()
{
public
void
test
()
{
long
userId
=
61074671
;
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
List
<
Long
>
creatorIds
=
Arrays
.
asList
(
61074146L
,
61091901L
,
42192256L
,
291997L
);
followFansRecordRequestDto
.
setFollowerIdList
(
creatorIds
);
List
<
FollowFansRecord
>
followFansRecordList
=
followFansRecordDao
.
findDistinctFans
(
followFansRecordRequestDto
);
logger
.
info
(
"个数 = {}"
,
followFansRecordList
.
size
());
logger
.
info
(
"followFansRecordList = {}"
,
followFansRecordList
);
/* long userId = 61074671;
ShopQueryOption option = new ShopQueryOption();
ShopQueryOption option = new ShopQueryOption();
option.setUserId(userId);
option.setUserId(userId);
CloudServerResponse<ShopDTO> cloudServerResponse = shopReadService.getShopByUserId(userId, option);
CloudServerResponse<ShopDTO> cloudServerResponse = shopReadService.getShopByUserId(userId, option);
logger.info("cloudServerResponse = {}", cloudServerResponse);
logger.info("cloudServerResponse = {}", cloudServerResponse);
logger
.
info
(
"result = {}"
,
JsonUtils
.
from
(
cloudServerResponse
.
getResult
()));
logger.info("result = {}", JsonUtils.from(cloudServerResponse.getResult()));
*/
}
}
...
...
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