Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
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
youjj
cloud-platform
Commits
17c3cccd
Commit
17c3cccd
authored
Jan 04, 2021
by
hezhen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master-tiande' into dev-tiande
parents
53106a43
c0ac5a0b
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1084 additions
and
17 deletions
+1084
-17
OrderGoodsDTO.java
.../com/github/wxiaoqi/security/admin/dto/OrderGoodsDTO.java
+5
-1
AppUserSellingWaterBiz.java
...ub/wxiaoqi/security/admin/biz/AppUserSellingWaterBiz.java
+56
-0
WaterMQHandler.java
...github/wxiaoqi/security/admin/handler/WaterMQHandler.java
+23
-4
ActivityInfo.java
.../java/com/xxfc/platform/activity/entity/ActivityInfo.java
+122
-0
ActivityInfoUser.java
...a/com/xxfc/platform/activity/entity/ActivityInfoUser.java
+74
-0
ActivityFeign.java
.../java/com/xxfc/platform/activity/feign/ActivityFeign.java
+4
-0
ActivityInfoRuleVo.java
...ava/com/xxfc/platform/activity/vo/ActivityInfoRuleVo.java
+39
-0
ActivityInfoBiz.java
.../java/com/xxfc/platform/activity/biz/ActivityInfoBiz.java
+59
-0
ActivityInfoUserBiz.java
...a/com/xxfc/platform/activity/biz/ActivityInfoUserBiz.java
+155
-0
WebConfiguration.java
...a/com/xxfc/platform/activity/config/WebConfiguration.java
+2
-1
ActivityInfoMapper.java
...com/xxfc/platform/activity/mapper/ActivityInfoMapper.java
+15
-0
ActivityInfoUserMapper.java
...xxfc/platform/activity/mapper/ActivityInfoUserMapper.java
+15
-0
AppActivityInfoController.java
...xfc/platform/activity/rest/AppActivityInfoController.java
+67
-0
BaseController.java
.../java/com/xxfc/platform/activity/rest/BaseController.java
+41
-0
OrderActivityDetail.java
...a/com/xxfc/platform/order/entity/OrderActivityDetail.java
+75
-0
OrderFeign.java
...c/main/java/com/xxfc/platform/order/feign/OrderFeign.java
+6
-0
OrderMQDTO.java
...main/java/com/xxfc/platform/order/pojo/mq/OrderMQDTO.java
+3
-0
ActivityInfoBO.java
...va/com/xxfc/platform/order/pojo/order/ActivityInfoBO.java
+39
-0
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+42
-11
OrderActivityInfoDetailBiz.java
...m/xxfc/platform/order/biz/OrderActivityInfoDetailBiz.java
+24
-0
WebConfiguration.java
...java/com/xxfc/platform/order/config/WebConfiguration.java
+1
-0
OrderActivityDetailMapper.java
...xxfc/platform/order/mapper/OrderActivityDetailMapper.java
+15
-0
OrderActivityInfoController.java
...xxfc/platform/order/rest/OrderActivityInfoController.java
+40
-0
OrderActivityInfoService.java
...xxfc/platform/order/service/OrderActivityInfoService.java
+162
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/OrderGoodsDTO.java
View file @
17c3cccd
...
...
@@ -15,7 +15,7 @@ public class OrderGoodsDTO {
public
static
final
Integer
TYPE_TOUR
=
2
;
public
static
final
Integer
TYPE_MEMBER
=
3
;
public
static
final
Integer
TYPE_CAMPSITE
=
4
;
public
static
final
Integer
TYPE_ACTIVITY
=
5
;
/**
* 商品id
*/
...
...
@@ -53,4 +53,8 @@ public class OrderGoodsDTO {
@ApiModelProperty
(
value
=
"售价"
)
private
BigDecimal
price
;
@ApiModelProperty
(
value
=
"拥金"
)
private
BigDecimal
comission
;
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserSellingWaterBiz.java
View file @
17c3cccd
...
...
@@ -184,6 +184,62 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
}
}
//购买计算用户拥金
public
void
payOrderActivityWater
(
OrderWaterDTO
orderWaterDTO
)
{
//订单id
Integer
orderId
=
orderWaterDTO
.
getOrderId
();
//订单号
String
orderNo
=
orderWaterDTO
.
getOrderNo
();
//用户id
Integer
userId
=
orderWaterDTO
.
getUserId
();
List
<
OrderGoodsDTO
>
goodsDTOList
=
orderWaterDTO
.
getGoodsDTOList
();
log
.
info
(
"活动计算用户拥金----payOrderWater----userId===="
+
userId
+
"---orderId==="
+
orderId
+
"---orderNo==="
+
orderNo
);
if
(
orderId
==
null
||
orderId
==
0
||
userId
==
null
||
userId
==
0
|
CollectionUtils
.
isEmpty
(
goodsDTOList
))
{
log
.
info
(
"购买计算用户拥金----payOrderWater----参数不能为空----orderId==="
+
orderId
);
return
;
}
AppUserRelation
relation
=
relationBiz
.
getRelationByIdUserIdAndTime
(
userId
);
if
(
relation
==
null
||
relation
.
getParentId
()
==
null
||
relation
.
getParentId
()
==
0
)
{
log
.
info
(
"活动计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---无有效上线"
);
return
;
}
Integer
parentId
=
relation
.
getParentId
();
log
.
info
(
"活动计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---parentId==="
+
parentId
);
BigDecimal
amount
=
new
BigDecimal
(
"0.00"
);
for
(
OrderGoodsDTO
goodsDto
:
goodsDTOList
)
{
//商品id
Integer
goodId
=
goodsDto
.
getGoodId
();
//商品价格
BigDecimal
price
=
goodsDto
.
getPrice
();
BigDecimal
commission
=
goodsDto
.
getComission
()
==
null
?
BigDecimal
.
ZERO
:
goodsDto
.
getComission
();
AppUserSellingWater
sellingWater
=
new
AppUserSellingWater
();
sellingWater
.
setOrderId
(
orderId
);
sellingWater
.
setGoodId
(
goodId
);
sellingWater
=
selectOne
(
sellingWater
);
if
(
sellingWater
!=
null
)
continue
;
log
.
info
(
"购买计算用户拥金----payOrderWater--------userId==="
+
userId
+
"---commission==="
+
commission
);
sellingWater
=
new
AppUserSellingWater
();
sellingWater
.
setUserId
(
parentId
);
sellingWater
.
setSourceId
(
userId
);
sellingWater
.
setOrderId
(
orderId
);
sellingWater
.
setOrderNo
(
orderNo
);
sellingWater
.
setOrderType
(
goodsDto
.
getType
());
sellingWater
.
setGoodId
(
goodId
);
sellingWater
.
setTitle
(
goodsDto
.
getTitle
());
sellingWater
.
setImg
(
goodsDto
.
getImg
());
sellingWater
.
setPrice
(
price
);
sellingWater
.
setGoodNumber
(
goodsDto
.
getGoodNumber
());
sellingWater
.
setCommission
(
commission
);
insertSelective
(
sellingWater
);
log
.
info
(
"活动计算用户拥成功----payOrderWater--------userId==="
+
userId
);
amount
=
amount
.
add
(
commission
);
}
log
.
info
(
"活动计算用户未入账----payOrderWater--------userId==="
+
parentId
+
"----amount===="
+
amount
);
finishOrderWater
(
orderWaterDTO
);
}
//订单完成计算用户拥金
public
void
finishOrderWater
(
OrderWaterDTO
orderWaterDTO
)
{
//订单id
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/handler/WaterMQHandler.java
View file @
17c3cccd
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
handler
;
import
cn.hutool.db.sql.Order
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
cn.hutool.json.JSONUtil
;;
import
com.github.wxiaoqi.security.admin.biz.AppUserSellingWaterBiz
;
import
com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO
;
import
com.github.wxiaoqi.security.admin.dto.OrderWaterDTO
;
...
...
@@ -27,6 +26,7 @@ import java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors
;
import
static
com
.
github
.
wxiaoqi
.
security
.
admin
.
config
.
RabbitAdminConfig
.*;
import
static
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
.
OrderTypeEnum
.*;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
mq
.
OrderMQDTO
.*;
@Component
...
...
@@ -124,11 +124,30 @@ public class WaterMQHandler {
}}
);
break
;
case
ACTIVITY:
orderWaterDTO
.
setGoodsDTOList
(
new
ArrayList
<
OrderGoodsDTO
>()
{{
add
(
new
OrderGoodsDTO
()
{{
setGoodId
(
orderMQDTO
.
getOrderActivityDetail
().
getActivityId
());
setGoodNumber
(
1
);
setImg
(
orderMQDTO
.
getPicture
());
setPrice
(
orderMQDTO
.
getRealAmount
());
setComission
(
orderMQDTO
.
getOrderActivityDetail
().
getParentComisson
());
setTitle
(
orderMQDTO
.
getName
());
setType
(
OrderGoodsDTO
.
TYPE_ACTIVITY
);
}});
}}
);
break
;
default
:
break
;
}
waterBiz
.
orderWater
(
orderWaterDTO
);
if
(
OrderTypeEnum
.
get
(
orderMQDTO
.
getType
()).
equals
(
ACTIVITY
)){
waterBiz
.
payOrderActivityWater
(
orderWaterDTO
);
}
else
{
waterBiz
.
orderWater
(
orderWaterDTO
);
}
executorService
.
shutdown
();
Long
deliveryTag
=
(
Long
)
headers
.
get
(
AmqpHeaders
.
DELIVERY_TAG
);
...
...
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityInfo.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
entity
;
import
cn.hutool.json.JSONUtil
;
import
com.xxfc.platform.activity.vo.ActivityInfoRuleVo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
import
javax.persistence.*
;
import
java.io.Serializable
;
/**
* 通用活动规则表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
@Data
@Table
(
name
=
"activity_info"
)
public
class
ActivityInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键id"
)
private
Integer
id
;
@Column
(
name
=
"type"
)
@ApiModelProperty
(
value
=
"活动类型:1-2680活动"
)
private
Integer
type
;
/**
* 活动名称
*/
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"活动名称"
)
private
String
name
;
@Column
(
name
=
"img"
)
@ApiModelProperty
(
value
=
"活动名称"
)
private
String
img
;
@Column
(
name
=
"descr"
)
@ApiModelProperty
(
value
=
"活动描述"
)
private
String
descr
;
@Column
(
name
=
"start_time"
)
@ApiModelProperty
(
value
=
"活动开始时间"
)
private
Long
startTime
;
@Column
(
name
=
"end_time"
)
@ApiModelProperty
(
value
=
"活动结束时间"
)
private
Long
endTime
;
@Column
(
name
=
"number"
)
@ApiModelProperty
(
value
=
"活动人数限制"
)
private
Integer
number
;
@Column
(
name
=
"join_number"
)
@ApiModelProperty
(
value
=
"参加活动人数"
)
private
Integer
joinNumber
;
@Column
(
name
=
"status"
)
@ApiModelProperty
(
value
=
"活动是否开启:0-未开启;1-已开启;2-已关闭"
)
private
Integer
status
;
@Column
(
name
=
"value"
)
@ApiModelProperty
(
value
=
"活动奖励规则,json"
)
private
String
value
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
value
=
"是否删除:0-正常;1-删除"
)
private
Integer
isDel
;
@Transient
private
ActivityInfoRuleVo
activityInfoRuleVo
;
@Transient
private
Integer
isJoin
;
@Transient
private
Integer
orderId
;
public
ActivityInfoRuleVo
getActivityInfoRuleVo
(){
ActivityInfoRuleVo
activityInfoRuleVo
=
null
;
if
(
StringUtils
.
isNotBlank
(
value
)){
activityInfoRuleVo
=
JSONUtil
.
toBean
(
value
,
ActivityInfoRuleVo
.
class
);
}
return
activityInfoRuleVo
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityInfoUser.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.io.Serializable
;
/**
* 用户活动表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
@Data
@Table
(
name
=
"activity_info_user"
)
public
class
ActivityInfoUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键id"
)
private
Integer
id
;
@Column
(
name
=
"user_id"
)
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userId
;
@Column
(
name
=
"activity_id"
)
@ApiModelProperty
(
value
=
"活动id"
)
private
Integer
activityId
;
@Column
(
name
=
"status"
)
@ApiModelProperty
(
value
=
"状态:0-参加中;1-已参加;2-已取消"
)
private
Integer
status
;
@Column
(
name
=
"order_id"
)
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
orderId
;
@Column
(
name
=
"order_no"
)
@ApiModelProperty
(
value
=
"订单号"
)
private
String
orderNo
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"参与时间"
,
hidden
=
true
)
private
Long
crtTime
;
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
value
=
"是否删除:0-正常;1-删除"
)
private
Integer
isDel
;
@Transient
private
Integer
type
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/feign/ActivityFeign.java
View file @
17c3cccd
...
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.admin.dto.UserInfoDTO;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.dto.ActivityListDTO
;
import
com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.activity.entity.ActivityProduct
;
import
com.xxfc.platform.activity.entity.ActivityProductSpecs
;
import
com.xxfc.platform.activity.entity.Coupon
;
...
...
@@ -103,4 +104,7 @@ public interface ActivityFeign {
@PostMapping
(
value
=
"/activity/product/app/unauth/update"
)
public
ObjectRestResponse
updateProduct
(
@RequestBody
ActivityProduct
activityProduct
);
@PostMapping
(
"app/activityInfo/app/unauth/updActivty"
)
ObjectRestResponse
updActivty
(
@RequestBody
ActivityInfo
activityInfo
);
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/vo/ActivityInfoRuleVo.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* 通用活动规则表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
@Data
public
class
ActivityInfoRuleVo
extends
ActivityRuleVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"支付金额"
)
private
BigDecimal
payPrice
;
@ApiModelProperty
(
value
=
"天数"
)
private
Integer
days
;
@ApiModelProperty
(
value
=
"上级拥金"
)
private
BigDecimal
parentComisson
;
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityInfoBiz.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.activity.entity.ActivityRule
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.activity.mapper.ActivityInfoMapper
;
import
com.xxfc.platform.activity.mapper.ActivityRuleMapper
;
import
com.xxfc.platform.activity.vo.ActivityRuleVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 通用活动规则表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
@Slf4j
@Service
public
class
ActivityInfoBiz
extends
BaseBiz
<
ActivityInfoMapper
,
ActivityInfo
>
{
//获取最新的生效的活动
public
ActivityInfo
getActity
(
Integer
type
){
Example
example
=
new
Example
(
ActivityInfo
.
class
);
example
.
createCriteria
().
andEqualTo
(
"status"
,
1
).
andEqualTo
(
"type"
,
type
).
andEqualTo
(
"isDel"
,
0
);
example
.
setOrderByClause
(
"id desc"
);
List
<
ActivityInfo
>
list
=
mapper
.
selectByExample
(
example
);
if
(
list
.
size
()>
0
){
return
list
.
get
(
0
);
}
return
null
;
}
//获取最新活动的H5页面
public
ActivityInfo
getActivityH5
(
Integer
type
){
type
=
type
==
null
?
1
:
type
;
ActivityInfo
activityInfo
=
getActity
(
type
);
if
(
activityInfo
==
null
)
throw
new
BaseException
(
"无有效的活动"
,
ResultCode
.
NULL_CODE
);
return
activityInfo
;
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityInfoUserBiz.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.activity.entity.ActivityInfoUser
;
import
com.xxfc.platform.activity.mapper.ActivityInfoUserMapper
;
import
com.xxfc.platform.activity.vo.ActivityInfoRuleVo
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderActivityDetail
;
import
com.xxfc.platform.order.feign.OrderFeign
;
import
com.xxfc.platform.order.pojo.order.ActivityInfoBO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* 用户活动表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
@Service
@Slf4j
public
class
ActivityInfoUserBiz
extends
BaseBiz
<
ActivityInfoUserMapper
,
ActivityInfoUser
>
{
@Autowired
ActivityInfoBiz
activityInfoBiz
;
@Autowired
OrderFeign
orderFeign
;
@Autowired
UserFeign
userFeign
;
//参与活动
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
BaseOrder
joinActivity
(
ActivityInfoUser
activityInfoUser
){
ActivityInfo
activityInfo
=
activityInfoBiz
.
selectById
(
activityInfoUser
.
getActivityId
());
if
(
activityInfo
==
null
||
activityInfo
.
getStatus
()
!=
1
)
throw
new
BaseException
(
"无效的活动"
,
ResultCode
.
NULL_CODE
);
Integer
joinNumber
=
activityInfo
.
getJoinNumber
()
==
null
?
0
:
activityInfo
.
getJoinNumber
();
Integer
number
=
activityInfo
.
getNumber
()
==
null
?
0
:
activityInfo
.
getNumber
();
if
(
number
>
0
&&
joinNumber
>=
number
)
throw
new
BaseException
(
"----活动已超过参与人数----number==="
+
number
,
ResultCode
.
FAILED_CODE
);
Integer
activityId
=
activityInfo
.
getId
();
activityInfoUser
.
setActivityId
(
activityId
);
activityInfoUser
.
setStatus
(
1
);
Long
num
=
selectCount
(
activityInfoUser
);
if
(
num
!=
null
&&
num
>
0
)
throw
new
BaseException
(
"用户已参与该活动"
,
ResultCode
.
FAILED_CODE
);
activityInfoUser
.
setStatus
(
0
);
ActivityInfoUser
activityInfoUserStatus
=
getOne
(
activityInfoUser
);
if
(
activityInfoUserStatus
!=
null
){
activityInfoUserStatus
.
setStatus
(
2
);
updateSelectiveById
(
activityInfoUserStatus
);
}
else
{
joinNumber
+=
1
;
}
BaseOrder
baseOrder
=
addOrder
(
activityInfo
);
if
(
baseOrder
==
null
)
throw
new
BaseException
(
"下单失败"
,
ResultCode
.
FAILED_CODE
);
activityInfoUser
.
setOrderId
(
baseOrder
.
getId
());
activityInfoUser
.
setOrderNo
(
baseOrder
.
getNo
());
insertSelective
(
activityInfoUser
);
activityInfo
.
setJoinNumber
(
joinNumber
);
activityInfoBiz
.
updateSelectiveById
(
activityInfo
);
return
baseOrder
;
}
public
ActivityInfoUser
getOne
(
ActivityInfoUser
activityInfoUser
){
Example
example
=
new
Example
(
ActivityInfoUser
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"activityId"
,
activityInfoUser
.
getActivityId
()).
andEqualTo
(
"userId"
,
activityInfoUser
.
getUserId
()).
andEqualTo
(
"isDel"
,
0
);
if
(
activityInfoUser
.
getStatus
()
!=
null
)
criteria
.
andEqualTo
(
"status"
,
activityInfoUser
.
getStatus
());
example
.
setOrderByClause
(
"id desc"
);
List
<
ActivityInfoUser
>
list
=
mapper
.
selectByExample
(
example
);
if
(
list
.
size
()>
0
){
return
list
.
get
(
0
);
}
return
null
;
}
public
BaseOrder
addOrder
(
ActivityInfo
activityInfo
){
ActivityInfoBO
activityInfoBO
=
new
ActivityInfoBO
();
activityInfoBO
.
setActivity
(
activityInfo
);
ObjectRestResponse
<
BaseOrder
>
restResponse
=
orderFeign
.
add
(
activityInfoBO
);
if
(
restResponse
.
getData
()
==
null
){
throw
new
BaseException
(
restResponse
.
getMessage
(),
restResponse
.
getStatus
());
}
return
restResponse
.
getData
();
}
public
ActivityInfo
getInfo
(
ActivityInfoUser
activityInfoUser
){
ActivityInfo
activityInfo
=
activityInfoBiz
.
getActivityH5
(
activityInfoUser
.
getType
());
activityInfoUser
.
setActivityId
(
activityInfo
.
getId
());
activityInfoUser
.
setStatus
(
1
);
activityInfoUser
=
getOne
(
activityInfoUser
);
Integer
isJoin
=
0
;
if
(
activityInfoUser
!=
null
){
isJoin
=
1
;
}
activityInfo
.
setIsJoin
(
isJoin
);
return
activityInfo
;
}
public
ObjectRestResponse
updActivty
(
ActivityInfo
activityInfo
){
Integer
orderId
=
activityInfo
.
getOrderId
();
ActivityInfoUser
activityInfoUser
=
new
ActivityInfoUser
();
activityInfoUser
.
setOrderId
(
orderId
);
activityInfoUser
=
selectOne
(
activityInfoUser
);
if
(
activityInfoUser
==
null
){
throw
new
BaseException
(
"未参加活动"
,
ResultCode
.
FAILED_CODE
);
}
activityInfoUser
.
setStatus
(
1
);
updateSelectiveById
(
activityInfoUser
);
Integer
userId
=
activityInfoUser
.
getUserId
()
==
null
?
0
:
activityInfoUser
.
getUserId
();
ActivityInfoRuleVo
activityInfoRuleVo
=
activityInfo
.
getActivityInfoRuleVo
();
Integer
days
=
0
;
if
(
activityInfoRuleVo
!=
null
){
days
=
activityInfoRuleVo
.
getDays
();
}
UserMemberDTO
userMemberDTO
=
new
UserMemberDTO
()
{{
setUserId
(
userId
);
setIsBind
(
ISBIND_BIND
);
}};
userMemberDTO
.
setRentFreeDays
(
days
);
userMemberDTO
.
setTotalNumber
(
days
);
return
userFeign
.
buyMember
(
userMemberDTO
);
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/config/WebConfiguration.java
View file @
17c3cccd
...
...
@@ -53,7 +53,8 @@ public class WebConfiguration implements WebMvcConfigurer {
private
ArrayList
<
String
>
getIncludePathPatterns
()
{
ArrayList
<
String
>
list
=
new
ArrayList
<>();
String
[]
urls
=
{
"/activityPopularize/**"
"/activityPopularize/**"
,
"/app/activityInfo/**"
};
Collections
.
addAll
(
list
,
urls
);
return
list
;
...
...
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityInfoMapper.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 通用活动表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
public
interface
ActivityInfoMapper
extends
Mapper
<
ActivityInfo
>
{
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityInfoUserMapper.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.entity.ActivityInfoUser
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 用户活动表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-16 14:04:22
*/
public
interface
ActivityInfoUserMapper
extends
Mapper
<
ActivityInfoUser
>
{
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/AppActivityInfoController.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
rest
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityInfoUserBiz
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.activity.entity.ActivityInfoUser
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping
(
"app/activityInfo"
)
@Api
(
tags
=
{
"2680活动"
})
public
class
AppActivityInfoController
extends
BaseController
<
ActivityInfoUserBiz
>
{
@PostMapping
(
"join"
)
@ApiModelProperty
(
"参加"
)
public
ObjectRestResponse
join
(
@RequestBody
ActivityInfoUser
activityInfoUser
){
activityInfoUser
.
setUserId
(
getCurrentUserIdInt
());
return
ObjectRestResponse
.
succ
(
baseBiz
.
joinActivity
(
activityInfoUser
));
}
@ApiOperation
(
"新人有礼参加活动"
)
@RequestMapping
(
value
=
"/app/unauth/H5"
,
method
=
RequestMethod
.
GET
)
@IgnoreUserToken
public
ObjectRestResponse
H5
(
ActivityInfoUser
activityInfoUser
){
activityInfoUser
.
setUserId
(
getCurrentUserIdInt
());
return
ObjectRestResponse
.
succ
(
baseBiz
.
getInfo
(
activityInfoUser
));
}
@PostMapping
(
"app/unauth/updActivty"
)
@ApiModelProperty
(
"支付后处理"
)
@IgnoreUserToken
public
ObjectRestResponse
updActivty
(
@RequestBody
ActivityInfo
activityInfo
)
{
baseBiz
.
updActivty
(
activityInfo
);
return
ObjectRestResponse
.
succ
();
}
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/BaseController.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
activity
.
rest
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.rest.CommonBaseController
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
@Slf4j
public
class
BaseController
<
Biz
extends
BaseBiz
>
extends
CommonBaseController
implements
UserRestInterface
{
@Autowired
protected
Biz
baseBiz
;
@Autowired
protected
UserAuthConfig
userAuthConfig
;
@Autowired
private
UserAuthUtil
userAuthUtil
;
@Autowired
UserFeign
userFeign
;
@Override
public
UserFeign
getUserFeign
()
{
return
userFeign
;
}
public
String
getUserName
()
throws
Exception
{
return
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
)).
getUniqueName
();
}
public
Biz
getBaseBiz
()
{
return
baseBiz
;
}
public
String
getUserId
()
throws
Exception
{
return
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
)).
getId
();
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderActivityDetail.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
order
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
@Data
@Table
(
name
=
"order_activity_detail"
)
public
class
OrderActivityDetail
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
@Column
(
name
=
"order_id"
)
@ApiModelProperty
(
value
=
"基础订单id"
)
private
Integer
orderId
;
@Column
(
name
=
"activity_id"
)
@ApiModelProperty
(
value
=
"活动id"
)
private
Integer
activityId
;
@Column
(
name
=
"activity_info"
)
@ApiModelProperty
(
value
=
"活动详情"
)
private
String
activityInfo
;
@Column
(
name
=
"rent_free_num"
)
@ApiModelProperty
(
value
=
"出租免费天数"
)
private
Integer
rentFreeNum
;
@Column
(
name
=
"parent_comisson"
)
@ApiModelProperty
(
value
=
"上级拥金"
)
private
BigDecimal
parentComisson
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/feign/OrderFeign.java
View file @
17c3cccd
...
...
@@ -3,8 +3,10 @@ package com.xxfc.platform.order.feign;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderInvoice
;
import
com.xxfc.platform.order.pojo.dto.OrderDTO
;
import
com.xxfc.platform.order.pojo.order.ActivityInfoBO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -34,4 +36,8 @@ public interface OrderFeign {
@PostMapping
(
value
=
"/count/basebase/findOrdersByorderIdV2"
)
ObjectRestResponse
<
List
<
OrderDTO
>>
findOrdersByorderIdV2
(
@RequestBody
List
<
Integer
>
orderIds
);
@PostMapping
(
value
=
"tainde/orderActivity/add"
)
ObjectRestResponse
<
BaseOrder
>
add
(
@RequestBody
ActivityInfoBO
bo
);
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/mq/OrderMQDTO.java
View file @
17c3cccd
...
...
@@ -25,6 +25,9 @@ public class OrderMQDTO extends BaseOrder implements OrderItemInter {
OrderMemberDetail
orderMemberDetail
;
OrderActivityDetail
orderActivityDetail
;
List
<
OrderItem
>
items
;
public
OrderItem
getItemByTypeEnum
(
ItemTypeEnum
itemTypeEnum
)
{
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/ActivityInfoBO.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderActivityDetail
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ActivityInfoBO
extends
OrderActivityDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
ActivityInfo
activity
;
AppUserDTO
appUserDTO
;
/**
* 促成人联系方式
*/
@ApiModelProperty
(
value
=
"促成人联系方式"
)
String
facilitatePhone
;
/**
* 下单来源,1--app;2--小程序
*/
private
Integer
orderOrigin
;
/**
* 优惠券*
*/
private
List
<
String
>
tickerNo
;
/**
* 订单子项
*/
List
<
OrderItem
>
items
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
17c3cccd
...
...
@@ -25,6 +25,7 @@ import com.github.wxiaoqi.security.common.util.Query;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.activity.entity.ActivityProductSpecs
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
...
...
@@ -152,6 +153,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
@Autowired
ShuntApplyBiz
shuntApplyBiz
;
@Autowired
OrderActivityInfoDetailBiz
activityInfoDetailBiz
;
public
static
final
DateTimeFormatter
DEFAULT_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
);
...
...
@@ -711,6 +715,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
OrderTourDetail
otd
=
new
OrderTourDetail
();
OrderMemberDetail
omd
=
new
OrderMemberDetail
();
OrderActiveDetail
activeDetail
=
new
OrderActiveDetail
();
OrderActivityDetail
activityDetail
=
null
;
BaseOrder
baseOrder
=
this
.
selectOne
(
new
BaseOrder
()
{{
setNo
(
orderNo
);
}});
...
...
@@ -799,6 +804,16 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
}
}
activityDetail
=
activityInfoDetailBiz
.
getOne
(
baseOrder
.
getId
());
if
(
activityDetail
!=
null
){
String
activityInfoStr
=
activityDetail
.
getActivityInfo
();
ActivityInfo
activityInfo
=
JSONUtil
.
toBean
(
activityInfoStr
,
ActivityInfo
.
class
);
activityInfo
.
setOrderId
(
baseOrder
.
getId
());
ObjectRestResponse
restResponse
=
activityFeign
.
updActivty
(
activityInfo
);
if
(
restResponse
.
getStatus
()
!=
200
)
throw
new
BaseException
(
restResponse
.
getMessage
(),
restResponse
.
getStatus
());
}
}
try
{
...
...
@@ -819,21 +834,25 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}});
}
}
finally
{
AppUserDTO
appUserDTO
=
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
();
if
(
activityDetail
!=
null
){
sendOrderActivityMq
(
activityDetail
,
baseOrder
,
ORDER_PAY
);
}
else
{
AppUserDTO
appUserDTO
=
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
();
//处理App用户提醒短信的发送
//处理App用户提醒短信的发送
// orderMsgBiz.handelAppUserMsg(orvd, omd, baseOrder, appUserDTO);
orderMsgBiz
.
handelMsgPayNew
(
orvd
,
otd
,
omd
,
baseOrder
,
appUserDTO
);
orderMsgBiz
.
handelMsgPayNew
(
orvd
,
otd
,
omd
,
baseOrder
,
appUserDTO
);
//处理后台用户提醒短信的发送
//处理后台用户提醒短信的发送
// orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_PAY);
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
ORDER_PAY
);
if
(
OrderTypeEnum
.
MEMBER
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
ORDER_FINISH
);
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
ORDER_END_1
);
//订单完成时,payway为 支付宝,则转支付
baseOrder
.
setPayWay
(
payWay
);
orderAccountBiz
.
finishFreeze2PayAmount
(
baseOrder
);
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
ORDER_PAY
);
if
(
OrderTypeEnum
.
MEMBER
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
ORDER_FINISH
);
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
ORDER_END_1
);
//订单完成时,payway为 支付宝,则转支付
baseOrder
.
setPayWay
(
payWay
);
orderAccountBiz
.
finishFreeze2PayAmount
(
baseOrder
);
}
}
}
}
else
{
...
...
@@ -856,6 +875,18 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
sendQueue
(
orderMQDTO
,
sign
);
}
public
void
sendOrderActivityMq
(
OrderActivityDetail
omd
,
BaseOrder
baseOrder
,
Integer
sign
)
{
//发送队列消息
OrderMQDTO
orderMQDTO
=
BeanUtil
.
toBean
(
baseOrder
,
OrderMQDTO
.
class
);
orderMQDTO
.
setOrderActivityDetail
(
omd
);
//获取item
orderMQDTO
.
setItems
(
orderItemBiz
.
selectList
(
new
OrderItem
()
{{
setOrderId
(
baseOrder
.
getId
());
}}));
sendQueue
(
orderMQDTO
,
sign
);
}
public
ObjectRestResponse
updateBaseOrder
(
BaseOrder
baseOrder
)
{
if
(
baseOrder
.
getId
()
==
null
)
{
return
ObjectRestResponse
.
paramIsEmpty
();
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderActivityInfoDetailBiz.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.order.entity.OrderActivityDetail
;;
import
com.xxfc.platform.order.mapper.OrderActivityDetailMapper
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.entity.Example
;
@Service
@Slf4j
@Api
(
"活动订单详情"
)
public
class
OrderActivityInfoDetailBiz
extends
BaseBiz
<
OrderActivityDetailMapper
,
OrderActivityDetail
>
{
public
OrderActivityDetail
getOne
(
Integer
orderId
)
{
Example
example
=
new
Example
(
OrderActivityDetail
.
class
);
example
.
createCriteria
().
andEqualTo
(
"orderId"
,
orderId
);
return
mapper
.
selectOneByExample
(
example
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/config/WebConfiguration.java
View file @
17c3cccd
...
...
@@ -62,6 +62,7 @@ public class WebConfiguration implements WebMvcConfigurer {
"/orderVehicle/**"
,
"/shuntApply/**"
,
"/admin/**"
,
"/tainde/**"
,
};
Collections
.
addAll
(
list
,
urls
);
return
list
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/OrderActivityDetailMapper.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
order
.
mapper
;
import
com.xxfc.platform.order.entity.OrderActivityDetail
;
import
tk.mybatis.mapper.common.Mapper
;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
public
interface
OrderActivityDetailMapper
extends
Mapper
<
OrderActivityDetail
>
{
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderActivityInfoController.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.order.biz.OrderActivityInfoDetailBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderActivityDetail
;
import
com.xxfc.platform.order.pojo.order.ActivityInfoBO
;
import
com.xxfc.platform.order.service.OrderActivityInfoService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
@Controller
@RequestMapping
(
"tainde/orderActivity"
)
@Api
(
value
=
"活动订单"
,
tags
=
{
"活动订单"
})
@IgnoreClientToken
public
class
OrderActivityInfoController
extends
BaseController
<
OrderActivityInfoDetailBiz
,
OrderActivityDetail
>
{
@Autowired
OrderActivityInfoService
activityInfoService
;
@Autowired
UserFeign
userFeign
;
@RequestMapping
(
value
=
"add"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ApiOperation
(
value
=
"确认订单"
)
public
ObjectRestResponse
<
BaseOrder
>
add
(
@RequestBody
ActivityInfoBO
bo
)
{
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
//查询优惠券
activityInfoService
.
createOrder
(
bo
);
return
ObjectRestResponse
.
succ
(
bo
.
getOrder
());
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderActivityInfoService.java
0 → 100644
View file @
17c3cccd
package
com
.
xxfc
.
platform
.
order
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.xxfc.platform.activity.entity.ActivityInfo
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.activity.vo.ActivityInfoRuleVo
;
import
com.xxfc.platform.order.biz.*
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.pojo.order.ActivityInfoBO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
lombok.extern.log4j.Log4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.time.format.DateTimeFormatter
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
@Service
@Log4j
public
class
OrderActivityInfoService
extends
AbstractOrderHandle
<
OrderActivityInfoDetailBiz
,
ActivityInfoBO
>
implements
UserRestInterface
{
@Autowired
VehicleFeign
vehicleFeign
;
@Autowired
ThirdFeign
thirdFeign
;
@Autowired
OrderAccountBiz
orderAccountBiz
;
@Autowired
BaseOrderBiz
baseOrderBiz
;
private
static
Integer
IS_CHILD
=
1
;
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
private
static
Long
autoCancelTime
;
@Autowired
OrderCostDetailBiz
orderCostDetailBiz
;
@Autowired
OrderTemplateBiz
orderTemplateBiz
;
@Autowired
protected
UserAuthConfig
userAuthConfig
;
@Autowired
ActivityFeign
activityFeign
;
@Autowired
public
HttpServletRequest
request
;
private
SimpleDateFormat
simleFormatter
=
new
SimpleDateFormat
(
"YYYY-MM-dd HH:mm:ss"
);
private
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
);
@PostConstruct
public
void
init
()
{
this
.
channel
=
null
;
this
.
orderTypeEnum
=
OrderTypeEnum
.
ACTIVITY
;
}
@Override
public
void
initDetail
(
ActivityInfoBO
bo
)
{
super
.
initDetail
(
bo
);
initDictionary
();
}
public
void
initDictionary
()
{
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
this
.
autoCancelTime
=
Long
.
valueOf
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_MEMBER
).
getDetail
());
}
@Override
public
void
handleDetail
(
ActivityInfoBO
bo
)
{
//设置订单状态为3
bo
.
getOrder
().
setStatus
(
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
());
ActivityInfo
activityInfo
=
bo
.
getActivity
();
if
(
activityInfo
!=
null
){
//设置订单图片
bo
.
getOrder
().
setPicture
(
activityInfo
.
getImg
());
//设置订单名称
bo
.
getOrder
().
setName
(
activityInfo
.
getName
());
bo
.
setActivityId
(
activityInfo
.
getId
());
bo
.
setActivityInfo
(
JSON
.
toJSONString
(
activityInfo
));
ActivityInfoRuleVo
activityInfoRuleVo
=
activityInfo
.
getActivityInfoRuleVo
();
if
(
activityInfoRuleVo
!=
null
){
bo
.
setRentFreeNum
(
activityInfoRuleVo
.
getDays
());
bo
.
setParentComisson
(
activityInfoRuleVo
.
getParentComisson
());
}
}
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
autoCancelTime
);
}
@Override
public
void
handleCalculate
(
ActivityInfoBO
bo
)
{
OrderPriceVO
tpv
=
calculatePrice
(
bo
);
BeanUtil
.
copyProperties
(
tpv
,
bo
.
getOrder
());
BeanUtil
.
copyProperties
(
tpv
,
bo
);
}
@Override
public
OrderPriceVO
calculatePrice
(
ActivityInfoBO
detail
)
{
BigDecimal
orderAmount
=
BigDecimal
.
ZERO
;
BigDecimal
goodsAmount
=
BigDecimal
.
ZERO
;
BigDecimal
realAmount
=
BigDecimal
.
ZERO
;
BigDecimal
couponAmount
=
BigDecimal
.
ZERO
;
ActivityInfo
activityInfo
=
detail
.
getActivity
();
BigDecimal
activityAmount
=
BigDecimal
.
ZERO
;
if
(
activityInfo
!=
null
)
{
ActivityInfoRuleVo
activityInfoRuleVo
=
activityInfo
.
getActivityInfoRuleVo
();
if
(
activityInfoRuleVo
!=
null
){
activityAmount
=
activityInfoRuleVo
.
getPayPrice
();
}
}
//商品价格
goodsAmount
=
goodsAmount
.
add
(
activityAmount
);
//订单总价格
orderAmount
=
orderAmount
.
add
(
goodsAmount
);
//真实价格
realAmount
=
realAmount
.
add
(
orderAmount
).
subtract
(
couponAmount
);
//生成订单明细
OrderPriceVO
opv
=
new
OrderPriceVO
();
opv
.
setOrderAmount
(
orderAmount
);
opv
.
setGoodsAmount
(
goodsAmount
);
opv
.
setRealAmount
(
realAmount
);
opv
.
setCouponAmount
(
couponAmount
);
return
opv
;
}
}
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