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
1faaf47b
Commit
1faaf47b
authored
Jul 10, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
77c0cfca
dc1a1ddf
Changes
57
Show whitespace changes
Inline
Side-by-side
Showing
57 changed files
with
1037 additions
and
169 deletions
+1037
-169
UUIDUtils.java
...va/com/github/wxiaoqi/security/common/util/UUIDUtils.java
+29
-2
SystemConfig.java
...ub/wxiaoqi/security/common/util/process/SystemConfig.java
+29
-0
systemconfig.properties
...mon/src/main/resources/properties/systemconfig.properties
+7
-0
BaseUserMemberExportDTO.java
...b/wxiaoqi/security/admin/dto/BaseUserMemberExportDTO.java
+0
-3
UserMemberDTO.java
.../com/github/wxiaoqi/security/admin/dto/UserMemberDTO.java
+4
-0
AppUserPosition.java
...github/wxiaoqi/security/admin/entity/AppUserPosition.java
+87
-0
AppUserDTO.java
...m/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
+5
-0
AppUserLoginBiz.java
...om/github/wxiaoqi/security/admin/biz/AppUserLoginBiz.java
+2
-0
AppUserPositionBiz.java
...github/wxiaoqi/security/admin/biz/AppUserPositionBiz.java
+18
-0
BaseUserMemberBiz.java
.../github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
+6
-2
BaseUserMemberExportBiz.java
...b/wxiaoqi/security/admin/biz/BaseUserMemberExportBiz.java
+33
-2
UserMemberLevelBiz.java
...github/wxiaoqi/security/admin/biz/UserMemberLevelBiz.java
+10
-0
AppUserDetailMapper.java
...ub/wxiaoqi/security/admin/mapper/AppUserDetailMapper.java
+2
-0
AppUserPositionMapper.java
.../wxiaoqi/security/admin/mapper/AppUserPositionMapper.java
+15
-0
BaseUserMemberExportMapper.java
...oqi/security/admin/mapper/BaseUserMemberExportMapper.java
+3
-0
AppUserController.java
...github/wxiaoqi/security/admin/rest/AppUserController.java
+18
-4
PublicController.java
.../github/wxiaoqi/security/admin/rest/PublicController.java
+12
-8
UserMemberController.java
...hub/wxiaoqi/security/admin/rest/UserMemberController.java
+31
-4
AppPermissionService.java
...aoqi/security/admin/rpc/service/AppPermissionService.java
+155
-99
usermember.xlsx
...modules/ace-admin/src/main/resources/file/usermember.xlsx
+0
-0
AppUserDetailMapper.xml
...e-admin/src/main/resources/mapper/AppUserDetailMapper.xml
+3
-1
BaseUserMemberExportMapper.xml
.../src/main/resources/mapper/BaseUserMemberExportMapper.xml
+4
-0
application.yml
ace-modules/ace-generator/src/main/resources/application.yml
+1
-1
generator.properties
...les/ace-generator/src/main/resources/generator.properties
+2
-2
BuyVehicleForm.java
...ain/java/com/xxfc/platform/app/entity/BuyVehicleForm.java
+87
-0
BuyVehicleFormBiz.java
...ain/java/com/xxfc/platform/app/biz/BuyVehicleFormBiz.java
+18
-0
BuyVehicleFormMapper.java
...va/com/xxfc/platform/app/mapper/BuyVehicleFormMapper.java
+15
-0
BuyVehicleFormController.java
.../com/xxfc/platform/app/rest/BuyVehicleFormController.java
+15
-0
BuyVehicleFormMapper.xml
...server/src/main/resources/mapper/BuyVehicleFormMapper.xml
+20
-0
pom.xml
xx-common/xx-common-platform-component/pom.xml
+13
-0
BaseOrder.java
...c/main/java/com/xxfc/platform/order/entity/BaseOrder.java
+14
-0
OrderDetail.java
...ava/com/xxfc/platform/order/entity/inter/OrderDetail.java
+4
-0
AddRentVehicleDTO.java
.../java/com/xxfc/platform/order/pojo/AddRentVehicleDTO.java
+6
-0
MemberBO.java
...ain/java/com/xxfc/platform/order/pojo/order/MemberBO.java
+4
-0
OrderAboutParamDTO.java
...om/xxfc/platform/order/pojo/order/OrderAboutParamDTO.java
+9
-0
RentVehicleBO.java
...ava/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
+6
-0
TourBO.java
.../main/java/com/xxfc/platform/order/pojo/order/TourBO.java
+4
-0
OrderPayDTO.java
...in/java/com/xxfc/platform/order/pojo/pay/OrderPayDTO.java
+5
-1
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+2
-1
RabbitConsumer.java
...ava/com/xxfc/platform/order/mqhandler/RabbitConsumer.java
+1
-1
BaseOrderController.java
...ava/com/xxfc/platform/order/rest/BaseOrderController.java
+15
-7
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+6
-2
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+15
-1
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+1
-1
OrderTourService.java
...ava/com/xxfc/platform/order/service/OrderTourService.java
+1
-1
InvitationTest.java
...src/test/java/com/xxfc/platform/order/InvitationTest.java
+31
-0
DictionaryKey.java
...a/com/xxfc/platform/universal/constant/DictionaryKey.java
+1
-0
pom.xml
xx-universal/xx-universal-server/pom.xml
+5
-0
OrderPayBiz.java
...ain/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
+191
-0
OrderPayController.java
...xfc/platform/universal/controller/OrderPayController.java
+15
-0
VehicleFeign.java
...in/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
+8
-8
VehicleModelQueryCondition.java
...xfc/platform/vehicle/pojo/VehicleModelQueryCondition.java
+7
-1
VehicleModelBiz.java
...n/java/com/xxfc/platform/vehicle/biz/VehicleModelBiz.java
+0
-3
VehiclePlatCataBiz.java
...ava/com/xxfc/platform/vehicle/biz/VehiclePlatCataBiz.java
+19
-0
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+2
-14
VehicleModelController.java
...om/xxfc/platform/vehicle/rest/VehicleModelController.java
+6
-0
VehicleModelMapper.xml
...e-server/src/main/resources/mapper/VehicleModelMapper.xml
+15
-0
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/UUIDUtils.java
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
java.util.
UUID
;
import
java.util.
*
;
/**
* Created by ace on 2017/9/27.
...
...
@@ -35,13 +35,40 @@ public class UUIDUtils {
public
static
String
genCodes
(
int
length
)
{
StringBuffer
shortBuffer
=
new
StringBuffer
();
String
uuid
=
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
);
//System.out.println(uuid);
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
String
str
=
uuid
.
substring
(
i
*
4
,
i
*
4
+
4
);
int
x
=
Integer
.
parseInt
(
str
,
16
);
shortBuffer
.
append
(
chars1
[
x
%
0x3E
]);
// chars1[x % 0x3B]chars[x % 0x3E]
shortBuffer
.
append
(
chars1
[
x
%
0x3B
]);
}
return
shortBuffer
.
toString
();
}
public
static
void
main
(
String
[]
args
)
{
Map
<
String
,
Integer
>
map
=
new
HashMap
<
String
,
Integer
>();
for
(
int
i
=
0
;
i
<
100000000
;
i
++)
{
//System.out.println(UUIDUtils.genCodes(6));
String
key
=
UUIDUtils
.
genCodes
(
8
);
if
(
null
==
map
.
get
(
key
))
{
map
.
put
(
key
,
1
);
}
else
{
System
.
out
.
println
(
"重复"
+
key
+
":"
+
i
);
map
.
put
(
key
,
map
.
get
(
key
)
+
1
);
}
}
int
flag
=
0
;
Set
<
Map
.
Entry
<
String
,
Integer
>>
list
=
map
.
entrySet
();
for
(
Map
.
Entry
<
String
,
Integer
>
e
:
list
)
{
if
(
e
.
getValue
()
>
1
)
{
flag
++;
System
.
out
.
println
(
e
.
getKey
()+
":"
+
e
.
getValue
());
}
}
System
.
out
.
println
(
"flag : "
+
flag
);
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/process/SystemConfig.java
View file @
1faaf47b
...
...
@@ -61,6 +61,35 @@ public class SystemConfig {
// 存放退款证书目录
public
static
String
APICLIENT_CERT
=
SystemProperty
.
getConfig
(
"APICLIENT_CERT"
);
/**
* 支付宝支付相关配置
*/
public
static
final
String
ALIPAY_APPID
=
SystemProperty
.
getConfig
(
"ALIPAY_APPID"
);
public
static
final
String
ALIPAY_PID
=
SystemProperty
.
getConfig
(
"ALIPAY_PID"
);
public
static
final
String
ALIPAY_PUBLIC_KEY
=
SystemProperty
.
getConfig
(
"ALIPAY_PUBLIC_KEY"
);
public
static
final
String
ALIPAY_ACOUNT
=
SystemProperty
.
getConfig
(
"ALIPAY_ACOUNT"
);
public
static
final
String
ALIPAY_PRIVATE_KEY
=
SystemProperty
.
getConfig
(
"ALIPAY_PRIVATE_KEY"
);
/**
* 交易创建,等待买家付款
*/
public
static
final
String
ALIPAY_WAIT_BUYER_PAY
=
"WAIT_BUYER_PAY"
;
/**
* 未付款交易超时关闭,或支付完成后全额退款
*/
public
static
final
String
ALIPAY_TRADE_CLOSED
=
"TRADE_CLOSED"
;
/**
* 交易支付成功
*/
public
static
final
String
ALIPAY_TRADE_SUCCESS
=
"TRADE_SUCCESS"
;
/**
* 交易结束,不可退款
*/
public
static
final
String
ALIPAY_TRADE_FINISHED
=
"TRADE_FINISHED"
;
public
static
final
String
ALIPAY_PAY_BASE_URL
=
"https://openapi.alipay.com"
;
public
static
final
String
ALIPAY
=
"alipay"
;
public
static
final
String
WXPAY
=
"wxpay"
;
}
ace-common/src/main/resources/properties/systemconfig.properties
View file @
1faaf47b
...
...
@@ -35,3 +35,10 @@ APP_TRADE_TYPE=APP
weixinHost
=
xxtest.upyuns.com
#证书存放目录
APICLIENT_CERT
=
D:
\\
cert
\\
1514583081_20181017_cert.p12
#支付宝配置
ALIPAY_APPID
=
2019070965781964
ALIPAY_PID
=
2088531634846583
ALIPAY_PUBLIC_KEY
=
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj/EMaAD2iJP3I5M0g6pssDDe3RxF5I3ECM/Kz/btM0RiW2g5oRrHSjtGuos9l1QhQAY0SrVqa2eZdPKUB3ZqJdimQiXr3dbiMvG9UCs8vVUcrtCHCBjDllKQLiYzboxE6JLXyfII5tIXbFKiGyiEyXQnffUhQ9uGyT2EGWGecz6PLIjDdbwpxuzF2gIUzV3bPxb+0axejBxJ/3zKnWrsbyq2nvs8XrzrR2CEggNqgqsKzaacCL1yZjXzQRseSnCMtgSxR5W5afbdY0zqbUlLHUrUZ8ycCRC0ECuI9HyTbuqtdWHEZH7vIH44wEQWZPDRhMfMZvzmPUgpTWZLv5BtaQIDAQAB
ALIPAY_ACOUNT
=
xxfc810@163.com
ALIPAY_PRIVATE_KEY
=
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3bANag6my6pjHWqwnSCffRonvOXE6uQgNNb+V23PV55zfcuC+jIgl9BRrIf4tax5f2itfDmlOdAX6mK8WJ620SHg777Q2KlgNTa25ta3xiEfgkb01SX9VyiaLPpP2TEo5LhhRcT+cUomIufQbVbm/jS8mRQ0qBoofbMfr7n9fBSiVDx/QX07qcJTc/MGCy79H5gUiy2fTOEMhTuNtPkoU3az7jXMQ5U/33ILFAJzPCMNJvQnCYxs/y5loxxHdVqV8FnuCWGEWNViuuBtFRVRNXkrs/x99nF0V5/FHnOZzdM3SWrKCpA/52G5QQrbhZXUhMyCs9stXvH+iVUC1JJ9DAgMBAAECggEAOGRf/5MdOGHCCQCKjyUzBQVV4RPDCS/cFtughH1M9sXXyCc0i8D/FtQc9vcjg2k8lHGqBfaTT8iCEhKhOemHETd6p8rBmCmamrR4JfGCghDJMHT+PATVvlWBViwuJ3o7E6tlVJzB1tjVahDpyQGpMwhAJ77xFiueiZzTNmlEBb02ByCG95vkBV7NQT8yO9/1i3eq/tMoY7FfJP5O4LQ41RmqU9TVaAnTfuE6gs5hJboNGbmSMs2w2M0tldibmWcsQsFFPLwbUz042czSVb9J7lsGJjCtsaBeUiJ15y66W9D3587JJar9p+EyA2LNbolgrrNi2AA9KU5wEW2w8XyoOQKBgQDZamXDQZK3N5E46Hp/79o0Q99jqj9sL/HCYB4+Z8dG/Mgs43HHpgd+gHVeSOgxXS7RxsLyjCsM97ysWk7sbafvqtsnYmPU2MzumykVVpgWO6dpBcwmf2Ygk2i2W77oEqIi2IUmzkvDhw9C8A8/oh+IuoyRouPGRHpykAF+uXKVhwKBgQDX+TfQDDPniSnA9kTlW5I44glRgogA4xJtAYLtEr2fH9Pys+lkOyRqQH5wbJVj27jzJ0lffNyyMxgbZ8KRiH+3qRa8wNazwwXlXmj4DQWZedkULOpgMdU4EbbkTQRU3onEpMAZhAmVvAV1KTozs4RKi+1fFZ9V6ZOtmvapNJuXZQKBgQC7Xb0rQ3SMHwAxGfCQFwVma2O2AX883iisCaemwkrze1+Lh8uDcisdMtlzEsO/3v09XdydqHxlZY6cvgssJ+hFXGoXi+xa/yfFLcR/FixlZK2Gja99MeeyhTcFiRWB7KT8ALrnUXvrmpZlanrJrQ8eBx6jV8ySDmu0FTSkoG8GOwKBgE5toxX7CHJBPhdjlvtPOJdNhiLCaw8fZpaNIPVkg9WgIkCVkuCiFYQ8LW44EDv2E4DBOITje+V+Zne1Q1PEJNUWIzqiMJWQ8bgsg6PoXqswM2N/OBF8pzg4PplDWppTQeZWCah6aVylrbmxIgCaZSUJEUchO/5f1xAJIR+rCgF9AoGBAKJVVbrKPWshQ4cTL6VzanowjpWCRUDR22Oz3nKIdRl1FX+DTXYE4Dwl38iiNHOJptS7VjU553BUZl7HxCmSBWUmtnV78NNnRKrFVUhQhIRYBjMn1W6MD0jlBkky6yXmXkPtlqU6vU19RzGrvv6fDdBf6v4AkD8kWXiH5j4XEiQS
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/BaseUserMemberExportDTO.java
View file @
1faaf47b
...
...
@@ -22,13 +22,10 @@ import java.io.Serializable;
@Table
(
name
=
"base_user_member_export"
)
public
class
BaseUserMemberExportDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Integer
id
;
private
String
username
;
private
Integer
memberLevel
;
private
Integer
totalNumber
;
private
Integer
rentFreeDays
;
private
Integer
discount
;
private
Integer
status
;
private
Integer
isDel
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/UserMemberDTO.java
View file @
1faaf47b
...
...
@@ -53,6 +53,10 @@ public class UserMemberDTO {
@ApiModelProperty
(
value
=
"折扣"
)
private
Integer
discount
;
//购买次数
@ApiModelProperty
(
value
=
"购买次数"
)
private
Integer
buyCount
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/AppUserPosition.java
0 → 100644
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.*
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 用户身份职位表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
@Data
@Table
(
name
=
"app_user_position"
)
public
class
AppUserPosition
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键id"
)
private
Integer
id
;
/**
* 角色名称
*/
@Column
(
name
=
"name"
)
@ApiModelProperty
(
value
=
"角色名称"
)
private
String
name
;
/**
* 等级
*/
@Column
(
name
=
"level"
)
@ApiModelProperty
(
value
=
"等级"
)
private
Integer
level
;
/**
* 每年赠送的天数
*/
@Column
(
name
=
"number"
)
@ApiModelProperty
(
value
=
"每年赠送的天数"
)
private
Integer
number
;
/**
* 提成比例
*/
@Column
(
name
=
"extract"
)
@ApiModelProperty
(
value
=
"提成比例"
)
private
Integer
extract
;
/**
* 状态:0-正常;1-禁用
*/
@Column
(
name
=
"status"
)
@ApiModelProperty
(
value
=
"状态:0-正常;1-禁用"
)
private
Integer
status
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
/**
* 更新时间
*/
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
/**
* 是否删除:0-正常;1-删除
*/
@Column
(
name
=
"is_del"
)
@ApiModelProperty
(
value
=
"是否删除:0-正常;1-删除"
)
private
Integer
isDel
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
View file @
1faaf47b
...
...
@@ -46,6 +46,9 @@ public class AppUserDTO {
@ApiModelProperty
(
value
=
"用户职位"
)
private
Integer
positionId
;
@ApiModelProperty
(
value
=
"用户职位名称"
)
private
String
positionName
;
@ApiModelProperty
(
value
=
"用户来源:0-自来,1-用户邀请"
)
private
Integer
source
;
...
...
@@ -69,6 +72,8 @@ public class AppUserDTO {
private
Integer
lockDays
;
private
Integer
discount
;
private
Integer
memberLevel
;
//图标
private
String
icon
;
private
Integer
memberNo
;
private
Long
cardLeave
;
private
Integer
isBind
;
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserLoginBiz.java
View file @
1faaf47b
...
...
@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.constant.UserConstant;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
...
...
@@ -30,6 +31,7 @@ import java.util.stream.Collectors;
public
class
AppUserLoginBiz
extends
BaseBiz
<
AppUserLoginMapper
,
AppUserLogin
>
{
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
@Override
public
void
insertSelective
(
AppUserLogin
entity
)
{
String
password
=
new
BCryptPasswordEncoder
(
UserConstant
.
PW_ENCORDER_SALT
).
encode
(
entity
.
getPassword
());
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserPositionBiz.java
0 → 100644
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
org.springframework.stereotype.Service
;
import
com.github.wxiaoqi.security.admin.entity.AppUserPosition
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserPositionMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
/**
* 用户身份职位表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
@Service
public
class
AppUserPositionBiz
extends
BaseBiz
<
AppUserPositionMapper
,
AppUserPosition
>
{
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
View file @
1faaf47b
...
...
@@ -77,9 +77,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
if
(
freeDays
==
null
||
freeDays
==
0
){
freeDays
=
totalNumber
;
}
Integer
buyCount
=
1
;
if
(
userMemberDTO
.
getBuyCount
()!=
null
){
buyCount
=
userMemberDTO
.
getBuyCount
();
}
if
(
userMemberVo
==
null
){
baseUserMember
.
setRentFreeDays
(
freeDays
);
baseUserMember
.
setBuyCount
(
1
);
baseUserMember
.
setBuyCount
(
buyCount
);
insertSelective
(
baseUserMember
);
}
else
{
Integer
discount
=
userMemberVo
.
getDiscount
()==
null
?
0
:
userMemberVo
.
getDiscount
();
...
...
@@ -95,7 +99,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
baseUserMember
.
setId
(
userMemberVo
.
getId
());
totalNumber
+=
userMemberVo
.
getTotalNumber
()==
null
?
0
:
userMemberVo
.
getTotalNumber
();
freeDays
+=
userMemberVo
.
getRentFreeDays
()==
null
?
0
:
userMemberVo
.
getRentFreeDays
();
baseUserMember
.
setBuyCount
(
userMemberVo
.
getBuyCount
()+
1
);
baseUserMember
.
setBuyCount
(
userMemberVo
.
getBuyCount
()+
buyCount
);
baseUserMember
.
setTotalNumber
(
totalNumber
);
baseUserMember
.
setRentFreeDays
(
freeDays
);
getMyBiz
().
updateSelectiveById
(
baseUserMember
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberExportBiz.java
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport
;
import
com.github.wxiaoqi.security.admin.mapper.BaseUserMemberExportMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -23,6 +27,7 @@ import java.util.stream.Collectors;
* @data 2019/7/8 16:19
*/
@Service
@Transactional
@Slf4j
public
class
BaseUserMemberExportBiz
extends
BaseBiz
<
BaseUserMemberExportMapper
,
BaseUserMemberExport
>
{
...
...
@@ -37,7 +42,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
void
importUserMember
(
List
<
String
[]>
userMemberData
){
public
int
importUserMember
(
List
<
String
[]>
userMemberData
){
List
<
BaseUserMemberExport
>
baseUserMemberExports
=
new
ArrayList
<>();
List
<
Integer
>
levels
=
userMemberData
.
stream
().
map
(
x
->
x
[
1
]).
map
(
Integer:
:
valueOf
).
collect
(
Collectors
.
toList
());
...
...
@@ -59,6 +64,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
userMemberDTO
.
setDiscount
(
levelAndDisCountMap
==
null
?
0
:(
levelAndDisCountMap
.
get
(
Integer
.
valueOf
(
memberLevel
))==
null
?
0
:
levelAndDisCountMap
.
get
(
Integer
.
valueOf
(
memberLevel
))));
userMemberDTO
.
setTotalNumber
(
Integer
.
valueOf
(
totalNumber
));
userMemberDTO
.
setRentFreeDays
(
Integer
.
valueOf
(
rentFreeDays
));
userMemberDTO
.
setIsBind
(
1
);
try
{
baseUserMemberBiz
.
updUserMemberByUserId
(
userMemberDTO
);
}
catch
(
Exception
e
)
{
...
...
@@ -84,10 +90,35 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
}
InsertBatch
(
baseUserMemberExports
);
return
baseUserMemberExports
.
size
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
void
InsertBatch
(
List
<
BaseUserMemberExport
>
baseUserMemberExports
)
{
mapper
.
insertList
(
baseUserMemberExports
);
}
public
List
<
BaseUserMemberExportDTO
>
findUserMemberExportDataByPhoneAndHashEffective
(
String
phone
){
List
<
BaseUserMemberExportDTO
>
baseUserMemberExportDTOS
=
new
ArrayList
<>();
Example
example
=
new
Example
(
BaseUserMemberExport
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"username"
,
phone
);
criteria
.
andEqualTo
(
"status"
,
0
);
List
<
BaseUserMemberExport
>
baseUserMemberExports
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isNotEmpty
(
baseUserMemberExports
)){
BaseUserMemberExportDTO
baseUserMemberExportDTO
;
for
(
BaseUserMemberExport
userMemberExport
:
baseUserMemberExports
)
{
baseUserMemberExportDTO
=
new
BaseUserMemberExportDTO
();
BeanUtils
.
copyProperties
(
userMemberExport
,
baseUserMemberExportDTO
);
baseUserMemberExportDTOS
.
add
(
baseUserMemberExportDTO
);
}
}
return
baseUserMemberExportDTOS
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
void
updateUserMemberExportDataToLoseEfficacyByPhone
(
String
phone
){
mapper
.
updateUserMemberExportDataToLoseEfficacyByPhone
(
phone
);
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserMemberLevelBiz.java
View file @
1faaf47b
...
...
@@ -30,6 +30,16 @@ public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUs
return
mapper
.
selectByExample
(
example
);
}
public
BaseUserMemberLevel
getLevel
(
Integer
level
)
{
Example
example
=
new
Example
(
BaseUserMemberLevel
.
class
);
example
.
createCriteria
().
andEqualTo
(
"isdel"
,
0
).
andEqualTo
(
"level"
,
level
);
List
<
BaseUserMemberLevel
>
list
=
mapper
.
selectByExample
(
example
);
if
(
list
.
size
()>
0
){
return
list
.
get
(
0
);
}
return
null
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
Map
<
Integer
,
Integer
>
getUserMemberLevelAndDisCountMapByLevels
(
List
<
Integer
>
levels
){
List
<
BaseUserMemberLevel
>
baseUserMemberLevels
=
mapper
.
selectUserMembersLevelByLevels
(
levels
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/AppUserDetailMapper.java
View file @
1faaf47b
...
...
@@ -15,4 +15,6 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
public
AppUserVo
getUserInfo
(
@Param
(
"userId"
)
Integer
userId
);
List
<
AppUserManageVo
>
selectAppUserManage
(
AppUserManageDTO
appUserManageDTO
);
void
updateUserMemberStatusByUserId
(
@Param
(
"userId"
)
Integer
userId
,
@Param
(
"status"
)
Integer
status
);
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/AppUserPositionMapper.java
0 → 100644
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
mapper
;
import
com.github.wxiaoqi.security.admin.entity.AppUserPosition
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 用户身份职位表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
public
interface
AppUserPositionMapper
extends
Mapper
<
AppUserPosition
>
{
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/BaseUserMemberExportMapper.java
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
mapper
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.special.InsertListMapper
;
...
...
@@ -12,4 +13,6 @@ import tk.mybatis.mapper.common.special.InsertListMapper;
*/
public
interface
BaseUserMemberExportMapper
extends
Mapper
<
BaseUserMemberExport
>,
InsertListMapper
<
BaseUserMemberExport
>
{
void
updateUserMemberExportDataToLoseEfficacyByPhone
(
@Param
(
"phone"
)
String
phone
);
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/AppUserController.java
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.ace.cache.annotation.Cache
;
import
com.github.wxiaoqi.security.admin.biz.AppUserBiz
;
import
com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz
;
import
com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz
;
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
;
...
...
@@ -50,6 +47,12 @@ public class AppUserController extends CommonBaseController {
@Autowired
private
BaseUserMemberBiz
userMemberBiz
;
@Autowired
AppUserPositionBiz
positionBiz
;
@Autowired
private
UserMemberLevelBiz
userMemberLevelBiz
;
@GetMapping
(
"page"
)
public
TableResultResponse
list
(
@RequestParam
Map
<
String
,
Object
>
params
)
{
Query
query
=
new
Query
(
params
);
...
...
@@ -119,13 +122,24 @@ public class AppUserController extends CommonBaseController {
throw
new
Exception
();
}
Integer
id
=
userVo
.
getId
();
Integer
positionId
=
userVo
.
getPositionId
();
BeanUtils
.
copyProperties
(
userDTO
,
userVo
);
if
(
userVo
.
getIsMember
()!=
null
&&
userVo
.
getIsMember
()>
0
){
//获取用户会员信息
UserMemberVo
memberVo
=
userMemberBiz
.
getMemberInfoByUserId
(
userid
);
if
(
memberVo
!=
null
){
BeanUtils
.
copyProperties
(
userDTO
,
memberVo
);
Integer
level
=
memberVo
.
getMemberLevel
();
BaseUserMemberLevel
memberLevel
=
userMemberLevelBiz
.
getLevel
(
level
);
if
(
memberLevel
!=
null
){
String
icon
=
memberLevel
.
getIcon
();
userDTO
.
setIcon
(
icon
);
}
}
}
AppUserPosition
userPosition
=
positionBiz
.
selectById
(
positionId
);
if
(
userPosition
!=
null
&&
userPosition
.
getLevel
()>
0
){
userDTO
.
setPositionName
(
userPosition
.
getName
());
}
userDTO
.
setId
(
id
);
return
ObjectRestResponse
.
succ
(
userDTO
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/PublicController.java
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz
;
import
com.github.wxiaoqi.security.admin.biz.MenuBiz
;
import
com.github.wxiaoqi.security.admin.biz.UserBiz
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.entity.Group
;
import
com.github.wxiaoqi.security.admin.entity.Menu
;
import
com.github.wxiaoqi.security.admin.entity.User
;
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.rpc.service.PermissionService
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
...
...
@@ -54,6 +48,9 @@ public class PublicController {
@Autowired
private
UserAuthUtil
userAuthUtil
;
@Autowired
AppUserPositionBiz
positionBiz
;
@RequestMapping
(
value
=
"/userinfo-by-token"
,
method
=
RequestMethod
.
GET
)
public
@ResponseBody
ObjectRestResponse
userinfoByToken
(
String
token
)
throws
Exception
{
...
...
@@ -82,6 +79,8 @@ public class PublicController {
if
(
userVo
==
null
)
{
throw
new
BaseException
(
ResultCode
.
NOTEXIST_CODE
);
}
Integer
id
=
userVo
.
getId
();
Integer
positionId
=
userVo
.
getPositionId
();
BeanUtils
.
copyProperties
(
userDTO
,
userVo
);
if
(
userVo
.
getIsMember
()!=
null
&&
userVo
.
getIsMember
()>
0
){
//获取用户会员信息
...
...
@@ -90,6 +89,11 @@ public class PublicController {
BeanUtils
.
copyProperties
(
userDTO
,
memberVo
);
}
}
AppUserPosition
userPosition
=
positionBiz
.
selectById
(
positionId
);
if
(
userPosition
!=
null
&&
userPosition
.
getLevel
()>
0
){
userDTO
.
setPositionName
(
userPosition
.
getName
());
}
userDTO
.
setId
(
id
);
return
new
ObjectRestResponse
<
AppUserDetail
>().
rel
(
true
).
data
(
userDTO
);
}
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserMemberController.java
View file @
1faaf47b
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.AdminBootstrap
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz
;
import
com.github.wxiaoqi.security.admin.biz.BaseUserMemberExportBiz
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.excel.ExcelImport
;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
org.apache.commons.io.IOUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.List
;
/**
...
...
@@ -73,7 +78,29 @@ public class UserMemberController {
}
}
userMemberData
.
remove
(
0
);
baseUserMemberExportBiz
.
importUserMember
(
userMemberData
);
return
ObjectRestResponse
.
succ
();
try
{
int
effectSize
=
baseUserMemberExportBiz
.
importUserMember
(
userMemberData
);
return
ObjectRestResponse
.
succ
(
effectSize
);
}
catch
(
BaseException
ex
){
return
ObjectRestResponse
.
createDefaultFail
();
}
}
@GetMapping
(
"/user/excel_model/dowload"
)
public
ResponseEntity
<
byte
[]>
dowloadUserMemberExcelModel
(
HttpServletResponse
response
){
// 重置response
response
.
reset
();
//设置http头信息的内容
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setContentType
(
"application/vnd.ms-excel"
);
response
.
addHeader
(
"Content-Disposition"
,
"attachment;filename=usermember.xlsx"
);
InputStream
inputStream
=
AdminBootstrap
.
class
.
getClassLoader
().
getResourceAsStream
(
"file/usermember.xlsx"
);
try
{
byte
[]
bytes
=
IOUtils
.
toByteArray
(
inputStream
);
return
ResponseEntity
.
ok
(
bytes
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
null
);
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/AppPermissionService.java
View file @
1faaf47b
...
...
@@ -8,6 +8,8 @@ import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import
com.github.wxiaoqi.security.admin.biz.ElementBiz
;
import
com.github.wxiaoqi.security.admin.constant.RedisKey
;
import
com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum
;
import
com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.*
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.api.vo.authority.PermissionInfo
;
...
...
@@ -26,19 +28,19 @@ import com.xxfc.platform.universal.dto.RegionDTO;
import
com.xxfc.platform.universal.feign.RegionFeign
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -49,6 +51,7 @@ import java.util.concurrent.TimeUnit;
* @author keliii
*/
@Service
@Transactional
@Slf4j
public
class
AppPermissionService
{
...
...
@@ -84,7 +87,11 @@ public class AppPermissionService {
@Autowired
private
RestTemplate
restTemplate
;
@Autowired
private
BaseUserMemberExportBiz
baseUserMemberExportBiz
;
@Autowired
private
BaseUserMemberBiz
baseUserMemberBiz
;
public
AppUserInfo
validate
(
String
username
,
String
password
)
{
...
...
@@ -194,7 +201,7 @@ public class AppPermissionService {
* @param headimgurl
* @param mobilecode
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
JSONObject
register
(
String
username
,
String
password
,
String
headimgurl
,
String
nickname
,
String
mobilecode
,
String
openId
,
String
unionid
,
Integer
type
)
{
// 判断参数和验证码
...
...
@@ -249,31 +256,33 @@ public class AppPermissionService {
rsUserDetail
.
setIsdel
(
0
);
rsUserDetail
.
setCrtHost
(
getIp
());
setCreateIPInfo
(
rsUserDetail
);
//生成邀请码
rsUserDetail
.
setCode
(
UUIDUtils
.
genCodes
(
6
));
//生成邀请码
长度改为8 不然重复率太高
rsUserDetail
.
setCode
(
UUIDUtils
.
genCodes
(
8
));
appUserDetailBiz
.
insertSelective
(
rsUserDetail
);
log
.
error
(
"注册:新增用户详情: "
+
userid
);
//临时会员绑定
insertUserMemberByUserIdAndPhone
(
userid
,
username
);
//自动登录获取优惠卷
authCoupn
(
userid
);
// 登录结果要做做统一处理
JSONObject
data
=
autoLogin
(
userid
,
username
,
headimgurl
,
nickname
);
// 到im注册,获取返回结果
Map
<
String
,
Object
>
map
=
registerIm
(
username
,
appUserLogin
.
getPassword
(),
nickname
);
if
(
map
!=
null
)
{
Integer
imUserId
=
Integer
.
parseInt
(
map
.
get
(
"userId"
).
toString
());
Map
<
String
,
Object
>
map
=
registerIm
(
username
,
appUserLogin
.
getPassword
(),
nickname
);
if
(
map
!=
null
)
{
Integer
imUserId
=
Integer
.
parseInt
(
map
.
get
(
"userId"
).
toString
());
//String access_token=map.get("access_token").toString();
String
imPassword
=
map
.
get
(
"password"
).
toString
();
if
(
imUserId
!=
null
&&
imUserId
>
0
&&
StringUtils
.
isNotBlank
(
imPassword
))
{
String
imPassword
=
map
.
get
(
"password"
).
toString
();
if
(
imUserId
!=
null
&&
imUserId
>
0
&&
StringUtils
.
isNotBlank
(
imPassword
))
{
AppUserLogin
userLogin
=
new
AppUserLogin
();
userLogin
.
setId
(
userid
);
userLogin
.
setImPassword
(
imPassword
);
userLogin
.
setImUserid
(
imUserId
);
userLogin
.
setUsername
(
username
);
appUserLoginBiz
.
updateSelectiveById
(
userLogin
);
log
.
info
(
username
+
"----userLogin updateSelectiveById---username====="
+
username
+
"----imPassword===="
+
imPassword
);
log
.
info
(
username
+
"----userLogin updateSelectiveById---username====="
+
username
+
"----imPassword===="
+
imPassword
);
}
//data.put("imToken",access_token);
data
.
put
(
"imUserId"
,
imUserId
);
data
.
put
(
"imUserId"
,
imUserId
);
}
if
(
data
!=
null
)
{
return
JsonResultUtil
.
createSuccessResultWithObj
(
data
);
...
...
@@ -309,12 +318,12 @@ public class AppPermissionService {
//userRedisTemplate.opsForValue().set("imtoken_" + userid,imtoken_,SystemConfig.REDISTOKENTIME, TimeUnit.SECONDS);
// 返回结果
// data.put("token", token);
data
.
put
(
"username"
,
StringUtils
.
isNotEmpty
(
username
)?
username:
userVo
.
getUsername
());
data
.
put
(
"username"
,
StringUtils
.
isNotEmpty
(
username
)
?
username
:
userVo
.
getUsername
());
data
.
put
(
"userId"
,
userid
);
data
.
put
(
"imUserId"
,
userVo
.
getImUserid
());
//更新登录时间 和 ip
String
clientIp
=
getIp
();
appUserLoginBiz
.
updateLoginInfo
(
userid
,
clientIp
);
appUserLoginBiz
.
updateLoginInfo
(
userid
,
clientIp
);
}
...
...
@@ -401,6 +410,7 @@ public class AppPermissionService {
userDetail
.
setCrtHost
(
getIp
());
setCreateIPInfo
(
userDetail
);
appUserDetailBiz
.
insertSelective
(
userDetail
);
}
/*else {
userDetail.setId(userVo.getId());
userDetail.setHeadimgurl(headimgurl);
...
...
@@ -599,9 +609,9 @@ public class AppPermissionService {
//实名认证
@Transactional
public
ObjectRestResponse
upAuthentication
(
Integer
userid
,
String
name
,
String
idNumber
,
Integer
status
)
{
log
.
error
(
"userid===="
+
userid
+
"-----name===="
+
name
+
"----idNumber==="
+
idNumber
+
"---status==="
+
status
);
if
(
userid
==
null
||
userid
==
0
||
(
status
==
1
&&
StringUtils
.
isBlank
(
idNumber
)&&
StringUtils
.
isBlank
(
name
)))
{
public
ObjectRestResponse
upAuthentication
(
Integer
userid
,
String
name
,
String
idNumber
,
Integer
status
)
{
log
.
error
(
"userid===="
+
userid
+
"-----name===="
+
name
+
"----idNumber==="
+
idNumber
+
"---status==="
+
status
);
if
(
userid
==
null
||
userid
==
0
||
(
status
==
1
&&
StringUtils
.
isBlank
(
idNumber
)
&&
StringUtils
.
isBlank
(
name
)))
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NULL_CODE
,
"参数为空"
);
}
try
{
...
...
@@ -613,16 +623,16 @@ public class AppPermissionService {
return
ObjectRestResponse
.
createFailedResultWithObj
(
ResultCode
.
EXIST_CODE
,
"用户已认证"
,
userVo
.
getIdNumber
());
}
if
(
status
==
1
)
{
String
username
=
userVo
.
getUsername
();
String
username
=
userVo
.
getUsername
();
AppUserLogin
user
=
new
AppUserLogin
();
user
.
setId
(
userid
);
user
.
setUsername
(
username
);
user
.
setIdNumber
(
idNumber
);
user
.
setCertificationStatus
(
1
);
appUserLoginBiz
.
updateSelectiveById
(
user
);
if
(
StringUtils
.
isBlank
(
userVo
.
getRealname
()))
{
Integer
id
=
userVo
.
getId
();
userVo
=
new
AppUserVo
();
if
(
StringUtils
.
isBlank
(
userVo
.
getRealname
()))
{
Integer
id
=
userVo
.
getId
();
userVo
=
new
AppUserVo
();
userVo
.
setId
(
id
);
userVo
.
setUserid
(
userid
);
userVo
.
setRealname
(
name
);
...
...
@@ -640,7 +650,7 @@ public class AppPermissionService {
//注册im
public
Map
<
String
,
Object
>
registerIm
(
String
username
,
String
password
,
String
nickname
)
{
log
.
error
(
"------注册registerIm----username====="
+
username
+
"-----password==="
+
password
+
"---nickname==="
+
nickname
);
log
.
error
(
"------注册registerIm----username====="
+
username
+
"-----password==="
+
password
+
"---nickname==="
+
nickname
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"telephone"
,
username
);
map
.
put
(
"password"
,
password
);
...
...
@@ -649,7 +659,7 @@ public class AppPermissionService {
log
.
error
(
"registerIm->response:{}"
,
response
);
if
(
response
.
getStatus
()
==
ResultCode
.
SUCCESS_CODE
)
{
String
result
=
response
.
getMessage
();
log
.
error
(
"------im注册----result======"
+
result
);
log
.
error
(
"------im注册----result======"
+
result
);
if
(
StringUtils
.
isNotBlank
(
result
))
{
JSONObject
object
=
JSONObject
.
parseObject
(
result
);
password
=
object
.
getString
(
"password"
);
...
...
@@ -657,7 +667,7 @@ public class AppPermissionService {
map
.
put
(
"password"
,
password
);
}
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
log
.
error
(
"------im注册----data======"
+
data
);
log
.
error
(
"------im注册----data======"
+
data
);
if
(
data
!=
null
)
{
map
.
put
(
"userId"
,
data
.
getString
(
"userId"
));
// map.put("access_token", data.getString("access_token"));
...
...
@@ -674,7 +684,7 @@ public class AppPermissionService {
//登录im
public
String
loginIm
(
String
username
,
String
password
,
Integer
userId
)
{
log
.
error
(
"------登录loginIm----username====="
+
username
+
"-----password==="
+
password
+
"---userId==="
+
userId
);
log
.
error
(
"------登录loginIm----username====="
+
username
+
"-----password==="
+
password
+
"---userId==="
+
userId
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"telephone"
,
username
);
map
.
put
(
"password"
,
password
);
...
...
@@ -684,33 +694,40 @@ public class AppPermissionService {
String
access_token
=
""
;
if
(
response
.
getStatus
()
==
ResultCode
.
SUCCESS_CODE
)
{
String
result
=
response
.
getMessage
();
log
.
error
(
"------im登录----result======"
+
result
);
log
.
error
(
"------im登录----result======"
+
result
);
if
(
StringUtils
.
isNotBlank
(
result
))
{
JSONObject
object
=
JSONObject
.
parseObject
(
result
);
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
log
.
error
(
"------im登录----data======"
+
data
);
log
.
error
(
"------im登录----data======"
+
data
);
if
(
data
!=
null
)
{
access_token
=
data
.
getString
(
"access_token"
);
}
}
}
log
.
error
(
"------im登录----access_token======"
+
access_token
);
log
.
error
(
"------im登录----access_token======"
+
access_token
);
return
access_token
;
}
//自动领取新人优惠卷
public
String
authCoupn
(
Integer
userId
){
public
String
authCoupn
(
Integer
userId
)
{
try
{
return
activityFeign
.
led
(
userId
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
/**
* 通过用户id登录*** Unbelievable! ! !
*
* @param uid
* @return
*/
public
JSONObject
appletLoginByUserId
(
Integer
uid
)
{
JSONObject
data
=
autoLogin
(
uid
,
null
,
null
,
null
);
if
(
data
.
getDate
(
"userId"
)
!=
null
)
{
if
(
data
.
getDate
(
"userId"
)
!=
null
)
{
return
JsonResultUtil
.
createSuccessResultWithObj
(
data
);
}
return
JsonResultUtil
.
createFailedResult
(
ResultCode
.
NOTEXIST_CODE
,
"用户不存在"
);
...
...
@@ -726,7 +743,7 @@ public class AppPermissionService {
* @param nickname
*/
@Transactional
public
JSONObject
applyRegister
(
String
username
,
String
password
,
String
headimgurl
,
String
nickname
,
Integer
small_id
)
{
public
JSONObject
applyRegister
(
String
username
,
String
password
,
String
headimgurl
,
String
nickname
,
Integer
small_id
)
{
// 判断参数
if
(
StringUtils
.
isBlank
(
username
)
||
StringUtils
.
isBlank
(
password
))
{
return
JsonResultUtil
.
createFailedResult
(
ResultCode
.
NULL_CODE
,
"参数为空"
);
...
...
@@ -757,37 +774,39 @@ public class AppPermissionService {
rsUserDetail
.
setCreatetime
(
now
);
rsUserDetail
.
setUpdatetime
(
now
);
rsUserDetail
.
setIsdel
(
0
);
//生成邀请码
rsUserDetail
.
setCode
(
UUIDUtils
.
genCodes
(
6
));
//生成邀请码
长度改为8 不然重复率太高
rsUserDetail
.
setCode
(
UUIDUtils
.
genCodes
(
8
));
//设置来源
rsUserDetail
.
setChannel
(
UserSourceEnum
.
APPLET
.
getCode
());
rsUserDetail
.
setCrtHost
(
getIp
());
setCreateIPInfo
(
rsUserDetail
);
appUserDetailBiz
.
insertSelective
(
rsUserDetail
);
log
.
error
(
"注册:新增用户详情: "
+
userid
);
//临时会员绑定
insertUserMemberByUserIdAndPhone
(
userid
,
username
);
//上线绑定
relationBiz
.
bindByUserId
(
userid
,
small_id
);
relationBiz
.
bindByUserId
(
userid
,
small_id
);
//发送短信通知用户
thirdFeign
.
sendCode
(
username
,
password
,
SystemConfig
.
TEMPLATECODE
);
thirdFeign
.
sendCode
(
username
,
password
,
SystemConfig
.
TEMPLATECODE
);
// 登录结果要做做统一处理
JSONObject
data
=
autoLogin
(
userid
,
username
,
headimgurl
,
nickname
);
// 到im注册,获取返回结果
Map
<
String
,
Object
>
map
=
registerIm
(
username
,
appUserLogin
.
getPassword
(),
nickname
);
if
(
map
!=
null
)
{
Integer
imUserId
=
Integer
.
parseInt
(
map
.
get
(
"userId"
).
toString
());
Map
<
String
,
Object
>
map
=
registerIm
(
username
,
appUserLogin
.
getPassword
(),
nickname
);
if
(
map
!=
null
)
{
Integer
imUserId
=
Integer
.
parseInt
(
map
.
get
(
"userId"
).
toString
());
//String access_token=map.get("access_token").toString();
String
imPassword
=
map
.
get
(
"password"
).
toString
();
if
(
imUserId
!=
null
&&
imUserId
>
0
&&
StringUtils
.
isNotBlank
(
imPassword
))
{
String
imPassword
=
map
.
get
(
"password"
).
toString
();
if
(
imUserId
!=
null
&&
imUserId
>
0
&&
StringUtils
.
isNotBlank
(
imPassword
))
{
AppUserLogin
userLogin
=
new
AppUserLogin
();
userLogin
.
setId
(
userid
);
userLogin
.
setImPassword
(
imPassword
);
userLogin
.
setImUserid
(
imUserId
);
userLogin
.
setUsername
(
username
);
appUserLoginBiz
.
updateSelectiveById
(
userLogin
);
log
.
info
(
username
+
"----userLogin updateSelectiveById---username====="
+
username
+
"----imPassword===="
+
imPassword
);
log
.
info
(
username
+
"----userLogin updateSelectiveById---username====="
+
username
+
"----imPassword===="
+
imPassword
);
}
//data.put("imToken",access_token);
data
.
put
(
"imUserId"
,
imUserId
);
data
.
put
(
"imUserId"
,
imUserId
);
}
if
(
data
!=
null
)
{
return
JsonResultUtil
.
createSuccessResultWithObj
(
data
);
...
...
@@ -801,27 +820,28 @@ public class AppPermissionService {
}
/**
*通过小程序注册
* 通过小程序注册
*
* @param username
* @return
*/
public
JSONObject
appletRegistry
(
String
username
,
String
headimgurl
,
String
nickname
,
Integer
small_id
){
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
JSONObject
appletRegistry
(
String
username
,
String
headimgurl
,
String
nickname
,
Integer
small_id
)
{
try
{
// 是否已存在
AppUserLogin
user
=
appUserLoginBiz
.
checkeUserLogin
(
username
);
JSONObject
data
=
new
JSONObject
();
JSONObject
data
=
new
JSONObject
();
if
(
null
==
user
)
{
String
password
=
"12345678"
;
data
=
applyRegister
(
username
,
password
,
headimgurl
,
nickname
,
small_id
);
}
else
{
Integer
userid
=
user
.
getId
();
String
password
=
"12345678"
;
data
=
applyRegister
(
username
,
password
,
headimgurl
,
nickname
,
small_id
);
}
else
{
Integer
userid
=
user
.
getId
();
//上线绑定
relationBiz
.
bindByUserId
(
userid
,
small_id
);
relationBiz
.
bindByUserId
(
userid
,
small_id
);
//登录
data
=
appletLoginByUserId
(
userid
);
data
=
appletLoginByUserId
(
userid
);
}
return
data
;
}
catch
(
Exception
e
)
{
...
...
@@ -830,40 +850,76 @@ public class AppPermissionService {
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
public
void
insertUserMemberByUserIdAndPhone
(
Integer
userId
,
String
phone
)
throws
Exception
{
List
<
BaseUserMemberExportDTO
>
memberExportDTOS
=
baseUserMemberExportBiz
.
findUserMemberExportDataByPhoneAndHashEffective
(
phone
);
if
(
CollectionUtils
.
isNotEmpty
(
memberExportDTOS
))
{
insertUserMemberByExistUserMemberExportData
(
userId
,
memberExportDTOS
);
baseUserMemberExportBiz
.
updateUserMemberExportDataToLoseEfficacyByPhone
(
phone
);
}
}
private
void
insertUserMemberByExistUserMemberExportData
(
Integer
userId
,
List
<
BaseUserMemberExportDTO
>
userMemberExportDTOS
)
throws
Exception
{
UserMemberDTO
userMemberDTO
;
for
(
BaseUserMemberExportDTO
userMemberExportDTO
:
userMemberExportDTOS
)
{
userMemberDTO
=
new
UserMemberDTO
();
userMemberDTO
.
setUserId
(
userId
);
userMemberDTO
.
setRentFreeDays
(
userMemberExportDTO
.
getRentFreeDays
());
userMemberDTO
.
setMemberLevel
(
userMemberExportDTO
.
getMemberLevel
());
userMemberDTO
.
setTotalNumber
(
userMemberExportDTO
.
getTotalNumber
());
userMemberDTO
.
setDiscount
(
userMemberExportDTO
.
getDiscount
());
userMemberDTO
.
setBuyCount
(
0
);
userMemberDTO
.
setIsBind
(
1
);
baseUserMemberBiz
.
updUserMemberByUserId
(
userMemberDTO
);
}
}
/**
* ip地址 信息解析
*
* @param appUserDetail
*/
public
void
setCreateIPInfo
(
AppUserDetail
appUserDetail
){
public
void
setCreateIPInfo
(
AppUserDetail
appUserDetail
)
{
String
crtHost
=
appUserDetail
.
getCrtHost
();
String
ipAddress
=
restTemplate
.
getForObject
(
String
.
format
(
"%s%s"
,
IPAddress
.
BASE_IP_PARSING_URL
,
crtHost
),
String
.
class
);
log
.
info
(
"----setCreateIPInfo--crtHost========"
+
crtHost
);
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"解析的地址:【{}】"
,
crtHost
);
}
try
{
analyticalIPByWebSiteAndIPAddress
(
IPAddress
.
BASE_IP_PARSING_URL2
,
crtHost
,
appUserDetail
);
}
catch
(
Exception
e
)
{
try
{
analyticalIPByWebSiteAndIPAddress
(
IPAddress
.
BASE_IP_PARSING_URL1
,
crtHost
,
appUserDetail
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析地址失败:【{}】"
,
ex
.
getMessage
());
}
}
}
private
void
analyticalIPByWebSiteAndIPAddress
(
String
url
,
String
crtHost
,
AppUserDetail
appUserDetail
)
{
String
ipAddress
=
restTemplate
.
getForObject
(
String
.
format
(
"%s%s"
,
url
,
crtHost
),
String
.
class
);
String
data
=
JSONObject
.
parseObject
(
ipAddress
).
getString
(
IPAddress
.
BASE_DATA
);
JSONObject
ipJsonObject
=
JSONObject
.
parseObject
(
data
);
// Integer provinceCode = ipJsonObject.getInteger(IPAddress.PROVINCE_CODE);
// Integer cityCode = ipJsonObject.getInteger(IPAddress.CITY_CODE);
//appUserLogin.setProvinceCode(provinceCode);
//appUserLogin.setCityCode(cityCode);
String
cityName
=
ipJsonObject
.
getString
(
IPAddress
.
CITY_NAME
);
RegionDTO
regionDTO
=
regionFeign
.
getRegionByCityName
(
cityName
);
if
(
null
!=
regionDTO
)
{
RegionDTO
regionDTO
=
regionFeign
.
getRegionByCityName
(
StringUtils
.
isEmpty
(
cityName
)
?
"东莞"
:
cityName
);
if
(
null
!=
regionDTO
)
{
appUserDetail
.
setProvinceCode
(
Integer
.
valueOf
(
String
.
valueOf
(
regionDTO
.
getParentId
())));
appUserDetail
.
setCityCode
(
Integer
.
valueOf
(
String
.
valueOf
(
regionDTO
.
getId
())));
}
}
/**
* @author libin
* @version 1.0.0
* @dec ip 解析返回的地址信息
*/
private
static
class
IPAddress
{
public
static
final
String
BASE_IP_PARSING_URL
=
"http://ip.taobao.com/service/getIpInfo.php?ip="
;
public
static
final
String
BASE_DATA
=
"data"
;
public
static
final
String
PROVINCE_CODE
=
"region_id"
;
public
static
final
String
CITY_CODE
=
"city_id"
;
public
static
final
String
CITY_NAME
=
"city"
;
public
static
final
String
PROVINCE_NAME
=
"region"
;
private
static
class
IPAddress
{
public
static
final
String
BASE_IP_PARSING_URL1
=
"http://ip.taobao.com/service/getIpInfo.php?ip="
;
public
static
final
String
BASE_IP_PARSING_URL2
=
"https://www.mxnzp.com/api/ip/aim_ip?ip="
;
public
static
final
String
BASE_DATA
=
"data"
;
public
static
final
String
CITY_NAME
=
"city"
;
}
}
ace-modules/ace-admin/src/main/resources/file/usermember.xlsx
0 → 100644
View file @
1faaf47b
File added
ace-modules/ace-admin/src/main/resources/mapper/AppUserDetailMapper.xml
View file @
1faaf47b
...
...
@@ -113,5 +113,7 @@
</select>
<update
id=
"updateUserMemberStatusByUserId"
>
update `app_user_detail` set `is_member`={status} where `userid`=#{userId}
</update>
</mapper>
\ No newline at end of file
ace-modules/ace-admin/src/main/resources/mapper/BaseUserMemberExportMapper.xml
View file @
1faaf47b
...
...
@@ -11,4 +11,8 @@
<result
property=
"isDel"
column=
"is_del"
/>
<result
property=
"status"
column=
"status"
/>
</resultMap>
<update
id=
"updateUserMemberExportDataToLoseEfficacyByPhone"
>
update `base_user_member_export` set `status`=1 where `username`=#{phone}
</update>
</mapper>
\ No newline at end of file
ace-modules/ace-generator/src/main/resources/application.yml
View file @
1faaf47b
...
...
@@ -10,7 +10,7 @@ spring:
datasource
:
type
:
com.alibaba.druid.pool.DruidDataSource
driverClassName
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://10.5.52.3:3306/xxfc_a
ctivity
?useUnicode=true&characterEncoding=UTF-8
url
:
jdbc:mysql://10.5.52.3:3306/xxfc_a
pp
?useUnicode=true&characterEncoding=UTF-8
username
:
root
password
:
sslcloud123*()
jackson
:
...
...
ace-modules/ace-generator/src/main/resources/generator.properties
View file @
1faaf47b
#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
#\u5305\u540D
package
=
com.xxfc.platform.a
ctivity
package
=
com.xxfc.platform.a
pp
#\u4F5C\u8005
author
=
libin
author
=
zjw
#Email
email
=
18178966185@163.com
#\u8868\u524D\u9519\u8BEF\u7684Unicode\u5B57\u7B26\u4E32!
...
...
xx-app/xx-app-api/src/main/java/com/xxfc/platform/app/entity/BuyVehicleForm.java
0 → 100644
View file @
1faaf47b
package
com
.
xxfc
.
platform
.
app
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.*
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-09 19:39:47
*/
@Data
@Table
(
name
=
"buy_vehicle_form"
)
public
class
BuyVehicleForm
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
/**
* 创建时间
*/
@Column
(
name
=
"crt_time"
)
@ApiModelProperty
(
value
=
"创建时间"
,
hidden
=
true
)
private
Long
crtTime
;
/**
* 更新时间
*/
@Column
(
name
=
"upd_time"
)
@ApiModelProperty
(
value
=
"更新时间"
,
hidden
=
true
)
private
Long
updTime
;
/**
* 车型id
*/
@Column
(
name
=
"model_id"
)
@ApiModelProperty
(
value
=
"车型id"
)
private
Integer
modelId
;
/**
* 联系人名称
*/
@Column
(
name
=
"contact_name"
)
@ApiModelProperty
(
value
=
"联系人名称"
)
private
String
contactName
;
/**
* 联系人电话
*/
@Column
(
name
=
"contact_phone"
)
@ApiModelProperty
(
value
=
"联系人电话"
)
private
String
contactPhone
;
/**
* 预约时间
*/
@Column
(
name
=
"book_time"
)
@ApiModelProperty
(
value
=
"预约时间"
)
private
Long
bookTime
;
/**
* 公司id
*/
@Column
(
name
=
"company_id"
)
@ApiModelProperty
(
value
=
"公司id"
)
private
Integer
companyId
;
/**
* 备注
*/
@Column
(
name
=
"remark"
)
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
}
xx-app/xx-app-server/src/main/java/com/xxfc/platform/app/biz/BuyVehicleFormBiz.java
0 → 100644
View file @
1faaf47b
package
com
.
xxfc
.
platform
.
app
.
biz
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.app.entity.BuyVehicleForm
;
import
com.xxfc.platform.app.mapper.BuyVehicleFormMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-09 19:39:47
*/
@Service
public
class
BuyVehicleFormBiz
extends
BaseBiz
<
BuyVehicleFormMapper
,
BuyVehicleForm
>
{
}
\ No newline at end of file
xx-app/xx-app-server/src/main/java/com/xxfc/platform/app/mapper/BuyVehicleFormMapper.java
0 → 100644
View file @
1faaf47b
package
com
.
xxfc
.
platform
.
app
.
mapper
;
import
com.xxfc.platform.app.entity.BuyVehicleForm
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 购房车提交表单
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-09 19:39:47
*/
public
interface
BuyVehicleFormMapper
extends
Mapper
<
BuyVehicleForm
>
{
}
xx-app/xx-app-server/src/main/java/com/xxfc/platform/app/rest/BuyVehicleFormController.java
0 → 100644
View file @
1faaf47b
package
com
.
xxfc
.
platform
.
app
.
rest
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.app.biz.BuyVehicleFormBiz
;
import
com.xxfc.platform.app.entity.BuyVehicleForm
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"buyVehicleForm"
)
public
class
BuyVehicleFormController
extends
BaseController
<
BuyVehicleFormBiz
,
BuyVehicleForm
>
{
}
\ No newline at end of file
xx-app/xx-app-server/src/main/resources/mapper/BuyVehicleFormMapper.xml
0 → 100644
View file @
1faaf47b
<?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.app.mapper.BuyVehicleFormMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.app.entity.BuyVehicleForm"
id=
"buyVehicleFormMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"updTime"
column=
"upd_time"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"modelId"
column=
"model_id"
/>
<result
property=
"contactName"
column=
"contact_name"
/>
<result
property=
"contactPhone"
column=
"contact_phone"
/>
<result
property=
"bookTime"
column=
"book_time"
/>
<result
property=
"companyId"
column=
"company_id"
/>
<result
property=
"remark"
column=
"remark"
/>
</resultMap>
</mapper>
\ No newline at end of file
xx-common/xx-common-platform-component/pom.xml
View file @
1faaf47b
...
...
@@ -15,12 +15,25 @@
<swagger.version>
2.9.2
</swagger.version>
</properties>
<dependencies>
<dependency>
<groupId>
com.github.wxiaoqi
</groupId>
<artifactId>
ace-admin-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-redis
</artifactId>
<scope>
provided
</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processor -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/BaseOrder.java
View file @
1faaf47b
...
...
@@ -214,4 +214,18 @@ public class BaseOrder implements Serializable {
@ApiModelProperty
(
value
=
"乐观锁,修改版本号"
)
@Version
private
Integer
version
;
/**
* 下单来源 1--app;2--小程序
*/
@ApiModelProperty
(
value
=
"下单来源 1--app;2--小程序"
)
@Column
(
name
=
"order_origin"
)
private
Integer
orderOrigin
;
/**
* 支付来源 1--app;2--小程序
*/
@ApiModelProperty
(
value
=
"支付来源 1--app;2--小程序"
)
@Column
(
name
=
"pay_origin"
)
private
Integer
payOrigin
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/inter/OrderDetail.java
View file @
1faaf47b
...
...
@@ -15,4 +15,8 @@ public interface OrderDetail {
BaseOrder
getOrder
();
void
setOrder
(
BaseOrder
order
);
Integer
getOrderOrigin
();
void
setOrderOrigin
(
Integer
orderOrigin
);
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/AddRentVehicleDTO.java
View file @
1faaf47b
...
...
@@ -94,6 +94,12 @@ public class AddRentVehicleDTO{
@ApiModelProperty
(
value
=
"是否使用出租免费天数"
)
private
Integer
rentFreeDay
;
/**
*
*/
@ApiModelProperty
(
value
=
"下单来源,1--app;2--小程序"
)
private
Integer
orderOrigin
;
/**
* 优惠券ids
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/MemberBO.java
View file @
1faaf47b
...
...
@@ -18,6 +18,10 @@ import java.util.List;
public
class
MemberBO
extends
OrderMemberDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
BaseUserMemberLevel
baseUserMemberLevel
;
/**
* 下单来源,1--app;2--小程序
*/
private
Integer
orderOrigin
;
/**
* 优惠券*
*/
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/OrderAboutParamDTO.java
View file @
1faaf47b
...
...
@@ -15,4 +15,13 @@ public class OrderAboutParamDTO {
@ApiModelProperty
(
value
=
"旅游订单自动取消时间(毫秒)"
)
private
Long
actTour
;
@ApiModelProperty
(
value
=
"会员订单自动取消时间(毫秒)"
)
private
Long
actMember
;
@ApiModelProperty
(
value
=
"平台司机单价"
)
private
BigDecimal
driverPrice
;
@ApiModelProperty
(
value
=
"免赔费用"
)
private
BigDecimal
damageSafe
;
}
\ No newline at end of file
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
View file @
1faaf47b
...
...
@@ -7,6 +7,7 @@ import com.xxfc.platform.order.entity.inter.OrderDetail;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
com.xxfc.platform.vehicle.pojo.BookVehicleVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
...
...
@@ -22,6 +23,11 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
private
Integer
rentFreeDay
;
private
AppUserDTO
appUserDTO
;
/**
* 下单来源,1--app;2--小程序
*/
private
Integer
orderOrigin
;
/**
* 优惠券*
*/
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/TourBO.java
View file @
1faaf47b
...
...
@@ -21,6 +21,10 @@ public class TourBO extends OrderTourDetail implements OrderDetail {
List
<
TourUser
>
tourUsers
;
AppUserDTO
appUserDTO
;
/**
* 下单来源,1--app;2--小程序
*/
private
Integer
orderOrigin
;
/**
* 优惠券*
*/
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/pay/
RentVehicleOrderPayV
O.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/pay/
OrderPayDT
O.java
View file @
1faaf47b
...
...
@@ -12,7 +12,7 @@ import lombok.Data;
* @date 2019-05-28 16:17:42
*/
@Data
public
class
RentVehicleOrderPayV
O
{
public
class
OrderPayDT
O
{
//订单号
@ApiModelProperty
(
value
=
"订单号"
)
private
String
orderNo
;
...
...
@@ -24,4 +24,8 @@ public class RentVehicleOrderPayVO {
//来源:1-app;2-小程序
@ApiModelProperty
(
value
=
"来源:1-app;2-小程序"
)
private
Integer
type
;
//买家第三方付款账号
@ApiModelProperty
(
value
=
"买家第三方付款账号(如:openId)"
)
private
String
buyerAccount
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
1faaf47b
...
...
@@ -366,7 +366,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @param orderNo
* @param tradeNo
*/
public
void
payNotifyHandle
(
String
orderNo
,
String
tradeNo
)
{
public
void
payNotifyHandle
(
String
orderNo
,
String
tradeNo
,
Integer
type
)
{
BaseOrder
baseOrder
=
this
.
selectOne
(
new
BaseOrder
()
{{
setNo
(
orderNo
);
}});
...
...
@@ -377,6 +377,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
setOutTradeNo
(
tradeNo
);
setHasPay
(
SYS_TRUE
);
setPayTime
(
System
.
currentTimeMillis
());
setPayOrigin
(
type
);
setVersion
(
baseOrder
.
getVersion
());
}};
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mqhandler/RabbitConsumer.java
View file @
1faaf47b
...
...
@@ -46,7 +46,7 @@ public class RabbitConsumer {
baseOrderBiz
.
cancel
(
baseOrder
);
}
catch
(
BaseException
e
)
{
if
(
ResultCode
.
DB_OPERATION_FAIL_CODE
==
e
.
getStatus
())
{
log
.
info
(
"取消操作被取消
"
);
log
.
info
(
"取消操作被取消
;订单id:"
+
baseOrder
.
getId
()
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"============消费失败,尝试消息补发再次消费!=============="
);
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BaseOrderController.java
View file @
1faaf47b
...
...
@@ -3,7 +3,6 @@ package com.xxfc.platform.order.rest;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.admin.entity.AppUser
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
...
...
@@ -25,7 +24,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.mqhandler.RabbitProduct
;
import
com.xxfc.platform.order.pojo.order.*
;
import
com.xxfc.platform.order.pojo.pay.
RentVehicleOrderPayV
O
;
import
com.xxfc.platform.order.pojo.pay.
OrderPayDT
O
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
...
...
@@ -111,6 +110,9 @@ public class BaseOrderController extends CommonBaseController {
setInsurePrice
(
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
INSURE_PRICE
).
getDetail
()));
setActRent
(
new
Long
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_RENT
).
getDetail
()));
setActTour
(
new
Long
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_TOUR
).
getDetail
()));
setActMember
(
new
Long
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_MEMBER
).
getDetail
()));
setDamageSafe
(
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
DAMAGE_SAFE
).
getDetail
()));
setDriverPrice
(
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
DRIVER_PRICE
).
getDetail
()));
}});
}
...
...
@@ -234,6 +236,7 @@ public class BaseOrderController extends CommonBaseController {
@IgnoreClientToken
@ResponseBody
public
ObjectRestResponse
<
OrderPageVO
>
get
(
@PathVariable
String
no
)
{
log
.
info
(
"no:"
+
no
+
",时间戳:"
+
System
.
currentTimeMillis
());
//查询列表数据
if
(
StringUtils
.
isBlank
(
BaseContextHandler
.
getUserID
()))
{
throw
new
BaseException
(
ResultCode
.
AJAX_WECHAT_NOTEXIST_CODE
);
...
...
@@ -244,6 +247,7 @@ public class BaseOrderController extends CommonBaseController {
if
(
page
.
getData
().
isEmpty
())
{
throw
new
BaseException
(
ResultCode
.
NOTEXIST_CODE
);
}
log
.
info
(
"no:"
+
no
+
",时间戳:"
+
System
.
currentTimeMillis
());
return
new
ObjectRestResponse
<>().
data
(
page
.
getData
().
get
(
0
));
}
...
...
@@ -303,16 +307,16 @@ public class BaseOrderController extends CommonBaseController {
@ResponseBody
@ApiOperation
(
value
=
"订单支付"
)
@IgnoreClientToken
public
ObjectRestResponse
pay
(
@RequestBody
RentVehicleOrderPayVO
v
o
)
{
public
ObjectRestResponse
pay
(
@RequestBody
OrderPayDTO
dt
o
)
{
//查询列表数据
if
(
StringUtils
.
isBlank
(
BaseContextHandler
.
getUserID
()))
{
throw
new
BaseException
(
ResultCode
.
AJAX_WECHAT_NOTEXIST_CODE
);
}
OrderPayVo
orderPayVo
=
BeanUtil
.
toBean
(
v
o
,
OrderPayVo
.
class
);
OrderPayVo
orderPayVo
=
BeanUtil
.
toBean
(
dt
o
,
OrderPayVo
.
class
);
BaseOrder
baseOrder
=
baseOrderBiz
.
selectOne
(
new
BaseOrder
()
{{
setNo
(
v
o
.
getOrderNo
());
setNo
(
dt
o
.
getOrderNo
());
}});
if
(
null
==
baseOrder
||
!
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
().
equals
(
baseOrder
.
getStatus
()))
{
...
...
@@ -359,7 +363,7 @@ public class BaseOrderController extends CommonBaseController {
public
ObjectRestResponse
notifyUrl
(
NotifyUrlDTO
dto
)
{
//判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态
if
(
StrUtil
.
isNotBlank
(
dto
.
getOrderNo
()))
{
baseOrderBiz
.
payNotifyHandle
(
dto
.
getOrderNo
(),
dto
.
getTradeNo
());
baseOrderBiz
.
payNotifyHandle
(
dto
.
getOrderNo
(),
dto
.
getTradeNo
()
,
dto
.
getType
()
);
}
else
{
log
.
error
(
" exception notifyUrl : "
+
JSONUtil
.
toJsonStr
(
dto
));
}
...
...
@@ -418,5 +422,9 @@ public class BaseOrderController extends CommonBaseController {
//订单号
@ApiModelProperty
(
value
=
"支付订单(流水)号"
)
private
String
tradeNo
;
//支付类型
@ApiModelProperty
(
value
=
"支付类型"
)
private
Integer
type
;
}
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
1faaf47b
...
...
@@ -42,8 +42,12 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
* 创建基础订单
* @return
*/
public
BaseOrder
createBaseOrder
()
{
public
BaseOrder
createBaseOrder
(
Integer
orderOrigin
)
{
BaseOrder
baseOrder
=
new
BaseOrder
();
//设置下单来源
baseOrder
.
setOrderOrigin
(
orderOrigin
);
//设置订单号
baseOrder
.
setNo
(
OrderUtil
.
GetOrderNumber
(
""
,
OrderUtil
.
APP_MID
));
//设置订单类型
...
...
@@ -64,7 +68,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
}
public
void
initDetail
(
Detail
detail
)
{
BaseOrder
order
=
createBaseOrder
();
BaseOrder
order
=
createBaseOrder
(
detail
.
getOrderOrigin
()
);
detail
.
setOrder
(
order
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
1faaf47b
...
...
@@ -15,6 +15,8 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import
com.xxfc.platform.order.pojo.order.MemberBO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
lombok.extern.log4j.Log4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -26,6 +28,8 @@ import java.math.BigDecimal;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
@Service
@Log4j
public
class
OrderMemberService
extends
AbstractOrderHandle
<
OrderMemberDetailBiz
,
MemberBO
>
{
...
...
@@ -36,10 +40,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Autowired
VehicleFeign
vehicleFeign
;
@Autowired
ThirdFeign
thirdFeign
;
private
static
Integer
IS_CHILD
=
1
;
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
private
static
Long
autoCancelTime
;
@Autowired
OrderCostDetailBiz
orderCostDetailBiz
;
...
...
@@ -68,6 +76,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Override
public
void
initDetail
(
MemberBO
bo
)
{
super
.
initDetail
(
bo
);
initDictionary
();
BaseUserMemberLevel
buml
=
userFeign
.
level
(
bo
.
getMemberLevel
());
if
(!
bo
.
getMemberLevelId
().
equals
(
buml
.
getId
()))
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
new
HashSet
<
String
>(){{
...
...
@@ -79,6 +88,11 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
bo
.
setRebate
(
buml
.
getDiscount
());
}
public
void
initDictionary
()
{
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
this
.
autoCancelTime
=
Long
.
valueOf
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_MEMBER
).
getDetail
());
}
@Override
public
void
handleDetail
(
MemberBO
bo
)
{
//设置订单状态为3
...
...
@@ -91,7 +105,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
1000L
*
60
*
30
);
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
autoCancelTime
);
}
@Override
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
1faaf47b
...
...
@@ -166,7 +166,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
VehicleModel
vehicleModel
=
vehicleFeign
.
get
(
detail
.
getModelId
()).
getData
();
//如果用户存在,并且为会员,并且车辆有优惠价
if
(
null
!=
dto
&&
!
NONE
.
getCode
().
equals
(
dto
.
getMemberLevel
())
&&
!
DISCOUNT_STATUS_NONE
.
equals
(
vehicleModel
.
getRentDiscountStatus
()))
{
if
(
null
!=
dto
&&
SYS_TRUE
.
equals
(
dto
.
getIsMember
())
&&
!
NONE
.
getCode
().
equals
(
dto
.
getMemberLevel
())
&&
!
DISCOUNT_STATUS_NONE
.
equals
(
vehicleModel
.
getRentDiscountStatus
()))
{
String
[]
prices
=
StrUtil
.
isBlank
(
vehicleModel
.
getRentDiscountPrice
())
?
new
String
[]{
vehicleModel
.
getPrice
().
toString
(),
vehicleModel
.
getPrice
().
toString
(),
vehicleModel
.
getPrice
().
toString
()}
:
vehicleModel
.
getRentDiscountPrice
().
split
(
","
);
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderTourService.java
View file @
1faaf47b
...
...
@@ -197,7 +197,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
//总价格
orderAmount
=
orderAmount
.
add
(
goodsAmount
).
add
(
insureAmount
);
//真实价格
realAmount
=
realAmount
.
add
(
tourSpePriceVo
.
getRealPrice
()).
add
(
tourSpePriceVo
.
getRealChildPrice
());
realAmount
=
realAmount
.
add
(
tourSpePriceVo
.
getRealPrice
()).
add
(
tourSpePriceVo
.
getRealChildPrice
())
.
add
(
insureAmount
)
;
//生成订单明细
TourPriceVO
tpv
=
BeanUtil
.
toBean
(
tourSpePriceVo
,
TourPriceVO
.
class
);
...
...
xx-order/xx-order-server/src/test/java/com/xxfc/platform/order/InvitationTest.java
0 → 100644
View file @
1faaf47b
package
com
.
xxfc
.
platform
.
order
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
@Slf4j
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
(
classes
={
OrderApplication
.
class
})
public
class
InvitationTest
{
@Autowired
BaseOrderBiz
baseOrderBiz
;
@Test
public
void
test
()
{
BaseOrder
baseOrder
=
baseOrderBiz
.
selectById
(
93
);
baseOrder
.
setRefundTime
(
System
.
currentTimeMillis
());
baseOrder
.
setVersion
(
baseOrder
.
getVersion
()
-
1
);
baseOrderBiz
.
updateSelectiveById
(
baseOrder
);
log
.
info
(
"success"
);
}
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/DictionaryKey.java
View file @
1faaf47b
...
...
@@ -35,6 +35,7 @@ public class DictionaryKey {
*/
public
static
final
String
ACT_RENT
=
"ACT_RENT"
;
public
static
final
String
ACT_TOUR
=
"ACT_TOUR"
;
public
static
final
String
ACT_MEMBER
=
"ACT_MEMBER"
;
/**
* 支付价格减低
...
...
xx-universal/xx-universal-server/pom.xml
View file @
1faaf47b
...
...
@@ -78,6 +78,11 @@
<version>
2.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.alipay.sdk
</groupId>
<artifactId>
alipay-sdk-java
</artifactId>
<version>
3.7.26.ALL
</version>
</dependency>
<dependency>
<groupId>
antlr
</groupId>
<artifactId>
antlr
</artifactId>
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
View file @
1faaf47b
...
...
@@ -2,6 +2,17 @@ package com.xxfc.platform.universal.biz;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.AlipayApiException
;
import
com.alipay.api.AlipayClient
;
import
com.alipay.api.AlipayConstants
;
import
com.alipay.api.DefaultAlipayClient
;
import
com.alipay.api.domain.AlipayTradeAppPayModel
;
import
com.alipay.api.internal.util.AlipaySignature
;
import
com.alipay.api.request.AlipayFundAuthOrderFreezeRequest
;
import
com.alipay.api.request.AlipayTradeAppPayRequest
;
import
com.alipay.api.response.AlipayFundAuthOrderFreezeResponse
;
import
com.alipay.api.response.AlipayTradeAppPayResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.HTTPSUtils
;
import
com.github.wxiaoqi.security.common.util.OrderUtil
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
...
...
@@ -20,6 +31,11 @@ import com.xxfc.platform.universal.entity.OrderPay;
import
com.xxfc.platform.universal.mapper.OrderPayMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
tk.mybatis.mapper.entity.Example
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -40,6 +56,9 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
@Autowired
DictionaryBiz
dictionaryBiz
;
@Autowired
HttpServletRequest
request
;
public
JSONObject
preparepay
(
OrderPayVo
orderPayVo
)
{
if
(
null
==
orderPayVo
)
{
log
.
error
(
"-----参数为空-----------"
);
...
...
@@ -131,6 +150,178 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
}
}
/**
* 支付宝回调接口
* @return
*/
public
String
alipayNotify
()
{
//获取支付宝POST过来反馈信息
Map
<
String
,
String
>
params
=
new
HashMap
<>();
Map
requestParams
=
request
.
getParameterMap
();
for
(
Iterator
iter
=
requestParams
.
keySet
().
iterator
();
iter
.
hasNext
();)
{
String
name
=
(
String
)
iter
.
next
();
String
[]
values
=
(
String
[])
requestParams
.
get
(
name
);
String
valueStr
=
""
;
for
(
int
i
=
0
;
i
<
values
.
length
;
i
++)
{
valueStr
=
(
i
==
values
.
length
-
1
)
?
valueStr
+
values
[
i
]
:
valueStr
+
values
[
i
]
+
","
;
}
log
.
info
(
valueStr
);
//乱码解决,这段代码在出现乱码时使用。
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
params
.
put
(
name
,
valueStr
);
}
String
msg
=
JSONObject
.
toJSONString
(
params
);
log
.
info
(
"alipay notify message={}"
,
msg
);
// //添加回调记录
// PaymentCallbackLog callbackLog = new PaymentCallbackLog();
// callbackLog.setPayCode(rstradeNo);
// callbackLog.setPayType(SystemConstant.PayType.ALIPAY);
// callbackLog.setOrderCode(rsOrderCode);
// callbackLog.setMessage(msg);
// paymentCallbackLogRepository.save(callbackLog);
//切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
//boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)
try
{
boolean
flag
=
AlipaySignature
.
rsaCheckV1
(
params
,
""
,
AlipayConstants
.
CHARSET_UTF8
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
if
(!
flag
)
{
log
.
info
(
"alipay order rsaCheckV1 fail, result={}"
,
msg
);
return
ObjectRestResponse
.
createDefaultFail
().
getMessage
();
}
String
rsTradeStatus
=
params
.
get
(
"trade_status"
);
if
(!
SystemConfig
.
ALIPAY_TRADE_FINISHED
.
equals
(
rsTradeStatus
)
&&
!
SystemConfig
.
ALIPAY_TRADE_SUCCESS
.
equals
(
rsTradeStatus
))
{
log
.
info
(
"alipay order trade_status has problem, result={}"
,
msg
);
return
ObjectRestResponse
.
createDefaultFail
().
getMessage
();
}
//String rsSellerId = params.get("seller_id");
//
// PaymentRecord paymentRecord = paymentRecordRepository.findOneByOrderCode(rsOrderCode);
// //验证付款信息
// if (paymentRecord == null || !paymentRecord.getAmount().toString().equals(rsAmount)
// || !aliPayConfig.getAppId().equals(rsAppId)) {
// log.info("alipay order notify fail, result={}", msg);
// return Response.FAILURE.getHeader().getMessage();
// }
// //重复回调
// if (paymentRecord.getStatus().intValue() != 1) {
// log.info("alipay order repeat notify, result={}", msg);
// return Response.SUCCESS().getHeader().getMessage();
// }
//
// paymentRecord.setPayCode(rstradeNo);
// paymentRecord.setStatus(2);
// paymentRecordRepository.save(paymentRecord);
// Map<String, Object> sendMap = DataUtils.objectToMap(paymentRecord);
// sendMap.put("amount", new BigDecimal(rsAmount).multiply(new BigDecimal(100)).intValue());
// sendMsgToOrder(JSONObject.toJSONString(sendMap));
return
ObjectRestResponse
.
succ
().
getMessage
();
}
catch
(
AlipayApiException
e
)
{
log
.
error
(
""
,
e
);
}
return
ObjectRestResponse
.
createDefaultFail
().
getMessage
();
}
/**
* 支付宝生成支付信息
* @param orderCode
* @param description
* @param payType
* @param amount
* @return
*/
@SuppressWarnings
(
"rawtypes"
)
private
ObjectRestResponse
generateAliPayment
(
String
orderCode
,
String
description
,
String
payType
,
Integer
amount
)
{
BigDecimal
realAmount
=
new
BigDecimal
(
amount
.
toString
()).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_UP
);
String
notifyUrl
=
SystemConfig
.
weixinHost
+
"/service/payment/notify/alipay"
;
//实例化客户端
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
SystemConfig
.
ALIPAY_PAY_BASE_URL
+
"/gateway.do"
,
SystemConfig
.
ALIPAY_APPID
,
SystemConfig
.
ALIPAY_PRIVATE_KEY
,
AlipayConstants
.
FORMAT_JSON
,
AlipayConstants
.
CHARSET_UTF8
,
SystemConfig
.
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest
request
=
new
AlipayTradeAppPayRequest
();
// //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel
model
=
new
AlipayTradeAppPayModel
();
//model.setBody("我是测试数据");
model
.
setSubject
(
description
);
model
.
setOutTradeNo
(
orderCode
);
model
.
setTimeoutExpress
(
"30m"
);
model
.
setTotalAmount
(
realAmount
.
toString
());
model
.
setProductCode
(
"QUICK_MSECURITY_PAY"
);
request
.
setBizModel
(
model
);
request
.
setNotifyUrl
(
notifyUrl
);
// AlipayFundAuthOrderFreezeRequest request = new AlipayFundAuthOrderFreezeRequest();
// String contentString = "{" +
// "\"auth_code\":\"" + orderCode + "\"," +
// "\"auth_code_type\":\"bar_code\"," +
// "\"out_order_no\":\"8077735255938023\"," +
// "\"out_request_no\":\"8077735255938032\"," +
// "\"order_title\":\"预授权冻结\"," +
// "\"amount\":0.01," +
// "\"payee_logon_id\":\"" + SystemConfig.ALIPAY_ACOUNT + "\"," +
// "\"payee_user_id\":\"" + SystemConfig.ALIPAY_PID + "\"," +
// "\"pay_timeout\":\"2d\"," +
// "\"extra_param\":\"{\\\"secondaryMerchantId\\\":\\\"17320004886\\\"}\"," +
// "\"product_code\":\"PRE_AUTH\"" ;
// log.info("content = {}", contentString);
// request.setBizContent(contentString);
// AlipayFundAuthOrderFreezeResponse response;
// try {
// response = alipayClient.execute(request);
// if(response.isSuccess()){
// System.out.println("调用成功");
// Map<String, Object> rt = new HashMap<>();
// rt.put("payType", payType);
// rt.put("payData", response.getBody());
// return ObjectRestResponse.succ(rt);
// } else {
// System.out.println("调用失败");
// }
// } catch (AlipayApiException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
try
{
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse
response
=
alipayClient
.
sdkExecute
(
request
);
System
.
out
.
println
(
response
.
getBody
());
//就是orderString 可以直接给客户端请求,无需再做处理。
log
.
info
(
"alipay result={}"
,
response
.
getMsg
());
log
.
info
(
"alipay result={}"
,
response
.
getCode
());
log
.
info
(
"alipay result={}"
,
response
.
getBody
());
Map
<
String
,
Object
>
rt
=
new
HashMap
<>();
rt
.
put
(
"payType"
,
payType
);
rt
.
put
(
"payData"
,
response
.
getBody
());
return
ObjectRestResponse
.
succ
(
rt
);
}
catch
(
AlipayApiException
e
)
{
e
.
printStackTrace
();
}
return
ObjectRestResponse
.
createDefaultFail
();
}
public
ObjectRestResponse
generatePayment
(
String
orderCode
,
String
description
,
String
payType
,
Integer
amount
)
{
ObjectRestResponse
objectRestResponse
=
ObjectRestResponse
.
createDefaultFail
();
switch
(
payType
)
{
case
SystemConfig
.
ALIPAY
:
objectRestResponse
=
generateAliPayment
(
orderCode
,
description
,
payType
,
amount
);
break
;
default
:
log
.
info
(
"不支持的付款类型,payType={}"
,
payType
);
break
;
}
return
objectRestResponse
;
}
public
static
void
main
(
String
[]
args
)
{
String
url
=
"https://xxtest.upyuns.com/api/order/baseOrder/app/unauth/notifyUrl?orderNo=20190603141137010007&tradeNo=20190603141137000002"
;
String
result
=
""
;
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/OrderPayController.java
View file @
1faaf47b
...
...
@@ -35,6 +35,7 @@ public class OrderPayController extends BaseController<OrderPayBiz,OrderPay> {
return
baseBiz
.
preparepay
(
orderPayVo
);
}
/**
* 支付回调
*
...
...
@@ -80,4 +81,18 @@ public class OrderPayController extends BaseController<OrderPayBiz,OrderPay> {
out
.
print
(
"<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[]]></return_msg></xml>"
);
}
@PostMapping
(
value
=
"/app/notify/alipay"
)
@IgnoreUserToken
public
String
alipayNotify
(){
return
baseBiz
.
alipayNotify
();
}
@PostMapping
(
value
=
"/app/generate_payment"
)
public
Object
generatePayment
(
@RequestParam
(
"orderCode"
)
String
orderCode
,
@RequestParam
(
"description"
)
String
description
,
@RequestParam
(
"payType"
)
String
payType
,
@RequestParam
(
"amount"
)
Integer
amount
)
{
Object
resp
=
baseBiz
.
generatePayment
(
orderCode
,
description
,
payType
,
amount
);
return
resp
;
}
}
\ No newline at end of file
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
View file @
1faaf47b
...
...
@@ -17,16 +17,16 @@ import java.util.List;
@FeignClient
(
name
=
"vehicle"
)
public
interface
VehicleFeign
{
@GetMapping
(
value
=
"/vehicleModel/{id}"
)
public
ObjectRestResponse
<
VehicleModel
>
get
(
@PathVariable
(
"id"
)
int
id
);
public
ObjectRestResponse
<
VehicleModel
>
get
(
@PathVariable
(
value
=
"id"
)
int
id
);
@GetMapping
(
value
=
"/vehicleInfo/{id}"
)
public
ObjectRestResponse
<
Vehicle
>
get
(
@PathVariable
(
"id"
)
String
id
);
public
ObjectRestResponse
<
Vehicle
>
get
(
@PathVariable
(
value
=
"id"
)
String
id
);
@RequestMapping
(
value
=
"/vehicleInfo/findById"
,
method
=
RequestMethod
.
GET
)
public
RestResponse
<
Vehicle
>
findById
(
@RequestParam
(
"id"
)
String
id
);
public
RestResponse
<
Vehicle
>
findById
(
@RequestParam
(
value
=
"id"
)
String
id
);
@RequestMapping
(
value
=
"/vehicleInfo/getByIds"
,
method
=
RequestMethod
.
GET
)
public
RestResponse
<
List
<
Vehicle
>>
getByIds
(
@RequestParam
(
"ids"
)
List
<
String
>
id
);
public
RestResponse
<
List
<
Vehicle
>>
getByIds
(
@RequestParam
(
value
=
"ids"
)
List
<
String
>
id
);
//修改评分
@RequestMapping
(
value
=
"/vehicleModel/app/addScore"
,
method
=
RequestMethod
.
GET
)
...
...
@@ -36,19 +36,19 @@ public interface VehicleFeign {
public
ObjectRestResponse
<
VehicleBookRecord
>
rentApplyVehicle
(
@RequestBody
RentVehicleBookDTO
rentVehicleBookDTO
);
@RequestMapping
(
value
=
"/branchCompany/app/unauth/detail/{id}"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
CompanyDetail
>
getCompanyDetail
(
@PathVariable
Integer
id
);
public
ObjectRestResponse
<
CompanyDetail
>
getCompanyDetail
(
@PathVariable
(
value
=
"id"
)
Integer
id
);
//租车拒绝预约
@RequestMapping
(
value
=
"/vehicleInfo/rent/book/reject/{bookRecordId}"
,
method
=
RequestMethod
.
PUT
)
public
RestResponse
<
Integer
>
rentRejectVehicleBooking
(
@PathVariable
Long
bookRecordId
);
public
RestResponse
<
Integer
>
rentRejectVehicleBooking
(
@PathVariable
(
value
=
"bookRecordId"
)
Long
bookRecordId
);
//取消预约
@RequestMapping
(
value
=
"/vehicleInfo/unbook/4employee/{bookRecordId}"
,
method
=
RequestMethod
.
DELETE
)
public
RestResponse
<
Integer
>
unbookVehicle
(
@PathVariable
Long
bookRecordId
);
public
RestResponse
<
Integer
>
unbookVehicle
(
@PathVariable
(
value
=
"bookRecordId"
)
Long
bookRecordId
);
//通过预约
@RequestMapping
(
value
=
"/vehicleInfo/book/4employee/prove/{bookRecordId}"
,
method
=
RequestMethod
.
PUT
)
public
RestResponse
<
Integer
>
proveVehicleBooking
(
@PathVariable
Long
bookRecordId
);
public
RestResponse
<
Integer
>
proveVehicleBooking
(
@PathVariable
(
value
=
"bookRecordId"
)
Long
bookRecordId
);
//获取分公司列表
@GetMapping
(
"/branchCompany/all"
)
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/VehicleModelQueryCondition.java
View file @
1faaf47b
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
;
import
com.xxfc.platform.vehicle.entity.VehiclePlatCata
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -23,5 +26,8 @@ public class VehicleModelQueryCondition {
private
String
takeALieTheNumber
;
@ApiModelProperty
(
value
=
"是否删除"
)
private
Integer
isDel
;
@ApiModelProperty
(
"分类逗号分割"
)
String
catasStr
;
@ApiModelProperty
(
value
=
"分类列表"
,
hidden
=
true
)
Map
<
Integer
,
List
<
VehiclePlatCata
>>
catas
;
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleModelBiz.java
View file @
1faaf47b
...
...
@@ -53,9 +53,6 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
*/
public
ObjectRestResponse
findVehicleModelPage
(
VehicleModelQueryCondition
vmqc
)
{
try
{
PageDataVO
<
VehicleModelVo
>
mPageDataVO
=
PageDataVO
.
pageInfo
(
vmqc
.
getPage
(),
vmqc
.
getLimit
(),
()
->
mapper
.
findVehicleModelPage
(
vmqc
));
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehiclePlatCataBiz.java
View file @
1faaf47b
...
...
@@ -33,7 +33,10 @@ import tk.mybatis.mapper.entity.Example;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
...
...
@@ -480,4 +483,20 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
updateSelectiveById
(
vehiclePlatCata
);
return
ObjectRestResponse
.
succ
();
}
public
Map
<
Integer
,
List
<
VehiclePlatCata
>>
groupCatasByParent
(
String
catasStr
)
{
List
<
Integer
>
catasIds
=
Pattern
.
compile
(
","
).
splitAsStream
(
catasStr
).
map
((
s
)
->
Integer
.
parseInt
(
s
)).
collect
(
Collectors
.
toList
());
List
<
VehiclePlatCata
>
catas
=
selectByExample
(
new
Example
.
Builder
(
VehiclePlatCata
.
class
)
.
where
(
WeekendSqls
.<
VehiclePlatCata
>
custom
().
andIn
(
VehiclePlatCata:
:
getId
,
catasIds
)).
build
());
Map
<
Integer
,
List
<
VehiclePlatCata
>>
vpcMap
=
new
HashMap
<
Integer
,
List
<
VehiclePlatCata
>>();
for
(
VehiclePlatCata
vpc
:
catas
)
{
List
<
VehiclePlatCata
>
vpcs
=
vpcMap
.
get
(
vpc
.
getParentId
());
if
(
null
==
vpcs
)
{
vpcs
=
new
ArrayList
<
VehiclePlatCata
>();
}
vpcs
.
add
(
vpc
);
vpcMap
.
put
(
vpc
.
getParentId
(),
vpcs
);
}
return
vpcMap
;
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
1faaf47b
...
...
@@ -363,23 +363,11 @@ public class VehicleController extends BaseController<VehicleBiz> {
//根据时间 获得 可用车辆
//结合车型
if
(
StringUtils
.
isNotBlank
(
dto
.
getCatasStr
()))
{
List
<
Integer
>
catasIds
=
Pattern
.
compile
(
","
).
splitAsStream
(
dto
.
getCatasStr
()).
map
((
s
)
->
Integer
.
parseInt
(
s
)).
collect
(
Collectors
.
toList
());
List
<
VehiclePlatCata
>
catas
=
vehiclePlatCataBiz
.
selectByExample
(
new
Example
.
Builder
(
VehiclePlatCata
.
class
)
.
where
(
WeekendSqls
.<
VehiclePlatCata
>
custom
().
andIn
(
VehiclePlatCata:
:
getId
,
catasIds
)).
build
());
Map
<
Integer
,
List
<
VehiclePlatCata
>>
vpcMap
=
new
HashMap
<
Integer
,
List
<
VehiclePlatCata
>>();
for
(
VehiclePlatCata
vpc
:
catas
)
{
List
<
VehiclePlatCata
>
vpcs
=
vpcMap
.
get
(
vpc
.
getParentId
());
if
(
null
==
vpcs
)
{
vpcs
=
new
ArrayList
<
VehiclePlatCata
>();
}
vpcs
.
add
(
vpc
);
vpcMap
.
put
(
vpc
.
getParentId
(),
vpcs
);
}
dto
.
setCatas
(
vpcMap
);
dto
.
setCatas
(
vehiclePlatCataBiz
.
groupCatasByParent
(
dto
.
getCatasStr
()));
}
//设置显示是否有车
dto
.
setYearNo4Where
(
Boolean
.
TRUE
);
return
new
ObjectRestResponse
<>().
data
(
vehicleBiz
.
searchUsableModel
(
dto
)).
rel
(
true
);
return
ObjectRestResponse
.
succ
(
vehicleBiz
.
searchUsableModel
(
dto
)
);
}
/**
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleModelController.java
View file @
1faaf47b
...
...
@@ -107,6 +107,12 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
if
(
vmqc
==
null
||
vmqc
.
getPage
()
==
null
||
vmqc
.
getLimit
()
==
null
||
vmqc
.
getPage
()
<
0
||
vmqc
.
getLimit
()
<=
0
)
{
return
ObjectRestResponse
.
createDefaultFail
();
}
//结合车型
if
(
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
vmqc
.
getCatasStr
()))
{
vmqc
.
setCatas
(
vehiclePlatCataBiz
.
groupCatasByParent
(
vmqc
.
getCatasStr
()));
}
return
vehicleModelBiz
.
findVehicleModelPage
(
vmqc
);
}
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleModelMapper.xml
View file @
1faaf47b
...
...
@@ -28,6 +28,21 @@
<if
test=
"takeALieTheNumber!=null and takeALieTheNumber!=''"
>
AND EXISTS(SELECT vc2.vehicle_model_id FROM vehicle_cata vc2 WHERE vc2.cata_id=#{takeALieTheNumber} AND vmqc.id=vc2.vehicle_model_id)
</if>
<if
test=
"catas != null"
>
AND ( 1
<foreach
collection=
"catas"
index=
"key"
item=
"cataList"
>
&
(
<foreach
collection=
"cataList"
index=
"cIndex"
item=
"cata"
>
<if
test=
" cIndex != 0"
>
|
</if>
(case when FIND_IN_SET(#{cata.id},vmqc.config) > 0 then 1 else 0 end)
</foreach>
)
</foreach>
) > 0
</if>
ORDER BY vmqc.id ASC
</select>
...
...
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