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
10ce5455
Commit
10ce5455
authored
Aug 01, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
团购商品支付
parent
dda11825
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
198 additions
and
11 deletions
+198
-11
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
...va/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
+7
-1
ch-core/src/main/java/com/wwdz/ch/core/entity/SupplierItemVo.java
...src/main/java/com/wwdz/ch/core/entity/SupplierItemVo.java
+10
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/GroupPurchaseConfigRequestDto.java
...o/request/distribution/GroupPurchaseConfigRequestDto.java
+2
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/GroupPurchaseConfigDaoImpl.java
...z/ch/db/impl/distribution/GroupPurchaseConfigDaoImpl.java
+1
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/DistributionOrderDetailVo.java
.../wx/entity/vo/distribution/DistributionOrderDetailVo.java
+10
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/DistributionOrderVo.java
...wdz/ch/wx/entity/vo/distribution/DistributionOrderVo.java
+10
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+28
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/job/GroupPurchaseJob.java
...pi/src/main/java/com/wwdz/ch/wx/job/GroupPurchaseJob.java
+129
-9
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/DistributionOrderController.java
...z/ch/wx/web/distribution/DistributionOrderController.java
+1
-1
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
View file @
10ce5455
...
@@ -190,11 +190,17 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
...
@@ -190,11 +190,17 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
}
}
}
else
if
(
supplierItem
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
}
else
if
(
supplierItem
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
supplierItem
.
getId
());
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
supplierItem
.
getId
());
supplierItemVo
.
setGroupPurchaseState
(
groupPurchaseConfig
.
getState
());
supplierItemVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
getNameByCode
(
groupPurchaseConfig
.
getState
()));
if
(
groupPurchaseConfig
.
getStartTime
()
!=
null
&&
groupPurchaseConfig
.
getEndTime
()
!=
null
)
{
if
(
groupPurchaseConfig
.
getStartTime
()
!=
null
&&
groupPurchaseConfig
.
getEndTime
()
!=
null
)
{
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
now
)
&&
groupPurchaseConfig
.
getState
()
!=
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
())
{
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
now
)
&&
groupPurchaseConfig
.
getState
()
!=
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
())
{
groupPurchaseConfigDao
.
updateState
(
supplierItem
.
getId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
groupPurchaseConfigDao
.
updateState
(
supplierItem
.
getId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
supplierItemVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
supplierItemVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getDes
());
}
else
if
(
now
.
after
(
groupPurchaseConfig
.
getStartTime
())
&&
groupPurchaseConfig
.
getEndTime
().
after
(
now
)
}
else
if
(
now
.
after
(
groupPurchaseConfig
.
getStartTime
())
&&
groupPurchaseConfig
.
getEndTime
().
after
(
now
)
&&
groupPurchaseConfig
.
getState
()
==
GroupPurchaseEnum
.
ItemStateEnum
.
NOT_START
.
getCode
())
{
&&
groupPurchaseConfig
.
getState
()
==
GroupPurchaseEnum
.
ItemStateEnum
.
NOT_START
.
getCode
())
{
supplierItemVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
supplierItemVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getDes
());
groupPurchaseConfigDao
.
updateState
(
groupPurchaseConfig
.
getItemId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
groupPurchaseConfigDao
.
updateState
(
groupPurchaseConfig
.
getItemId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
}
}
}
}
...
@@ -411,7 +417,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
...
@@ -411,7 +417,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
groupPurchaseConfig
.
setSupplyPrice
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getSupplyPrice
()));
groupPurchaseConfig
.
setSupplyPrice
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getSupplyPrice
()));
groupPurchaseConfig
.
setStartTime
(
DateUtils
.
parseString
(
dto
.
getGroupPurchaseStartTime
()));
groupPurchaseConfig
.
setStartTime
(
DateUtils
.
parseString
(
dto
.
getGroupPurchaseStartTime
()));
groupPurchaseConfig
.
setEndTime
(
DateUtils
.
parseString
(
dto
.
getGroupPurchaseEndTime
()));
groupPurchaseConfig
.
setEndTime
(
DateUtils
.
parseString
(
dto
.
getGroupPurchaseEndTime
()));
groupPurchaseConfig
.
setLimitNum
(
dto
.
getLimitNum
());
groupPurchaseConfig
.
setLimitNum
(
dto
.
get
Buy
LimitNum
());
groupPurchaseConfig
.
setTargetNum
(
dto
.
getTargetNum
());
groupPurchaseConfig
.
setTargetNum
(
dto
.
getTargetNum
());
groupPurchaseConfig
.
setWxQrcode
(
dto
.
getWxQrcode
());
groupPurchaseConfig
.
setWxQrcode
(
dto
.
getWxQrcode
());
groupPurchaseConfigDao
.
update
(
groupPurchaseConfig
);
groupPurchaseConfigDao
.
update
(
groupPurchaseConfig
);
...
...
ch-core/src/main/java/com/wwdz/ch/core/entity/SupplierItemVo.java
View file @
10ce5455
...
@@ -376,4 +376,14 @@ public class SupplierItemVo implements Entity {
...
@@ -376,4 +376,14 @@ public class SupplierItemVo implements Entity {
*/
*/
private
Integer
targetNum
;
private
Integer
targetNum
;
/**
* 团购状态
*/
private
Integer
groupPurchaseState
;
/**
* 团购状态
*/
private
String
groupPurchaseStateName
;
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/GroupPurchaseConfigRequestDto.java
View file @
10ce5455
...
@@ -36,6 +36,8 @@ public class GroupPurchaseConfigRequestDto extends BaseRequestDto implements Ent
...
@@ -36,6 +36,8 @@ public class GroupPurchaseConfigRequestDto extends BaseRequestDto implements Ent
*/
*/
private
Date
endTime
;
private
Date
endTime
;
private
Date
queryStartTime
;
/**
/**
* 时间范围查询
* 时间范围查询
*/
*/
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/GroupPurchaseConfigDaoImpl.java
View file @
10ce5455
...
@@ -72,6 +72,7 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
...
@@ -72,6 +72,7 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
GroupPurchaseConfigExample
.
Criteria
criteria
=
example
.
createCriteria
();
GroupPurchaseConfigExample
.
Criteria
criteria
=
example
.
createCriteria
();
JdbcHelper
.
ifPresent
(
dto
.
getItemId
(),
criteria:
:
andItemIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getItemId
(),
criteria:
:
andItemIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getQueryStartTime
(),
criteria:
:
andEndTimeGreaterThanOrEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getQueryEndTime
(),
criteria:
:
andEndTimeLessThanOrEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getQueryEndTime
(),
criteria:
:
andEndTimeLessThanOrEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getIsDeal
(),
criteria:
:
andIsDealEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getIsDeal
(),
criteria:
:
andIsDealEqualTo
);
example
.
setOrderByClause
(
" create_time desc"
);
example
.
setOrderByClause
(
" create_time desc"
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/DistributionOrderDetailVo.java
View file @
10ce5455
...
@@ -265,4 +265,14 @@ public class DistributionOrderDetailVo implements Entity {
...
@@ -265,4 +265,14 @@ public class DistributionOrderDetailVo implements Entity {
* 团购结束时间
* 团购结束时间
*/
*/
private
Date
groupPurchaseEndTime
;
private
Date
groupPurchaseEndTime
;
/**
* 团购状态
*/
private
Integer
groupPurchaseState
;
/**
* 团购状态
*/
private
String
groupPurchaseStateName
;
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/DistributionOrderVo.java
View file @
10ce5455
...
@@ -198,5 +198,15 @@ public class DistributionOrderVo implements Entity {
...
@@ -198,5 +198,15 @@ public class DistributionOrderVo implements Entity {
* 团购结束时间
* 团购结束时间
*/
*/
private
Date
groupPurchaseEndTime
;
private
Date
groupPurchaseEndTime
;
/**
* 团购状态
*/
private
Integer
groupPurchaseState
;
/**
* 团购状态
*/
private
String
groupPurchaseStateName
;
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
10ce5455
...
@@ -1036,6 +1036,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1036,6 +1036,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
distributionOrderVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
distributionOrderVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
new
Date
()))
{
distributionOrderVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
distributionOrderVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getDes
());
}
else
{
distributionOrderVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
distributionOrderVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getDes
());
}
}
}
//支付截止时间,下单后半小时内
//支付截止时间,下单后半小时内
...
@@ -1077,6 +1084,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1077,6 +1084,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
if
(
type
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
if
(
type
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
distributionOrderDetailVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
distributionOrderDetailVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
new
Date
()))
{
distributionOrderDetailVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
distributionOrderDetailVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getDes
());
}
else
{
distributionOrderDetailVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
distributionOrderDetailVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getDes
());
}
}
}
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
()
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
()
&&
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
())
{
&&
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
())
{
...
@@ -1156,6 +1170,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1156,6 +1170,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
distributionOrderVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
distributionOrderVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
new
Date
()))
{
distributionOrderVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
distributionOrderVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getDes
());
}
else
{
distributionOrderVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
distributionOrderVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getDes
());
}
}
}
//如果藏家订单是取消状态,查询对应鉴定单状态
//如果藏家订单是取消状态,查询对应鉴定单状态
...
@@ -1218,6 +1239,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1218,6 +1239,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
distributionOrderDetailVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
distributionOrderDetailVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
new
Date
()))
{
distributionOrderDetailVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
distributionOrderDetailVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getDes
());
}
else
{
distributionOrderDetailVo
.
setGroupPurchaseState
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
distributionOrderDetailVo
.
setGroupPurchaseStateName
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getDes
());
}
}
}
//查询藏家是否具有直接发货给买家的权限
//查询藏家是否具有直接发货给买家的权限
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/job/GroupPurchaseJob.java
View file @
10ce5455
package
com.wwdz.ch.wx.job
;
package
com.wwdz.ch.wx.job
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.api.WxAppletApi
;
import
com.wwdz.ch.core.consts.GroupPurchaseEnum
;
import
com.wwdz.ch.core.consts.*
;
import
com.wwdz.ch.db.dao.distribution.DistributionOrderDao
;
import
com.wwdz.ch.core.entity.AuctionOfferNoticeMsg
;
import
com.wwdz.ch.db.dao.distribution.DistributorProfitDao
;
import
com.wwdz.ch.core.entity.GroupPurchaseNoticeMsg
;
import
com.wwdz.ch.db.dao.distribution.GroupPurchaseConfigDao
;
import
com.wwdz.ch.core.notify.AliSmsSender
;
import
com.wwdz.ch.db.dao.distribution.GroupPurchaseRecordDao
;
import
com.wwdz.ch.core.service.SendMsgService
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseRecord
;
import
com.wwdz.ch.core.util.RedisUtils
;
import
com.wwdz.ch.db.dao.DisposableSubscribeRecordDao
;
import
com.wwdz.ch.db.dao.distribution.*
;
import
com.wwdz.ch.db.domain.distribution.*
;
import
com.wwdz.ch.db.dto.request.distribution.DisposableSubscribeRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto
;
import
com.wwdz.ch.wx.entity.GroupPurchaseInfo
;
import
com.wwdz.ch.wx.service.distribution.GroupPurchaseService
;
import
com.wwdz.ch.wx.service.distribution.GroupPurchaseService
;
import
com.xxdxxs.utils.DateUtils
;
import
com.xxdxxs.utils.JsonUtils
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.redisson.api.RedissonClient
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -19,7 +27,10 @@ import org.slf4j.LoggerFactory;
...
@@ -19,7 +27,10 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
...
@@ -30,6 +41,10 @@ public class GroupPurchaseJob {
...
@@ -30,6 +41,10 @@ public class GroupPurchaseJob {
private
final
static
String
GROUPPURCHASE_KEY
=
"GROUPPURCHASE_KEY"
;
private
final
static
String
GROUPPURCHASE_KEY
=
"GROUPPURCHASE_KEY"
;
//团购进度提醒,标识key
private
final
static
String
GROUPPURCHASE_RATE_NOTICE_KEY
=
"SPECIALPERFORMANCE_START_NOTICE_KEY:"
;
@Autowired
@Autowired
RedissonClient
redissonClient
;
RedissonClient
redissonClient
;
...
@@ -48,6 +63,25 @@ public class GroupPurchaseJob {
...
@@ -48,6 +63,25 @@ public class GroupPurchaseJob {
@Autowired
@Autowired
GroupPurchaseService
groupPurchaseService
;
GroupPurchaseService
groupPurchaseService
;
@Autowired
AliSmsSender
aliSmsSender
;
@Autowired
RedisUtils
redisUtils
;
@Autowired
WxAppletApi
wxAppletApi
;
@Autowired
SendMsgService
sendMsgService
;
@Autowired
DisposableSubscribeRecordDao
disposableSubscribeRecordDao
;
@Autowired
SupplierItemDao
supplierItemDao
;
/**
/**
* 隔2分钟运行一次
* 隔2分钟运行一次
*/
*/
...
@@ -127,4 +161,90 @@ public class GroupPurchaseJob {
...
@@ -127,4 +161,90 @@ public class GroupPurchaseJob {
}
}
}
}
/**
* 团购进度通知
*/
public
void
rateNotice
()
{
//查询两小时内即将结束的团购商品
GroupPurchaseConfigRequestDto
groupPurchaseConfigRequestDto
=
new
GroupPurchaseConfigRequestDto
();
Date
now
=
new
Date
();
Instant
startInstant
=
now
.
toInstant
().
plus
(
Duration
.
ofHours
(
2
));
Date
endTime
=
Date
.
from
(
startInstant
);
groupPurchaseConfigRequestDto
.
setQueryStartTime
(
now
);
groupPurchaseConfigRequestDto
.
setQueryEndTime
(
endTime
);
groupPurchaseConfigRequestDto
.
setLimit
(
9999
);
List
<
GroupPurchaseConfig
>
groupPurchaseConfigList
=
groupPurchaseConfigDao
.
findList
(
groupPurchaseConfigRequestDto
);
logger
.
info
(
"即将结束的团购商品个数为 {}"
,
groupPurchaseConfigList
.
size
());
if
(
CollectionUtils
.
isEmpty
(
groupPurchaseConfigList
))
{
return
;
}
//查询订阅通知记录
for
(
GroupPurchaseConfig
groupPurchaseConfig
:
groupPurchaseConfigList
)
{
long
itemId
=
groupPurchaseConfig
.
getItemId
();
DisposableSubscribeRecordRequestDto
disposableSubscribeRecordRequestDto
=
new
DisposableSubscribeRecordRequestDto
();
disposableSubscribeRecordRequestDto
.
setTargetId
(
groupPurchaseConfig
.
getItemId
());
disposableSubscribeRecordRequestDto
.
setType
(
DisposableSubscribeRecordEnum
.
TypeEnum
.
GROUPPURASE_RATE
.
getType
());
boolean
hasNextPage
=
true
;
int
page
=
1
;
String
url
=
wxAppletApi
.
getUrlLink
(
CommConsts
.
ITEM_OF_GROUPPURCHASE_URL
,
"itemId="
+
groupPurchaseConfig
.
getItemId
());
while
(
hasNextPage
)
{
List
<
DisposableSubscribeRecord
>
disposableSubscribeRecordList
=
disposableSubscribeRecordDao
.
findList
(
disposableSubscribeRecordRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
(
disposableSubscribeRecordList
);
for
(
DisposableSubscribeRecord
disposableSubscribeRecord
:
disposableSubscribeRecordList
)
{
String
abortStartKey
=
GROUPPURCHASE_RATE_NOTICE_KEY
+
disposableSubscribeRecord
.
getUserId
()
+
":"
+
itemId
;
if
(!
redisUtils
.
hasKey
(
abortStartKey
))
{
sendRateSubscribeMsg
(
groupPurchaseConfig
,
disposableSubscribeRecord
);
redisUtils
.
set
(
abortStartKey
,
itemId
,
3600
*
24
);
}
else
{
logger
.
info
(
"================商品id: {}, 团购进度提醒任务已经完成,无需重复发送 =============="
,
itemId
);
}
}
if
(
pageInfo
.
isHasNextPage
())
{
page
=
page
+
1
;
disposableSubscribeRecordRequestDto
.
setPage
(
page
);
logger
.
info
(
"要团购进度提醒的用户数据总页数为 : {}, 当前为 : {}"
,
pageInfo
.
getPages
(),
page
);
}
else
{
logger
.
info
(
"============= 发送专场开始订阅消息循环结束 ============="
);
break
;
}
}
logger
.
info
(
"================商品id: {}, 团购进度提醒发送成功 =============="
,
itemId
);
}
}
private
void
sendRateSubscribeMsg
(
GroupPurchaseConfig
groupPurchaseConfig
,
DisposableSubscribeRecord
disposableSubscribeRecord
){
long
itemId
=
groupPurchaseConfig
.
getItemId
();
GroupPurchaseNoticeMsg
groupPurchaseNoticeMsg
=
new
GroupPurchaseNoticeMsg
();
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
itemId
);
groupPurchaseNoticeMsg
.
setItemId
(
itemId
);
groupPurchaseNoticeMsg
.
setItemName
(
supplierItem
.
getName
());
GroupPurchaseRecordRequestDto
groupPurchaseRecordRequestDto
=
new
GroupPurchaseRecordRequestDto
();
groupPurchaseRecordRequestDto
.
setItemId
(
groupPurchaseNoticeMsg
.
getItemId
());
Result
<
GroupPurchaseInfo
>
rateResult
=
groupPurchaseService
.
checkGroupPurchase
(
groupPurchaseRecordRequestDto
);
if
(!
rateResult
.
getSuccess
())
{
logger
.
error
(
"商品id:{}, 查询团购进度失败,无法发送订阅消息"
,
itemId
);
return
;
}
GroupPurchaseInfo
groupPurchaseInfo
=
rateResult
.
getData
();
String
url
=
wxAppletApi
.
getUrlLink
(
CommConsts
.
ITEM_OF_GROUPPURCHASE_URL
,
"itemId="
+
itemId
);
String
rateMsg
=
"当前已众筹了"
+
groupPurchaseInfo
.
getItemNum
()
+
"件,进度为"
+
groupPurchaseInfo
.
getRate
()
+
"%"
;
String
msg
=
"您参与的众筹商品'"
+
supplierItem
.
getName
()
+
"'将在"
+
DateUtils
.
toString
(
groupPurchaseConfig
.
getEndTime
())
+
"结束,"
+
rateMsg
+
",请前往"
+
url
+
"查看"
;
groupPurchaseNoticeMsg
.
setRate
(
rateMsg
);
groupPurchaseNoticeMsg
.
setEndTime
(
DateUtils
.
toString
(
groupPurchaseConfig
.
getEndTime
()));
Result
result
=
sendMsgService
.
sendGroupPurchaseRateMsg
(
groupPurchaseNoticeMsg
);
if
(!
result
.
getSuccess
())
{
String
errorCode
=
JsonUtils
.
getValueByPath
(
result
.
getErrmsg
(),
"errcode"
);
//用户为订阅消息,43101用户未订阅消息;43108并发下发消息给同一个粉丝,这两种情况表示用户不需要被通知
if
(!
"43101"
.
equals
(
errorCode
)
&&
!
"43108"
.
equals
(
errorCode
))
{
//发订阅消息送失败发短信
long
userId
=
disposableSubscribeRecord
.
getUserId
();
aliSmsSender
.
sendSms
(
userId
,
msg
);
}
}
//订阅状态改为无效
disposableSubscribeRecordDao
.
updateInvalid
(
disposableSubscribeRecord
.
getOpenid
(),
disposableSubscribeRecord
.
getTargetId
(),
disposableSubscribeRecord
.
getTemplateId
());
}
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/DistributionOrderController.java
View file @
10ce5455
...
@@ -110,7 +110,7 @@ public class DistributionOrderController {
...
@@ -110,7 +110,7 @@ public class DistributionOrderController {
@PostMapping
(
"/createGroupPurchaseOrder"
)
@PostMapping
(
"/createGroupPurchaseOrder"
)
public
Result
createGroupPurchaseOrder
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
public
Result
createGroupPurchaseOrder
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
logger
.
info
(
"创建团购订单,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
logger
.
info
(
"创建团购订单,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getItemId
(),
dto
.
getItemNum
(),
dto
.
getUserId
(),
dto
.
getBuyerOpenid
()
,
dto
.
getAmount
()
))
{
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getItemId
(),
dto
.
getItemNum
(),
dto
.
getUserId
(),
dto
.
getBuyerOpenid
()))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
}
return
distributionOrderService
.
createGroupPurchaseOrder
(
dto
);
return
distributionOrderService
.
createGroupPurchaseOrder
(
dto
);
...
...
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