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
20f0e52c
Commit
20f0e52c
authored
Sep 24, 2019
by
hezhen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://113.105.137.151:22280/youjj/cloud-platform
into dev
parents
26814df7
bc22928a
Changes
86
Hide whitespace changes
Inline
Side-by-side
Showing
86 changed files
with
3201 additions
and
269 deletions
+3201
-269
BaseBiz.java
.../java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
+1
-0
UserAgentUtil.java
...om/github/wxiaoqi/security/common/util/UserAgentUtil.java
+24
-0
UserIncomeBo.java
...va/com/github/wxiaoqi/security/admin/bo/UserIncomeBo.java
+2
-0
UserTeamMemberBo.java
...om/github/wxiaoqi/security/admin/bo/UserTeamMemberBo.java
+4
-1
AppUserPositionTempDTO.java
...ub/wxiaoqi/security/admin/dto/AppUserPositionTempDTO.java
+31
-0
AppUserPositionTempFindDTO.java
...xiaoqi/security/admin/dto/AppUserPositionTempFindDTO.java
+17
-0
AppUserPositionTemp.java
...ub/wxiaoqi/security/admin/entity/AppUserPositionTemp.java
+61
-0
AppUserPositionTempVo.java
...thub/wxiaoqi/security/admin/vo/AppUserPositionTempVo.java
+38
-0
AppUserPositionBiz.java
...github/wxiaoqi/security/admin/biz/AppUserPositionBiz.java
+20
-3
AppUserPositionTempBiz.java
...ub/wxiaoqi/security/admin/biz/AppUserPositionTempBiz.java
+231
-0
AppUserRelationBiz.java
...github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
+2
-2
AppUserSellingWaterBiz.java
...ub/wxiaoqi/security/admin/biz/AppUserSellingWaterBiz.java
+2
-7
UserBusinessBiz.java
...om/github/wxiaoqi/security/admin/biz/UserBusinessBiz.java
+33
-34
AppUserPositionMapper.java
.../wxiaoqi/security/admin/mapper/AppUserPositionMapper.java
+2
-4
AppUserPositionTempMapper.java
...aoqi/security/admin/mapper/AppUserPositionTempMapper.java
+20
-0
AppUserSellingWaterMapper.java
...aoqi/security/admin/mapper/AppUserSellingWaterMapper.java
+1
-1
DemoController.java
...om/github/wxiaoqi/security/admin/rest/DemoController.java
+49
-0
AppUserPositionController.java
.../security/admin/rest/admin/AppUserPositionController.java
+68
-12
AppUserSellingWaterMapper.xml
...n/src/main/resources/mapper/AppUserSellingWaterMapper.xml
+18
-13
pom.xml
pom.xml
+1
-0
AccountTypeEnum.java
...xfc/platform/order/contant/enumerate/AccountTypeEnum.java
+1
-1
OrderViolateEnum.java
...fc/platform/order/contant/enumerate/OrderViolateEnum.java
+0
-1
BaseOrder.java
...c/main/java/com/xxfc/platform/order/entity/BaseOrder.java
+27
-27
OrderAccountDetail.java
.../xxfc/platform/order/pojo/account/OrderAccountDetail.java
+4
-0
InProgressVO.java
.../com/xxfc/platform/order/pojo/calculate/InProgressVO.java
+3
-1
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+0
-3
OrderAccountBiz.java
...ain/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
+72
-46
OrderVehicleCrosstownBiz.java
...com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
+8
-12
OrderCalculateBiz.java
.../com/xxfc/platform/order/biz/inner/OrderCalculateBiz.java
+11
-9
OrderCancelBiz.java
...ava/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
+49
-23
OrderMsgBiz.java
...n/java/com/xxfc/platform/order/biz/inner/OrderMsgBiz.java
+12
-15
RentDepositJobHandler.java
...xxfc/platform/order/jobhandler/RentDepositJobHandler.java
+0
-6
OrderRefundController.java
...a/com/xxfc/platform/order/rest/OrderRefundController.java
+66
-40
pom.xml
xx-summit/pom.xml
+20
-0
pom.xml
xx-summit/xx-summit-api/pom.xml
+23
-0
RedisKey.java
...main/java/com/xxfc/platform/summit/constant/RedisKey.java
+10
-0
Activity.java
...c/main/java/com/xxfc/platform/summit/entity/Activity.java
+152
-0
ActivityBm.java
...main/java/com/xxfc/platform/summit/entity/ActivityBm.java
+70
-0
ActivityShow.java
...in/java/com/xxfc/platform/summit/entity/ActivityShow.java
+44
-0
MeepoUserQd.java
...ain/java/com/xxfc/platform/summit/entity/MeepoUserQd.java
+51
-0
User.java
...i/src/main/java/com/xxfc/platform/summit/entity/User.java
+111
-0
SummitFeign.java
...main/java/com/xxfc/platform/summit/feign/SummitFeign.java
+17
-0
AccessType.java
...c/main/java/com/xxfc/platform/summit/pojo/AccessType.java
+28
-0
ActivityBmQuery.java
...n/java/com/xxfc/platform/summit/pojo/ActivityBmQuery.java
+12
-0
ActivityQuery.java
...ain/java/com/xxfc/platform/summit/pojo/ActivityQuery.java
+19
-0
Query.java
...pi/src/main/java/com/xxfc/platform/summit/pojo/Query.java
+12
-0
HttpRequestUtil.java
...n/java/com/xxfc/platform/summit/util/HttpRequestUtil.java
+72
-0
MeepoActivityVo.java
...ain/java/com/xxfc/platform/summit/vo/MeepoActivityVo.java
+20
-0
UserInfo.java
...i/src/main/java/com/xxfc/platform/summit/vo/UserInfo.java
+14
-0
pom.xml
xx-summit/xx-summit-server/pom.xml
+43
-0
SummitApplication.java
...main/java/com/xxfc/platform/summit/SummitApplication.java
+30
-0
ActivityBiz.java
...c/main/java/com/xxfc/platform/summit/biz/ActivityBiz.java
+107
-0
ActivityBmBiz.java
...main/java/com/xxfc/platform/summit/biz/ActivityBmBiz.java
+254
-0
ActivityShowBiz.java
...in/java/com/xxfc/platform/summit/biz/ActivityShowBiz.java
+52
-0
MeepoUserQdBiz.java
...ain/java/com/xxfc/platform/summit/biz/MeepoUserQdBiz.java
+64
-0
UserBiz.java
...r/src/main/java/com/xxfc/platform/summit/biz/UserBiz.java
+196
-0
RedisConfiguration.java
...a/com/xxfc/platform/summit/config/RedisConfiguration.java
+35
-0
RestConfiguration.java
...va/com/xxfc/platform/summit/config/RestConfiguration.java
+18
-0
SwaggerConfig.java
...n/java/com/xxfc/platform/summit/config/SwaggerConfig.java
+56
-0
WebConfiguration.java
...ava/com/xxfc/platform/summit/config/WebConfiguration.java
+46
-0
ActivityBmController.java
...xxfc/platform/summit/controller/ActivityBmController.java
+47
-0
ActivityController.java
...m/xxfc/platform/summit/controller/ActivityController.java
+41
-0
ActivityShowController.java
...fc/platform/summit/controller/ActivityShowController.java
+32
-0
AuthActivityController.java
...fc/platform/summit/controller/AuthActivityController.java
+56
-0
FrontActivityController.java
...c/platform/summit/controller/FrontActivityController.java
+43
-0
IndexController.java
.../com/xxfc/platform/summit/controller/IndexController.java
+34
-0
WeixinController.java
...com/xxfc/platform/summit/controller/WeixinController.java
+94
-0
ActivityShowDto.java
...in/java/com/xxfc/platform/summit/dto/ActivityShowDto.java
+12
-0
WeChatH5LoginInterceoptor.java
...latform/summit/interceptor/WeChatH5LoginInterceoptor.java
+102
-0
ActivityBmMapper.java
...ava/com/xxfc/platform/summit/mapper/ActivityBmMapper.java
+21
-0
ActivityMapper.java
.../java/com/xxfc/platform/summit/mapper/ActivityMapper.java
+13
-0
ActivityShowMapper.java
...a/com/xxfc/platform/summit/mapper/ActivityShowMapper.java
+13
-0
MeepoUserQdMapper.java
...va/com/xxfc/platform/summit/mapper/MeepoUserQdMapper.java
+13
-0
UserMapper.java
...main/java/com/xxfc/platform/summit/mapper/UserMapper.java
+13
-0
WeixinService.java
.../java/com/xxfc/platform/summit/service/WeixinService.java
+68
-0
application.yml
...ummit/xx-summit-server/src/main/resources/application.yml
+7
-0
bootstrap.yml
xx-summit/xx-summit-server/src/main/resources/bootstrap.yml
+36
-0
logback.xml
xx-summit/xx-summit-server/src/main/resources/logback.xml
+49
-0
ActivityBmMapper.xml
...mit-server/src/main/resources/mapper/ActivityBmMapper.xml
+19
-0
ActivityMapper.xml
...ummit-server/src/main/resources/mapper/ActivityMapper.xml
+5
-0
ActivityShowMapper.xml
...t-server/src/main/resources/mapper/ActivityShowMapper.xml
+15
-0
MeepoUserQdMapper.xml
...it-server/src/main/resources/mapper/MeepoUserQdMapper.xml
+5
-0
UserMapper.xml
...xx-summit-server/src/main/resources/mapper/UserMapper.xml
+5
-0
VehicleActiveService.java
...a/com/xxfc/platform/vehicle/biz/VehicleActiveService.java
+0
-2
VehicleBookRecordMapper.xml
...ver/src/main/resources/mapper/VehicleBookRecordMapper.xml
+3
-4
VehicleMapper.xml
...ehicle-server/src/main/resources/mapper/VehicleMapper.xml
+1
-2
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
View file @
20f0e52c
...
...
@@ -125,4 +125,5 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
return
new
TableResultResponse
<
T
>(
result
.
getTotal
(),
list
);
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/UserAgentUtil.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
javax.servlet.http.HttpServletRequest
;
public
class
UserAgentUtil
{
/**
* 关键字: 微信浏览器
*/
public
static
final
String
KEY_WEIXIN_BROWSER
=
"micromessenger"
;
/**
* 判断是否微信浏览器
*
* @param user_agent
* @return
*/
public
static
boolean
isWexinBrowser
(
HttpServletRequest
request
)
{
// 可能会出现npe
String
user_agent
=
""
;
user_agent
=
request
.
getHeader
(
"user-agent"
);
// 修改如下
return
user_agent
!=
null
&&
user_agent
.
toLowerCase
().
indexOf
(
KEY_WEIXIN_BROWSER
)
>
0
;
}
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/bo/UserIncomeBo.java
View file @
20f0e52c
...
...
@@ -16,4 +16,6 @@ public class UserIncomeBo {
private
Integer
userId
;
private
BigDecimal
income
;
private
Long
leagueTime
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/bo/UserTeamMemberBo.java
View file @
20f0e52c
...
...
@@ -25,7 +25,10 @@ public class UserTeamMemberBo {
* 用户名
*/
private
String
userName
;
/**
* 真实名称
*/
private
String
realName
;
/**
* 昵称
*/
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/AppUserPositionTempDTO.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/23 16:51
*/
@Builder
(
toBuilder
=
true
)
@Data
public
class
AppUserPositionTempDTO
{
@ApiModelProperty
(
"主键id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"手机号码"
)
private
String
phone
;
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@ApiModelProperty
(
value
=
"职位id"
)
private
Integer
positionId
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/AppUserPositionTempFindDTO.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
lombok.Data
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/23 18:36
*/
@Data
public
class
AppUserPositionTempFindDTO
extends
PageParam
{
private
String
phone
;
private
String
name
;
private
Integer
status
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/AppUserPositionTemp.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
/**
* 用户身份职位临时表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
@Data
@Table
(
name
=
"app_user_position_temp"
)
public
class
AppUserPositionTemp
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
=
"phone"
)
@ApiModelProperty
(
value
=
"手机号码"
)
private
String
phone
;
@Column
(
name
=
"position_id"
)
@ApiModelProperty
(
value
=
"职位id"
)
private
Integer
positionId
;
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
value
=
"是否删除:0-正常;1-删除"
)
private
Integer
isDel
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/AppUserPositionTempVo.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
vo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/23 18:38
*/
@Builder
(
toBuilder
=
true
)
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
AppUserPositionTempVo
{
private
Integer
id
;
@ApiModelProperty
(
value
=
"手机号码"
)
private
String
phone
;
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@ApiModelProperty
(
value
=
"职位名"
)
private
String
positionName
;
@ApiModelProperty
(
value
=
"数据状态 1:已核销 2:未核销"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserPositionBiz.java
View file @
20f0e52c
...
...
@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.biz;
import
com.github.wxiaoqi.security.admin.dto.UserPostionDTO
;
import
com.github.wxiaoqi.security.admin.vo.WalletPostionVo
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.jsoup.select.Collector
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -11,9 +12,10 @@ import com.github.wxiaoqi.security.admin.mapper.AppUserPositionMapper;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* 用户身份职位表
...
...
@@ -23,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* @date 2019-07-09 10:00:42
*/
@Transactional
@Service
@Service
(
"appUserPositionBiz"
)
public
class
AppUserPositionBiz
extends
BaseBiz
<
AppUserPositionMapper
,
AppUserPosition
>
{
...
...
@@ -58,4 +60,19 @@ public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPos
}
return
counter
.
get
();
}
public
Map
<
Integer
,
AppUserPosition
>
findPostionIdAndPostionMapByIds
(
List
<
Integer
>
postionIds
)
{
Map
<
Integer
,
AppUserPosition
>
postionMap
=
new
HashMap
<>();
List
<
AppUserPosition
>
data
=
mapper
.
selectByIdList
(
postionIds
);
if
(
CollectionUtils
.
isEmpty
(
data
)){
return
postionMap
;
}
postionMap
=
data
.
stream
().
collect
(
Collectors
.
toMap
(
AppUserPosition:
:
getId
,
Function
.
identity
()));
return
postionMap
;
}
public
Map
<
Integer
,
String
>
findPostionIdAndNameMap
()
{
List
<
AppUserPosition
>
postions
=
selectListAll
();
return
postions
.
stream
().
collect
(
Collectors
.
toMap
(
AppUserPosition:
:
getId
,
AppUserPosition:
:
getName
));
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserPositionTempBiz.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO
;
import
com.github.wxiaoqi.security.admin.dto.AppUserPositionTempFindDTO
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
import
com.github.wxiaoqi.security.admin.entity.AppUserPosition
;
import
com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserPositionTempMapper
;
import
com.github.wxiaoqi.security.admin.vo.AppUserPositionTempVo
;
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.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.DependsOn
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.time.Instant
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 用户身份职位表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
@Transactional
@DependsOn
(
"appUserPositionBiz"
)
@Service
public
class
AppUserPositionTempBiz
extends
BaseBiz
<
AppUserPositionTempMapper
,
AppUserPositionTemp
>
implements
InitializingBean
{
@Autowired
private
AppUserDetailBiz
detailBiz
;
@Autowired
private
AppUserLoginBiz
loginBiz
;
@Autowired
private
AppUserPositionBiz
appUserPositionBiz
;
private
Map
<
Integer
,
String
>
postionIdAndNameMap
;
public
ObjectRestResponse
add
(
AppUserPositionTempDTO
appUserPositionTempDTO
)
{
if
(
appUserPositionTempDTO
==
null
||
StringUtils
.
isBlank
(
appUserPositionTempDTO
.
getPhone
())
||
StringUtils
.
isBlank
(
appUserPositionTempDTO
.
getName
())
||
appUserPositionTempDTO
.
getPositionId
()
==
null
||
appUserPositionTempDTO
.
getPositionId
()
==
0
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NOTEXIST_CODE
,
"参数不能为空"
);
}
String
phone
=
appUserPositionTempDTO
.
getPhone
();
Integer
id
=
appUserPositionTempDTO
.
getId
()
==
null
?
0
:
appUserPositionTempDTO
.
getId
();
Example
example
=
new
Example
(
AppUserPositionTemp
.
class
);
example
.
createCriteria
().
andEqualTo
(
"phone"
,
phone
).
andNotEqualTo
(
"id"
,
id
).
andEqualTo
(
"isDel"
,
0
);
List
<
AppUserPositionTemp
>
list
=
selectByExample
(
example
);
if
(
list
.
size
()
>
0
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
EXIST_CODE
,
"手机号码已存在"
);
}
Integer
userId
=
0
;
AppUserLogin
userLogin
=
loginBiz
.
checkeUserLogin
(
phone
);
if
(
userLogin
!=
null
)
{
userId
=
userLogin
.
getId
();
}
AppUserPositionTemp
userPositionTemp
=
new
AppUserPositionTemp
();
BeanUtils
.
copyProperties
(
appUserPositionTempDTO
,
userPositionTemp
);
userPositionTemp
.
setUserId
(
userId
);
//编辑
if
(
id
==
null
||
id
==
0
)
{
insertSelective
(
userPositionTemp
);
}
else
{
updateSelectiveById
(
userPositionTemp
);
}
if
(
userId
!=
0
){
detailBiz
.
updateUserPositionByUserId
(
userId
,
appUserPositionTempDTO
.
getPositionId
());
}
return
ObjectRestResponse
.
succ
();
}
public
void
updateAppuserPostionStatusById
(
Integer
id
,
int
status
)
{
AppUserPositionTemp
appUserPositionTemp
=
new
AppUserPositionTemp
();
appUserPositionTemp
.
setId
(
id
);
appUserPositionTemp
.
setIsDel
(
status
);
mapper
.
updateByPrimaryKeySelective
(
appUserPositionTemp
);
}
public
PageDataVO
<
AppUserPositionTempVo
>
findWithPage
(
AppUserPositionTempFindDTO
appUserPositionTempFindDTO
)
{
PageDataVO
<
AppUserPositionTempVo
>
dataVO
=
new
PageDataVO
<>();
Example
example
=
new
Example
(
AppUserPositionTemp
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"isDel"
,
0
);
if
(
StringUtils
.
isNotEmpty
(
appUserPositionTempFindDTO
.
getName
()))
{
criteria
.
andLike
(
"name"
,
String
.
format
(
"%%%s%%"
,
appUserPositionTempFindDTO
.
getName
().
trim
()));
}
if
(
StringUtils
.
isNotEmpty
(
appUserPositionTempFindDTO
.
getPhone
()))
{
criteria
.
andEqualTo
(
"phone"
,
appUserPositionTempFindDTO
.
getPhone
());
}
if
(
Objects
.
nonNull
(
appUserPositionTempFindDTO
.
getStatus
()))
{
if
(
DataStatus
.
USERED
.
code
==
appUserPositionTempFindDTO
.
getStatus
())
{
criteria
.
andIsNotNull
(
"userId"
);
}
if
(
DataStatus
.
NO_USERED
.
code
==
appUserPositionTempFindDTO
.
getStatus
())
{
criteria
.
andIsNull
(
"userId"
);
}
}
PageDataVO
<
AppUserPositionTemp
>
pageDataVO
=
PageDataVO
.
pageInfo
(
appUserPositionTempFindDTO
.
getPage
(),
appUserPositionTempFindDTO
.
getLimit
(),
()
->
mapper
.
selectByExample
(
example
));
List
<
AppUserPositionTemp
>
data
=
pageDataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
data
))
{
dataVO
.
setData
(
Collections
.
EMPTY_LIST
);
dataVO
.
setPageNum
(
appUserPositionTempFindDTO
.
getPage
());
dataVO
.
setPageSize
(
appUserPositionTempFindDTO
.
getLimit
());
return
dataVO
;
}
List
<
Integer
>
postionIds
=
data
.
stream
().
map
(
AppUserPositionTemp:
:
getPositionId
).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
AppUserPosition
>
postionMap
=
appUserPositionBiz
.
findPostionIdAndPostionMapByIds
(
postionIds
);
List
<
AppUserPositionTempVo
>
appUserPositionTempVos
=
new
ArrayList
<>();
AppUserPositionTempVo
appUserPositionTempVo
;
for
(
AppUserPositionTemp
appUserPositionTemp
:
data
)
{
appUserPositionTempVo
=
new
AppUserPositionTempVo
();
BeanUtils
.
copyProperties
(
appUserPositionTemp
,
appUserPositionTempVo
);
String
postionName
=
postionMap
==
null
?
""
:
postionMap
.
get
(
appUserPositionTemp
.
getPositionId
()).
getName
();
appUserPositionTempVo
.
setPositionName
(
postionName
);
appUserPositionTempVo
.
setStatus
(
appUserPositionTemp
.
getUserId
()
==
null
?
DataStatus
.
NO_USERED
.
code
:
DataStatus
.
USERED
.
code
);
}
dataVO
.
setData
(
appUserPositionTempVos
);
dataVO
.
setPageSize
(
pageDataVO
.
getPageSize
());
dataVO
.
setPageNum
(
pageDataVO
.
getPageNum
());
dataVO
.
setTotalCount
(
pageDataVO
.
getTotalCount
());
dataVO
.
setTotalPage
(
pageDataVO
.
getTotalPage
());
return
dataVO
;
}
public
Map
<
String
,
Object
>
importUserPostion
(
List
<
String
[]>
userPostionData
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>(
2
);
List
<
Map
<
String
,
Object
>>
errorResult
=
Lists
.
newArrayList
();
Map
<
String
,
Object
>
errorResultMap
;
Set
<
Map
.
Entry
<
Integer
,
String
>>
entrySet
=
postionIdAndNameMap
.
entrySet
();
AppUserPositionTemp
appUserPositionTemp
;
for
(
int
i
=
0
;
i
<
userPostionData
.
size
();
i
++)
{
String
[]
data
=
userPostionData
.
get
(
i
);
Integer
postionId
=
null
;
String
name
=
""
;
String
phone
=
""
;
String
postionName
=
""
;
try
{
name
=
data
[
0
];
phone
=
data
[
1
];
if
(
StringUtils
.
isEmpty
(
phone
)){
throw
new
BaseException
(
"手机号为空"
);
}
postionName
=
data
[
2
];
if
(
StringUtils
.
isEmpty
(
postionName
)){
throw
new
BaseException
(
"身份为空"
);
}
//根据手机号查询userId
AppUserLogin
userLogin
=
loginBiz
.
checkeUserLogin
(
phone
);
for
(
Map
.
Entry
<
Integer
,
String
>
integerStringEntry
:
entrySet
)
{
if
(
integerStringEntry
.
getValue
().
contains
(
postionName
))
{
postionId
=
integerStringEntry
.
getKey
();
break
;
}
}
appUserPositionTemp
=
new
AppUserPositionTemp
();
appUserPositionTemp
.
setCrtTime
(
Instant
.
now
().
toEpochMilli
());
appUserPositionTemp
.
setName
(
name
);
appUserPositionTemp
.
setPositionId
(
postionId
);
appUserPositionTemp
.
setPhone
(
phone
);
appUserPositionTemp
.
setUserId
(
0
);
if
(
Objects
.
nonNull
(
userLogin
))
{
//更新用户身份信息
detailBiz
.
updateUserPositionByUserId
(
userLogin
.
getId
(),
postionId
);
appUserPositionTemp
.
setUserId
(
userLogin
.
getId
());
}
mapper
.
insertWithIgnoreRepeat
(
appUserPositionTemp
);
}
catch
(
BaseException
ex
)
{
errorResultMap
=
new
HashMap
<>(
1
);
errorResultMap
.
put
(
"num"
,
i
);
errorResultMap
.
put
(
"msg"
,
ex
.
getMessage
());
errorResult
.
add
(
errorResultMap
);
}
catch
(
ArrayIndexOutOfBoundsException
ex
){
errorResultMap
=
new
HashMap
<>(
1
);
errorResultMap
.
put
(
"num"
,
i
);
String
msg
=
""
;
if
(
StringUtils
.
isEmpty
(
phone
)){
msg
+=
"手机号码缺失"
;
}
if
(
StringUtils
.
isEmpty
(
postionName
)){
msg
+=
",身份信息缺失"
;
}
errorResultMap
.
put
(
"msg"
,
msg
);
errorResult
.
add
(
errorResultMap
);
}
catch
(
Exception
ex
){
errorResultMap
=
new
HashMap
<>(
1
);
errorResultMap
.
put
(
"num"
,
i
);
errorResultMap
.
put
(
"msg"
,
"数据"
+
Arrays
.
toString
(
data
)+
"保存失败"
);
errorResult
.
add
(
errorResultMap
);
}
}
result
.
put
(
"success"
,
userPostionData
.
size
()-
errorResult
.
size
());
result
.
put
(
"error"
,
errorResult
.
size
());
result
.
put
(
"data"
,
errorResult
);
return
result
;
}
private
enum
DataStatus
{
USERED
(
1
),
NO_USERED
(
0
);
private
int
code
;
DataStatus
(
int
code
)
{
this
.
code
=
code
;
}
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
postionIdAndNameMap
=
appUserPositionBiz
.
findPostionIdAndNameMap
()
==
null
?
Collections
.
EMPTY_MAP
:
appUserPositionBiz
.
findPostionIdAndNameMap
();
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
View file @
20f0e52c
...
...
@@ -242,8 +242,8 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
return
AopContext
.
currentProxy
()
!=
null
?
(
AppUserRelationBiz
)
AopContext
.
currentProxy
()
:
this
;
}
public
PageDataVO
<
AppUserRelation
>
findMemberPageByLeaderId
(
Integer
leaderId
,
Integer
pageNo
,
Integer
pageSize
)
{
return
PageDataVO
.
pageInfo
(
pageNo
,
pageSize
,
()
->
mapper
.
selectByLeaderId
(
leaderId
)
);
public
List
<
AppUserRelation
>
findMemberPageByLeaderId
(
Integer
leaderId
)
{
return
mapper
.
selectByLeaderId
(
leaderId
);
}
public
InviteMemberVo
findInviteMemberByActivitState
(
Integer
leaderId
,
Integer
state
,
Integer
page
,
Integer
limit
)
{
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserSellingWaterBiz.java
View file @
20f0e52c
...
...
@@ -271,13 +271,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
}
public
Map
<
Integer
,
BigDecimal
>
findMemberIdAndIncomeMapByMemberIds
(
List
<
Integer
>
memberIds
)
{
Map
<
Integer
,
BigDecimal
>
memberIdAndIncomeMap
=
new
HashMap
<>();
List
<
UserIncomeBo
>
userIncomeBos
=
mapper
.
accquireIncomeByMemberIds
(
memberIds
);
if
(
CollectionUtils
.
isNotEmpty
(
userIncomeBos
))
{
memberIdAndIncomeMap
=
userIncomeBos
.
stream
().
collect
(
Collectors
.
toMap
(
UserIncomeBo:
:
getUserId
,
userIncomeBo
->
userIncomeBo
.
getIncome
()
==
null
?
new
BigDecimal
(
0
)
:
userIncomeBo
.
getIncome
()));
}
return
memberIdAndIncomeMap
;
public
PageDataVO
<
UserIncomeBo
>
findMemberIdAndIncomeMapByMemberIds
(
Integer
parentId
,
Integer
pageNo
,
Integer
pageSize
)
{
return
PageDataVO
.
pageInfo
(
pageNo
,
pageSize
,()->
mapper
.
accquireIncomeByMemberIds
(
parentId
));
}
public
SellingWalletPagVo
findSellingWaterPageByWaiting
(
Integer
waiting
,
Integer
userId
,
Integer
pageNo
,
Integer
pageSize
)
{
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserBusinessBiz.java
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
com.github.wxiaoqi.security.admin.bo.PromoteBO
;
import
com.github.wxiaoqi.security.admin.bo.UserIncomeBo
;
import
com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
...
...
@@ -14,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -40,12 +42,11 @@ public class UserBusinessBiz {
public
UserTeamMemberVo
findTeamMemberPageByUserId
(
Integer
userId
,
Integer
pageNo
,
Integer
pageSize
)
{
UserTeamMemberVo
userTeamMemberVo
=
new
UserTeamMemberVo
();
//根据用户id去关系表里查询下级
PageDataVO
<
AppUserRelation
>
memberPage
=
appUserRelationBiz
.
findMemberPageByLeaderId
(
userId
,
pageNo
,
pageSize
);
UserTeamMemberVo
userTeamMemberVo
=
new
UserTeamMemberVo
();
List
<
AppUserRelation
>
teamMemberBos
=
memberPage
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
teamMemberBos
))
{
PageDataVO
<
UserIncomeBo
>
dataVO
=
appUserSellingWaterBiz
.
findMemberIdAndIncomeMapByMemberIds
(
userId
,
pageNo
,
pageSize
);
List
<
UserIncomeBo
>
data
=
dataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
data
))
{
userTeamMemberVo
.
setPageNum
(
pageNo
);
userTeamMemberVo
.
setPageSize
(
pageSize
);
userTeamMemberVo
.
setTotalIncome
(
new
BigDecimal
(
0
));
...
...
@@ -53,63 +54,61 @@ public class UserBusinessBiz {
return
userTeamMemberVo
;
}
List
<
Integer
>
memberIds
=
teamMemberBos
.
stream
().
map
(
team
->
team
.
getUserId
()).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
BigDecimal
>
memberIdAndIncomeMap
=
appUserSellingWaterBiz
.
findMemberIdAndIncomeMapByMemberIds
(
memberIds
);
if
(
memberIdAndIncomeMap
==
null
)
{
return
userTeamMemberVo
;
}
Map
<
Integer
,
AppUserLogin
>
userIdAndAppUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
memberIds
);
Map
<
Integer
,
AppUserDetail
>
userIdAndAppUserDetailMap
=
appUserDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
memberIds
);
Map
<
Integer
,
UserIncomeBo
>
userIdAndIncomMap
=
data
.
stream
().
collect
(
Collectors
.
toMap
(
UserIncomeBo:
:
getUserId
,
Function
.
identity
()));
List
<
Integer
>
memberIds
=
data
.
stream
().
map
(
UserIncomeBo:
:
getUserId
).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
AppUserLogin
>
userIdAndAppUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
memberIds
);
Map
<
Integer
,
AppUserDetail
>
userIdAndAppUserDetailMap
=
appUserDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
memberIds
);
List
<
UserTeamMemberBo
>
userTeamMemberBos
=
new
ArrayList
<>();
UserTeamMemberBo
userTeamMemberBo
;
BigDecimal
totalIncome
=
new
BigDecimal
(
0
);
for
(
AppUserRelation
appUserRelation
:
teamMemberBo
s
)
{
for
(
Integer
memberId
:
memberId
s
)
{
userTeamMemberBo
=
new
UserTeamMemberBo
();
userTeamMemberBo
.
setLeagueTime
(
appUserRelation
.
getBind
Time
());
userTeamMemberBo
.
setUserId
(
appUserRelation
.
getUserId
()
);
userTeamMemberBo
.
setLeagueTime
(
userIdAndIncomMap
.
get
(
memberId
).
getLeague
Time
());
userTeamMemberBo
.
setUserId
(
memberId
);
if
(
userIdAndAppUserLoginMap
!=
null
)
{
AppUserLogin
appUserLogin
=
userIdAndAppUserLoginMap
.
get
(
appUserRelation
.
getUserId
()
);
if
(
appUserLogin
==
null
)
{
if
(
userIdAndAppUserLoginMap
!=
null
)
{
AppUserLogin
appUserLogin
=
userIdAndAppUserLoginMap
.
get
(
memberId
);
if
(
appUserLogin
==
null
)
{
continue
;
}
userTeamMemberBo
.
setUserName
(
appUserLogin
.
getUsername
());
}
if
(
userIdAndAppUserDetailMap
!=
null
){
AppUserDetail
appUserDetail
=
userIdAndAppUserDetailMap
.
get
(
appUserRelation
.
getUserId
());
userTeamMemberBo
.
setHeadUrl
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getHeadimgurl
());
userTeamMemberBo
.
setNickName
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getNickname
());
if
(
userIdAndAppUserDetailMap
!=
null
)
{
AppUserDetail
appUserDetail
=
userIdAndAppUserDetailMap
.
get
(
memberId
);
userTeamMemberBo
.
setHeadUrl
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getHeadimgurl
());
userTeamMemberBo
.
setNickName
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getNickname
());
userTeamMemberBo
.
setRealName
(
appUserDetail
==
null
?
""
:
appUserDetail
.
getRealname
());
}
BigDecimal
income
=
memberIdAndIncomeMap
.
get
(
appUserRelation
.
getUserId
())==
null
?
new
BigDecimal
(
0
):
memberIdAndIncomeMap
.
get
(
appUserRelation
.
getUserId
()
);
BigDecimal
income
=
userIdAndIncomMap
.
get
(
memberId
).
getIncome
()
==
null
?
new
BigDecimal
(
0
)
:
userIdAndIncomMap
.
get
(
memberId
).
getIncome
(
);
userTeamMemberBo
.
setIncome
(
income
);
totalIncome
=
totalIncome
.
add
(
income
);
userTeamMemberBos
.
add
(
userTeamMemberBo
);
}
userTeamMemberVo
.
setPageNum
(
memberPage
.
getPageNum
());
userTeamMemberVo
.
setPageSize
(
memberPage
.
getPageSize
());
userTeamMemberVo
.
setTotalCount
(
memberPage
.
getTotalCount
().
intValue
());
userTeamMemberVo
.
setTotalPage
(
memberPage
.
getTotalPage
());
userTeamMemberBos
.
sort
(
Comparator
.
comparing
(
UserTeamMemberBo:
:
getIncome
).
reversed
());
userTeamMemberVo
.
setPageNum
(
dataVO
.
getPageNum
());
userTeamMemberVo
.
setPageSize
(
dataVO
.
getPageSize
());
userTeamMemberVo
.
setTotalCount
(
dataVO
.
getTotalCount
().
intValue
());
userTeamMemberVo
.
setTotalPage
(
dataVO
.
getTotalPage
());
userTeamMemberVo
.
setUserTeamMemberBos
(
userTeamMemberBos
);
userTeamMemberVo
.
setTotalIncome
(
totalIncome
);
return
userTeamMemberVo
;
}
public
PromoteBO
getPromoteBoByUserId
(
Integer
userId
)
{
public
PromoteBO
getPromoteBoByUserId
(
Integer
userId
)
{
PromoteBO
promoteBO
=
new
PromoteBO
();
Integer
leaderId
=
appUserRelationBiz
.
findLeaderIdByMemberId
(
userId
);
Map
<
Integer
,
Integer
>
memberStateAndCountMap
=
appUserRelationBiz
.
findMemberSateAndCountMapByLeaderId
(
userId
);
Integer
leaderId
=
appUserRelationBiz
.
findLeaderIdByMemberId
(
userId
);
Map
<
Integer
,
Integer
>
memberStateAndCountMap
=
appUserRelationBiz
.
findMemberSateAndCountMapByLeaderId
(
userId
);
if
(
leaderId
!=
0
)
{
Map
<
Integer
,
AppUserLogin
>
userIdAndUserLoginMap
=
appUserLoginBiz
.
findUserIdAndUserLoginMapByMemberIds
(
Arrays
.
asList
(
leaderId
));
Map
<
Integer
,
AppUserDetail
>
userIdAndUserDetailMap
=
appUserDetailBiz
.
findUserIdAndUserDetailMapByMemberIds
(
Arrays
.
asList
(
leaderId
));
if
(!
userIdAndUserLoginMap
.
isEmpty
()){
if
(!
userIdAndUserLoginMap
.
isEmpty
())
{
promoteBO
.
setLeaderUsername
(
userIdAndUserLoginMap
.
get
(
leaderId
).
getUsername
());
}
if
(!
userIdAndUserDetailMap
.
isEmpty
()){
if
(!
userIdAndUserDetailMap
.
isEmpty
())
{
promoteBO
.
setLeaderHeadUrl
(
userIdAndUserDetailMap
.
get
(
leaderId
).
getHeadimgurl
());
}
}
...
...
@@ -117,7 +116,7 @@ public class UserBusinessBiz {
promoteBO
.
setActivatedNumber
(
memberStateAndCountMap
.
get
(
1
));
BigDecimal
totalIncome
=
appUserSellingWaterBiz
.
selectTotalIncomeByUserId
(
userId
);
promoteBO
.
setTotalIncome
(
totalIncome
==
null
?
new
BigDecimal
(
0
):
totalIncome
);
promoteBO
.
setTotalIncome
(
totalIncome
==
null
?
new
BigDecimal
(
0
)
:
totalIncome
);
return
promoteBO
;
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/AppUserPositionMapper.java
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
mapper
;
import
com.github.wxiaoqi.security.admin.dto.UserPostionDTO
;
import
com.github.wxiaoqi.security.admin.entity.AppUserPosition
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.additional.idlist.IdListMapper
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 用户身份职位表
*
...
...
@@ -14,7 +12,7 @@ import java.util.List;
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
public
interface
AppUserPositionMapper
extends
Mapper
<
AppUserPosition
>
{
public
interface
AppUserPositionMapper
extends
Mapper
<
AppUserPosition
>
,
IdListMapper
<
AppUserPosition
,
Integer
>
{
AppUserPosition
getExtractByUserId
(
@Param
(
"userId"
)
Integer
userId
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/AppUserPositionTempMapper.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
mapper
;
import
com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp
;
import
org.apache.ibatis.annotations.Insert
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 用户身份职位表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
public
interface
AppUserPositionTempMapper
extends
Mapper
<
AppUserPositionTemp
>
{
@Insert
(
"INSERT IGNORE INTO `app_user_position_temp`(`user_id`,`phone`,`name`,`position_id`,`crt_time`)VALUES(#{userId},#{phone},#{name},#{positionId},#{crtTime})"
)
void
insertWithIgnoreRepeat
(
AppUserPositionTemp
appUserPositionTemp
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/AppUserSellingWaterMapper.java
View file @
20f0e52c
...
...
@@ -17,7 +17,7 @@ import java.util.List;
*/
public
interface
AppUserSellingWaterMapper
extends
Mapper
<
AppUserSellingWater
>
{
List
<
UserIncomeBo
>
accquireIncomeByMemberIds
(
@Param
(
"
memberIds"
)
List
<
Integer
>
memberIds
);
List
<
UserIncomeBo
>
accquireIncomeByMemberIds
(
@Param
(
"
parentId"
)
Integer
parentId
);
BigDecimal
selectTotalIncomeByUserId
(
@Param
(
"userId"
)
Integer
userId
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/DemoController.java
0 → 100644
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.biz.*
;
import
com.github.wxiaoqi.security.admin.entity.*
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.vo.AppUserGroups
;
import
com.github.wxiaoqi.security.admin.vo.AppUserInfoVo
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.admin.vo.UserMemberVo
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.TableResultResponse
;
import
com.github.wxiaoqi.security.common.rest.CommonBaseController
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.order.feign.OrderFeign
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
/**
* @author keliii
*/
@Controller
@RequestMapping
(
"demo"
)
@Slf4j
public
class
DemoController
extends
CommonBaseController
{
@GetMapping
(
"/app/unauth/test"
)
@IgnoreUserToken
@IgnoreClientToken
public
String
test
()
{
return
String
.
format
(
"redirect:https://xxtest.upyuns.com/h5/appHtml/view/travelDetails.html?id=96&shareType=app"
);
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/admin/AppUserPositionController.java
View file @
20f0e52c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
.
admin
;
import
com.github.wxiaoqi.security.admin.biz.AppUserPositionBiz
;
import
com.github.wxiaoqi.security.admin.biz.AppUserPositionTempBiz
;
import
com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO
;
import
com.github.wxiaoqi.security.admin.dto.AppUserPositionTempFindDTO
;
import
com.github.wxiaoqi.security.admin.dto.UserPostionDTO
;
import
com.github.wxiaoqi.security.admin.vo.AppUserPositionTempVo
;
import
com.github.wxiaoqi.security.admin.vo.WalletPostionVo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.excel.ExcelImport
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author libin
...
...
@@ -19,18 +27,66 @@ import java.util.List;
@RequestMapping
(
"/postion/admin"
)
public
class
AppUserPositionController
{
@Autowired
@Autowired
private
AppUserPositionBiz
appUserPositionBiz
;
@GetMapping
(
"/postions"
)
public
ObjectRestResponse
<
List
<
WalletPostionVo
>>
findAllPostions
(){
List
<
WalletPostionVo
>
walletPostionVos
=
appUserPositionBiz
.
findAllPostions
();
return
ObjectRestResponse
.
succ
(
walletPostionVos
);
}
@PutMapping
public
ObjectRestResponse
updateUserPostionPercentage
(
@RequestBody
List
<
UserPostionDTO
>
userPostionDTOS
){
appUserPositionBiz
.
updateUserPostionPercentage
(
userPostionDTOS
);
return
ObjectRestResponse
.
succ
();
}
@Autowired
private
AppUserPositionTempBiz
appUserPositionTempBiz
;
@GetMapping
(
"/postions"
)
public
ObjectRestResponse
<
List
<
WalletPostionVo
>>
findAllPostions
()
{
List
<
WalletPostionVo
>
walletPostionVos
=
appUserPositionBiz
.
findAllPostions
();
return
ObjectRestResponse
.
succ
(
walletPostionVos
);
}
@PutMapping
public
ObjectRestResponse
updateUserPostionPercentage
(
@RequestBody
List
<
UserPostionDTO
>
userPostionDTOS
)
{
appUserPositionBiz
.
updateUserPostionPercentage
(
userPostionDTOS
);
return
ObjectRestResponse
.
succ
();
}
/**
* 新增或编辑身份信息
* @return
*/
@PostMapping
(
"/add"
)
public
ObjectRestResponse
<
Void
>
addUserPostion
(
@RequestBody
AppUserPositionTempDTO
appUserPositionTempDTO
){
appUserPositionTempBiz
.
add
(
appUserPositionTempDTO
);
return
ObjectRestResponse
.
succ
();
}
/**
* 批量导入
* @param userPostionExcel
* @return
*/
@PostMapping
(
"/excel/import"
)
public
ObjectRestResponse
<
Map
<
String
,
Object
>>
importUserPostion
(
@RequestPart
(
"file"
)
MultipartFile
userPostionExcel
)
{
List
<
String
[]>
userPostionData
=
ExcelImport
.
getExcelData
(
userPostionExcel
);
if
(
userPostionData
.
size
()
<
2
)
{
return
ObjectRestResponse
.
createFailedResult
(
1001
,
"导入不能没数据!!!"
);
}
userPostionData
.
remove
(
0
);
Map
<
String
,
Object
>
result
=
appUserPositionTempBiz
.
importUserPostion
(
userPostionData
);
return
ObjectRestResponse
.
succ
(
result
);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping
(
"/{id}"
)
public
ObjectRestResponse
<
Void
>
deleteUserPostion
(
@PathVariable
(
value
=
"id"
)
Integer
id
){
appUserPositionTempBiz
.
updateAppuserPostionStatusById
(
id
,
1
);
return
ObjectRestResponse
.
succ
();
}
@PostMapping
(
"/page"
)
public
ObjectRestResponse
<
PageDataVO
<
AppUserPositionTempVo
>>
findWithPage
(
@RequestBody
AppUserPositionTempFindDTO
appUserPositionTempFindDTO
){
PageDataVO
<
AppUserPositionTempVo
>
dataVO
=
appUserPositionTempBiz
.
findWithPage
(
appUserPositionTempFindDTO
);
return
ObjectRestResponse
.
succ
(
dataVO
);
}
}
ace-modules/ace-admin/src/main/resources/mapper/AppUserSellingWaterMapper.xml
View file @
20f0e52c
...
...
@@ -4,19 +4,24 @@
<select
id=
"accquireIncomeByMemberIds"
resultType=
"com.github.wxiaoqi.security.admin.bo.UserIncomeBo"
>
SELECT DISTINCT
`source_id`as userId,
IFNULL((( SELECT SUM(commission) FROM `app_user_selling_water` WHERE source_id=ausw.source_id AND `status` = 0 AND
`waiting` = 1 )
- ( SELECT SUM(commission) FROM `app_user_selling_water` WHERE source_id=ausw.source_id AND `status` = 1 AND
`waiting` = 1 )),0) as `income`
FROM
`app_user_selling_water` as ausw
WHERE
source_id in
<foreach
collection=
"memberIds"
item=
"memberId"
open=
"("
close=
")"
separator=
","
>
#{memberId}
</foreach>
SELECT
aur.user_id,
aur.bind_time as `leagueTime`,
ausww.income
FROM
`app_user_relation` AS `aur`
LEFT JOIN (SELECT DISTINCT
`source_id` AS userId,
IFNULL(
(
( SELECT SUM( commission ) FROM `app_user_selling_water` WHERE source_id = ausw.source_id AND `status` = 0 AND `waiting` = 1 ) - ( SELECT SUM( commission ) FROM `app_user_selling_water` WHERE source_id = ausw.source_id AND `status` = 1 AND `waiting` = 1 )
),
0
) AS `income`
FROM
`app_user_selling_water` AS ausw) AS ausww ON ausww.userId=aur.user_id
WHERE aur.parent_id=#{parentId}
ORDER BY ausww.`income` DESC
</select>
<select
id=
"selectTotalIncomeByUserId"
resultType=
"java.math.BigDecimal"
>
...
...
pom.xml
View file @
20f0e52c
...
...
@@ -47,6 +47,7 @@
<module>
xx-activity
</module>
<module>
xx-user-behavior-collect
</module>
<module>
xx-uccn
</module>
<module>
xx-summit
</module>
</modules>
<packaging>
pom
</packaging>
<developers>
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/AccountTypeEnum.java
View file @
20f0e52c
...
...
@@ -7,7 +7,7 @@ public enum AccountTypeEnum {
//账款类型 1*--入账;2*--出账
//账款类型 记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款
IN_ORDER_PAY
(
101
,
"订单支付"
),
OUT_ORDER_FUND
(
201
,
"
订单
款"
),
OUT_ORDER_FUND
(
201
,
"
取消订单退
款"
),
OUT_DEPOSIT
(
202
,
"所有押金"
),
OUT_PART_DEPOSIT
(
203
,
"部分押金(扣除该扣除的 + 保留违章预备金)"
),
OUT_RESIDUE_DEPOSIT
(
204
,
"剩余押金(扣除该扣除的)"
),
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderViolateEnum.java
View file @
20f0e52c
...
...
@@ -7,7 +7,6 @@ import java.util.Map;
public
enum
OrderViolateEnum
{
BEFORE
(
1
,
"提前"
),
AFTER
(
2
,
"延期"
),
EXCESS
(
3
,
"消费超额金"
)
;
/**
* 编码
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/BaseOrder.java
View file @
20f0e52c
...
...
@@ -252,31 +252,31 @@ public class BaseOrder implements Serializable {
@Column
(
name
=
"member_level"
)
private
Integer
memberLevel
;
//
/**
//
* 违约金
//
*/
//
@ApiModelProperty(value = "违约金")
//
@Column(name = "violate_amount")
//
BigDecimal ViolateAmount;
//
//
/**
//
* 赔偿金
//
*/
//
@ApiModelProperty(value = "赔偿金")
//
@Column(name = "damages_amount")
//
BigDecimal damagesAmount;
//
//
/**
//
* 额外费用
//
*/
//
@ApiModelProperty(value = "额外费用")
//
@Column(name = "extra_amount")
//
BigDecimal extraAmount;
//
//
/**
//
* 返还的优惠券
//
*/
//
@ApiModelProperty(value = "返回的优惠券")
//
@Column(name = "back_coupon")
//
String backCoupon;
/**
* 违约金
*/
@ApiModelProperty
(
value
=
"违约金"
)
@Column
(
name
=
"violate_amount"
)
BigDecimal
ViolateAmount
;
/**
* 赔偿金
*/
@ApiModelProperty
(
value
=
"赔偿金"
)
@Column
(
name
=
"damages_amount"
)
BigDecimal
damagesAmount
;
/**
* 额外费用
*/
@ApiModelProperty
(
value
=
"额外费用"
)
@Column
(
name
=
"extra_amount"
)
BigDecimal
extraAmount
;
/**
* 返还的优惠券
*/
@ApiModelProperty
(
value
=
"返回的优惠券"
)
@Column
(
name
=
"back_coupon"
)
String
backCoupon
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/account/OrderAccountDetail.java
View file @
20f0e52c
...
...
@@ -29,4 +29,8 @@ public class OrderAccountDetail {
* 扣款列表
*/
List
<
OrderAccountDeduction
>
deductions
=
Lists
.
newArrayList
();
public
BigDecimal
realTotalDeduct
()
{
return
originDepositAmount
.
add
(
originOrderAmount
).
subtract
(
orderAmount
).
subtract
(
depositAmount
);
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/calculate/InProgressVO.java
View file @
20f0e52c
...
...
@@ -11,7 +11,7 @@ public class InProgressVO {
/**
* 违约金
*/
BigDecimal
V
iolateAmount
=
BigDecimal
.
ZERO
;
BigDecimal
v
iolateAmount
=
BigDecimal
.
ZERO
;
/**
* 赔偿金
...
...
@@ -67,4 +67,6 @@ public class InProgressVO {
String
advanceDelayCostDetail
=
""
;
String
violateDesc
=
""
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
20f0e52c
...
...
@@ -88,9 +88,6 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
@Autowired
OrderUserLicenseBiz
orderUserLicenseBiz
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderItemBiz
orderItemBiz
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
View file @
20f0e52c
...
...
@@ -84,42 +84,57 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
/**
* 租车退款流程
* @param baseOrder
* @param
mainItemRealAmount
主要商品(租车费用、旅游费用等)
* @param
orderDeductSource
主要商品(租车费用、旅游费用等)
* @param timeLag 与开始时间的时间差
* @param dicParentKey
*/
public
BigDecimal
rentRefundProcessCancel
(
BaseOrder
baseOrder
,
BigDecimal
mainItemRealAmount
,
Long
timeLag
,
String
dicParentKey
,
BigDecimal
depositAmount
,
BigDecimal
originalDeductAmount
,
OrderAccountDetail
oad
,
BigDecimal
topAmount
)
{
//计算退款金额
//商品价格 - 优惠券减免的价格
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
mainItemRealAmount
);
public
BigDecimal
rentRefundProcessCancel
(
BaseOrder
baseOrder
,
BigDecimal
orderDeductSource
,
Long
timeLag
,
String
dicParentKey
,
BigDecimal
depositAmount
,
BigDecimal
depositDeductSource
,
OrderAccountDetail
oad
,
BigDecimal
topAmount
)
{
//原来退款 和 最终退款
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
;
BigDecimal
refundAmount
=
BigDecimal
.
ZERO
;
StringBuilder
orderRefundDescBuilder
=
new
StringBuilder
(
""
);
StringBuilder
depositRefundDescBuilder
=
new
StringBuilder
(
""
);
BigDecimal
totalDeductAmount
=
BigDecimal
.
ZERO
;
if
(
null
==
oad
)
{
oad
=
new
OrderAccountDetail
();
}
BigDecimal
orderDeductAmount
=
calculateDeduction
(
originalRefundAmount
,
timeLag
,
dicParentKey
,
orderRefundDescBuilder
);
orderDeductAmount
=
orderDeductAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
if
(
topAmount
.
compareTo
(
orderDeductAmount
)
>
0
)
{
totalDeductAmount
=
totalDeductAmount
.
add
(
orderDeductAmount
);
topAmount
=
topAmount
.
subtract
(
orderDeductAmount
);
}
else
{
totalDeductAmount
=
totalDeductAmount
.
add
(
topAmount
);
orderDeductAmount
=
topAmount
;
topAmount
=
BigDecimal
.
ZERO
;
// 订单款 原订单退款、最终订单退款
BigDecimal
originalOrderRefundAmount
=
BigDecimal
.
ZERO
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()));
BigDecimal
orderRefundAmount
=
BigDecimal
.
ZERO
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()));
if
(
null
!=
orderDeductSource
&&
BigDecimal
.
ZERO
.
compareTo
(
orderDeductSource
)
<
0
)
{
BigDecimal
orderDeductAmount
=
calculateDeduction
(
orderDeductSource
,
timeLag
,
dicParentKey
,
orderRefundDescBuilder
);
orderDeductAmount
=
orderDeductAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
if
(
topAmount
.
compareTo
(
orderDeductAmount
)
>
0
)
{
totalDeductAmount
=
totalDeductAmount
.
add
(
orderDeductAmount
);
topAmount
=
topAmount
.
subtract
(
orderDeductAmount
);
}
else
{
totalDeductAmount
=
totalDeductAmount
.
add
(
topAmount
);
orderDeductAmount
=
topAmount
;
topAmount
=
BigDecimal
.
ZERO
;
}
//订单退款
orderRefundAmount
=
orderRefundAmount
.
subtract
(
orderDeductAmount
);
if
(
orderRefundAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
)
{
orderRefundAmount
=
BigDecimal
.
ZERO
;
}
}
BigDecimal
refundMainGoodsAmount
=
originalRefundAmount
.
subtract
(
orderDeductAmount
);
//退款金额 = 主要商品退款 + (其他商品退款) 即--> 主要商品退款 + (总商品款 - 主要商品款)
oad
.
setOrderAmount
(
refundMainGoodsAmount
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()).
subtract
(
mainItemRealAmount
)));
BigDecimal
refundAmount
=
oad
.
getOrderAmount
();
//设置金额
oad
.
setOriginOrderAmount
(
originalOrderRefundAmount
);
oad
.
setOrderAmount
(
orderRefundAmount
);
originalRefundAmount
=
originalRefundAmount
.
add
(
oad
.
getOriginOrderAmount
());
refundAmount
=
refundAmount
.
add
(
oad
.
getOrderAmount
());
// 押金
BigDecimal
originalRefundAmountDeposit
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
BigDecimal
refundAmountDeposit
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
if
(
null
!=
originalDeductAmount
&&
BigDecimal
.
ZERO
.
compareTo
(
originalDeductAmount
)
<
0
)
{
// 押金 原押金退款、最终押金退款
BigDecimal
originalDepositRefundAmount
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
BigDecimal
depositRefundAmount
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
if
(
null
!=
depositDeductSource
&&
BigDecimal
.
ZERO
.
compareTo
(
depositDeductSource
)
<
0
)
{
//通过原扣除款 计算剩余款
BigDecimal
depositDeductAmount
=
calculateDeduction
(
originalDeductAmount
,
timeLag
,
dicParentKey
,
depositRefundDescBuilder
);
BigDecimal
depositDeductAmount
=
calculateDeduction
(
depositDeductSource
,
timeLag
,
dicParentKey
,
depositRefundDescBuilder
);
depositDeductAmount
=
depositDeductAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
if
(
topAmount
.
compareTo
(
depositDeductAmount
)
>
0
)
{
totalDeductAmount
=
totalDeductAmount
.
add
(
depositDeductAmount
);
...
...
@@ -131,24 +146,28 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}
//返回押金
refundAmountDeposit
=
originalRefundAmountDeposi
t
.
subtract
(
depositDeductAmount
);
depositRefundAmount
=
originalDepositRefundAmoun
t
.
subtract
(
depositDeductAmount
);
}
//设置违章款账单
StringBuilder
stringBuilder
=
new
StringBuilder
(
""
);
if
(
totalDeductAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
int
originType
=
0
;
if
(
orderRefundDescBuilder
.
length
()
>
0
)
{
stringBuilder
=
orderRefundDescBuilder
;
originType
=
OrderAccountDeduction
.
ORIGIN_ORDER
;
}
else
{
stringBuilder
=
depositRefundDescBuilder
;
originType
=
OrderAccountDeduction
.
ORIGIN_DEPOSIT
;
}
oad
.
getDeductions
().
add
(
initDeduction
(
totalDeductAmount
,
stringBuilder
.
toString
(),
DeductionTypeEnum
.
VIOLATE_CANCEL
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
));
oad
.
getDeductions
().
add
(
initDeduction
(
totalDeductAmount
,
stringBuilder
.
toString
(),
DeductionTypeEnum
.
VIOLATE_CANCEL
,
originType
));
}
//设置订单押金金额
originalRefundAmount
=
originalRefundAmount
.
add
(
originalRefundAmountDeposit
);
oad
.
setDepositAmount
(
refundAmountDeposit
);
refundAmount
=
refundAmount
.
add
(
refundAmountDeposit
);
oad
.
setOriginDepositAmount
(
originalDepositRefundAmount
);
oad
.
setDepositAmount
(
depositRefundAmount
);
originalRefundAmount
=
originalRefundAmount
.
add
(
originalDepositRefundAmount
);
refundAmount
=
refundAmount
.
add
(
depositRefundAmount
);
//退款子流程: 订单基础,退款描述, 款金额
refundSubProcess
(
baseOrder
,
stringBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
AccountTypeEnum
.
OUT_ORDER_FUND
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
(),
oad
);
...
...
@@ -342,10 +361,11 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
);
//设置定损金额
csv
.
setDamagesAmount
(
crosstown
.
getDeductionCost
());
if
(
crosstown
.
getDeductionCost
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
String
handleDedRefundDesc
=
""
;
handleDedRefundDesc
=
handleDed
(
crosstown
,
handleDedRefundDesc
,
csv
);
if
(
csv
.
getDamagesAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
oad
.
getDeductions
().
add
(
initDeduction
(
crosstown
.
getDeductionCost
(),
"定损赔偿金"
,
DeductionTypeEnum
.
DAMAGES
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
)
initDeduction
(
crosstown
.
getDeductionCost
(),
handleDedRefundDesc
,
DeductionTypeEnum
.
DAMAGES
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
)
);
}
...
...
@@ -361,7 +381,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
//crosstown.getRestDeposit().add(crosstown.getDeductionCost()).subtract(illegalReserve);
String
refundDesc
=
"退还押金:"
+
refundAmont
.
toString
()+
"(已扣除 违章预备金:"
+
illegalReserve
.
toString
();
refundDesc
=
handleDed
(
crosstown
,
refundDesc
)
;
refundDesc
+=
handleDedRefundDesc
;
refundDesc
+=
")"
;
refundTrigger
(
orderMQDTO
,
orderMQDTO
.
getOrderRentVehicleDetail
(),
illegalReserve
,
originalRefundAmount
,
refundAmont
,
refundDesc
,
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
getCode
(),
AccountTypeEnum
.
OUT_PART_DEPOSIT
,
oad
);
...
...
@@ -397,12 +417,13 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}
}
private
String
handleDed
(
OrderVehicleCrosstown
crosstown
,
String
refundDesc
)
{
private
String
handleDed
(
OrderVehicleCrosstown
crosstown
,
String
refundDesc
,
CancelStartedVO
csv
)
{
try
{
if
(
null
!=
crosstown
.
getDedDetail
())
{
List
<
DedDetailDTO
>
dddList
=
JSONUtil
.
toList
(
JSONUtil
.
parseArray
(
crosstown
.
getDedDetail
()),
DedDetailDTO
.
class
);
for
(
DedDetailDTO
ddd
:
dddList
)
{
refundDesc
+=
", "
+
ddd
.
getDeductions
()+
":"
+
ddd
.
getCost
();
csv
.
setDamagesAmount
(
csv
.
getDamagesAmount
().
add
(
ddd
.
getCost
()));
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -414,19 +435,12 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
private
void
handleCrosstownDetail
(
OrderVehicleCrosstown
crosstown
,
OrderAccountDetail
oad
)
{
try
{
if
(
null
!=
crosstown
.
getViolateDetail
())
{
List
<
DedDetailDTO
>
dddList
=
JSONUtil
.
toList
(
JSONUtil
.
parseArray
(
crosstown
.
getViolateDetail
()),
DedDetailDTO
.
class
);
for
(
DedDetailDTO
vio
:
dddList
)
{
if
(
OrderViolateEnum
.
BEFORE
.
getCode
().
equals
(
vio
.
getType
()))
{
for
(
OrderAccountDeduction
deduction
:
oad
.
getDeductions
())
{
if
(
DeductionTypeEnum
.
VIOLATE_ADVANCE
.
getCode
().
equals
(
deduction
.
getType
()))
{
deduction
.
setName
(
vio
.
getDeductions
());
BigDecimal
diff
=
vio
.
getCost
().
subtract
(
deduction
.
getAmount
());
//修改归还押金金额
oad
.
setDepositAmount
(
oad
.
getDepositAmount
().
subtract
(
diff
));
deduction
.
setAmount
(
vio
.
getCost
());
}
}
}
DedDetailDTO
vio
=
JSONUtil
.
toBean
(
crosstown
.
getViolateDetail
(),
DedDetailDTO
.
class
);
if
(
OrderViolateEnum
.
BEFORE
.
getCode
().
equals
(
vio
.
getType
()))
{
handleViolateDetail
(
DeductionTypeEnum
.
VIOLATE_ADVANCE
,
oad
,
vio
);
}
else
if
(
OrderViolateEnum
.
AFTER
.
getCode
().
equals
(
vio
.
getType
()))
{
handleViolateDetail
(
DeductionTypeEnum
.
VIOLATE_DELAY
,
oad
,
vio
);
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -434,6 +448,18 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}
}
private
void
handleViolateDetail
(
DeductionTypeEnum
dte
,
OrderAccountDetail
oad
,
DedDetailDTO
vio
)
{
for
(
OrderAccountDeduction
deduction
:
oad
.
getDeductions
())
{
if
(
dte
.
getCode
().
equals
(
deduction
.
getType
()))
{
deduction
.
setName
(
vio
.
getDeductions
());
BigDecimal
diff
=
vio
.
getCost
().
subtract
(
deduction
.
getAmount
());
//修改归还押金金额
oad
.
setDepositAmount
(
oad
.
getDepositAmount
().
subtract
(
diff
));
deduction
.
setAmount
(
vio
.
getCost
());
}
}
}
/**
* 获取每日订单账目,用于统计
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
View file @
20f0e52c
...
...
@@ -251,6 +251,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if
(
StringUtils
.
isNotBlank
(
orderVehicleCrosstownDto
.
getDedDetail
()))
{
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
orderVehicleCrosstownDto
.
getDedDetail
());
if
(
jsonArray
!=
null
&&
jsonArray
.
size
()
>
0
)
{
orderVehicleCrosstownDto
.
setDeduction
(
true
);
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
jsonArray
.
get
(
i
).
toString
());
if
(
jsonObject
!=
null
)
{
...
...
@@ -261,18 +262,13 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
}
//延期扣除费用
if
(
StringUtils
.
isNotBlank
(
orderVehicleCrosstownDto
.
getViolateDetail
()))
{
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
orderVehicleCrosstownDto
.
getDedDetail
());
if
(
jsonArray
!=
null
&&
jsonArray
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
jsonArray
.
get
(
i
).
toString
());
if
(
jsonObject
!=
null
)
{
if
(
jsonObject
.
getString
(
"cost"
)
!=
null
)
{
cost
+=
Double
.
parseDouble
(
jsonObject
.
getString
(
"cost"
));
}
if
(
jsonObject
.
getString
(
"excessCost"
)
!=
null
)
{
cost
+=
Double
.
parseDouble
(
jsonObject
.
getString
(
"excessCost"
));
}
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
orderVehicleCrosstownDto
.
getViolateDetail
());
if
(
jsonObject
!=
null
)
{
if
(
jsonObject
.
getString
(
"cost"
)
!=
null
)
{
cost
+=
Double
.
parseDouble
(
jsonObject
.
getString
(
"cost"
));
}
if
(
jsonObject
.
getString
(
"excessCost"
)
!=
null
)
{
cost
+=
Double
.
parseDouble
(
jsonObject
.
getString
(
"excessCost"
));
}
}
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderCalculateBiz.java
View file @
20f0e52c
...
...
@@ -7,9 +7,12 @@ import com.xxfc.platform.activity.feign.ActivityFeign;
import
com.xxfc.platform.app.feign.ConfigFeign
;
import
com.xxfc.platform.order.biz.OrderAccountBiz
;
import
com.xxfc.platform.order.biz.OrderItemBiz
;
import
com.xxfc.platform.order.biz.OrderRefundBiz
;
import
com.xxfc.platform.order.contant.enumerate.*
;
import
com.xxfc.platform.order.entity.*
;
import
com.xxfc.platform.order.contant.enumerate.DeductionTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDeduction
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDetail
;
import
com.xxfc.platform.order.pojo.calculate.InProgressVO
;
...
...
@@ -49,9 +52,6 @@ public class OrderCalculateBiz {
@Autowired
ActivityFeign
activityFeign
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderItemBiz
orderItemBiz
;
...
...
@@ -152,13 +152,14 @@ public class OrderCalculateBiz {
violateDesc
+=
StrUtil
.
format
(
"(封顶{}元)"
,
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
((
residueDays
+
""
))));
}
inProgressVO
.
setViolateAmount
(
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
((
residueDays
+
""
))));
inProgressVO
.
setViolateDesc
(
" 提前还车违约金:"
+
violateDesc
);
OrderAccountDeduction
violateDeduction
=
orderAccountBiz
.
initDeduction
(
inProgressVO
.
getViolateAmount
(),
violateDesc
,
DeductionTypeEnum
.
VIOLATE_ADVANCE
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
);
oad
.
getDeductions
().
add
(
violateDeduction
);
}
else
if
(
residueDays
<
0
&&
!
isCancel
){
//如果订单 出发中 或者 已完成 或者定损中
if
(
OrderStatusEnum
.
ORDER_WAIT
.
equals
(
baseOrder
.
getStatus
())
||
OrderStatusEnum
.
ORDER_FINISH
.
equals
(
baseOrder
.
getStatus
())
||
OrderStatusEnum
.
ORDER_FIXED_LOSS
.
equals
(
baseOrder
.
getStatus
()))
{
if
(
OrderStatusEnum
.
ORDER_WAIT
.
getCode
().
equals
(
baseOrder
.
getStatus
())
||
OrderStatusEnum
.
ORDER_FINISH
.
getCode
().
equals
(
baseOrder
.
getStatus
())
||
OrderStatusEnum
.
ORDER_FIXED_LOSS
.
getCode
().
equals
(
baseOrder
.
getStatus
()))
{
Integer
overDays
=
0
-
residueDays
;
String
violateDesc
=
StrUtil
.
format
(
"({}元/天 x200%) x{}天"
,
orderItem
.
getUnitPrice
().
toString
(),
overDays
);
// if(overDays > 2) {
...
...
@@ -167,6 +168,7 @@ public class OrderCalculateBiz {
// }
//超过的天数 * 200% * 单价
inProgressVO
.
setViolateAmount
(
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
(
2
+
""
)).
multiply
(
new
BigDecimal
((
overDays
+
""
))));
inProgressVO
.
setViolateDesc
(
" 延期还车违约金:"
+
violateDesc
);
OrderAccountDeduction
violateDeduction
=
orderAccountBiz
.
initDeduction
(
inProgressVO
.
getViolateAmount
(),
violateDesc
,
DeductionTypeEnum
.
VIOLATE_DELAY
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
);
oad
.
getDeductions
().
add
(
violateDeduction
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
order
.
biz
.
inner
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
...
...
@@ -27,12 +30,13 @@ import org.springframework.beans.BeanUtils;
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
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.*;
...
...
@@ -63,9 +67,6 @@ public class OrderCancelBiz {
@Autowired
OrderRentVehicleBiz
orderRentVehicleBiz
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderMsgBiz
orderMsgBiz
;
...
...
@@ -149,7 +150,7 @@ public class OrderCancelBiz {
//原退还押金
Integer
freeDays
=
(
null
==
orderItem
.
getCutNum
())?
0
:
orderItem
.
getCutNum
();
BigDecimal
freeDayAmount
=
BigDecimal
.
ZERO
;
//
BigDecimal freeDayAmount = BigDecimal.ZERO;
//如果超过出发时间,不能取消订单
...
...
@@ -180,6 +181,9 @@ public class OrderCancelBiz {
csv
.
setUsedfreeDayNum
(
inProgressVO
.
getUsedfreeDays
());
csv
.
setUsedFreeAmount
(
inProgressVO
.
getUsedFreeDaysAmount
());
csv
.
setHadConpon
((
StrUtil
.
isNotBlank
(
baseOrder
.
getCouponTickerNos
())?
Boolean
.
TRUE
:
Boolean
.
FALSE
));
csv
.
setViolateAmount
(
BigDecimal
.
ZERO
);
csv
.
setViolateDesc
(
""
);
//如果有扣款项,则生成额外的费用明细
if
(
oad
.
getDeductions
().
size
()
>
0
)
{
for
(
OrderAccountDeduction
deduction
:
oad
.
getDeductions
())
{
...
...
@@ -190,22 +194,31 @@ public class OrderCancelBiz {
}
}
//设置订单数据
baseOrder
.
setViolateAmount
(
csv
.
getViolateAmount
());
baseOrder
.
setExtraAmount
(
inProgressVO
.
getExtraAmount
());
csv
.
initParamJson
();
//orderTemplateBiz.handleCostDetailExtend(csv);
orvd
.
handelCostDetailExtend
(
csv
);
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orvd
);
}
else
{
//没到出车时间
//判断是否使用免费天数,并且进行扣款
if
(
freeDays
>
0
)
{
freeDayAmount
=
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
(
orvd
.
getFreeDays
()+
""
));
}
//
//没到出车时间
//
//判断是否使用免费天数,并且进行扣款
//
if(freeDays > 0) {
//
freeDayAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""));
//
}
//违约金封顶 租车身份价 * 2天
BigDecimal
topAmount
=
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
(
2
+
""
));
//退款流程
orderAccountBiz
.
rentRefundProcessCancel
(
baseOrder
,
orderItem
.
getRealAmount
(),
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
,
orvd
.
getDeposit
(),
freeDayAmount
,
oad
,
topAmount
);
orderAccountBiz
.
rentRefundProcessCancel
(
baseOrder
,
BigDecimal
.
ZERO
,
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
,
orvd
.
getDeposit
(),
orderItem
.
getBuyAmount
(),
oad
,
topAmount
);
//设置订单数据
//baseOrder.setDamagesAmount(csv.getDamagesAmount());
//baseOrder.setExtraAmount(inProgressVO.getExtraAmount());
baseOrder
.
setBackCoupon
(
baseOrder
.
getCouponTickerNos
());
//如果有扣款项,则生成额外的费用明细
if
(
oad
.
getDeductions
().
size
()
>
0
)
{
...
...
@@ -216,10 +229,14 @@ public class OrderCancelBiz {
setViolateDesc
(
deduction
.
getName
());
}};
//设置订单数据
baseOrder
.
setViolateAmount
(
cnsv
.
getViolateAmount
());
cnsv
.
initParamJson
();
//orderTemplateBiz.handleCostDetailExtend(cnsv);
orvd
.
handelCostDetailExtend
(
cnsv
);
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orvd
);
break
;
}
}
}
...
...
@@ -251,8 +268,8 @@ public class OrderCancelBiz {
setOrderId
(
baseOrder
.
getId
());
}});
BigDecimal
adultItemAmount
=
(
null
==
adultItem
)?
BigDecimal
.
ZERO
:
adultItem
.
get
Real
Amount
();
BigDecimal
childItemAmount
=
(
null
==
childItem
)?
BigDecimal
.
ZERO
:
childItem
.
get
Real
Amount
();
BigDecimal
adultItemAmount
=
(
null
==
adultItem
)?
BigDecimal
.
ZERO
:
adultItem
.
get
Buy
Amount
();
BigDecimal
childItemAmount
=
(
null
==
childItem
)?
BigDecimal
.
ZERO
:
childItem
.
get
Buy
Amount
();
//判断是省内还是省外
String
key
=
TOUR_IN_REFUND
;
...
...
@@ -272,7 +289,9 @@ public class OrderCancelBiz {
setViolateDesc
(
deduction
.
getName
());
}};
cnsv
.
initParamJson
();
//设置订单数据
baseOrder
.
setViolateAmount
(
cnsv
.
getViolateAmount
());
//orderTemplateBiz.handleCostDetailExtend(cnsv);
otd
.
handelCostDetailExtend
(
cnsv
);
orderTourDetailBiz
.
updateSelectiveByIdRe
(
otd
);
...
...
@@ -310,13 +329,6 @@ public class OrderCancelBiz {
}
}
//返还优惠券
if
(
StrUtil
.
isNotBlank
(
baseOrder
.
getCouponTickerNos
()))
{
List
<
String
>
backCoupons
=
(
null
==
inProgressVO
)?
inProgressVO
.
getBackCoupons
():
Convert
.
convert
(
List
.
class
,
baseOrder
.
getCouponTickerNos
().
split
(
","
));
for
(
String
backCoupon
:
backCoupons
)
{
activityFeign
.
cancelUse
(
backCoupon
);
}
}
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
otd
=
orderTourDetailBiz
.
selectOne
(
new
OrderTourDetail
(){{
setOrderId
(
baseOrder
.
getId
());
...
...
@@ -326,6 +338,20 @@ public class OrderCancelBiz {
tourFeign
.
stock
(
otd
.
getSpePriceId
(),
otd
.
getTotalNumber
(),
TourFeign
.
STOCK_PLUS
);
}
//返还优惠券
if
(
StrUtil
.
isNotBlank
(
baseOrder
.
getCouponTickerNos
()))
{
List
<
String
>
backCoupons
=
(
null
==
inProgressVO
)?
Convert
.
convert
(
List
.
class
,
baseOrder
.
getCouponTickerNos
().
split
(
","
)):
inProgressVO
.
getBackCoupons
();
//设置订单参数
baseOrder
.
setBackCoupon
(
CollUtil
.
join
(
backCoupons
,
","
));
for
(
String
backCoupon
:
backCoupons
)
{
activityFeign
.
cancelUse
(
backCoupon
);
}
}
//更新baseOrder
BeanUtil
.
copyProperties
(
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
),
baseOrder
);
//发送队列消息
baseOrderBiz
.
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
OrderMQDTO
.
ORDER_CANCEL
);
}
else
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderMsgBiz.java
View file @
20f0e52c
...
...
@@ -68,9 +68,6 @@ public class OrderMsgBiz {
@Autowired
ConfigFeign
configFeign
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderAccountBiz
orderAccountBiz
;
...
...
@@ -283,10 +280,10 @@ public class OrderMsgBiz {
CompanyDetail
endCompanyDetail
=
vehicleFeign
.
getCompanyDetail
(
orvd
.
getEndCompanyId
()).
getData
();
if
(
null
!=
orvd
.
getEndCompanyId
()
&&
!
SYS_FALSE
.
equals
(
orvd
.
getEndCompanyId
()))
{
//新的账单 记录
//新的账单 记录
OUT_ORDER_FUND 返回订单款取消订单
OrderAccount
orderAccount
=
orderAccountBiz
.
selectOne
(
new
OrderAccount
(){{
setOrderId
(
baseOrder
.
getId
());
setAccountType
(
AccountTypeEnum
.
IN_ORDER_PAY
.
getCode
());
setAccountType
(
AccountTypeEnum
.
OUT_ORDER_FUND
.
getCode
());
}});
if
(
BigDecimal
.
ZERO
.
equals
(
orderAccount
.
getDeductAmount
()))
{
...
...
@@ -387,26 +384,26 @@ public class OrderMsgBiz {
BigDecimal
refundAmount
;
BigDecimal
residueAmount
;
//查询订单退款记录
Order
Refund
orderRefund
;
Order
Account
orderAccount
;
if
(
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
equals
(
baseOrder
.
getRefundStatus
()))
{
smstype
=
SmsTemplateDTO
.
REFUND_A
;
order
Refund
=
orderRefundBiz
.
selectOne
(
new
OrderRefund
(){{
order
Account
=
orderAccountBiz
.
selectOne
(
new
OrderAccount
(){{
setOrderId
(
baseOrder
.
getId
());
set
RefundType
(
RefundTypeEnum
.
PART_DEPOSIT
.
getCode
());
set
AccountType
(
AccountTypeEnum
.
OUT_
PART_DEPOSIT
.
getCode
());
}});
originalAmount
=
orvd
.
getDeposit
();
violateAmount
=
order
Refund
.
getDeductAmount
();
refundAmount
=
order
Refund
.
getRefund
Amount
();
violateAmount
=
order
Account
.
getDeductAmount
();
refundAmount
=
order
Account
.
getAccount
Amount
();
residueAmount
=
orvd
.
getReturnPayResidue
();
}
else
if
(
RefundStatusEnum
.
REFUND_DEPOSIT
.
equals
(
baseOrder
.
getRefundStatus
())){
smstype
=
SmsTemplateDTO
.
REFUND_B
;
order
Refund
=
orderRefundBiz
.
selectOne
(
new
OrderRefund
(){{
order
Account
=
orderAccountBiz
.
selectOne
(
new
OrderAccount
(){{
setOrderId
(
baseOrder
.
getId
());
set
RefundType
(
RefundTypeEnum
.
RESIDUE_DEPOSIT
.
getCode
());
set
AccountType
(
AccountTypeEnum
.
OUT_
RESIDUE_DEPOSIT
.
getCode
());
}});
originalAmount
=
order
Refund
.
getOriginalRefund
Amount
();
violateAmount
=
order
Refund
.
getDeductAmount
();
refundAmount
=
order
Refund
.
getRefund
Amount
();
originalAmount
=
order
Account
.
getOriginal
Amount
();
violateAmount
=
order
Account
.
getDeductAmount
();
refundAmount
=
order
Account
.
getAccount
Amount
();
residueAmount
=
BigDecimal
.
ZERO
;
}
else
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
new
HashSet
<
String
>()
{{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/jobhandler/RentDepositJobHandler.java
View file @
20f0e52c
...
...
@@ -2,7 +2,6 @@ package com.xxfc.platform.order.jobhandler;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.biz.*
;
import
com.xxfc.platform.order.biz.inner.OrderMsgBiz
;
import
com.xxfc.platform.order.contant.enumerate.*
;
...
...
@@ -19,7 +18,6 @@ import com.xxl.job.core.biz.model.ReturnT;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.handler.annotation.JobHandler
;
import
com.xxl.job.core.log.XxlJobLogger
;
import
io.swagger.models.auth.In
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
...
...
@@ -27,7 +25,6 @@ import tk.mybatis.mapper.entity.Example;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -60,9 +57,6 @@ public class RentDepositJobHandler extends IJobHandler {
@Autowired
OrderViolationBiz
orderViolationBiz
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderAccountBiz
orderAccountBiz
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRefundController.java
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
...
...
@@ -19,6 +20,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderRefund
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDetail
;
import
com.xxfc.platform.order.pojo.calculate.InProgressVO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
...
...
@@ -75,63 +77,87 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
OrderTypeEnum
orderTypeEnum
=
OrderTypeEnum
.
get
(
orderPageVO
.
getType
());
BigDecimal
orderRefundAmount
=
BigDecimal
.
ZERO
;
BigDecimal
totalRefundAmount
=
BigDecimal
.
ZERO
;
BigDecimal
totalDeductAmount
=
BigDecimal
.
ZERO
;
StringBuilder
refundDescBuilder
=
new
StringBuilder
(
""
);
String
refundDesc
=
""
;
InProgressVO
inProgressVO
=
new
InProgressVO
();
switch
(
orderTypeEnum
)
{
case
RENT_VEHICLE:
DateTime
nowTime
=
DateTime
.
parse
(
DateTime
.
now
().
toString
(
CommonConstants
.
YMR_SLASH_FORMATTER_JODA
),
CommonConstants
.
YMR_SLASH_FORMATTER_JODA
);
DateTime
startTime
=
DateTime
.
parse
(
new
DateTime
(
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()).
toString
(
CommonConstants
.
YMR_SLASH_FORMATTER_JODA
),
CommonConstants
.
YMR_SLASH_FORMATTER_JODA
);
DateTime
endTime
=
DateTime
.
parse
(
new
DateTime
(
orderPageVO
.
getOrderRentVehicleDetail
().
getEndTime
()).
toString
(
CommonConstants
.
YMR_SLASH_FORMATTER_JODA
),
CommonConstants
.
YMR_SLASH_FORMATTER_JODA
);
InProgressVO
inProgressVO
=
orderCalculateBiz
.
inProgressCalculate
(
orderPageVO
,
baseOrderBiz
.
getDaysBetweenDateTime
(
startTime
,
nowTime
)
);
// orderRefundAmount = orderAccountBiz.calculateDeduction(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
// , orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis()
// , DictionaryKey.APP_ORDER+ "_"+ RENT_REFUND
// , refundDescBuilder
);
// OrderRentVehicleDetail orvd = orderPageVO.getOrderRentVehicleDetail(
);
// Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
// //原退还押金
// BigDecimal originalDeductAmount = BigDecimal.ZERO
;
// BigDecimal originalRefundAmount = BigDecimal.ZERO.add(orvd.getDeposit()
);
// //判断是否使用免费天数,并且进行扣款
// if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
// refundDescBuilder = new StringBuilder(""
);
// OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{
// setType(ItemTypeEnum.VEHICLE_MODEL.getCode()
);
// setOrderId(orderPageVO.getId());
// }});
// originalDeductAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""))
;
// }
// BigDecimal residueAmount = orderRefundBiz.calculateDeduction(originalDeductAmount, timeLag, APP_ORDER+ "_"+ RENT_REFUND, refundDescBuilder);
//扣款 = 违约金 + 消费金额
BigDecimal
residueAmount
=
BigDecimal
.
ZERO
;
//inProgressVO.get
residueAmount
=
residueAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
//押金剩余款 :押金 - (原扣除款 - 剩余款)
//退款金额 :订单剩余款 + 押金剩余款
//orderRefundAmount = orderRefundAmount.add(originalRefundAmount.subtract(originalDeductAmount.subtract(residueAmount)));
Long
timeLag
=
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()
-
System
.
currentTimeMillis
(
);
OrderItem
vehicleItem
=
orderItemBiz
.
selectOne
(
new
OrderItem
(){{
setType
(
ItemTypeEnum
.
VEHICLE_MODEL
.
getCode
());
setOrderId
(
orderPageVO
.
getId
()
);
}}
);
if
(
timeLag
<
0
)
{
OrderAccountDetail
oad
=
new
OrderAccountDetail
()
;
Integer
freeDays
=
(
null
==
vehicleItem
.
getCutNum
())?
0
:
vehicleItem
.
getCutNum
(
);
inProgressVO
=
orderCalculateBiz
.
inProgressCalculate
(
orderPageVO
,
vehicleItem
,
freeDays
,
baseOrderBiz
.
getDaysBetweenDateTime
(
startTime
,
nowTime
),
new
OrderAccountDetail
(),
Boolean
.
FALSE
);
//.inProgressCalculate(orderPageVO, baseOrderBiz.getDaysBetweenDateTime(startTime, nowTime));
totalDeductAmount
=
oad
.
realTotalDeduct
(
);
totalRefundAmount
=
oad
.
getOrderAmount
().
add
(
oad
.
getDepositAmount
());
refundDesc
=
inProgressVO
.
getViolateDesc
(
);
}
else
{
String
key
=
RENT_REFUND
;
BigDecimal
deductionAmount
=
orderAccountBiz
.
calculateDeduction
(
vehicleItem
.
getBuyAmount
()
,
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
DictionaryKey
.
APP_ORDER
+
"_"
+
key
,
refundDescBuilder
);
totalDeductAmount
=
deductionAmount
;
totalRefundAmount
=
orderPageVO
.
getRealAmount
().
subtract
(
deductionAmount
);
refundDesc
=
refundDescBuilder
.
toString
();
}
break
;
case
TOUR:
//判断是省内还是省外
// String key = TOUR_IN_REFUND;
// if(SYS_TRUE.equals(orderPageVO.getOrderTourDetail().getIsOutside())) {
// key = TOUR_REFUND;
// }
// orderRefundAmount = orderRefundBiz.calculateDeduction(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
// , orderPageVO.getOrderTourDetail().getStartTime() - System.currentTimeMillis()
// , DictionaryKey.APP_ORDER+ "_"+ key
// , refundDescBuilder);
// break;
String
key
=
TOUR_IN_REFUND
;
if
(
SYS_TRUE
.
equals
(
orderPageVO
.
getOrderTourDetail
().
getIsOutside
()))
{
key
=
TOUR_REFUND
;
}
OrderItem
adultItem
=
orderItemBiz
.
selectOne
(
new
OrderItem
(){{
setType
(
ItemTypeEnum
.
TOUR_ADULT
.
getCode
());
setOrderId
(
orderPageVO
.
getId
());
}});
OrderItem
childItem
=
orderItemBiz
.
selectOne
(
new
OrderItem
(){{
setType
(
ItemTypeEnum
.
TOUR_CHILD
.
getCode
());
setOrderId
(
orderPageVO
.
getId
());
}});
BigDecimal
adultItemAmount
=
(
null
==
adultItem
)?
BigDecimal
.
ZERO
:
adultItem
.
getRealAmount
();
BigDecimal
childItemAmount
=
(
null
==
childItem
)?
BigDecimal
.
ZERO
:
childItem
.
getRealAmount
();
BigDecimal
deductionAmount
=
orderAccountBiz
.
calculateDeduction
(
adultItemAmount
.
add
(
childItemAmount
)
,
orderPageVO
.
getOrderTourDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
DictionaryKey
.
APP_ORDER
+
"_"
+
key
,
refundDescBuilder
);
totalRefundAmount
=
orderPageVO
.
getRealAmount
().
subtract
(
deductionAmount
);
refundDesc
=
refundDescBuilder
.
toString
();
break
;
default
:
break
;
}
OrderRefundPriceVO
orpv
=
new
OrderRefundPriceVO
();
orpv
.
setRealAmount
(
orderPageVO
.
getRealAmount
());
orpv
.
setRefundAmount
(
orderRefundAmount
);
orpv
.
setRefundDesc
(
"取消操作可能会产生额外费用,是否确定取消订单"
);
orpv
.
setRefundAmount
(
totalRefundAmount
);
if
(
totalDeductAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
orpv
.
setRefundDesc
(
StrUtil
.
format
(
"本次取消操作需要扣除{}元违约金,实际退款金额为{}元,您确定要取消订单吗?"
,
totalDeductAmount
,
totalRefundAmount
));
}
else
{
orpv
.
setRefundDesc
(
"取消操作可能会产生额外费用,是否确定取消订单"
);
}
return
ObjectRestResponse
.
succ
(
orpv
);
}
...
...
xx-summit/pom.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
ace-security
</artifactId>
<groupId>
com.github.wxiaoqi
</groupId>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
xx-summit
</artifactId>
<packaging>
pom
</packaging>
<modules>
<module>
xx-summit-api
</module>
<module>
xx-summit-server
</module>
</modules>
</project>
\ No newline at end of file
xx-summit/xx-summit-api/pom.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<groupId>
com.xxfc.common
</groupId>
<artifactId>
xx-common-platform
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-summit-api
</artifactId>
<dependencies>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-universal-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/constant/RedisKey.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
constant
;
public
class
RedisKey
{
/**
*验证码key前缀
*/
public
static
final
String
CONSTANT_CODE_PREFIX
=
"bm:info:"
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/entity/Activity.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
entity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.math.BigDecimal
;
/**
* 文章实体
*
* @author Administrator
*/
@Data
@Table
(
name
=
"fc_activity"
)
@Entity
@ApiModel
(
value
=
"峰会活动表"
)
public
class
Activity
{
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Integer
id
;
@Column
(
name
=
"rid"
)
@ApiModelProperty
(
"抽奖活动id"
)
private
Integer
rId
;
@Column
(
name
=
"title"
)
@ApiModelProperty
(
"活动主标题"
)
private
String
title
;
@Column
(
name
=
"subtitle"
)
@ApiModelProperty
(
"副标题(不展示)"
)
private
String
subtitle
;
@Column
(
name
=
"banner"
)
@ApiModelProperty
(
"活动主图"
)
private
String
banner
;
@Column
(
name
=
"start_time"
)
@ApiModelProperty
(
"开始时间"
)
private
Long
startTime
;
@Column
(
name
=
"end_time"
)
@ApiModelProperty
(
"结束时间"
)
private
Long
endTime
;
@Column
(
name
=
"bm_close_time"
)
@ApiModelProperty
(
"报名截止时间(不展示)"
)
private
String
bmCloseTime
;
@Column
(
name
=
"province_code"
)
@ApiModelProperty
(
"省编码"
)
private
Integer
provinceCode
;
@Column
(
name
=
"province"
)
@ApiModelProperty
(
"省"
)
private
String
province
;
@Column
(
name
=
"city_code"
)
@ApiModelProperty
(
"市编码"
)
private
Integer
cityCode
;
@Column
(
name
=
"city"
)
@ApiModelProperty
(
"市"
)
private
String
city
;
@Column
(
name
=
"town_code"
)
@ApiModelProperty
(
"县/镇 编码"
)
private
Integer
townCode
;
@Column
(
name
=
"town"
)
@ApiModelProperty
(
"县/镇"
)
private
String
town
;
@Column
(
name
=
"address"
)
@ApiModelProperty
(
"活动场地(地址格式)"
)
private
String
address
;
@Column
(
name
=
"latitude"
)
@ApiModelProperty
(
"纬度(不展示"
)
private
BigDecimal
latitude
;
@Column
(
name
=
"longitude"
)
@ApiModelProperty
(
"经度 (不展示)"
)
private
BigDecimal
longitude
;
@Column
(
name
=
"content"
)
@ApiModelProperty
(
"活动图文内容"
)
private
String
content
;
@Column
(
name
=
"is_show"
)
@ApiModelProperty
(
"活动开关(1开,0关)"
)
private
Integer
isShow
;
@Column
(
name
=
"is_open_bm"
)
@ApiModelProperty
(
"报名开关(1开,0关)"
)
private
Integer
isOpenBm
;
@Column
(
name
=
"is_publish"
)
@ApiModelProperty
(
"0是未发布,1是已发布"
)
private
Integer
isPublish
;
@Column
(
name
=
"status"
)
@ApiModelProperty
(
"0-默认;1-报名中,2-进行中;3-已结束"
)
private
Integer
status
;
@Column
(
name
=
"act_desc"
)
@ApiModelProperty
(
"活动对象说明(不展示)"
)
private
String
actDesc
;
@Column
(
name
=
"process_json"
)
@ApiModelProperty
(
"活动流程"
)
private
String
processJson
;
@Column
(
name
=
"type"
)
@ApiModelProperty
(
"活动类型(保留,不展示)"
)
private
Integer
type
;
@Column
(
name
=
"limit_num"
)
@ApiModelProperty
(
"总人数限制"
)
private
Integer
limitNum
;
@Column
(
name
=
"bm_num"
)
@ApiModelProperty
(
"已报名人数"
)
private
Integer
bmNum
;
@Column
(
name
=
"qd_num"
)
@ApiModelProperty
(
"已签到人数"
)
private
Integer
qdNum
;
@Column
(
name
=
"rank"
)
@ApiModelProperty
(
"排序"
)
private
Integer
rank
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
"创建时间"
)
private
Long
crtTime
;
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
"修改时间"
)
private
Long
updTime
;
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
"删除(0正常,1删除)"
)
private
Integer
isDel
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/entity/ActivityBm.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
/**
* @author Administrator
*/
@Data
@Table
(
name
=
"fc_activity_bm"
)
public
class
ActivityBm
{
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Integer
id
;
@Column
(
name
=
"activity_id"
)
@ApiModelProperty
(
"活动id"
)
private
Integer
activityId
;
@Column
(
name
=
"meepo_user_id"
)
@ApiModelProperty
(
"用户id"
)
private
Integer
meepoUserId
;
@Column
(
name
=
"name"
)
@ApiModelProperty
(
"报名人姓名"
)
private
String
name
;
@Column
(
name
=
"phone"
)
@ApiModelProperty
(
"报名人电话"
)
private
String
phone
;
@Column
(
name
=
"id_number"
)
@ApiModelProperty
(
"身份证号"
)
private
String
idNumber
;
@Column
(
name
=
"inviter"
)
@ApiModelProperty
(
"邀请人"
)
private
String
inviter
;
@Column
(
name
=
"qd_status"
)
@ApiModelProperty
(
"0-未签到;1-已签到"
)
private
Integer
qdStatus
;
@Column
(
name
=
"bm_status"
)
@ApiModelProperty
(
"0-未报名;1-已报名"
)
private
Integer
bmStatus
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
"创建时间"
)
private
Long
crtTime
;
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
"创建时间"
)
private
Long
updTime
;
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
"是否删除:0-正常;1-删除"
)
private
Integer
isDel
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/entity/ActivityShow.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.junit.Test
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
/**
* @author Administrator
*/
@Data
@Table
(
name
=
"fc_activity_show"
)
public
class
ActivityShow
{
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Integer
id
;
@Column
(
name
=
"activity_id"
)
@ApiModelProperty
(
"活动id"
)
private
Integer
activityId
;
@Column
(
name
=
"type"
)
@ApiModelProperty
(
"1-图片;2-视频"
)
private
Integer
type
;
@Column
(
name
=
"path"
)
@ApiModelProperty
(
"图片或视频路径"
)
private
String
path
;
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
"创建时间"
)
private
Long
crtTime
;
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
"是否删除:0-正常;1-删除"
)
private
Integer
isDel
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/entity/MeepoUserQd.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
@Data
@Table
(
name
=
"ims_meepo_xianchang_qd"
)
public
class
MeepoUserQd
{
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Integer
id
;
@Column
(
name
=
"weid"
)
@ApiModelProperty
(
"主公众号Id"
)
private
Integer
weId
;
@Column
(
name
=
"rid"
)
@ApiModelProperty
(
"规则ID"
)
private
Integer
rId
;
@Column
(
name
=
"openid"
)
@ApiModelProperty
(
"openid"
)
private
String
openId
;
@Column
(
name
=
"nick_name"
)
@ApiModelProperty
(
"昵称"
)
private
String
nickName
;
@Column
(
name
=
"avatar"
)
@ApiModelProperty
(
"微信头像"
)
private
String
avatar
;
@Column
(
name
=
"level"
)
@ApiModelProperty
(
"状态"
)
private
Integer
level
;
@Column
(
name
=
"createtime"
)
@ApiModelProperty
(
"创建时间"
)
private
Long
createTime
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/entity/User.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.math.BigDecimal
;
/**
* @author Administrator
*/
@Data
@Table
(
name
=
"ims_meepo_xianchang_user"
)
public
class
User
{
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Integer
id
;
@Column
(
name
=
"weid"
)
@ApiModelProperty
(
"主公众号id"
)
private
Integer
weId
;
@Column
(
name
=
"rid"
)
@ApiModelProperty
(
"规则ID"
)
private
Integer
rId
;
@Column
(
name
=
"openid"
)
@ApiModelProperty
(
"微信openid"
)
private
String
openId
;
@Column
(
name
=
"oauth_openid"
)
@ApiModelProperty
(
"待定"
)
private
String
oauthOpenid
;
@Column
(
name
=
"mobile"
)
@ApiModelProperty
(
"电话"
)
private
String
mobile
;
@Column
(
name
=
"nick_name"
)
@ApiModelProperty
(
"昵称"
)
private
String
nickName
;
@Column
(
name
=
"avatar"
)
@ApiModelProperty
(
"头像"
)
private
String
avatar
;
@Column
(
name
=
"sex"
)
@ApiModelProperty
(
"性别"
)
private
String
sex
;
@Column
(
name
=
"group"
)
@ApiModelProperty
(
"分组"
)
private
Integer
group
;
@Column
(
name
=
"status"
)
@ApiModelProperty
(
"状态"
)
private
Integer
status
;
@Column
(
name
=
"isblacklist"
)
@ApiModelProperty
(
"待定"
)
private
Integer
isBlacklist
;
@Column
(
name
=
"can_lottory"
)
@ApiModelProperty
(
"待定"
)
private
Integer
canLottory
;
@Column
(
name
=
"can_dt"
)
@ApiModelProperty
(
"待定"
)
private
Integer
canDt
;
@Column
(
name
=
"nd_id"
)
@ApiModelProperty
(
"待定"
)
private
Integer
ndId
;
@Column
(
name
=
"qd_status"
)
@ApiModelProperty
(
"签到状态"
)
private
Integer
qdStatus
;
@Column
(
name
=
"is_manager"
)
@ApiModelProperty
(
"待定"
)
private
Integer
isManager
;
@Column
(
name
=
"money"
)
@ApiModelProperty
(
"分组"
)
private
BigDecimal
money
;
@Column
(
name
=
"createtime"
)
@ApiModelProperty
(
"创建时间"
)
private
Integer
createtime
;
@Column
(
name
=
"lastjointime"
)
@ApiModelProperty
(
"待定"
)
private
Integer
lastjointime
;
@Column
(
name
=
"had_luru"
)
@ApiModelProperty
(
"待定"
)
private
Integer
hadLuru
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/feign/SummitFeign.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
feign
;
import
org.springframework.cloud.openfeign.FeignClient
;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-21 8:11
*/
@FeignClient
(
value
=
"xx-summit"
)
public
interface
SummitFeign
{
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/AccessType.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
pojo
;
import
lombok.Data
;
public
enum
AccessType
{
BACKSTAGE
(
1
,
"后台管理页面"
),
PUBLIC
(
2
,
"公众号"
);
AccessType
(
Integer
code
,
String
mas
)
{
this
.
code
=
code
;
this
.
mas
=
mas
;
}
private
Integer
code
;
private
String
mas
;
public
Integer
getCode
()
{
return
code
;
}
public
String
getMas
()
{
return
mas
;
}
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/ActivityBmQuery.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
pojo
;
import
lombok.Data
;
@Data
public
class
ActivityBmQuery
extends
Query
{
private
String
inviter
;
private
String
name
;
private
Integer
qdStatus
;
private
Integer
activityId
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/ActivityQuery.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
pojo
;
import
lombok.Data
;
/**
* @author Administrator
*/
@Data
public
class
ActivityQuery
extends
Query
{
private
String
title
;
private
Long
startTime
;
private
Integer
status
;
/**
* 1.管理后台,2.h5页面
*/
private
Integer
type
=
1
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/Query.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
pojo
;
import
lombok.Data
;
/**
* @author Administrator
*/
@Data
public
class
Query
{
private
Integer
page
=
1
;
private
Integer
limit
=
10
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/util/HttpRequestUtil.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
util
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.impl.client.DefaultHttpClient
;
import
org.apache.http.util.EntityUtils
;
import
java.io.IOException
;
import
java.net.URLDecoder
;
@Slf4j
public
class
HttpRequestUtil
{
/**
* post请求
* @param url url地址
* @return
*/
public
static
String
httpPost
(
String
url
){
//post请求返回结果
DefaultHttpClient
httpClient
=
new
DefaultHttpClient
();
HttpPost
method
=
new
HttpPost
(
url
);
String
str
=
""
;
try
{
HttpResponse
result
=
httpClient
.
execute
(
method
);
url
=
URLDecoder
.
decode
(
url
,
"UTF-8"
);
/**请求发送成功,并得到响应**/
if
(
result
.
getStatusLine
().
getStatusCode
()
==
200
)
{
try
{
/**读取服务器返回过来的json字符串数据**/
str
=
EntityUtils
.
toString
(
result
.
getEntity
(),
"UTF-8"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"post请求提交失败:"
+
url
,
e
);
}
}
}
catch
(
IOException
e
)
{
log
.
error
(
"post请求提交失败:"
+
url
,
e
);
}
return
str
;
}
/**
* 发送get请求
* @param url 路径
* @return
*/
public
static
String
httpGet
(
String
url
){
//get请求返回结果
String
strResult
=
null
;
try
{
DefaultHttpClient
client
=
new
DefaultHttpClient
();
//发送get请求
HttpGet
request
=
new
HttpGet
(
url
);
HttpResponse
response
=
client
.
execute
(
request
);
/**请求发送成功,并得到响应**/
if
(
response
.
getStatusLine
().
getStatusCode
()
==
org
.
apache
.
http
.
HttpStatus
.
SC_OK
)
{
/**读取服务器返回过来的json字符串数据**/
strResult
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
}
else
{
log
.
error
(
"get请求提交失败:"
+
url
);
}
}
catch
(
IOException
e
)
{
log
.
error
(
"get请求提交失败:"
+
url
,
e
);
}
return
strResult
;
}
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/vo/MeepoActivityVo.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
MeepoActivityVo
{
@ApiModelProperty
(
"活动id"
)
private
Integer
rId
;
@ApiModelProperty
(
"主公众号Id"
)
private
Integer
weId
;
@ApiModelProperty
(
"活动标题"
)
private
String
title
;
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/vo/UserInfo.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
vo
;
import
lombok.Data
;
@Data
public
class
UserInfo
{
private
String
unionid
;
private
String
openId
;
private
String
nickname
;
private
String
headimgurl
;
private
String
sex
;
}
xx-summit/xx-summit-server/pom.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
xx-common-platform-web
</artifactId>
<groupId>
com.xxfc.common
</groupId>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-summit-server
</artifactId>
<dependencies>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-summit-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
<finalName>
xx-summit
</finalName>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.8
</source>
<target>
1.8
</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/SummitApplication.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
@SpringBootApplication
(
scanBasePackages
=
{
"com.xxfc.platform"
,
"com.github.wxiaoqi.security.common.handler"
})
@EnableDiscoveryClient
@EnableAceAuthClient
@EnableScheduling
@EnableAceCache
@EnableTransactionManagement
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.summit.mapper"
)
@EnableFeignClients
(
value
=
{
"com.xxfc.platform"
,
"com.github.wxiaoqi.security"
},
defaultConfiguration
=
HeaderConfig
.
class
)
public
class
SummitApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
SummitApplication
.
class
,
args
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/ActivityBiz.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
biz
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.mapper.ActivityMapper
;
import
com.xxfc.platform.summit.pojo.AccessType
;
import
com.xxfc.platform.summit.pojo.ActivityQuery
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.List
;
/**
* @author Administrator
*/
@Service
public
class
ActivityBiz
extends
BaseBiz
<
ActivityMapper
,
Activity
>
{
/**
* 未删除
*/
private
Integer
NOT_DELETE
=
0
;
private
Activity
activity
;
/**
* 已发布
*/
private
Integer
PUBLISHED
=
1
;
public
Object
getList
(
ActivityQuery
query
)
{
Example
exa
=
new
Example
(
Activity
.
class
);
Example
.
Criteria
criteria
=
exa
.
createCriteria
();
criteria
.
andEqualTo
(
"isDel"
,
NOT_DELETE
);
if
(
StringUtils
.
isNotBlank
(
query
.
getTitle
()))
{
criteria
.
andLike
(
"title"
,
String
.
format
(
"%%%s%%"
,
query
.
getTitle
().
trim
()));
}
if
(
query
.
getStartTime
()
!=
null
)
{
criteria
.
andLike
(
"startTime"
,
query
.
getStartTime
()
/
1000
+
"%"
);
}
if
(
query
.
getStatus
()
!=
null
)
{
criteria
.
andEqualTo
(
"status"
,
query
.
getStatus
());
}
if
(
query
.
getType
()
!=
null
&&
AccessType
.
PUBLIC
.
getCode
().
equals
(
query
.
getType
()))
{
criteria
.
andEqualTo
(
"isPublish"
,
PUBLISHED
);
}
exa
.
orderBy
(
"rank"
).
asc
().
orderBy
(
"startTime"
).
desc
();
if
(
AccessType
.
PUBLIC
.
getCode
().
equals
(
query
.
getType
()))
{
return
mapper
.
selectByExample
(
exa
);
}
PageHelper
.
startPage
(
query
.
getPage
(),
query
.
getLimit
());
List
<
Activity
>
activities
=
mapper
.
selectByExample
(
exa
);
return
new
PageInfo
<
Activity
>(
activities
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
update
(
Activity
activity
)
{
try
{
activity
.
setUpdTime
(
System
.
currentTimeMillis
());
mapper
.
updateByPrimaryKeySelective
(
activity
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
false
;
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
add
(
Activity
activity
)
{
try
{
activity
.
setCrtTime
(
System
.
currentTimeMillis
());
activity
.
setIsDel
(
0
);
if
(
activity
.
getIsOpenBm
()
==
null
)
{
activity
.
setIsOpenBm
(
0
);
}
if
(
activity
.
getIsPublish
()
==
null
)
{
activity
.
setIsPublish
(
0
);
}
if
(
activity
.
getIsShow
()
==
null
)
{
activity
.
setIsShow
(
0
);
}
mapper
.
insertSelective
(
activity
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
false
;
}
}
@Override
public
void
updateSelectiveById
(
Activity
activity
)
{
activity
.
setUpdTime
(
System
.
currentTimeMillis
());
mapper
.
updateByPrimaryKeySelective
(
activity
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/ActivityBmBiz.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
biz
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.constant.RestCode
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
import
com.xxfc.platform.summit.entity.User
;
import
com.xxfc.platform.summit.mapper.ActivityBmMapper
;;
import
com.xxfc.platform.summit.pojo.ActivityBmQuery
;
import
com.xxfc.platform.summit.vo.MeepoActivityVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.entity.Example
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
* @author Administrator
*/
@Service
@Slf4j
public
class
ActivityBmBiz
extends
BaseBiz
<
ActivityBmMapper
,
ActivityBm
>
{
@Autowired
private
RedisTemplate
summbitRedisTemplate
;
@Autowired
private
UserBiz
userBiz
;
@Autowired
private
ActivityBiz
activityBiz
;
@Autowired
private
MeepoUserQdBiz
meepoUserQdBiz
;
//用户报名
public
ObjectRestResponse
userBmOrQd
(
ActivityBm
activityBm
,
Integer
meepoUserId
)
throws
Exception
{
if
(
activityBm
==
null
||
meepoUserId
==
null
||
meepoUserId
==
0
){
log
.
info
(
"-----activityBm==="
+
activityBm
+
"-------meepoUserId==="
+
meepoUserId
+
"-----为空"
);
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"参数不能为空"
);
}
Integer
activityId
=
activityBm
.
getActivityId
();
Integer
bmStatus
=
activityBm
.
getBmStatus
()==
null
?
0
:
activityBm
.
getBmStatus
();
Integer
qdStatus
=
activityBm
.
getQdStatus
()==
null
?
0
:
activityBm
.
getQdStatus
();
log
.
info
(
"-----activityBm==="
+
JSONObject
.
toJSONString
(
activityBm
)+
"-------meepoUserId==="
+
meepoUserId
+
"----activityId==="
+
activityId
+
"---bmStatus=="
+
bmStatus
+
"---qdStatus=="
+
qdStatus
);
if
(
activityId
==
null
||
activityId
==
0
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"活动不存在"
);
}
ActivityBm
activityBm1
=
checkUserBm
(
meepoUserId
,
activityId
);
int
isQd
=
0
;
if
(
activityBm1
!=
null
){
if
(
bmStatus
==
1
&&
activityBm1
.
getBmStatus
()==
1
){
log
.
info
(
"----用户已报名---meepoUserId==="
+
meepoUserId
);
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
EXIST_CODE
,
"用户已报名"
);
}
else
if
(
qdStatus
==
1
){
if
(
activityBm1
.
getQdStatus
()==
1
){
log
.
info
(
"----用户已签到---meepoUserId==="
+
meepoUserId
);
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
EXIST_CODE
,
"用户已签到"
);
}
isQd
=
1
;
}
activityBm
.
setId
(
activityBm1
.
getId
());
updateSelectiveById
(
activityBm
);
}
else
{
activityBm
.
setMeepoUserId
(
meepoUserId
);
insertSelective
(
activityBm
);
if
(
qdStatus
==
1
){
isQd
=
1
;
}
}
if
(
isQd
==
1
){
meepoUserQdBiz
.
addUserQd
(
meepoUserId
);
}
log
.
info
(
"-----用户报名成功----bmId===="
+
activityBm
.
getId
());
return
ObjectRestResponse
.
succ
();
}
//获取小程序峰会活动
public
List
<
MeepoActivityVo
>
getMeepoActivitys
(
Integer
rId
){
return
mapper
.
getMeepoActivitys
(
rId
);
}
//获取缓存内容
public
ActivityBm
userInfo
(
String
redisLockKey
)
throws
Exception
{
if
(
StringUtils
.
isBlank
(
redisLockKey
)){
log
.
info
(
"-----redisLockKey==="
+
redisLockKey
+
"-----为空"
);
return
null
;
}
ActivityBm
bm
=
new
ActivityBm
();
String
json
=
summbitRedisTemplate
.
opsForValue
().
get
(
redisLockKey
)
==
null
?
""
:
summbitRedisTemplate
.
opsForValue
().
get
(
redisLockKey
).
toString
();
log
.
info
(
"userBm接口,获取redis中的报名信息:"
+
json
);
if
(
StringUtils
.
isBlank
(
json
)){
return
null
;
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
json
);
BeanUtils
.
copyProperties
(
jsonObject
,
bm
);
return
bm
;
}
public
ActivityBm
checkUserBm
(
Integer
meepoUserId
,
Integer
activityId
){
Example
example
=
new
Example
(
ActivityBm
.
class
);
example
.
createCriteria
().
andEqualTo
(
"meepoUserId"
,
meepoUserId
).
andEqualTo
(
"activityId"
,
activityId
).
andEqualTo
(
"isDel"
,
0
);
List
<
ActivityBm
>
list
=
mapper
.
selectByExample
(
example
);
if
(
list
.
size
()>
0
){
return
list
.
get
(
0
);
}
return
null
;
}
//用户报名/签到操作
public
JSONObject
userBmOrQdByKey
(
String
key
,
Integer
activityId
,
HttpServletRequest
request
){
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"isbm"
,
0
);
jsonObject
.
put
(
"isqd"
,
0
);
jsonObject
.
put
(
"value"
,
""
);
try
{
User
user
=
userBiz
.
getSession
(
request
);
//是否登录
log
.
info
(
"-----userBmByKey---activityId==="
+
activityId
);
if
(
user
==
null
){
log
.
info
(
"-----userBmByKey---用户未登录----"
);
ActivityBm
activityBm
=
userInfo
(
key
);
if
(
activityBm
!=
null
){
log
.
info
(
"-----userBmByKey---key已存在----"
);
jsonObject
.
put
(
"value"
,
activityBm
);
// 获取到缓存的验证码后要先清空缓存对应键的值
summbitRedisTemplate
.
delete
(
key
);
}
}
else
{
Integer
userId
=
user
.
getId
();
log
.
info
(
"-----userBmByKey---用户登录--userId==="
+
userId
);
ActivityBm
activityBm
=
userInfo
(
key
);
if
(
activityBm
==
null
){
log
.
info
(
"-----userBmByKey---key不存在判断用户是否报名/签到----"
);
ActivityBm
activityBm1
=
checkUserBm
(
userId
,
activityId
);
if
(
activityBm1
!=
null
){
log
.
info
(
"-----userBmByKey---key不存在用户已报名/签到----"
);
jsonObject
.
put
(
"isbm"
,
activityBm1
.
getBmStatus
());
jsonObject
.
put
(
"isqd"
,
activityBm1
.
getQdStatus
());
}
}
else
{
log
.
info
(
"-----userBmByKey---key已存在去报名/签到----"
);
ObjectRestResponse
restResponse
=
userBmOrQd
(
activityBm
,
userId
);
if
(
restResponse
.
getStatus
()==
RestCode
.
SUCCESS
.
getStatus
()){
log
.
info
(
"-----userBmByKey---key已存在去报名/签到----报名/签到成功"
);
if
(
activityBm
.
getBmStatus
()==
1
){
jsonObject
.
put
(
"isbm"
,
1
);
jsonObject
.
put
(
"bm_status"
,
1
);
}
else
if
(
activityBm
.
getQdStatus
()==
1
){
jsonObject
.
put
(
"isqd"
,
1
);
jsonObject
.
put
(
"qd_status"
,
1
);
}
}
else
{
log
.
info
(
"-----userBmByKey---key已存在去报名/签到----报名/签到失败"
);
if
(
activityBm
.
getBmStatus
()==
1
){
jsonObject
.
put
(
"bm_status"
,
2
);
}
else
if
(
activityBm
.
getQdStatus
()==
1
){
jsonObject
.
put
(
"qd_status"
,
2
);
}
}
summbitRedisTemplate
.
delete
(
key
);
}
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
jsonObject
;
}
//获取峰会活动详情
public
ObjectRestResponse
getActivityById
(
Integer
activityId
,
String
key
,
HttpServletRequest
request
){
if
(
activityId
==
0
||
activityId
==
null
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NOTEXIST_CODE
,
"参数为空"
);
}
Example
example
=
new
Example
(
Activity
.
class
);
example
.
createCriteria
().
andEqualTo
(
"id"
,
activityId
).
andEqualTo
(
"isDel"
,
0
);
List
<
Activity
>
list
=
activityBiz
.
selectByExample
(
example
);
if
(
list
.
size
()==
0
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"活动不存在"
);
}
Activity
activity
=
list
.
get
(
0
);
if
(
activity
.
getIsShow
()==
null
||
activity
.
getIsShow
()==
0
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"活动已下架"
);
}
if
(
activity
.
getIsPublish
()==
null
||
activity
.
getIsPublish
()==
0
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"活动未发布"
);
}
Integer
status
=
activity
.
getStatus
();
if
(
status
==
null
){
status
=
0
;
}
if
(
status
==
0
){
Long
nowTime
=
System
.
currentTimeMillis
();
Long
startTime
=
activity
.
getStartTime
();
Long
endTime
=
activity
.
getEndTime
();
if
(
nowTime
<
startTime
){
status
=
1
;
}
else
if
(
nowTime
>=
startTime
&&
nowTime
<
endTime
){
status
=
2
;
}
else
{
status
=
3
;
}
activity
.
setStatus
(
status
);
}
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"activity"
,
activity
);
JSONObject
userBm
=
userBmOrQdByKey
(
key
,
activityId
,
request
);
jsonObject
.
put
(
"bmInfo"
,
userBm
);
return
ObjectRestResponse
.
succ
(
jsonObject
);
}
public
PageInfo
<
ActivityBm
>
list
(
ActivityBmQuery
query
)
{
Example
exa
=
new
Example
(
ActivityBm
.
class
);
Example
.
Criteria
criteria
=
exa
.
createCriteria
();
if
(
StringUtils
.
isNotBlank
(
query
.
getInviter
()))
{
criteria
.
andEqualTo
(
"inviter"
,
String
.
format
(
"%%%s%%"
,
query
.
getInviter
().
trim
()));
}
if
(
StringUtils
.
isNotBlank
(
query
.
getName
()))
{
criteria
.
andLike
(
"name"
,
String
.
format
(
"%%%s%%"
,
query
.
getName
().
trim
()));
}
if
(
query
.
getQdStatus
()!=
null
)
{
criteria
.
andEqualTo
(
"qdStatus"
,
query
.
getQdStatus
());
}
criteria
.
andEqualTo
(
"isDel"
,
0
).
andEqualTo
(
"activityId"
,
query
.
getActivityId
());
exa
.
orderBy
(
"crtTime"
).
desc
();
PageHelper
.
startPage
(
query
.
getPage
(),
query
.
getLimit
());
List
<
ActivityBm
>
activityBms
=
mapper
.
selectByExample
(
exa
);
return
PageInfo
.
of
(
activityBms
);
}
public
ActivityBm
userBm
(
ActivityBm
activityBm
,
Integer
id
)
{
return
null
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/ActivityShowBiz.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
biz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.summit.dto.ActivityShowDto
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.entity.ActivityShow
;
import
com.xxfc.platform.summit.mapper.ActivityShowMapper
;
import
org.apache.commons.beanutils.BeanUtilsBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
java.lang.reflect.InvocationTargetException
;
/**
* @author Administrator
*/
@Service
public
class
ActivityShowBiz
extends
BaseBiz
<
ActivityShowMapper
,
ActivityShow
>
{
@Autowired
private
ActivityBiz
activityBiz
;
public
ActivityShowDto
getOne
(
Integer
activityId
)
{
return
mapper
.
getOne
(
activityId
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
save
(
ActivityShowDto
showDto
)
{
try
{
ActivityShow
activityShow
=
new
ActivityShow
();
BeanUtilsBean
.
getInstance
().
copyProperties
(
activityShow
,
showDto
);
Activity
activity
=
new
Activity
();
activity
.
setId
(
showDto
.
getActivityId
());
activity
.
setBanner
(
showDto
.
getBanner
());
if
(
showDto
.
getId
()==
null
)
{
mapper
.
insertSelective
(
activityShow
);
activityBiz
.
updateSelectiveById
(
activity
);
}
else
{
mapper
.
updateByPrimaryKeySelective
(
activityShow
);
activityBiz
.
updateSelectiveById
(
activity
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
false
;
}
return
true
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/MeepoUserQdBiz.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
biz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.summit.entity.MeepoUserQd
;
import
com.xxfc.platform.summit.entity.User
;
import
com.xxfc.platform.summit.mapper.MeepoUserQdMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.List
;
/**
* @author Administrator
*/
@Service
@Slf4j
public
class
MeepoUserQdBiz
extends
BaseBiz
<
MeepoUserQdMapper
,
MeepoUserQd
>
{
@Autowired
UserBiz
userBiz
;
//添加签到信息
public
void
addUserQd
(
Integer
meepoUserId
){
if
(
meepoUserId
==
null
||
meepoUserId
==
0
){
log
.
info
(
"----签到信息为空meepoUserId==="
+
meepoUserId
);
return
;
}
User
user
=
userBiz
.
selectById
(
meepoUserId
);
Integer
weId
=
user
.
getWeId
();
Integer
rid
=
user
.
getRId
();
String
openId
=
user
.
getOpenId
();
String
avatar
=
user
.
getAvatar
();
String
nikeName
=
user
.
getNickName
();
log
.
info
(
"---addUserQd----meepoUserId==="
+
meepoUserId
+
"----openId==="
+
openId
+
"--weId=="
+
weId
+
"---rid==="
+
rid
+
"---avatar==="
+
avatar
);
Example
example
=
new
Example
(
MeepoUserQd
.
class
);
example
.
createCriteria
().
andEqualTo
(
"weId"
,
weId
).
andEqualTo
(
"rId"
,
rid
).
andEqualTo
(
"openId"
,
openId
);
List
<
MeepoUserQd
>
list
=
selectByExample
(
example
);
if
(
list
.
size
()>
0
){
log
.
info
(
"----已签到---meepoUserId==="
+
meepoUserId
+
"----openId==="
+
openId
);
return
;
}
MeepoUserQd
meepoUserQd
=
new
MeepoUserQd
();
meepoUserQd
.
setAvatar
(
avatar
);
meepoUserQd
.
setLevel
(
1
);
meepoUserQd
.
setNickName
(
nikeName
);
meepoUserQd
.
setOpenId
(
openId
);
meepoUserQd
.
setRId
(
rid
);
meepoUserQd
.
setWeId
(
weId
);
meepoUserQd
.
setCreateTime
(
System
.
currentTimeMillis
()/
1000L
);
insertSelective
(
meepoUserQd
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/UserBiz.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
biz
;
import
cn.hutool.core.codec.Base64
;
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.util.process.ResultCode
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
import
com.xxfc.platform.summit.entity.User
;
import
com.xxfc.platform.summit.mapper.UserMapper
;
import
com.xxfc.platform.summit.service.WeixinService
;
import
com.xxfc.platform.summit.vo.MeepoActivityVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.mockito.internal.util.collections.Sets
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.entity.Example
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
java.util.List
;
/**
* @author Administrator
*/
@Service
@Slf4j
public
class
UserBiz
extends
BaseBiz
<
UserMapper
,
User
>
{
@Autowired
private
ActivityBiz
activityBiz
;
@Autowired
private
ActivityBmBiz
activityBmBiz
;
@Autowired
WeixinService
weixinService
;
@Autowired
UserBiz
userBiz
;
public
static
final
String
frontSessionKey
=
"frontWeixKey"
;
public
Integer
addMeepoUser
(
User
user
,
Integer
activityId
){
Integer
userId
=
0
;
log
.
info
(
"-----activityId===="
+
activityId
);
if
(
user
==
null
||
StringUtils
.
isBlank
(
user
.
getOpenId
())||
activityId
==
null
||
activityId
==
0
){
log
.
info
(
"-----参数为空----"
);
return
userId
;
}
Activity
activity
=
activityBiz
.
selectById
(
activityId
);
if
(
activity
==
null
){
log
.
info
(
"-----活动不存在----"
);
return
userId
;
}
Integer
rId
=
activity
.
getRId
();
if
(
rId
==
null
||
rId
==
0
){
log
.
info
(
"-----没设置小程序抽奖活动id----"
);
return
userId
;
}
List
<
MeepoActivityVo
>
list
=
activityBmBiz
.
getMeepoActivitys
(
rId
);
if
(
list
.
size
()==
0
){
log
.
info
(
"-----小程序抽奖活动id不存在----"
);
return
userId
;
}
MeepoActivityVo
meepoActivityVo
=
list
.
get
(
0
);
Integer
weId
=
meepoActivityVo
.
getWeId
();
String
openId
=
user
.
getOpenId
();
Example
example
=
new
Example
(
User
.
class
);
example
.
createCriteria
().
andEqualTo
(
"weId"
,
weId
).
andEqualTo
(
"rId"
,
rId
).
andEqualTo
(
"openId"
,
openId
);
List
<
User
>
uses
=
mapper
.
selectByExample
(
example
);
if
(
uses
.
size
()>
0
){
userId
=
uses
.
get
(
0
).
getId
();
user
.
setId
(
userId
);
}
else
{
user
.
setWeId
(
weId
);
user
.
setRId
(
rId
);
insertSelective
(
user
);
userId
=
user
.
getId
();
}
return
userId
;
}
public
void
authUser
(
String
code
,
String
key
,
HttpServletRequest
request
){
if
(
StringUtils
.
isBlank
(
code
)){
log
.
info
(
"----code为空---"
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"code为空"
));
}
String
openid
=
null
;
String
access_token
=
null
;
try
{
JSONObject
jsonData
=
weixinService
.
getAccessToken
(
code
);
openid
=
jsonData
.
getString
(
"openid"
);
access_token
=
jsonData
.
getString
(
"access_token"
);
String
refresh_token
=
jsonData
.
getString
(
"refresh_token"
);
log
.
info
(
"-----微信回调userInfo---openid=="
+
openid
+
"----access_token==="
+
access_token
);
//验证access_token是否失效
JSONObject
validateData
=
weixinService
.
getValidateData
(
access_token
,
openid
);
if
(!
"0"
.
equals
(
validateData
.
getString
(
"errcode"
))){
//刷新access_token
JSONObject
refreshData
=
weixinService
.
getRefreshToken
(
refresh_token
);
access_token
=
refreshData
.
getString
(
"access_token"
);
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
log
.
info
(
"网络异常==="
+
e
.
getMessage
());
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"网络异常"
));
}
try
{
// 获取微信用户基本信息
JSONObject
userinfo_json
=
weixinService
.
getUserInfo
(
access_token
,
openid
);
if
(
userinfo_json
==
null
||
StringUtils
.
isNotBlank
(
userinfo_json
.
getString
(
"errcode"
)))
{
log
.
info
(
"调用微信用户基本信息接口失败"
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"调用微信用户基本信息接口失败"
));
}
log
.
info
(
"微信用户基本信息---user==="
+
userinfo_json
.
toJSONString
());
ActivityBm
activityBm
=
activityBmBiz
.
userInfo
(
key
);
if
(
activityBm
==
null
){
log
.
info
(
"redis的报名信息为空"
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"redis的报名信息为空"
));
}
Integer
activityId
=
activityBm
.
getActivityId
();
if
(
activityId
==
null
||
activityId
==
0
){
log
.
info
(
"redis的报名信息activityId---为空"
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"redis的报名信息activityId---为空"
));
}
User
userInfo
=
new
User
();
String
nickName
=
userinfo_json
.
getString
(
"nickname"
);
String
headimgurl
=
userinfo_json
.
getString
(
"headimgurl"
);
String
sex
=
userinfo_json
.
getString
(
"sex"
);
if
(
StringUtils
.
isBlank
(
sex
)){
sex
=
"0"
;
}
userInfo
.
setOpenId
(
openid
);
userInfo
.
setNickName
(
nickName
);
userInfo
.
setAvatar
(
headimgurl
);
userInfo
.
setSex
(
sex
);
Integer
userId
=
userBiz
.
addMeepoUser
(
userInfo
,
activityId
);
log
.
info
(
"小程序用户---userId==="
+
userId
);
if
(
userId
==
null
||
userId
==
0
){
log
.
info
(
"小程序用户---userId---为空"
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"小程序用户---userId---为空"
));
}
String
encode
=
Base64
.
encode
(
JSONObject
.
toJSONString
(
userInfo
));
HttpSession
session
=
request
.
getSession
();
session
.
removeAttribute
(
frontSessionKey
);
session
.
setAttribute
(
frontSessionKey
,
encode
);
}
catch
(
Exception
e
)
{
log
.
info
(
"调用微信用户基本信息接口失败"
,
e
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"调用微信用户基本信息接口失败"
));
}
}
//获取缓存
public
User
getSession
(
HttpServletRequest
request
){
try
{
HttpSession
session
=
request
.
getSession
();
String
frontSessionValue1
=
(
String
)
session
.
getAttribute
(
frontSessionKey
);
if
(
StringUtils
.
isBlank
(
frontSessionValue1
))
{
return
null
;
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
frontSessionValue1
);
User
user
=
new
User
();
BeanUtils
.
copyProperties
(
jsonObject
,
user
);
return
user
;
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
null
;
}
}
public
User
getUserInfo
(
HttpServletRequest
request
,
Integer
activityId
){
User
user
=
getSession
(
request
);
if
(
user
!=
null
){
Integer
userId
=
addMeepoUser
(
user
,
activityId
);
if
(
userId
==
null
||
userId
==
0
){
return
null
;
}
return
user
;
}
return
null
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/config/RedisConfiguration.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.serializer.RedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-21 8:39
*/
@Configuration
@Primary
public
class
RedisConfiguration
{
@Bean
public
RedisTemplate
<
String
,
Object
>
summbitRedisTemplate
(
RedisConnectionFactory
factory
)
{
RedisTemplate
redisTemplate
=
new
RedisTemplate
();
redisTemplate
.
setConnectionFactory
(
factory
);
RedisSerializer
<
String
>
stringSerializer
=
new
StringRedisSerializer
();
redisTemplate
.
setKeySerializer
(
stringSerializer
);
redisTemplate
.
setValueSerializer
(
stringSerializer
);
redisTemplate
.
setHashKeySerializer
(
stringSerializer
);
redisTemplate
.
setHashValueSerializer
(
stringSerializer
);
redisTemplate
.
afterPropertiesSet
();
return
redisTemplate
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/config/RestConfiguration.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
config
;
import
feign.Logger
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.client.RestTemplate
;
@Configuration
public
class
RestConfiguration
{
@Bean
public
RestTemplate
restTemplate
()
{
return
new
RestTemplate
();
}
@Bean
public
Logger
.
Level
feignLevel
(){
return
Logger
.
Level
.
HEADERS
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/config/SwaggerConfig.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.ParameterBuilder
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.schema.ModelRef
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.service.Parameter
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Description : swagger配置配置
* @Author : Mars
* @Date : 2017年9月6日
*/
@Configuration
@EnableSwagger2
public
class
SwaggerConfig
{
/**
* Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
* swagger groups i.e. same code base multiple swagger resource listings.
*/
@Bean
public
Docket
customDocket
(){
ParameterBuilder
ticketPar
=
new
ParameterBuilder
();
List
<
Parameter
>
pars
=
new
ArrayList
<
Parameter
>();
ticketPar
.
name
(
"Authorization"
).
description
(
"user Authorization"
)
.
modelRef
(
new
ModelRef
(
"string"
)).
parameterType
(
"header"
)
.
required
(
false
).
build
();
//header中的ticket参数非必填,传空也可以
pars
.
add
(
ticketPar
.
build
());
//根据每个方法名也知道当前方法在设置什么参数
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.xxfc.platform.tour"
))
//.apis(RequestHandlerSelectors.any())
.
build
()
.
globalOperationParameters
(
pars
)
.
apiInfo
(
apiInfo
());
}
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
"api swagger document"
)
.
description
(
"前后端联调swagger api 文档"
)
.
version
(
"2.1.5.5"
)
.
build
();
}
}
\ No newline at end of file
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/config/WebConfiguration.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
config
;
import
com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler
;
import
com.xxfc.platform.summit.interceptor.WeChatH5LoginInterceoptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
java.util.ArrayList
;
import
java.util.Collections
;
@Configuration
(
"summitWebConfig"
)
@Primary
public
class
WebConfiguration
implements
WebMvcConfigurer
{
@Bean
GlobalExceptionHandler
getGlobalExceptionHandler
()
{
return
new
GlobalExceptionHandler
();
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
getWeChatH5LoginRestInterceptor
()).
addPathPatterns
(
getIncludePathPatterns
());
}
@Bean
WeChatH5LoginInterceoptor
getWeChatH5LoginRestInterceptor
()
{
return
new
WeChatH5LoginInterceoptor
();
}
/**
* 需要用户和服务认证判断的路径
* @return
*/
private
ArrayList
<
String
>
getIncludePathPatterns
()
{
ArrayList
<
String
>
list
=
new
ArrayList
<>();
String
[]
urls
=
{
"/activity/**"
};
Collections
.
addAll
(
list
,
urls
);
return
list
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/ActivityBmController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.summit.biz.ActivityBmBiz
;
import
com.xxfc.platform.summit.biz.UserBiz
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
import
com.xxfc.platform.summit.entity.User
;
import
com.xxfc.platform.summit.pojo.ActivityBmQuery
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
"/activityBm"
)
public
class
ActivityBmController
extends
BaseController
<
ActivityBmBiz
,
ActivityBm
>
{
@Autowired
UserBiz
userBiz
;
@PostMapping
(
"/add"
)
public
ObjectRestResponse
bm
(
@RequestBody
ActivityBm
activityBm
,
HttpServletRequest
request
){
User
user
=
userBiz
.
getSession
(
request
);
try
{
return
ObjectRestResponse
.
succ
(
baseBiz
.
userBm
(
activityBm
,
user
.
getId
()));
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
ObjectRestResponse
.
createDefaultFail
();
}
}
@PostMapping
(
"/list"
)
public
ObjectRestResponse
getList
(
@RequestBody
ActivityBmQuery
query
){
return
ObjectRestResponse
.
succ
(
baseBiz
.
list
(
query
));
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/ActivityController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.summit.biz.ActivityBiz
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.pojo.ActivityQuery
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
"/activity"
)
public
class
ActivityController
extends
BaseController
<
ActivityBiz
,
Activity
>
{
@PostMapping
(
"/app/unauth/list"
)
public
ObjectRestResponse
getList
(
@RequestBody
ActivityQuery
query
){
return
ObjectRestResponse
.
succ
(
baseBiz
.
getList
(
query
));
}
@Override
@PutMapping
(
"/update"
)
public
ObjectRestResponse
update
(
@RequestBody
Activity
activity
){
if
(
baseBiz
.
update
(
activity
))
{
return
ObjectRestResponse
.
succ
();
}
return
ObjectRestResponse
.
createDefaultFail
();
}
@Override
@PostMapping
(
"/add"
)
public
ObjectRestResponse
add
(
@RequestBody
Activity
activity
){
if
(
baseBiz
.
add
(
activity
))
{
return
ObjectRestResponse
.
succ
();
}
return
ObjectRestResponse
.
createDefaultFail
();
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/ActivityShowController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.summit.biz.ActivityBiz
;
import
com.xxfc.platform.summit.biz.ActivityShowBiz
;
import
com.xxfc.platform.summit.dto.ActivityShowDto
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.entity.ActivityShow
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
"/activityShow"
)
public
class
ActivityShowController
extends
BaseController
<
ActivityShowBiz
,
ActivityShow
>
{
@GetMapping
(
"/one/{activityId}"
)
public
ObjectRestResponse
getOne
(
@PathVariable
Integer
activityId
){
return
ObjectRestResponse
.
succ
(
baseBiz
.
getOne
(
activityId
));
}
@PostMapping
(
"/save"
)
public
ObjectRestResponse
save
(
@RequestBody
ActivityShowDto
showDto
){
if
(
baseBiz
.
save
(
showDto
)){
return
ObjectRestResponse
.
succ
();
}
return
ObjectRestResponse
.
createDefaultFail
();
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/AuthActivityController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
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.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.summit.biz.ActivityBmBiz
;
import
com.xxfc.platform.summit.biz.UserBiz
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
import
com.xxfc.platform.summit.entity.User
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
"auth/activity"
)
@IgnoreClientToken
@IgnoreUserToken
public
class
AuthActivityController
extends
BaseController
<
ActivityBmBiz
,
ActivityBm
>
{
@Autowired
UserBiz
userBiz
;
@PostMapping
(
"app/unauth/bm"
)
public
ObjectRestResponse
bm
(
@RequestBody
ActivityBm
activityBm
,
HttpServletRequest
request
){
User
user
=
userBiz
.
getUserInfo
(
request
,
activityBm
.
getActivityId
());
try
{
return
baseBiz
.
userBmOrQd
(
activityBm
,
user
.
getId
());
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
ObjectRestResponse
.
createDefaultFail
();
}
}
@PostMapping
(
"app/unauth/qd"
)
public
ObjectRestResponse
qd
(
@RequestBody
ActivityBm
activityBm
,
HttpServletRequest
request
){
User
user
=
userBiz
.
getUserInfo
(
request
,
activityBm
.
getActivityId
());
try
{
return
baseBiz
.
userBmOrQd
(
activityBm
,
user
.
getId
());
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
ObjectRestResponse
.
createDefaultFail
();
}
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/FrontActivityController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
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.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.summit.biz.ActivityBiz
;
import
com.xxfc.platform.summit.biz.ActivityBmBiz
;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.pojo.ActivityQuery
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
"/front/activity"
)
@IgnoreUserToken
@IgnoreClientToken
public
class
FrontActivityController
extends
BaseController
<
ActivityBiz
,
Activity
>
{
@Autowired
private
ActivityBmBiz
activityBmBiz
;
@GetMapping
(
"app/unauth/info"
)
public
ObjectRestResponse
info
(
@RequestParam
(
value
=
"activityId"
,
defaultValue
=
"0"
)
Integer
activityId
,
@RequestParam
(
value
=
"key"
,
defaultValue
=
""
)
String
key
,
HttpServletRequest
request
){
return
activityBmBiz
.
getActivityById
(
activityId
,
key
,
request
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/IndexController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
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
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"activity"
)
@IgnoreClientToken
@Slf4j
public
class
IndexController
{
@RequestMapping
(
value
=
"/app/unauth/index"
,
method
=
RequestMethod
.
GET
)
@IgnoreUserToken
public
ObjectRestResponse
index
(){
return
ObjectRestResponse
.
succ
();
}
@RequestMapping
(
value
=
"/app/unauth/info"
,
method
=
RequestMethod
.
GET
)
@IgnoreUserToken
public
ObjectRestResponse
info
(){
return
ObjectRestResponse
.
succ
(
"123456"
);
}
}
\ No newline at end of file
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/WeixinController.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
controller
;
import
cn.hutool.core.codec.Base64
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.xxfc.platform.summit.biz.ActivityBmBiz
;
import
com.xxfc.platform.summit.biz.UserBiz
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
import
com.xxfc.platform.summit.entity.User
;
import
com.xxfc.platform.summit.service.WeixinService
;
import
com.xxfc.platform.summit.vo.UserInfo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
/**
* @author Administrator
*/
@Controller
@RequestMapping
(
"/auth"
)
@Slf4j
public
class
WeixinController
{
public
static
final
String
WECHAT_AUTOLOGIN_CALLBACKURL_KEY
=
"callback"
;
public
static
final
String
WECHAT_REDIS_KEY
=
"key"
;
@Autowired
WeixinService
weixinService
;
@Autowired
UserBiz
userBiz
;
@Autowired
ActivityBmBiz
activityBmBiz
;
public
static
final
String
frontSessionKey
=
"frontWeixKey"
;
@Value
(
"${wx.url}"
)
private
String
url
;
@RequestMapping
(
value
=
"/app/unauth/wxLogin"
,
method
=
RequestMethod
.
GET
)
@IgnoreUserToken
public
String
index
(
@RequestParam
(
value
=
"redirec_url"
)
String
redirec_url
,
@RequestParam
(
value
=
"key"
)
String
key
){
log
.
info
(
"-----微信wxLogin---redirec_url=="
+
redirec_url
);
if
(
StringUtils
.
isBlank
(
redirec_url
)){
redirec_url
=
""
;
}
try
{
String
encrypt_curr_url
=
Base64
.
encode
(
redirec_url
.
getBytes
(
"utf-8"
));
redirec_url
=
url
+
"?"
+
WECHAT_AUTOLOGIN_CALLBACKURL_KEY
+
"="
+
encrypt_curr_url
+
"&"
+
WECHAT_REDIS_KEY
+
"="
+
key
;
String
oauth_api
=
weixinService
.
getAuthorize
(
redirec_url
);
return
String
.
format
(
"redirect:"
+
oauth_api
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
log
.
info
(
"网络异常==="
+
e
.
getMessage
());
return
String
.
format
(
"网络异常"
);
}
}
/**
* 微信浏览器获取用户信息
* @param code
* @param callback
* @return
*/
@GetMapping
(
value
=
"/app/unauth/userInfo"
)
public
String
getUserInformation
(
String
code
,
String
callback
,
String
key
,
HttpServletRequest
request
)
{
log
.
info
(
"-----微信回调userInfo---code=="
+
code
+
"----redirec_url==="
+
callback
+
"---key==="
+
key
);
try
{
userBiz
.
authUser
(
code
,
key
,
request
);
callback
=
new
String
(
Base64
.
decode
(
callback
),
"utf-8"
);
log
.
info
(
"callback==="
+
callback
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
log
.
info
(
"网络异常==="
+
e
.
getMessage
());
}
return
String
.
format
(
"redirect:"
+
callback
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/dto/ActivityShowDto.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
dto
;
import
com.xxfc.platform.summit.entity.ActivityShow
;
import
lombok.Data
;
/**
* @author Administrator
*/
@Data
public
class
ActivityShowDto
extends
ActivityShow
{
private
String
banner
;
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/interceptor/WeChatH5LoginInterceoptor.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
interceptor
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
import
com.github.wxiaoqi.security.common.util.UserAgentUtil
;
import
com.xxfc.platform.summit.biz.UserBiz
;
import
com.xxfc.platform.summit.constant.RedisKey
;
import
com.xxfc.platform.summit.entity.User
;
import
com.xxfc.platform.summit.service.WeixinService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
com.alibaba.fastjson.JSONObject
;
import
java.io.BufferedReader
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.concurrent.TimeUnit
;
/**
* 微信登陆拦截器
*
* @author
*
*/
@Slf4j
public
class
WeChatH5LoginInterceoptor
extends
HandlerInterceptorAdapter
{
@Autowired
WeixinService
weixinService
;
@Autowired
UserBiz
userBiz
;
@Autowired
private
RedisTemplate
summbitRedisTemplate
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
String
curr_domain
=
request
.
getServerName
();
log
.
info
(
"curr_domain:"
+
curr_domain
);
log
.
info
(
"address:"
+
request
.
getRequestURL
().
toString
());
log
.
info
(
"params:"
+
request
.
getQueryString
());
boolean
isWx
=
UserAgentUtil
.
isWexinBrowser
(
request
);
if
(
isWx
)
{
//session里面获取用户信息
User
user
=
userBiz
.
getSession
(
request
);
if
(
user
!=
null
){
return
true
;
}
String
redisKey
=
redisInfo
(
request
);
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
JSONObject
json
=
new
JSONObject
();
if
(
StringUtils
.
isNotBlank
(
redisKey
)){
json
.
put
(
"key"
,
redisKey
);
}
json
.
put
(
"url"
,
"https://dev.dfangche.com/api/summit/auth/app/unauth/wxLogin?redirec_url=https://dev.dfangche.com/h5/appHtml/view/wxh5/index.html"
);
result
.
put
(
"data"
,
json
);
result
.
put
(
"status"
,
1001
);
response
.
getWriter
().
write
(
result
.
toString
());
return
false
;
}
return
true
;
}
//获取body的参数并放入redis
public
String
redisInfo
(
HttpServletRequest
request
)
throws
Exception
{
request
.
setCharacterEncoding
(
"UTF-8"
);
StringBuffer
jb
=
new
StringBuffer
();
String
line
=
null
;
try
{
BufferedReader
reader
=
request
.
getReader
();
while
((
line
=
reader
.
readLine
())
!=
null
)
jb
.
append
(
line
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
String
redisLockKey
=
null
;
if
(
StringUtils
.
isNotBlank
(
jb
)){
redisLockKey
=
RedisKey
.
CONSTANT_CODE_PREFIX
+
UUID
.
randomUUID
();
Boolean
suc
=
summbitRedisTemplate
.
opsForValue
().
setIfAbsent
(
redisLockKey
,
jb
);
if
(
suc
)
{
summbitRedisTemplate
.
expire
(
redisLockKey
,
5
,
TimeUnit
.
MINUTES
);
//5分钟内过期
}
}
return
redisLockKey
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/mapper/ActivityBmMapper.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
mapper
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
import
com.xxfc.platform.summit.vo.MeepoActivityVo
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* @author Administrator
*/
public
interface
ActivityBmMapper
extends
Mapper
<
ActivityBm
>
{
List
<
MeepoActivityVo
>
getMeepoActivitys
(
@Param
(
"rId"
)
Integer
rId
);
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/mapper/ActivityMapper.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
mapper
;
import
com.xxfc.platform.summit.entity.Activity
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* @author Administrator
*/
public
interface
ActivityMapper
extends
Mapper
<
Activity
>
{
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/mapper/ActivityShowMapper.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
mapper
;
import
com.xxfc.platform.summit.dto.ActivityShowDto
;
import
com.xxfc.platform.summit.entity.ActivityShow
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* @author Administrator
*/
public
interface
ActivityShowMapper
extends
Mapper
<
ActivityShow
>
{
ActivityShowDto
getOne
(
Integer
activityId
);
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/mapper/MeepoUserQdMapper.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
mapper
;
import
com.xxfc.platform.summit.entity.MeepoUserQd
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* @author Administrator
*/
public
interface
MeepoUserQdMapper
extends
Mapper
<
MeepoUserQd
>
{
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/mapper/UserMapper.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
mapper
;
import
com.xxfc.platform.summit.entity.User
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* @author Administrator
*/
public
interface
UserMapper
extends
Mapper
<
User
>
{
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/service/WeixinService.java
0 → 100644
View file @
20f0e52c
package
com
.
xxfc
.
platform
.
summit
.
service
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xxfc.platform.summit.util.HttpRequestUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
@Service
@Slf4j
public
class
WeixinService
{
/**
* 网页
*/
@Value
(
"${wx.appid}"
)
private
String
wy_appid
;
@Value
(
"${wx.appSercet}"
)
private
String
wy_secret
;
public
JSONObject
getAccessToken
(
String
code
){
String
url
=
"https://api.weixin.qq.com/sns/oauth2/access_token?"
;
String
params
=
"appid="
+
wy_appid
+
"&secret="
+
wy_secret
+
"&code="
+
code
+
"&grant_type=authorization_code"
;
String
result
=
HttpRequestUtil
.
httpGet
(
url
+
params
);
JSONObject
data
=
JSON
.
parseObject
(
result
);
return
data
;
}
public
JSONObject
getValidateData
(
String
access_token
,
String
openid
){
String
url
=
"https://api.weixin.qq.com/sns/auth?access_token="
+
access_token
+
"&openid="
+
openid
;
String
result
=
HttpRequestUtil
.
httpGet
(
url
);
JSONObject
data
=
JSON
.
parseObject
(
result
);
return
data
;
}
public
JSONObject
getRefreshToken
(
String
refresh_token
){
String
url
=
"https://api.weixin.qq.com/sns/oauth2/refresh_token?appid="
+
wy_appid
+
"&grant_type=refresh_token&refresh_token="
+
refresh_token
;
String
result
=
HttpRequestUtil
.
httpGet
(
url
);
JSONObject
data
=
JSON
.
parseObject
(
result
);
return
data
;
}
public
JSONObject
getUserInfo
(
String
access_token
,
String
openid
){
String
url
=
"https://api.weixin.qq.com/sns/userinfo?access_token="
+
access_token
+
"&openid="
+
openid
+
"&lang=zh_CN"
;
String
result
=
HttpRequestUtil
.
httpGet
(
url
);
JSONObject
data
=
JSON
.
parseObject
(
result
);
return
data
;
}
public
String
getAuthorize
(
String
redirec_url
){
String
oauth_api
=
"https://open.weixin.qq.com/connect/oauth2/authorize?appid={APPID}&redirect_uri={REDIRECT_URI}&response_type=code&scope={SCOPE}&state={STATE}#wechat_redirect"
;
oauth_api
=
oauth_api
.
replace
(
"{APPID}"
,
wy_appid
)
.
replace
(
"{REDIRECT_URI}"
,
redirec_url
)
.
replace
(
"{SCOPE}"
,
"snsapi_userinfo"
).
replace
(
"{STATE}"
,
"state"
);
log
.
info
(
"---oauth_api===="
+
oauth_api
);
return
oauth_api
;
}
}
xx-summit/xx-summit-server/src/main/resources/application.yml
0 → 100644
View file @
20f0e52c
logging
:
config
:
classpath:logback.xml
level
:
com.github.wxiaoqi
:
debug
com.xxfc.platform
:
debug
\ No newline at end of file
xx-summit/xx-summit-server/src/main/resources/bootstrap.yml
0 → 100644
View file @
20f0e52c
#spring:
# application:
# name: vehicle
# cloud:
# nacos:
# config:
# server-addr: 127.0.0.1:8848
# file-extension: yaml
# profiles:
# active: dev
spring
:
profiles
:
active
:
dev
application
:
name
:
xx-summit
cloud
:
nacos
:
config
:
file-extension
:
yaml
---
spring
:
profiles
:
dev
cloud
:
nacos
:
config
:
server-addr
:
127.0.0.1:8848
#共用配置,暂定一个
shared-dataids
:
common-dev.yaml,mongodb-log-dev.yaml
---
spring
:
profiles
:
pro
cloud
:
nacos
:
config
:
server-addr
:
10.5.52.2:8848
xx-summit/xx-summit-server/src/main/resources/logback.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property
name=
"LOG_HOME"
value=
"${system.log.path:-logs}"
/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
</encoder>
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.common.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.common.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-summit/xx-summit-server/src/main/resources/mapper/ActivityBmMapper.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.summit.mapper.ActivityBmMapper"
>
<select
id=
"getMeepoActivitys"
resultType=
"com.xxfc.platform.summit.vo.MeepoActivityVo"
>
SELECT
id as rId,
weid as weId,
title as title
FROM ims_meepo_xianchang_rid
<where>
<if
test=
"rId!=null and rId!=0 "
>
id=#{rId}
</if>
</where>
ORDER BY id DESC
</select>
</mapper>
\ No newline at end of file
xx-summit/xx-summit-server/src/main/resources/mapper/ActivityMapper.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.summit.mapper.ActivityMapper"
>
</mapper>
\ No newline at end of file
xx-summit/xx-summit-server/src/main/resources/mapper/ActivityShowMapper.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.summit.mapper.ActivityShowMapper"
>
<select
id=
"getOne"
parameterType=
"Integer"
resultType=
"com.xxfc.platform.summit.entity.ActivityShow"
>
SELECT
a.banner,
s.*
FROM
fc_activity a
LEFT JOIN fc_activity_show s ON a.id = s.activity_id
WHERE
a.id =#{activityId}
</select>
</mapper>
\ No newline at end of file
xx-summit/xx-summit-server/src/main/resources/mapper/MeepoUserQdMapper.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.summit.mapper.MeepoUserQdMapper"
>
</mapper>
\ No newline at end of file
xx-summit/xx-summit-server/src/main/resources/mapper/UserMapper.xml
0 → 100644
View file @
20f0e52c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.summit.mapper.UserMapper"
>
</mapper>
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleActiveService.java
View file @
20f0e52c
...
...
@@ -83,7 +83,6 @@ public class VehicleActiveService {
if
(
MileageLift
==
null
||
MileageLift1
>=
MileageLift
)
{
// 写入车辆公里数,预计目的地
vehicle
.
setMileageLastUpdate
(
MileageLift1
);
vehicle
.
setExpectDestinationBranchCompanyId
(
departureVo
.
getExpectArrivalBranchCompanyId
());
vehicleMapper
.
updateByPrimaryKeySelective
(
vehicle
);
// 修改车辆状态,确认是空闲状态
...
...
@@ -211,7 +210,6 @@ public class VehicleActiveService {
if
(
vehicleBookRecord
!=
null
)
{
vehicle
.
setParkBranchCompanyId
(
vehicleBookRecord
.
getRetCompany
());
}
vehicle
.
setExpectDestinationBranchCompanyId
(
0
);
vehicleMapper
.
updateByPrimaryKeySelective
(
vehicle
);
// 出车记录
VehicleDepartureLogVo
departureLogVo
=
vehicleDepartureLogMapper
.
selectByBookRecordId
(
arrivalVo
.
getBookRecordId
());
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleBookRecordMapper.xml
View file @
20f0e52c
...
...
@@ -506,10 +506,9 @@
<if
test=
"flag == true and status == 1"
>
and book_end_date
>
= now()
</if>
<!--增加时间限制,已审核的未出车小于当前时间的不显示, 已出车的结束时间后两天的不显示-->
<if
test=
"flag == true and (status == 2 || status == 3 || status == 5)"
>
and ((v4.id is not NULL and v1.book_end_date
>
= DATE_ADD(NOW(),interval '2 00:00:00' DAY_SECOND)) or
(v4.id is NULL and v1.book_end_date
>
= now()))
<!--增加时间限制,已审核的未出车小于当前时间的不显示, 已出车的结束时间延后两天小于当前时间的不显示-->
<if
test=
"flag == true and status == 2"
>
and ( v4.id IS NOT NULL OR (v4.id IS NULL AND v1.book_end_date
>
= now()))
</if>
and v1.book_user != -2
</where>
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleMapper.xml
View file @
20f0e52c
...
...
@@ -150,8 +150,7 @@
</foreach>
</if>
<if
test=
"subordinateBranch !=null "
>
and ( v.park_branch_company_id = #{subordinateBranch} or
v.expect_destination_branch_company_id=#{subordinateBranch} )
and ( v.park_branch_company_id = #{subordinateBranch})
</if>
<if
test=
" addrProvince !=null or addrCity !=null or zoneId !=null "
>
<if
test=
"addrProvince !=null"
>
...
...
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