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
e5e96737
Commit
e5e96737
authored
Oct 12, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
657202fe
a6afcfbc
Changes
51
Show whitespace changes
Inline
Side-by-side
Showing
51 changed files
with
1464 additions
and
163 deletions
+1464
-163
BaseBiz.java
.../java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
+1
-0
SystemConfig.java
...ub/wxiaoqi/security/common/util/process/SystemConfig.java
+3
-0
systemconfig.properties
...mon/src/main/resources/properties/systemconfig.properties
+16
-14
DailyVehicleOrderStatistics.java
...fc/platform/order/entity/DailyVehicleOrderStatistics.java
+11
-0
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+70
-5
OrderAccountBiz.java
...ain/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
+6
-5
OrderVehicleCrosstownBiz.java
...com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
+13
-2
OrderMsgBiz.java
...n/java/com/xxfc/platform/order/biz/inner/OrderMsgBiz.java
+3
-1
BackStageOrderController.java
...om/xxfc/platform/order/rest/BackStageOrderController.java
+7
-0
User.java
...i/src/main/java/com/xxfc/platform/summit/entity/User.java
+4
-4
AccessToken.java
...main/java/com/xxfc/platform/summit/model/AccessToken.java
+107
-0
JsTicket.java
...rc/main/java/com/xxfc/platform/summit/model/JsTicket.java
+100
-0
ActivityBmExcel.java
...n/java/com/xxfc/platform/summit/pojo/ActivityBmExcel.java
+43
-0
ActivityQuery.java
...ain/java/com/xxfc/platform/summit/pojo/ActivityQuery.java
+1
-0
SummitStatus.java
...main/java/com/xxfc/platform/summit/pojo/SummitStatus.java
+20
-0
Sha1.java
...api/src/main/java/com/xxfc/platform/summit/util/Sha1.java
+32
-0
ActivityBiz.java
...c/main/java/com/xxfc/platform/summit/biz/ActivityBiz.java
+62
-24
ActivityBmBiz.java
...main/java/com/xxfc/platform/summit/biz/ActivityBmBiz.java
+72
-16
MeepoUserQdBiz.java
...ain/java/com/xxfc/platform/summit/biz/MeepoUserQdBiz.java
+3
-1
UserBiz.java
...r/src/main/java/com/xxfc/platform/summit/biz/UserBiz.java
+37
-19
ActivityBmController.java
...xxfc/platform/summit/controller/ActivityBmController.java
+47
-8
ActivityShowController.java
...fc/platform/summit/controller/ActivityShowController.java
+1
-1
AuthActivityController.java
...fc/platform/summit/controller/AuthActivityController.java
+14
-0
FrontActivityController.java
...c/platform/summit/controller/FrontActivityController.java
+16
-1
WeixinController.java
...com/xxfc/platform/summit/controller/WeixinController.java
+62
-21
WeChatH5LoginInterceptor.java
...platform/summit/interceptor/WeChatH5LoginInterceptor.java
+16
-9
ActivityMapper.java
.../java/com/xxfc/platform/summit/mapper/ActivityMapper.java
+10
-0
AccessTokenService.java
.../com/xxfc/platform/summit/service/AccessTokenService.java
+107
-0
JsTicketService.java
...ava/com/xxfc/platform/summit/service/JsTicketService.java
+123
-0
WXjsService.java
...in/java/com/xxfc/platform/summit/service/WXjsService.java
+59
-0
WeixinService.java
.../java/com/xxfc/platform/summit/service/WeixinService.java
+11
-0
ActivityMapper.xml
...ummit-server/src/main/resources/mapper/ActivityMapper.xml
+34
-0
RedisKey.java
...n/java/com/xxfc/platform/universal/constant/RedisKey.java
+5
-0
VideoConstant.java
...a/com/xxfc/platform/universal/constant/VideoConstant.java
+8
-0
UploadController.java
.../xxfc/platform/universal/controller/UploadController.java
+22
-3
UploadService.java
...va/com/xxfc/platform/universal/service/UploadService.java
+29
-0
UploadZipService.java
...com/xxfc/platform/universal/service/UploadZipService.java
+1
-1
UploadZipServiceImpl.java
...platform/universal/service/impl/UploadZipServiceImpl.java
+50
-24
BookRecordUpdateLog.java
...com/xxfc/platform/vehicle/entity/BookRecordUpdateLog.java
+55
-0
VehicleCountRecord.java
.../com/xxfc/platform/vehicle/entity/VehicleCountRecord.java
+10
-0
VehicleFeign.java
...in/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
+5
-0
BookRecordUpdateLogBiz.java
...com/xxfc/platform/vehicle/biz/BookRecordUpdateLogBiz.java
+21
-0
VehicleBookRecordBiz.java
...a/com/xxfc/platform/vehicle/biz/VehicleBookRecordBiz.java
+22
-0
VehicleCountRecordBiz.java
.../com/xxfc/platform/vehicle/biz/VehicleCountRecordBiz.java
+44
-0
BookRecordUpdateLogMapper.java
...fc/platform/vehicle/mapper/BookRecordUpdateLogMapper.java
+7
-0
VehicleBookRecordMapper.java
...xxfc/platform/vehicle/mapper/VehicleBookRecordMapper.java
+2
-0
BookRecordUpdateLogController.java
.../platform/vehicle/rest/BookRecordUpdateLogController.java
+20
-0
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+35
-3
generatorConfig.xml
...cle-server/src/main/resources/builder/generatorConfig.xml
+1
-1
BookRecordUpdateLogMapper.xml
...r/src/main/resources/mapper/BookRecordUpdateLogMapper.xml
+5
-0
VehicleBookRecordMapper.xml
...ver/src/main/resources/mapper/VehicleBookRecordMapper.xml
+11
-0
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/biz/BaseBiz.java
View file @
e5e96737
...
...
@@ -126,4 +126,5 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/process/SystemConfig.java
View file @
e5e96737
...
...
@@ -7,6 +7,9 @@ public class SystemConfig {
// 项目url
public
static
final
String
XXMP_URL
=
SystemProperty
.
getConfig
(
"XXMP_URL"
);
// 视频url
public
static
final
String
VIDEO_URL
=
SystemProperty
.
getConfig
(
"VIDEO_URL"
);
// token到期时间
// token到期时间
public
static
Integer
TOKENOVERTIME
=
Integer
.
valueOf
(
SystemProperty
.
getConfig
(
"TOKEN_OVER_TIME"
));
// redis缓存时间
...
...
ace-common/src/main/resources/properties/systemconfig.properties
View file @
e5e96737
#
项目
url
#
\u9879\u76EE
url
XXMP_URL
=
/image
#token到期时间
#\u89C6\u9891\u4FDD\u5B58\u6587\u4EF6
VIDEO_URL
=
/video
#token\u5230\u671F\u65F6\u95F4
TOKEN_OVER_TIME
=
604800
#itoken
到期时间(6天
)
#itoken
\u5230\u671F\u65F6\u95F4(6\u5929
)
REDIS_ITOKEN_TIME
=
51840
#redis
有效期
#redis
\u6709\u6548\u671F
REDIS_TOKEN_TIME
=
604800
#session
有效期
#session
\u6709\u6548\u671F
SESSION_TIME
=
3600
#
默认头像
#
\u9ED8\u8BA4\u5934\u50CF
USER_HEADER_URL_DEFAULT
=
https://xxtest.upyuns.com/image/app/default_%20avatar.png
#
默认昵称
#
\u9ED8\u8BA4\u6635\u79F0
USER_NIKENAME_DEFAULT
=
XX_
#
短信机
#
\u77ED\u4FE1\u673A
ACCESSKEYID
=
LTAInxMDwHQL8yg9
ACCESSKEYSECRET
=
OCKDEiwKGjePCZgPeWMEUFGwGbKYLA
TEMPLATECODE
=
SMS_170070101
SIGNNAME
=
滴房车
#
微信支付配置
SIGNNAME
=
\u
6EF4
\u
623F
\u
8F66
#
\u5FAE\u4FE1\u652F\u4ED8\u914D\u7F6E
WINXIN_AppID
=
wx425608b69a34736f
WINXIN_PARTNER_KEY
=
xxfcXXDfangche74upyuns3AD4334533
WINXIN_PARTNER
=
1539689201
...
...
@@ -31,15 +33,15 @@ APP_ID=wx9ed5e51251cf7c61
APP_PARTNER
=
1539689201
APP_PARTNER_KEY
=
xxfcXXDfangche74upyuns3AD4334533
APP_TRADE_TYPE
=
APP
#
支付回调
#
\u652F\u4ED8\u56DE\u8C03
weixinHost
=
xxtest.upyuns.com
#
证书存放目录
#
\u8BC1\u4E66\u5B58\u653E\u76EE\u5F55
APICLIENT_CERT
=
D:
\\
cert
\\
1514583081_20181017_cert.p12
#
支付宝配置
#
\u652F\u4ED8\u5B9D\u914D\u7F6E
ALIPAY_APPID
=
2019070965781964
ALIPAY_PID
=
2088531634846583
#
支付宝公钥
#
\u652F\u4ED8\u5B9D\u516C\u94A5
ALIPAY_PUBLIC_KEY
=
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj/EMaAD2iJP3I5M0g6pssDDe3RxF5I3ECM/Kz/btM0RiW2g5oRrHSjtGuos9l1QhQAY0SrVqa2eZdPKUB3ZqJdimQiXr3dbiMvG9UCs8vVUcrtCHCBjDllKQLiYzboxE6JLXyfII5tIXbFKiGyiEyXQnffUhQ9uGyT2EGWGecz6PLIjDdbwpxuzF2gIUzV3bPxb+0axejBxJ/3zKnWrsbyq2nvs8XrzrR2CEggNqgqsKzaacCL1yZjXzQRseSnCMtgSxR5W5afbdY0zqbUlLHUrUZ8ycCRC0ECuI9HyTbuqtdWHEZH7vIH44wEQWZPDRhMfMZvzmPUgpTWZLv5BtaQIDAQAB
ALIPAY_ACOUNT
=
xxfc810@163.com
ALIPAY_PRIVATE_KEY
=
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0wXVGAameVSLlLrq7edrMuoabN16/bYJNosLmPlHltEhehKO1ak/oIFvlKGyKwsW+xXd8t27p5hpsHqzNisU/jLbwEi6t0U/RBMbx3ult9zNhsZqSdJxe4QINChudVM6FdE8ssaq19ABwiLisMxxck0IiXDmesGI6vUSNzLEvKyYWTUsVsW1HgYXVjXmi8mOiwuFsJtdALS/psWci3UlX80rYG9KGqSBWT0B0Nr8UcM1L7UEkOHUEf1uq4Ipl5rTzgqoRQN5uHbBu50b7welAL2MFA9D/Ecv+FOfMIiLBtm1/6zNtjo/mvwORtS64mJXCaAbY1Pxa1bqs274fAwWtAgMBAAECggEAOObZ2zL0yZI1jP477H68wUxKyZwRqKN5rKT7Q+4EbBJn4dFRk++mvgVJyIcEPF56T8bsCYfZU6qLUNQLRB1WYN4UTNj8dt14ie0+D7BDvclfFHcLmOU6wKeGtMIk1U94QAzQS9qWSfdJGCQCNrtUR1RYMmbkAK+4DJO+fAEfGiCr1oMQpsz0h6Jhwp/DDBXZEjPdrECOjx2w5ZVULyPxFui2NQ8IS3rTT5SQvOBAgn9dbgZ/FVVbs2x6SpnWyOCUREK0uaLXJgf0JoX1WW4bswZlYmd7qURPscwFVKdYRautimcmO0FOUue62aPSYfvJwx8tTZanQbbwfrr0XrisBQKBgQDyKPYDYZzgGL/G5H8CQZajKnqg7a5AAZXJQLKkF7kiEgOlB3b6OqK6CeKVGawfuNIshECmmKcZmqrsPV42xrZl458kiDyqJNHq2lgFs9kj9BFUDi11EZfDGah4piJo5tgc09Hj6eAmeKdmG7aTS0/954xOK7eBFdG1T6R1Rd9Y4wKBgQC/Fhd5Nw6XYAg4qBmzOnvc9YwEL+wdy0aontFAFzaQlgkYm+efhYyjMcjyj4aloJZzpTd6eKbZI57IzihJI+F8+b1qToQDu8A2BTPkiOyXRcNY3y0LTNx7/gae6a9oGFc+8ILGa41va7WKjuPd08aXpSSBI34u10wWRMP+70m8LwKBgQCLerRYtjyZhyfO84WEUyrkyG7hioU3MLKJvM4oXdGwohefUnFhJ6za4x6zKppNmzLTmUlzq7FzufaBI8fEXShp/3WGoUHv7k1KrIDOqAyF/OqOM6xTJdL3+StkcqyXJ3+K+yaF1AvbnNsuoP/ETzi/0kKqM9v6agrkF/9t3NUMaQKBgCpafS1y1Jscv/W+3KNrLRUWn8g1zwHzkl/Bg+POwVtexflcZQRol3l8iWuqAFApve84CYntwB2U1ZbwiuFbQJlwyVkMuhoRvVK76HqZFseYwOmr3dIJYT1iWplSdnx+GKhsqq/MGvc9SmnBriP20qe+BM9SzJ8ZPVYaO87/vrolAoGARD8/IeEzMCPfYr9zBkE5rBtiT7t6nZXmMc6GH2Vao9meDofN8vj/XEfTGovusUYTWyA2Enac0YKdK6f6f+NYBqGYqn5Ludgxeotzo9UoXd3Hnv1gMCRs4ehloVODkHj2qhkvqL2iuZLsNp/wMq/ZHpRUzT4bO5H2FQhH4SUElKI=
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/DailyVehicleOrderStatistics.java
View file @
e5e96737
...
...
@@ -56,6 +56,16 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics {
@Column
(
name
=
"return_gmv"
)
private
BigDecimal
returnGmv
;
// /**
// * 取消订单扣款总额
// */
// @Column(name = "penal_sum")
// private BigDecimal penalSum;
/**
* 违约总额
*/
...
...
@@ -68,4 +78,5 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics {
@Column
(
name
=
"total_expenditure"
)
private
BigDecimal
totalExpenditure
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
e5e96737
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -8,12 +9,14 @@ import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.google.common.collect.Lists
;
import
com.google.gson.JsonObject
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
...
...
@@ -39,6 +42,7 @@ import com.xxfc.platform.universal.feign.MQSenderFeign;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
com.xxfc.platform.vehicle.constant.ResCode.ResCode
;
import
com.xxfc.platform.vehicle.entity.BookRecordUpdateLog
;
import
com.xxfc.platform.vehicle.entity.BranchCompany
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.VehicleUserLicense
;
...
...
@@ -53,12 +57,10 @@ import org.joda.time.format.DateTimeFormatter;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TimeZone
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
config
.
rabbit
.
RabbitConstant
.*;
...
...
@@ -72,7 +74,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
*/
@Service
@Slf4j
public
class
BaseOrderBiz
extends
BaseBiz
<
BaseOrderMapper
,
BaseOrder
>
{
public
class
BaseOrderBiz
extends
BaseBiz
<
BaseOrderMapper
,
BaseOrder
>
implements
UserRestInterface
{
@Autowired
OrderMemberDetailBiz
orderMemberDetailBiz
;
...
...
@@ -332,6 +334,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
dedDetailDTO
.
setStatusName
(
detailName
);
}
/**
* 获取驾驶人驾照
* @param orderPageVo
*/
public
void
getUserLicense
(
OrderPageVO
orderPageVo
)
{
OrderVehicleCrosstownDto
orderVehicleCrosstownDto
=
new
OrderVehicleCrosstownDto
();
orderVehicleCrosstownDto
.
setOrderId
(
orderPageVo
.
getId
());
...
...
@@ -360,6 +366,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo
.
setOrderVehicleCrosstownDto
(
orderVehicleCrosstownDto
);
}
/**
* 获取驾驶人信息
* @param orderPageVo
*/
public
void
getDriverInfo
(
OrderPageVO
orderPageVo
)
{
List
<
VehicleUserLicense
>
vehicleUserLicenses
=
Lists
.
newArrayList
();
String
myDriverIds
=
orderPageVo
.
getOrderRentVehicleDetail
().
getMyDriverIds
();
...
...
@@ -387,7 +397,57 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo
.
setVehicleUserLicenses
(
vehicleUserLicenses
);
}
public
ObjectRestResponse
save
(
OrderRentVehicleDetail
orderRentVehicleDetail
)
{
if
(
orderRentVehicleDetail
==
null
||
orderRentVehicleDetail
.
getId
()
==
null
)
{
return
ObjectRestResponse
.
paramIsEmpty
();
}
log
.
info
(
"更新订单还车地点》》》 orderRentVehicleDetail = {}"
,
orderRentVehicleDetail
.
toString
());
UserDTO
userDTO
=
getAdminUserInfo
();
if
(
userDTO
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
RSTOKEN_EXPIRED_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
RSTOKEN_EXPIRED_CODE
));
}
StringBuilder
stringBuilder
=
new
StringBuilder
();
OrderRentVehicleDetail
oldValue
=
orderRentVehicleBiz
.
selectById
(
orderRentVehicleDetail
.
getId
());
if
(
oldValue
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
ORDER_IS_NOT_EXIST
.
getCode
(),
ResCode
.
ORDER_IS_NOT_EXIST
.
getDesc
());
}
stringBuilder
.
append
(
"修改订单和预定记录还车公司成功, 订单ID:"
);
stringBuilder
.
append
(
oldValue
.
getOrderId
());
stringBuilder
.
append
(
"; 原还车公司ID: "
);
stringBuilder
.
append
(
oldValue
.
getEndCompanyId
());
stringBuilder
.
append
(
"; 更新后还车公司ID: "
);
stringBuilder
.
append
(
orderRentVehicleDetail
.
getEndCompanyId
());
stringBuilder
.
append
(
"; 操作人ID:"
);
stringBuilder
.
append
(
userDTO
.
getId
());
stringBuilder
.
append
(
"; 操作人账号:"
);
stringBuilder
.
append
(
userDTO
.
getUsername
());
//添加修改记录实体
BookRecordUpdateLog
bookRecordUpdateLog
=
new
BookRecordUpdateLog
();
bookRecordUpdateLog
.
setBookRecordId
(
oldValue
.
getBookRecordId
());
bookRecordUpdateLog
.
setOldRetCompanyId
(
oldValue
.
getEndCompanyId
());
bookRecordUpdateLog
.
setNewRetCompanyId
(
orderRentVehicleDetail
.
getEndCompanyId
());
bookRecordUpdateLog
.
setOperaterId
(
userDTO
.
getId
());
bookRecordUpdateLog
.
setOperaterName
(
userDTO
.
getName
());
bookRecordUpdateLog
.
setOrderId
(
oldValue
.
getOrderId
());
bookRecordUpdateLog
.
setCreateTime
(
new
Date
());
BeanUtil
.
copyProperties
(
orderRentVehicleDetail
,
oldValue
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
).
setIgnoreError
(
true
));
oldValue
.
setEndCompanyId
(
orderRentVehicleDetail
.
getEndCompanyId
());
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
oldValue
);
ObjectRestResponse
objectRestResponse
=
vehicleFeign
.
update
(
bookRecordUpdateLog
);
if
(
objectRestResponse
!=
null
&&
objectRestResponse
.
getRel
())
{
log
.
info
(
stringBuilder
.
toString
());
return
ObjectRestResponse
.
succ
();
}
return
ObjectRestResponse
.
createFailedResult
(
1355
,
"修改失败!"
);
}
/**
* 获取订单详情,包含驾驶人信息,违约金等信息
* @param no
* @return
*/
public
ObjectRestResponse
<
OrderPageVO
>
getOrderDetail
(
String
no
)
{
OrderPageVO
orderPageVo
=
mapper
.
getOrderDetail
(
no
);
if
(
orderPageVo
==
null
)
{
...
...
@@ -641,6 +701,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
return
query
;
}
@Override
public
UserFeign
getUserFeign
()
{
return
userFeign
;
}
/**
* 订单查询类
*/
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
View file @
e5e96737
...
...
@@ -384,6 +384,12 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
String
refundDesc
=
"退还押金:"
+
refundAmont
.
toString
()+
"(已扣除 违章预备金:"
+
illegalReserve
.
toString
();
refundDesc
+=
handleDedRefundDesc
;
refundDesc
+=
")"
;
//还车扣除款 剩余的 钱,再减去违章预备金
oad
.
getDeductions
().
add
(
initDeduction
(
illegalReserve
,
"违章保证金"
,
DeductionTypeEnum
.
VIOLATE_TRAFFIC_KEEP
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
)
);
refundTrigger
(
orderMQDTO
,
orderMQDTO
.
getOrderRentVehicleDetail
(),
illegalReserve
,
originalRefundAmount
,
refundAmont
,
refundDesc
,
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
getCode
(),
AccountTypeEnum
.
OUT_PART_DEPOSIT
,
oad
);
//修改押金退还记录状态
...
...
@@ -417,11 +423,6 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
updateBaseOrder
.
setExtraAmount
(
inProgressVO
.
getExtraAmount
());
baseOrderBiz
.
updateSelectiveByIdReT
(
updateBaseOrder
,
Boolean
.
TRUE
);
//还车扣除款 剩余的 钱,再减去违章预备金
oad
.
getDeductions
().
add
(
initDeduction
(
illegalReserve
,
"违章保证金"
,
DeductionTypeEnum
.
VIOLATE_TRAFFIC_KEEP
,
OrderAccountDeduction
.
ORIGIN_DEPOSIT
)
);
//生成额外的费用明细
csv
.
setConsumeAmount
(
inProgressVO
.
getConsumeAmount
());
csv
.
setModelAmount
(
orderItem
.
getUnitPrice
());
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
View file @
e5e96737
...
...
@@ -172,7 +172,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
OrderRentVehicleDetail
orderRentVehicleDetail
=
orderRentVehicleBiz
.
selectById
(
baseOrder
.
getDetailId
());
if
(
orderVehicleCrosstownDto
.
getType
()
==
CrosstownTypeEnum
.
DEPARTURE
.
getCode
())
{
boolean
flag
=
getTodayTime
(
orderRentVehicleDetail
.
get
End
Time
());
boolean
flag
=
getTodayTime
(
orderRentVehicleDetail
.
get
Start
Time
());
if
(!
flag
)
{
return
ObjectRestResponse
.
createFailedResult
(
3502
,
"今日不是交车日期"
);
}
...
...
@@ -433,9 +433,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public
boolean
getTodayTime
(
Long
time
)
{
long
current
=
System
.
currentTimeMillis
();
if
(
current
<=
(
time
/
(
1000
*
3600
*
24
)
*
(
1000
*
3600
*
24
)
-
TimeZone
.
getDefault
().
getRawOffset
())
+
24
*
60
*
60
*
1000
-
1
)
{
if
(
current
<=
(
getDayStart
(
time
)
+
24
*
60
*
60
*
1000
-
1
)
&&
current
>=
getDayStart
(
time
)
)
{
return
true
;
}
return
false
;
}
public
static
Long
getDayStart
(
Long
time
)
{
long
current
=
time
;
long
zero
=
current
/
(
1000
*
3600
*
24
)
*
(
1000
*
3600
*
24
)
-
TimeZone
.
getDefault
().
getRawOffset
();
return
zero
;
}
public
static
void
main
(
String
[]
args
)
{
StringBuffer
stringBuffer
=
new
StringBuffer
(
"We Are Happy"
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderMsgBiz.java
View file @
e5e96737
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.order.biz.inner;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
...
...
@@ -426,7 +427,8 @@ public class OrderMsgBiz {
setAccountType
(
AccountTypeEnum
.
OUT_PART_DEPOSIT
.
getCode
());
}});
OrderAccountDetail
oad
=
BeanUtil
.
toBean
(
orderAccount
.
getAccountDetail
(),
OrderAccountDetail
.
class
);
OrderAccountDetail
oad
=
JSONUtil
.
toBean
(
orderAccount
.
getAccountDetail
(),
OrderAccountDetail
.
class
);
//BeanUtil.toBean(orderAccount.getAccountDetail(), OrderAccountDetail.class);
OrderAccountDeduction
trafficDeduction
=
new
OrderAccountDeduction
()
{{
setAmount
(
BigDecimal
.
ZERO
);
}};
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BackStageOrderController.java
View file @
e5e96737
...
...
@@ -359,6 +359,13 @@ public class BackStageOrderController extends CommonBaseController implements Us
return
ObjectRestResponse
.
succ
();
}
@PostMapping
(
"/updateEndCompany"
)
@ResponseBody
public
ObjectRestResponse
updateEndCompany
(
@RequestBody
OrderRentVehicleDetail
orderRentVehicleDetail
)
{
return
baseOrderBiz
.
save
(
orderRentVehicleDetail
);
}
@Data
public
static
class
ChangeVehicleDTO
{
String
no
;
...
...
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/entity/User.java
View file @
e5e96737
...
...
@@ -53,11 +53,11 @@ public class User {
@ApiModelProperty
(
"性别"
)
private
String
sex
;
@Column
(
name
=
"
group
"
)
@Column
(
name
=
"
'group'
"
)
@ApiModelProperty
(
"分组"
)
private
Integer
group
;
@Column
(
name
=
"
status
"
)
@Column
(
name
=
"
'status'
"
)
@ApiModelProperty
(
"状态"
)
private
Integer
status
;
...
...
@@ -96,12 +96,12 @@ public class User {
@Column
(
name
=
"createtime"
)
@ApiModelProperty
(
"创建时间"
)
private
Integer
createtime
;
private
Long
createtime
;
@Column
(
name
=
"lastjointime"
)
@ApiModelProperty
(
"待定"
)
private
Integer
lastjointime
;
private
Long
lastjointime
;
@Column
(
name
=
"had_luru"
)
@ApiModelProperty
(
"待定"
)
...
...
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/model/AccessToken.java
0 → 100644
View file @
e5e96737
/**
* Copyright (c) 2011-2014, James Zhan 詹波 (jfinal@126.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
*/
package
com
.
xxfc
.
platform
.
summit
.
model
;
import
java.io.Serializable
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
/**
* 封装 access_token
*/
public
class
AccessToken
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
822464425433824314L
;
private
String
access_token
;
// 正确获取到 access_token 时有值
private
Integer
expires_in
;
// 正确获取到 access_token 时有值
private
Long
expiredTime
;
// 正确获取到 access_token 时有值,存放过期时间
private
String
json
;
@SuppressWarnings
(
"unchecked"
)
public
AccessToken
(
String
jsonStr
)
{
this
.
json
=
jsonStr
;
try
{
JSONObject
temp
=
JSON
.
parseObject
(
jsonStr
);
access_token
=
temp
.
getString
(
"access_token"
);
expires_in
=
temp
.
getInteger
(
"expires_in"
);
if
(
expires_in
!=
null
){
expiredTime
=
System
.
currentTimeMillis
()
+
((
expires_in
-
5
)
*
1000
);
System
.
out
.
println
(
"----expiredTime==="
+
expiredTime
);
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
public
AccessToken
(
String
json
,
String
access_token
,
Integer
expires_in
,
Long
expiredTime
)
{
this
.
json
=
json
;
this
.
access_token
=
access_token
;
this
.
expires_in
=
expires_in
;
this
.
expiredTime
=
expiredTime
;
}
public
String
getJson
()
{
return
json
;
}
public
boolean
isAvailable
()
{
if
(
expiredTime
<
System
.
currentTimeMillis
())
return
false
;
return
access_token
!=
null
;
}
public
void
setAccess_token
(
String
access_token
)
{
this
.
access_token
=
access_token
;
}
public
void
setExpires_in
(
Integer
expires_in
)
{
this
.
expires_in
=
expires_in
;
}
public
void
setExpiredTime
(
Long
expiredTime
)
{
this
.
expiredTime
=
expiredTime
;
}
public
void
setJson
(
String
json
)
{
this
.
json
=
json
;
}
private
Integer
getInt
(
Map
<
String
,
Object
>
temp
,
String
key
)
{
Number
number
=
(
Number
)
temp
.
get
(
key
);
return
number
==
null
?
null
:
number
.
intValue
();
}
public
String
getAccessToken
()
{
return
access_token
;
}
public
Integer
getExpiresIn
()
{
return
expires_in
;
}
public
Long
getExpiredTime
()
{
return
expiredTime
;
}
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/model/JsTicket.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
model
;
import
java.io.Serializable
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
/**
* JsTicket返回封装
*/
public
class
JsTicket
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6600179487477942329L
;
private
String
ticket
;
// 正确获取到 ticket 时有值
private
Integer
expires_in
;
// 正确获取到 access_token 时有值
private
Long
expiredTime
;
// 正确获取到 ticket 时有值,存放过期时间
public
JsTicket
()
{
}
public
JsTicket
(
String
jsonStr
)
{
try
{
JSONObject
temp
=
JSON
.
parseObject
(
jsonStr
);
ticket
=
temp
.
getString
(
"ticket"
);
expires_in
=
temp
.
getInteger
(
"expires_in"
);
if
(
expires_in
!=
null
)
expiredTime
=
System
.
currentTimeMillis
()
+
((
expires_in
-
5
)
*
1000
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
private
Integer
getInt
(
Map
<
String
,
Object
>
temp
,
String
key
)
{
Number
number
=
(
Number
)
temp
.
get
(
key
);
return
number
==
null
?
null
:
number
.
intValue
();
}
public
boolean
isAvailable
()
{
if
(
expiredTime
==
null
)
return
false
;
if
(
expiredTime
<
System
.
currentTimeMillis
())
return
false
;
return
ticket
!=
null
;
}
public
String
getTicket
()
{
return
ticket
;
}
public
Integer
getExpiresIn
()
{
return
expires_in
;
}
public
Integer
getExpires_in
()
{
return
expires_in
;
}
public
void
setExpires_in
(
Integer
expires_in
)
{
this
.
expires_in
=
expires_in
;
}
public
Long
getExpiredTime
()
{
return
expiredTime
;
}
public
void
setExpiredTime
(
Long
expiredTime
)
{
this
.
expiredTime
=
expiredTime
;
}
public
void
setTicket
(
String
ticket
)
{
this
.
ticket
=
ticket
;
}
@Override
public
String
toString
()
{
return
"JsTicket [ticket="
+
ticket
+
", expires_in="
+
expires_in
+
", expiredTime="
+
expiredTime
+
"]"
;
}
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/ActivityBmExcel.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
pojo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
java.util.HashMap
;
import
java.util.Map
;
@Data
public
class
ActivityBmExcel
{
private
final
Map
<
Integer
,
String
>
map
=
new
HashMap
(){{
put
(
0
,
"否"
);
put
(
1
,
"是"
);
}};
@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
String
qdStatus
;
public
void
setQdStatus
(
Integer
qdStatus
)
{
this
.
qdStatus
=
map
.
get
(
qdStatus
);
}
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/ActivityQuery.java
View file @
e5e96737
...
...
@@ -10,6 +10,7 @@ public class ActivityQuery extends Query {
private
String
title
;
private
Long
startTime
;
private
Integer
status
;
/**
* 1.管理后台,2.h5页面
*/
...
...
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/pojo/SummitStatus.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
pojo
;
public
enum
SummitStatus
{
ENROLL
(
"报名中"
,
1
),
IN_PROGRESS
(
"进行中"
,
2
),
End
(
"已结束"
,
3
);
private
String
msg
;
private
Integer
code
;
SummitStatus
(
String
msg
,
Integer
code
)
{
this
.
msg
=
msg
;
this
.
code
=
code
;
}
public
String
getMsg
()
{
return
msg
;
}
public
Integer
getCode
()
{
return
code
;
}
}
xx-summit/xx-summit-api/src/main/java/com/xxfc/platform/summit/util/Sha1.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
util
;
import
java.security.MessageDigest
;
public
class
Sha1
{
//Sha1签名
public
static
String
getSha1
(
String
str
)
{
if
(
str
==
null
||
str
.
length
()
==
0
)
{
return
null
;
}
char
hexDigits
[]
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
};
try
{
MessageDigest
mdTemp
=
MessageDigest
.
getInstance
(
"SHA1"
);
mdTemp
.
update
(
str
.
getBytes
(
"GBK"
));
byte
[]
md
=
mdTemp
.
digest
();
int
j
=
md
.
length
;
char
buf
[]
=
new
char
[
j
*
2
];
int
k
=
0
;
for
(
int
i
=
0
;
i
<
j
;
i
++)
{
byte
byte0
=
md
[
i
];
buf
[
k
++]
=
hexDigits
[
byte0
>>>
4
&
0xf
];
buf
[
k
++]
=
hexDigits
[
byte0
&
0xf
];
}
return
new
String
(
buf
);
}
catch
(
Exception
e
)
{
return
null
;
}
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/ActivityBiz.java
View file @
e5e96737
...
...
@@ -3,19 +3,23 @@ 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.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
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
com.xxfc.platform.summit.pojo.SummitStatus
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
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
x.xml.crypto.Data
;
import
java.util.
Date
;
import
java
.math.BigDecimal
;
import
java.util.
HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author Administrator
...
...
@@ -23,6 +27,9 @@ import java.util.List;
@Service
public
class
ActivityBiz
extends
BaseBiz
<
ActivityMapper
,
Activity
>
{
@Value
(
"${wx.qdLimts}"
)
private
BigDecimal
qdLimts
;
/**
* 未删除
*/
...
...
@@ -35,32 +42,43 @@ public class ActivityBiz extends BaseBiz<ActivityMapper, Activity> {
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
*
60
*
60
)+
"%"
);
}
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);
//// }
// 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 * 60 * 60) + "%");
// }
// if (query.getStatus() != null) {
// criteria.andEqualTo("status", query.getStatus());
// switch (query.getStatus()) {
// case 1:
//
// criteria.orLessThan("startTime", System.currentTimeMillis());
// break;
// case 2:
// criteria.orBetween("startTime", System.currentTimeMillis(),"endTime");
// break;
// case 3:
// criteria.orGreaterThan("endTime", System.currentTimeMillis());
// break;
// default:
// throw new IllegalStateException("Unexpected value: " + query.getStatus());
// }
// }
//
// if (query.getType() != null && AccessType.PUBLIC.getCode().equals(query.getType())) {
// criteria.andEqualTo("isPublish", PUBLISHED);
// }
// exa.orderBy("rank").asc().orderBy("startTime").desc();
PageHelper
.
startPage
(
query
.
getPage
(),
query
.
getLimit
());
List
<
Activity
>
activities
=
mapper
.
selectBy
Example
(
exa
);
List
<
Activity
>
activities
=
mapper
.
selectBy
Query
(
query
);
return
new
PageInfo
<
Activity
>(
activities
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -105,4 +123,24 @@ public class ActivityBiz extends BaseBiz<ActivityMapper, Activity> {
activity
.
setUpdTime
(
System
.
currentTimeMillis
());
mapper
.
updateByPrimaryKeySelective
(
activity
);
}
public
ObjectRestResponse
checkQdlimits
(
Double
latitude
,
Double
longitude
,
Integer
id
){
Map
<
String
,
Object
>
map
=
initParam
(
latitude
,
longitude
,
id
);
BigDecimal
dinate
=
mapper
.
getdinate
(
map
);
int
status
=
0
;
if
(
qdLimts
.
compareTo
(
dinate
)>=
0
){
status
=
1
;
}
return
ObjectRestResponse
.
succ
(
status
);
}
private
Map
<
String
,
Object
>
initParam
(
Double
latitude
,
Double
longitude
,
Integer
id
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"latitude"
,
latitude
);
params
.
put
(
"longitude"
,
longitude
);
params
.
put
(
"id"
,
id
);
return
params
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/ActivityBmBiz.java
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
biz
;
import
com.alibaba.fastjson.JSON
;
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.google.common.collect.Lists
;
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.ActivityBmExcel
;
import
com.xxfc.platform.summit.pojo.ActivityBmQuery
;
import
com.xxfc.platform.summit.vo.MeepoActivityVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtilsBean
;
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.LinkedList
;
import
java.util.List
;
/**
...
...
@@ -47,6 +50,7 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
//用户报名
public
ObjectRestResponse
userBmOrQd
(
ActivityBm
activityBm
,
Integer
meepoUserId
)
throws
Exception
{
...
...
@@ -107,9 +111,7 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
if
(
StringUtils
.
isBlank
(
json
)){
return
null
;
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
json
);
BeanUtils
.
copyProperties
(
jsonObject
,
bm
);
return
bm
;
return
JSON
.
parseObject
(
json
,
ActivityBm
.
class
);
}
public
ActivityBm
checkUserBm
(
Integer
meepoUserId
,
Integer
activityId
){
...
...
@@ -159,20 +161,29 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
ObjectRestResponse
restResponse
=
userBmOrQd
(
activityBm
,
userId
);
if
(
restResponse
.
getStatus
()==
RestCode
.
SUCCESS
.
getStatus
()){
log
.
info
(
"-----userBmByKey---key已存在去报名/签到----报名/签到成功"
);
if
(
activityBm
.
getBmStatus
()==
1
){
if
(
activityBm
.
getBmStatus
()
!=
null
&&
activityBm
.
getBmStatus
()
==
1
){
jsonObject
.
put
(
"isbm"
,
1
);
jsonObject
.
put
(
"bm
_s
tatus"
,
1
);
}
else
if
(
activityBm
.
getQdStatus
()==
1
){
jsonObject
.
put
(
"bm
S
tatus"
,
1
);
}
else
if
(
activityBm
.
getQdStatus
()
!=
null
&&
activityBm
.
getQdStatus
()
==
1
){
jsonObject
.
put
(
"isqd"
,
1
);
jsonObject
.
put
(
"qd
_s
tatus"
,
1
);
jsonObject
.
put
(
"qd
S
tatus"
,
1
);
}
}
else
{
}
else
if
(
restResponse
.
getStatus
()==
ResultCode
.
EXIST_CODE
){
log
.
info
(
"-----userBmByKey---key已存在已报名/签到----"
);
if
(
activityBm
.
getBmStatus
()!=
null
&&
activityBm
.
getBmStatus
()==
1
){
jsonObject
.
put
(
"isbm"
,
1
);
}
else
if
(
activityBm
.
getQdStatus
()!=
null
&&
activityBm
.
getQdStatus
()==
1
){
jsonObject
.
put
(
"isqd"
,
1
);
}
jsonObject
.
put
(
"value"
,
activityBm
);
}
else
{
log
.
info
(
"-----userBmByKey---key已存在去报名/签到----报名/签到失败"
);
if
(
activityBm
.
getBmStatus
()==
1
){
jsonObject
.
put
(
"bm
_s
tatus"
,
2
);
}
else
if
(
activityBm
.
getQdStatus
()==
1
){
jsonObject
.
put
(
"qd
_s
tatus"
,
2
);
if
(
activityBm
.
getBmStatus
()
!=
null
&&
activityBm
.
getBmStatus
()
==
1
){
jsonObject
.
put
(
"bm
S
tatus"
,
2
);
}
else
if
(
activityBm
.
getQdStatus
()
!=
null
&&
activityBm
.
getQdStatus
()
==
1
){
jsonObject
.
put
(
"qd
S
tatus"
,
2
);
}
jsonObject
.
put
(
"value"
,
activityBm
);
}
summbitRedisTemplate
.
delete
(
key
);
}
...
...
@@ -186,6 +197,7 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
//获取峰会活动详情
public
ObjectRestResponse
getActivityById
(
Integer
activityId
,
String
key
,
HttpServletRequest
request
){
log
.
info
(
"--getActivityById---activityId==="
+
activityId
+
"----key===="
+
key
);
if
(
activityId
==
0
||
activityId
==
null
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NOTEXIST_CODE
,
"参数为空"
);
}
...
...
@@ -231,7 +243,8 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
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
()));
String
format
=
String
.
format
(
"%%%s%%"
,
query
.
getInviter
().
trim
());
criteria
.
andLike
(
"inviter"
,
format
);
}
if
(
StringUtils
.
isNotBlank
(
query
.
getName
()))
{
...
...
@@ -251,4 +264,47 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
public
ActivityBm
userBm
(
ActivityBm
activityBm
,
Integer
id
)
{
return
null
;
}
public
List
<
ActivityBmExcel
>
excel
(
ActivityBmQuery
query
)
throws
Exception
{
PageInfo
<
ActivityBm
>
pageInfo
=
list
(
query
);
LinkedList
<
ActivityBmExcel
>
activityBmExcels
=
Lists
.
newLinkedList
();
List
<
ActivityBm
>
list
=
pageInfo
.
getList
();
for
(
ActivityBm
activityBm
:
list
)
{
ActivityBmExcel
activityBmExcel
=
new
ActivityBmExcel
();
BeanUtilsBean
.
getInstance
().
copyProperties
(
activityBmExcel
,
activityBm
);
activityBmExcels
.
add
(
activityBmExcel
);
}
return
activityBmExcels
;
}
public
ObjectRestResponse
checkSubscribe
(
HttpServletRequest
request
){
int
subscribe
=-
1
;
User
user
=
userBiz
.
getSession
(
request
);
if
(
user
!=
null
&&
StringUtils
.
isNotBlank
(
user
.
getOpenId
())){
subscribe
=
userBiz
.
checkSubscribe
(
user
.
getOpenId
());
}
return
ObjectRestResponse
.
succ
(
subscribe
);
}
//获取用户信息
public
ObjectRestResponse
getUserInfo
(
Integer
parentId
,
HttpServletRequest
request
){
JSONObject
obj
=
new
JSONObject
();
obj
.
put
(
"pId"
,
0
);
obj
.
put
(
"name"
,
""
);
User
user
=
userBiz
.
getSession
(
request
);
if
(
user
!=
null
){
obj
.
put
(
"pId"
,
user
.
getId
());
obj
.
put
(
"name"
,
user
.
getNickName
());
}
if
(
parentId
!=
null
&&
parentId
>
0
){
user
=
userBiz
.
selectById
(
parentId
);
if
(
user
!=
null
){
obj
.
put
(
"name"
,
user
.
getNickName
());
}
}
return
ObjectRestResponse
.
succ
(
obj
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/MeepoUserQdBiz.java
View file @
e5e96737
...
...
@@ -52,7 +52,9 @@ public class MeepoUserQdBiz extends BaseBiz<MeepoUserQdMapper, MeepoUserQd> {
meepoUserQd
.
setWeId
(
weId
);
meepoUserQd
.
setCreateTime
(
System
.
currentTimeMillis
()/
1000L
);
insertSelective
(
meepoUserQd
);
user
.
setQdStatus
(
1
);
userBiz
.
updateSelectiveById
(
user
);
log
.
info
(
"----签到成功---meepoUserId==="
+
meepoUserId
);
}
...
...
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/biz/UserBiz.java
View file @
e5e96737
...
...
@@ -2,6 +2,7 @@ package com.xxfc.platform.summit.biz;
import
cn.hutool.core.codec.Base64
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
...
...
@@ -80,21 +81,24 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
userId
=
uses
.
get
(
0
).
getId
();
user
.
setId
(
userId
);
}
else
{
Long
time
=
System
.
currentTimeMillis
()/
1000L
;
user
.
setWeId
(
weId
);
user
.
setRId
(
rId
);
user
.
setCreatetime
(
time
);
user
.
setLastjointime
(
time
);
insertSelective
(
user
);
userId
=
user
.
getId
();
}
return
userId
;
}
public
void
authUser
(
String
code
,
String
key
,
HttpServletRequest
request
){
public
void
authUser
(
String
code
,
String
key
,
Integer
activityId
,
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
;
String
openid
=
"oXDd91N8Rwijd3gscAND9TO77a2I"
;
/*
String access_token = null;
try {
JSONObject jsonData = weixinService.getAccessToken(code);
openid = jsonData.getString("openid");
...
...
@@ -112,29 +116,31 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
e.printStackTrace();
log.info("网络异常===" + e.getMessage());
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("网络异常"));
}
}
*/
try
{
// 获取微信用户基本信息
JSONObject
userinfo_json
=
weixinService
.
getUserInfo
(
access_token
,
openid
);
/*
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
());
log.info("微信用户基本信息---user===" +userinfo_json.toJSONString());*/
if
(
activityId
==
null
||
activityId
==
0
){
ActivityBm
activityBm
=
activityBmBiz
.
userInfo
(
key
);
if
(
activityBm
==
null
){
log
.
info
(
"redis的报名信息为空"
);
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
Sets
.
newSet
(
"redis的报名信息为空"
));
}
Integer
activityId
=
activityBm
.
getActivityId
();
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"
);
String
nickName
=
"小雨"
;
//
userinfo_json.getString("nickname");
String
headimgurl
=
"http://thirdwx.qlogo.cn/mmopen/4eFHvhmOX6XuiaG6ib7wxkLa8AwMLFIbW9BSJ7EmwC3kRMUdgCrobdRUbhjMXbkY7aBc2CazjXFJiap5ianMH6yQnH2UQ4TfkXJw/132"
;
//
userinfo_json.getString("headimgurl");
String
sex
=
"2"
;
//
userinfo_json.getString("sex");
if
(
StringUtils
.
isBlank
(
sex
)){
sex
=
"0"
;
}
...
...
@@ -166,10 +172,8 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
if
(
StringUtils
.
isBlank
(
frontSessionValue1
))
{
return
null
;
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
frontSessionValue1
);
User
user
=
new
User
();
BeanUtils
.
copyProperties
(
jsonObject
,
user
);
return
user
;
frontSessionValue1
=
new
String
(
Base64
.
decode
(
frontSessionValue1
),
"utf-8"
);
return
JSON
.
parseObject
(
frontSessionValue1
,
User
.
class
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
null
;
...
...
@@ -189,6 +193,20 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
return
null
;
}
//判断用户是否关注过
public
int
checkSubscribe
(
String
openId
){
JSONObject
userinfo_json
=
weixinService
.
getBaseUserInfo
(
openId
);
int
subscribe
=
0
;
if
(
userinfo_json
==
null
||
StringUtils
.
isNotBlank
(
userinfo_json
.
getString
(
"errcode"
)))
{
log
.
info
(
"调用获取用户基本信息失败"
);
return
subscribe
;
}
subscribe
=
userinfo_json
.
getInteger
(
"subscribe"
);
return
subscribe
;
}
...
...
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/ActivityBmController.java
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
controller
;
import
cn.hutool.core.io.IoUtil
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
cn.hutool.poi.excel.ExcelWriter
;
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.ActivityBmExcel
;
import
com.xxfc.platform.summit.pojo.ActivityBmQuery
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
"/activityBm"
)
public
class
ActivityBmController
extends
BaseController
<
ActivityBmBiz
,
ActivityBm
>
{
@Api
(
tags
=
{
"峰会报名信息"
})
public
class
ActivityBmController
extends
BaseController
<
ActivityBmBiz
,
ActivityBm
>
{
@Autowired
HttpServletResponse
response
;
@Autowired
UserBiz
userBiz
;
@PostMapping
(
"/add"
)
public
ObjectRestResponse
bm
(
@RequestBody
ActivityBm
activityBm
,
HttpServletRequest
request
){
User
user
=
userBiz
.
getSession
(
request
);
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
)
{
return
ObjectRestResponse
.
succ
(
baseBiz
.
userBm
(
activityBm
,
user
.
getId
()));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ObjectRestResponse
.
createDefaultFail
();
}
...
...
@@ -39,9 +50,37 @@ public class ActivityBmController extends BaseController<ActivityBmBiz,ActivityB
@PostMapping
(
"/list"
)
public
ObjectRestResponse
getList
(
@RequestBody
ActivityBmQuery
query
)
{
public
ObjectRestResponse
getList
(
@RequestBody
ActivityBmQuery
query
)
{
return
ObjectRestResponse
.
succ
(
baseBiz
.
list
(
query
));
}
@PostMapping
(
"/excel"
)
@ApiOperation
(
"下载报名信息excel表"
)
public
void
getExcel
(
@RequestBody
ActivityBmQuery
query
)
throws
Exception
{
List
<
ActivityBmExcel
>
rows
=
baseBiz
.
excel
(
query
);
// 通过工具类创建writer,默认创建xls格式
ExcelWriter
writer
=
ExcelUtil
.
getWriter
();
writer
.
addHeaderAlias
(
"name"
,
"姓名"
);
writer
.
addHeaderAlias
(
"phone"
,
"电话"
);
writer
.
addHeaderAlias
(
"idNumber"
,
"身份证号"
);
writer
.
addHeaderAlias
(
"inviter"
,
"邀请人"
);
writer
.
addHeaderAlias
(
"qdStatus"
,
"是否签到"
);
// 一次性写出内容,使用默认样式,强制输出标题
writer
.
write
(
rows
,
true
);
//out为OutputStream,需要写出到的目标流
//response为HttpServletResponse对象
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename=nameList.xls"
);
ServletOutputStream
out
=
response
.
getOutputStream
();
writer
.
flush
(
out
,
true
);
// 关闭writer,释放内存
writer
.
close
();
//此处记得关闭输出Servlet流
IoUtil
.
close
(
out
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/ActivityShowController.java
View file @
e5e96737
...
...
@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping
(
"/activityShow"
)
public
class
ActivityShowController
extends
BaseController
<
ActivityShowBiz
,
ActivityShow
>
{
@GetMapping
(
"/one/{activityId}"
)
@GetMapping
(
"/
app/unauth/
one/{activityId}"
)
public
ObjectRestResponse
getOne
(
@PathVariable
Integer
activityId
){
return
ObjectRestResponse
.
succ
(
baseBiz
.
getOne
(
activityId
));
}
...
...
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/AuthActivityController.java
View file @
e5e96737
...
...
@@ -5,6 +5,7 @@ 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.biz.UserBiz
;
import
com.xxfc.platform.summit.entity.ActivityBm
;
...
...
@@ -27,6 +28,9 @@ public class AuthActivityController extends BaseController<ActivityBmBiz,Activit
@Autowired
UserBiz
userBiz
;
@Autowired
private
ActivityBmBiz
activityBmBiz
;
@PostMapping
(
"app/unauth/bm"
)
public
ObjectRestResponse
bm
(
@RequestBody
ActivityBm
activityBm
,
HttpServletRequest
request
){
...
...
@@ -52,5 +56,15 @@ public class AuthActivityController extends BaseController<ActivityBmBiz,Activit
}
@GetMapping
(
"app/unauth/subscribe"
)
public
ObjectRestResponse
subscribe
(
HttpServletRequest
request
){
return
activityBmBiz
.
checkSubscribe
(
request
);
}
@GetMapping
(
"app/unauth/userInfo"
)
public
ObjectRestResponse
userInfo
(
Integer
pId
,
HttpServletRequest
request
){
return
activityBmBiz
.
getUserInfo
(
pId
,
request
);
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/FrontActivityController.java
View file @
e5e96737
...
...
@@ -7,7 +7,6 @@ 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.*
;
...
...
@@ -26,6 +25,9 @@ public class FrontActivityController extends BaseController<ActivityBiz, Activit
@Autowired
private
ActivityBmBiz
activityBmBiz
;
@Autowired
private
ActivityBiz
activityBiz
;
@GetMapping
(
"app/unauth/info"
)
public
ObjectRestResponse
info
(
...
...
@@ -36,6 +38,19 @@ public class FrontActivityController extends BaseController<ActivityBiz, Activit
return
activityBmBiz
.
getActivityById
(
activityId
,
key
,
request
);
}
@GetMapping
(
"app/unauth/qdLimts"
)
public
ObjectRestResponse
qdLimts
(
@RequestParam
(
value
=
"activityId"
,
defaultValue
=
"0"
)
Integer
activityId
,
@RequestParam
(
value
=
"latitude"
,
required
=
false
)
Double
latitude
,
@RequestParam
(
value
=
"longitude"
,
required
=
false
)
Double
longitude
){
return
activityBiz
.
checkQdlimits
(
latitude
,
longitude
,
activityId
);
}
...
...
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/controller/WeixinController.java
View file @
e5e96737
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.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
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.
constant.RedisKey
;
import
com.xxfc.platform.summit.
service.WXjsService
;
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
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
/**
* @author Administrator
...
...
@@ -30,7 +26,6 @@ import javax.servlet.http.HttpSession;
public
class
WeixinController
{
public
static
final
String
WECHAT_AUTOLOGIN_CALLBACKURL_KEY
=
"callback"
;
public
static
final
String
WECHAT_REDIS_KEY
=
"key"
;
@Autowired
WeixinService
weixinService
;
...
...
@@ -41,25 +36,29 @@ public class WeixinController {
@Autowired
ActivityBmBiz
activityBmBiz
;
public
static
final
String
frontSessionKey
=
"frontWeixKey"
;
@Autowired
WXjsService
wXjsService
;
@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
);
public
String
wxLogin
(
@RequestParam
(
value
=
"callback"
,
defaultValue
=
""
)
String
redirec_url
){
if
(
StringUtils
.
isBlank
(
redirec_url
)){
redirec_url
=
""
;
}
log
.
info
(
"-----微信wxLogin---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
);
redirec_url
=
url
+
"?"
+
WECHAT_AUTOLOGIN_CALLBACKURL_KEY
+
"="
+
encrypt_curr_url
;
String
oauth_api
=
redirec_url
+
"&code=111"
;
//weixinService.getAuthorize(redirec_url);
log
.
info
(
"-----微信wxLogin---oauth_api=="
+
redirec_url
);
return
String
.
format
(
"redirect:"
+
oauth_api
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
...
...
@@ -75,17 +74,59 @@ public class WeixinController {
* @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
);
public
String
getUserInformation
(
String
code
,
String
callback
,
HttpServletRequest
request
)
{
log
.
info
(
"-----微信回调userInfo---code=="
+
code
+
"----redirec_url==="
+
callback
);
try
{
userBiz
.
authUser
(
code
,
key
,
request
);
callback
=
new
String
(
Base64
.
decode
(
callback
),
"utf-8"
);
log
.
info
(
"-----微信回调----callback==="
+
callback
);
String
[]
params
=
callback
.
split
(
","
);
String
key
=
null
;
if
(
params
.
length
>
1
){
callback
=
params
[
0
];
key
=
RedisKey
.
CONSTANT_CODE_PREFIX
+
params
[
1
];
}
params
=
callback
.
split
(
"_"
);
Integer
activityId
=
0
;
String
auto
=
null
;
if
(
params
.
length
>
1
){
callback
=
params
[
0
];
activityId
=
Integer
.
parseInt
(
params
[
1
]);
auto
=
"1"
;
}
log
.
info
(
"-----微信回调userInfo---key=="
+
key
+
"----activityId==="
+
activityId
+
"----callback==="
+
callback
);
userBiz
.
authUser
(
code
,
key
,
activityId
,
request
);
if
(
StringUtils
.
isNotBlank
(
key
)){
callback
+=
"&key="
+
key
;
}
if
(
StringUtils
.
isNotBlank
(
auto
)&&
callback
.
contains
(
"summitDetail.html"
)){
callback
+=
"&a=1"
;
}
log
.
info
(
"callback==="
+
callback
);
return
String
.
format
(
"redirect:"
+
callback
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
log
.
info
(
"网络异常==="
+
e
.
getMessage
());
return
String
.
format
(
"网络异常"
);
}
return
String
.
format
(
"redirect:"
+
callback
);
}
/**
* 微信分享
* @param url
* @return
*/
@GetMapping
(
value
=
"/app/unauth/share"
)
public
@ResponseBody
ObjectRestResponse
share
(
@RequestParam
(
"url"
)
String
url
)
{
log
.
info
(
"-----微信分享share---url=="
+
url
);
try
{
return
ObjectRestResponse
.
succ
(
wXjsService
.
getShareData
(
url
));
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"网络异常"
);
}
}
...
...
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/interceptor/WeChatH5LoginInterceptor.java
View file @
e5e96737
...
...
@@ -4,7 +4,6 @@ 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
;
...
...
@@ -13,6 +12,7 @@ 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.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -41,6 +41,9 @@ public class WeChatH5LoginInterceptor extends HandlerInterceptorAdapter {
@Autowired
private
RedisTemplate
summbitRedisTemplate
;
@Value
(
"${wx.authUrl}"
)
private
String
authUrl
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
...
...
@@ -59,15 +62,17 @@ public class WeChatH5LoginInterceptor extends HandlerInterceptorAdapter {
return
true
;
}
String
redisKey
=
redisInfo
(
request
);
Map
<
String
,
Object
>
result
=
new
HashMap
<>
();
JSONObject
result
=
new
JSONObject
();
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"
);
json
.
put
(
"url"
,
authUrl
);
result
.
put
(
"data"
,
json
);
result
.
put
(
"status"
,
1001
);
response
.
getWriter
().
write
(
result
.
toString
());
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setContentType
(
"application/json; charset=utf-8"
);
response
.
getWriter
().
append
(
result
.
toString
());
return
false
;
}
return
true
;
...
...
@@ -87,15 +92,17 @@ public class WeChatH5LoginInterceptor extends HandlerInterceptorAdapter {
{
e
.
printStackTrace
();
}
String
redisLockK
ey
=
null
;
String
k
ey
=
null
;
if
(
StringUtils
.
isNotBlank
(
jb
)){
redisLockKey
=
RedisKey
.
CONSTANT_CODE_PREFIX
+
UUID
.
randomUUID
();
Boolean
suc
=
summbitRedisTemplate
.
opsForValue
().
setIfAbsent
(
redisLockKey
,
jb
);
key
=
UUID
.
randomUUID
()+
""
;
String
redisLockKey
=
RedisKey
.
CONSTANT_CODE_PREFIX
+
key
;
log
.
info
(
"-----jb====="
+
jb
.
toString
());
Boolean
suc
=
summbitRedisTemplate
.
opsForValue
().
setIfAbsent
(
redisLockKey
,
jb
.
toString
());
if
(
suc
)
{
summbitRedisTemplate
.
expire
(
redisLockKey
,
5
,
TimeUnit
.
MINUTES
);
//5分钟内过期
}
}
return
redisLockK
ey
;
return
k
ey
;
}
...
...
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/mapper/ActivityMapper.java
View file @
e5e96737
...
...
@@ -2,7 +2,14 @@ package com.xxfc.platform.summit.mapper;
import
com.xxfc.platform.summit.entity.Activity
;
import
com.xxfc.platform.summit.pojo.ActivityQuery
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.entity.Example
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -10,4 +17,7 @@ import tk.mybatis.mapper.common.Mapper;
*/
public
interface
ActivityMapper
extends
Mapper
<
Activity
>
{
List
<
Activity
>
selectByQuery
(
ActivityQuery
query
);
BigDecimal
getdinate
(
@Param
(
"params"
)
Map
<
String
,
Object
>
map
);
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/service/AccessTokenService.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
service
;
import
com.xxfc.platform.summit.model.AccessToken
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xxfc.platform.summit.util.HttpRequestUtil
;
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.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
java.util.concurrent.TimeUnit
;
/**
* 认证并获取 access_token API
* http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96access_token
*
* AccessToken默认存储于内存中,可设置存储于redis或者实现IAccessTokenCache到数据库中实现分布式可用
*
* 具体配置:
* <pre>
* ApiConfigKit.setAccessTokenCache(new RedisAccessTokenCache());
* </pre>
*/
@Service
@Slf4j
public
class
AccessTokenService
{
@Autowired
private
RedisTemplate
summbitRedisTemplate
;
// "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
private
static
String
url
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"
;
//"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
@Value
(
"${wx.appid}"
)
private
String
wy_appid
;
@Value
(
"${wx.appSercet}"
)
private
String
wy_secret
;
/**
* 从缓存中获取 access token,如果未取到或者 access token 不可用则先更新再获取
*/
public
AccessToken
getAccessToken
()
{
//从缓存中读取出accessToken
//RedisUtil redisUtil = new RedisUtil(ConstantConfig.REDIS_IP,ConstantConfig.REDIS_PORT);
//创建一个jedis的对象。
String
accessTokenRedis
=
summbitRedisTemplate
.
opsForValue
().
get
(
wy_appid
)
==
null
?
""
:
summbitRedisTemplate
.
opsForValue
().
get
(
wy_appid
).
toString
();
log
.
info
(
"---accessTokenRedis===="
+
accessTokenRedis
);
if
(
StringUtils
.
isNotBlank
(
accessTokenRedis
))
{
JSONObject
obj
=
JSONObject
.
parseObject
(
accessTokenRedis
).
getJSONObject
(
wy_appid
);
AccessToken
accessToken
=
new
AccessToken
(
obj
.
getString
(
"json"
),
obj
.
getString
(
"accessToken"
),
obj
.
getInteger
(
"expiresIn"
),
obj
.
getLong
(
"expiredTime"
));
if
(
accessToken
.
isAvailable
()){
return
accessToken
;
}
summbitRedisTemplate
.
delete
(
wy_appid
);
}
refreshAccessToken
();
accessTokenRedis
=
summbitRedisTemplate
.
opsForValue
().
get
(
wy_appid
)
==
null
?
""
:
summbitRedisTemplate
.
opsForValue
().
get
(
wy_appid
).
toString
();
JSONObject
obj
=
JSONObject
.
parseObject
(
accessTokenRedis
).
getJSONObject
(
wy_appid
);
AccessToken
accessToken
=
new
AccessToken
(
obj
.
getString
(
"json"
),
obj
.
getString
(
"accessToken"
),
obj
.
getInteger
(
"expiresIn"
),
obj
.
getLong
(
"expiredTime"
));
return
accessToken
;
//return (AccessToken) ehcache.get(SystemConfig.WINXIN_AppID).getObjectValue();
}
private
AccessToken
AccessToken
(
String
string
,
String
string2
,
Integer
integer
)
{
// TODO Auto-generated method stub
return
null
;
}
/**
* 直接获取 accessToken 字符串,方便使用
* @return String accessToken
*/
public
String
getAccessTokenStr
()
{
return
getAccessToken
().
getAccessToken
();
}
/**
* 强制更新 access token 值
*/
public
void
refreshAccessToken
()
{
//RedisUtil redisUtil = new RedisUtil(ConstantConfig.REDIS_IP,ConstantConfig.REDIS_PORT);
AccessToken
result
=
null
;
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
// 最多三次请求
String
json
=
HttpRequestUtil
.
httpGet
(
url
+
"&appid="
+
wy_appid
+
"&secret="
+
wy_secret
);
log
.
info
(
"---json===="
+
json
);
result
=
new
AccessToken
(
json
);
if
(
result
.
isAvailable
())
break
;
}
// 三次请求如果仍然返回了不可用的 access token 仍然 put 进去,便于上层通过 AccessToken 中的属性判断底层的情况
JSONObject
obj
=
new
JSONObject
();
obj
.
put
(
wy_appid
,
result
);
Boolean
suc
=
summbitRedisTemplate
.
opsForValue
().
setIfAbsent
(
wy_appid
,
obj
.
toJSONString
());
if
(
suc
)
{
summbitRedisTemplate
.
expire
(
wy_appid
,
result
.
getExpiresIn
(),
TimeUnit
.
MINUTES
);
}
}
}
\ No newline at end of file
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/service/JsTicketService.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
service
;
import
com.xxfc.platform.summit.model.JsTicket
;
import
com.xxfc.platform.summit.util.HttpRequestUtil
;
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.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.concurrent.TimeUnit
;
/**
*
* 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据
* https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
*
* 微信卡券接口签名凭证api_ticket
* https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
*/
@Service
@Slf4j
public
class
JsTicketService
{
@Autowired
private
RedisTemplate
summbitRedisTemplate
;
@Autowired
AccessTokenService
tokenService
;
private
static
String
apiUrl
=
"https://api.weixin.qq.com/cgi-bin/ticket/getticket?"
;
@Value
(
"${wx.appid}"
)
private
String
wy_appid
;
@Value
(
"${wx.appSercet}"
)
private
String
wy_secret
;
/**
* JSApi的类型
*
* jsapi: 用于分享等js-api
*
* wx_card:用于卡券接口签名凭证api_ticket
*
*/
public
enum
JsApiType
{
jsapi
,
wx_card
}
/**
*
* http GET请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket)
*
* @param jsApiType
* @return JsTicket
*/
@SuppressWarnings
(
"null"
)
public
JsTicket
getTicket
(
JsApiType
jsApiType
)
{
String
key
=
wy_appid
+
':'
+
jsApiType
.
name
();
//从缓存中取出来
//RedisUtil redisUtil = new RedisUtil(ConstantConfig.REDIS_IP,ConstantConfig.REDIS_PORT);
JsTicket
jsTicket
=
new
JsTicket
();
String
jsTicketRedis
=
summbitRedisTemplate
.
opsForValue
().
get
(
key
)
==
null
?
""
:
summbitRedisTemplate
.
opsForValue
().
get
(
key
).
toString
();
log
.
info
(
"---jsTicketRedis===="
+
jsTicketRedis
);
if
(
StringUtils
.
isNotBlank
(
jsTicketRedis
))
{
JSONObject
objTemp
=
new
JSONObject
();
objTemp
=
JSONObject
.
parseObject
(
jsTicketRedis
).
getJSONObject
(
key
);
jsTicket
.
setExpiredTime
(
objTemp
.
getLong
(
"expiredTime"
));
jsTicket
.
setTicket
(
objTemp
.
getString
(
"ticket"
));
jsTicket
.
setExpires_in
(
objTemp
.
getInteger
(
"expiresIn"
));
// jsTicket = JSON.parseObject(redisUtil.get(key), JsTicket.class);
//(JsTicket) JSON.parseObject(redisUtil.get(key)).get(key);
if
(!
jsTicket
.
isAvailable
())
{
log
.
info
(
"---jsTicket----失效"
);
// https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
String
json
=
HttpRequestUtil
.
httpGet
(
apiUrl
+
"access_token="
+
tokenService
.
getAccessTokenStr
()+
"&type="
+
jsApiType
.
name
());
log
.
info
(
"---json===="
+
json
);
jsTicket
=
new
JsTicket
(
json
);
/*Element element = new Element(SystemConfig.WINXIN_AppID, jsTicket);
ehcache.put(element);*/
log
.
info
(
"----jsTicket===="
+
jsTicket
);
JSONObject
obj
=
new
JSONObject
();
obj
.
put
(
key
,
jsTicket
);
summbitRedisTemplate
.
delete
(
key
);
Boolean
suc
=
summbitRedisTemplate
.
opsForValue
().
setIfAbsent
(
key
,
obj
.
toJSONString
());
if
(
suc
)
{
summbitRedisTemplate
.
expire
(
wy_appid
,
jsTicket
.
getExpiresIn
(),
TimeUnit
.
MINUTES
);
}
}
}
else
{
String
json
=
HttpRequestUtil
.
httpGet
(
apiUrl
+
"access_token="
+
tokenService
.
getAccessTokenStr
()+
"&type="
+
jsApiType
.
name
());
log
.
info
(
"---json===="
+
json
);
jsTicket
=
new
JsTicket
(
json
);
/*Element element = new Element(SystemConfig.WINXIN_AppID, jsTicket);
ehcache.put(element);*/
JSONObject
obj
=
new
JSONObject
();
obj
.
put
(
key
,
jsTicket
);
Boolean
suc
=
summbitRedisTemplate
.
opsForValue
().
setIfAbsent
(
key
,
obj
.
toJSONString
());
if
(
suc
)
{
summbitRedisTemplate
.
expire
(
wy_appid
,
jsTicket
.
getExpiresIn
(),
TimeUnit
.
MINUTES
);
}
}
return
jsTicket
;
}
}
\ No newline at end of file
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/service/WXjsService.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
summit
.
service
;
import
java.util.Map
;
import
java.util.TreeMap
;
import
java.util.UUID
;
import
com.xxfc.platform.summit.util.Sha1
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Map.Entry
;
@Service
public
class
WXjsService
{
@Autowired
JsTicketService
jsTicketService
;
@Value
(
"${wx.appid}"
)
private
String
wy_appid
;
/**
* 生成js 微信调用配置参数
* @param _wxShareUrl:回掉的地址
* @return
*/
public
JSONObject
getShareData
(
String
_wxShareUrl
)
{
JSONObject
data
=
new
JSONObject
();
Map
<
String
,
String
>
_wxMap
=
new
TreeMap
<
String
,
String
>();
//noncestr
String
_wxNoncestr
=
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
);
String
_wxTimestamp
=
(
System
.
currentTimeMillis
()
/
1000
)
+
""
;
String
_wxJsapiTicket
=
jsTicketService
.
getTicket
(
JsTicketService
.
JsApiType
.
jsapi
).
getTicket
();
//参数封装
_wxMap
.
put
(
"noncestr"
,
_wxNoncestr
);
_wxMap
.
put
(
"timestamp"
,
_wxTimestamp
);
_wxMap
.
put
(
"jsapi_ticket"
,
_wxJsapiTicket
);
_wxMap
.
put
(
"url"
,
_wxShareUrl
);
data
.
put
(
"noncestr"
,
_wxNoncestr
);
data
.
put
(
"timestamp"
,
_wxTimestamp
);
data
.
put
(
"jsapi_ticket"
,
_wxJsapiTicket
);
data
.
put
(
"url"
,
_wxShareUrl
);
data
.
put
(
"appId"
,
wy_appid
);
// 加密获取signature
StringBuilder
_wxBaseString
=
new
StringBuilder
();
for
(
Entry
<
String
,
String
>
param
:
_wxMap
.
entrySet
())
{
_wxBaseString
.
append
(
param
.
getKey
()).
append
(
"="
).
append
(
param
.
getValue
()).
append
(
"&"
);
}
String
_wxSignString
=
_wxBaseString
.
substring
(
0
,
_wxBaseString
.
length
()
-
1
);
data
.
put
(
"sign"
,
Sha1
.
getSha1
(
_wxSignString
));
return
data
;
}
}
xx-summit/xx-summit-server/src/main/java/com/xxfc/platform/summit/service/WeixinService.java
View file @
e5e96737
...
...
@@ -4,6 +4,7 @@ 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.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
@@ -20,6 +21,9 @@ public class WeixinService {
@Value
(
"${wx.appSercet}"
)
private
String
wy_secret
;
@Autowired
AccessTokenService
tokenService
;
public
JSONObject
getAccessToken
(
String
code
){
String
url
=
"https://api.weixin.qq.com/sns/oauth2/access_token?"
;
...
...
@@ -63,6 +67,13 @@ public class WeixinService {
return
oauth_api
;
}
public
JSONObject
getBaseUserInfo
(
String
openid
){
String
url
=
"https://api.weixin.qq.com/cgi-bin/user/info?access_token="
+
tokenService
.
getAccessTokenStr
()
+
"&openid="
+
openid
+
"&lang=zh_CN"
;
String
result
=
HttpRequestUtil
.
httpGet
(
url
);
log
.
info
(
"---result===="
+
result
);
JSONObject
data
=
JSON
.
parseObject
(
result
);
return
data
;
}
}
xx-summit/xx-summit-server/src/main/resources/mapper/ActivityMapper.xml
View file @
e5e96737
...
...
@@ -2,4 +2,38 @@
<!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"
>
<select
id=
"selectByQuery"
resultType=
"com.xxfc.platform.summit.entity.Activity"
parameterType=
"com.xxfc.platform.summit.pojo.ActivityQuery"
>
select * from fc_activity
where
is_del=0
<if
test=
"title != null and title.trim() != '' "
>
and title like CONCAT('%',#{title},'%')
</if>
<if
test=
"startTime != null"
>
and from_unixtime(start_time,'%Y-%m-%e %H')=from_unixtime(unix_timestamp(), '%Y-%m-%e %H')
</if>
<if
test=
"status != null and status == 1"
>
and (status=#{status} or (status=0 and (start_time/1000)
>
= unix_timestamp()) )
</if>
<if
test=
"status != null and status == 2"
>
and (status=#{status} or (status=0 and (start_time/1000)
<
unix_timestamp() and (end_time/1000)
>
=unix_timestamp()))
</if>
<if
test=
"status != null and status == 3"
>
and (status=#{status} or (status=0 and (end_time/1000)
<
unix_timestamp()))
</if>
<if
test=
"type ==2"
>
and is_publish=1
and is_show=1
</if>
order by rank asc , start_time desc
</select>
<select
id=
"getdinate"
parameterType=
"java.util.Map"
resultType=
"BigDecimal"
>
select
IFNULL(ROUND(( (2 * ASIN( SQRT( POW( SIN((latitude * PI() / 180.0- #{params.latitude}* PI() / 180.0)/2), 2)+COS( latitude * PI() / 180.0)*COS( #{params.latitude} * PI() / 180.0)
*POW(SIN((longitude * PI() / 180.0 - #{params.longitude}* PI() /180.0)/2),2))))*6378.137)*10000)/10000 ,0 ) AS distance
FROM fc_activity WHERE id=#{params.id}
</select>
</mapper>
\ No newline at end of file
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/RedisKey.java
View file @
e5e96737
...
...
@@ -98,4 +98,9 @@ public class RedisKey {
public
static
final
String
CACHE_DICTIONARY_ALL
=
CACHE_DICTIONARY_PREFIX
+
"all:"
;
public
static
final
String
CACHE_DICTIONARY_ALL_MAP
=
CACHE_DICTIONARY_ALL
+
"map:"
;
public
static
final
String
ILLEGAL_VEHICLE_ENQUIRIES
=
"cache:violation"
;
/**
* 服务器上传压缩包文件序号
*/
public
static
final
String
UPLOAD_ZIP_NO_PREFIX
=
"upload:zip:no:"
;
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/VideoConstant.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
universal
.
constant
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
VideoConstant
{
public
static
final
List
<
String
>
forms
=
Arrays
.
asList
(
".mp4"
);
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/UploadController.java
View file @
e5e96737
...
...
@@ -2,8 +2,11 @@ package com.xxfc.platform.universal.controller;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
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.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.xxfc.platform.universal.constant.VideoConstant
;
import
com.xxfc.platform.universal.dto.ImgDTO
;
import
com.xxfc.platform.universal.dto.UploadImgDTO
;
import
com.xxfc.platform.universal.service.FileUploadService
;
...
...
@@ -12,6 +15,7 @@ import com.xxfc.platform.universal.service.UploadZipService;
import
com.xxfc.platform.universal.utils.ImgBase64Util
;
import
com.xxfc.platform.universal.utils.PublicMsg
;
import
com.xxfc.platform.universal.vo.Ueditor
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.fileupload.FileItem
;
import
org.apache.commons.fileupload.disk.DiskFileItemFactory
;
...
...
@@ -64,6 +68,7 @@ public class UploadController{
return
JsonResultUtil
.
createSuccessResultWithObj
(
uploadService
.
uploadFile
(
file
,
prefix
));
}
@ApiOperation
(
"视频上传"
)
@RequestMapping
(
value
=
"/app/unauth/uploadVideo"
,
method
=
RequestMethod
.
POST
)
public
JSONObject
uploadVideo
(
@RequestParam
(
"file"
)
MultipartFile
file
,
...
...
@@ -181,11 +186,25 @@ public class UploadController{
return
fileUploadService
.
handlerUpload
(
upfile
,
null
,
prefix
);
}
@ApiOperation
(
"图片压缩包上传"
)
@PostMapping
(
value
=
"/app/unauth/pictureZip"
)
public
ObjectRestResponse
pictureZip
(
@RequestBody
MultipartFile
file
,
@RequestBody
String
password
)
throws
Exception
{
return
uploadZipService
.
uploadPictureZip
(
file
,
password
);
}
@RequestParam
(
"file"
)
MultipartFile
file
,
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"summit"
)
String
prefix
)
throws
Exception
{
return
uploadZipService
.
uploadPictureZip
(
file
,
prefix
);
}
// @PostMapping(value="/app/unauth/uploadVideo")
// public ObjectRestResponse video(
// @RequestParam("file")MultipartFile file,
// @RequestParam(value = "prefix",defaultValue = "summit")String prefix) throws Exception {
// String filename = file.getOriginalFilename();
// String suffixName = filename.substring(filename.lastIndexOf("."));
// if (!VideoConstant.forms.contains(suffixName)) {
// return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"只能上传MP4格式");
// }
// return ObjectRestResponse.succ(uploadService.uploadVideo(file,prefix));
// }
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/UploadService.java
View file @
e5e96737
package
com
.
xxfc
.
platform
.
universal
.
service
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.xxfc.platform.universal.constant.RedisKey
;
import
com.xxfc.platform.universal.utils.ImgBase64Util
;
...
...
@@ -28,6 +29,9 @@ public class UploadService {
public
static
final
DateTimeFormatter
DEFAULT_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd"
);
@Value
(
"${universal.baseUploadPath}"
)
private
String
baseUploadPath
;
@Value
(
"${universal.videoUploadPath}"
)
private
String
videoUploadPath
;
@Value
(
"${universal.url}"
)
private
String
xx_url
;
@Autowired
...
...
@@ -143,4 +147,29 @@ public class UploadService {
return
new
ResponseEntity
<
byte
[]>(
FileUtils
.
readFileToByteArray
(
file
),
headers
,
HttpStatus
.
CREATED
);
}
/**
* 写入上传文件,返回相对路径
* @param file
* @return
*/
public
String
uploadVideo
(
MultipartFile
file
,
String
prefix
)
throws
Exception
{
//创建本日存放目录
DateTime
now
=
DateTime
.
now
();
String
dirPathToday
=
"/"
+
prefix
+
"/"
+
now
.
toString
(
DEFAULT_DATE_TIME_FORMATTER
);
String
redisNoKey
=
RedisKey
.
UPLOAD_FILE_NO_PREFIX
+
now
.
toString
(
DEFAULT_DATE_TIME_FORMATTER
);
Long
no
=
redisTemplate
.
opsForValue
().
increment
(
redisNoKey
);
if
(
no
.
equals
(
1
l
)){
redisTemplate
.
expire
(
redisNoKey
,
1
,
TimeUnit
.
DAYS
);
}
String
fileName
=
file
.
getOriginalFilename
();
String
realFileRelPath
=
dirPathToday
+
"/"
+
no
+
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
//文件存放路径
String
filePath
=
videoUploadPath
+
realFileRelPath
;
//将文件写入指定位置
FileUtils
.
copyInputStreamToFile
(
file
.
getInputStream
(),
new
File
(
filePath
));
realFileRelPath
=
xx_url
+
SystemConfig
.
VIDEO_URL
+
realFileRelPath
;
return
realFileRelPath
;
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/UploadZipService.java
View file @
e5e96737
...
...
@@ -7,5 +7,5 @@ import org.springframework.web.multipart.MultipartFile;
import
java.io.IOException
;
public
interface
UploadZipService
{
ObjectRestResponse
uploadPictureZip
(
MultipartFile
file
,
String
p
assword
)
throws
IOException
;
ObjectRestResponse
uploadPictureZip
(
MultipartFile
file
,
String
p
refix
)
throws
IOException
;
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/impl/UploadZipServiceImpl.java
View file @
e5e96737
...
...
@@ -2,16 +2,24 @@ package com.xxfc.platform.universal.service.impl;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.xxfc.platform.universal.constant.RedisKey
;
import
com.xxfc.platform.universal.constant.enumerate.FileTypeEnum
;
import
com.xxfc.platform.universal.service.UploadZipService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.FileUtils
;
import
org.codehaus.plexus.util.IOUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.*
;
import
java.nio.charset.Charset
;
import
java.util.Enumeration
;
import
java.util.Objects
;
import
java.util.concurrent.TimeUnit
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipFile
;
...
...
@@ -21,57 +29,75 @@ public class UploadZipServiceImpl implements UploadZipService {
@Value
(
"${universal.uploadPath}"
)
private
String
uploadPath
;
@Value
(
"${universal.url}"
)
private
String
xx_url
;
private
static
final
String
APK_SUFFIX
=
".apk"
;
private
static
final
String
APK_NAME
=
"xxfc.apk"
;
private
static
final
String
JPG
=
".jpg"
;
private
static
final
String
PNG
=
".png"
;
@Value
(
"${photo.format}"
)
private
String
PHOTO_FORMAT
;
@Autowired
RedisTemplate
redisTemplate
;
@Override
public
ObjectRestResponse
uploadPictureZip
(
MultipartFile
file
,
String
password
)
throws
IOException
{
if
(
Objects
.
isNull
(
f
ile
))
{
public
ObjectRestResponse
uploadPictureZip
(
MultipartFile
uFile
,
String
prefix
)
throws
IOException
{
if
(
Objects
.
isNull
(
uF
ile
))
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"请上传压缩文件!"
);
}
String
fileContentType
=
file
.
getContentType
();
String
fileContentType
=
uFile
.
getContentType
();
//将压缩包保存在指定路径
String
packFilePath
=
uploadPath
+
File
.
separator
+
f
ile
.
getName
();
String
packFilePath
=
uploadPath
+
File
.
separator
+
uF
ile
.
getName
();
if
(
FileTypeEnum
.
FILE_TYPE_ZIP
.
type
.
equals
(
fileContentType
)||
FileTypeEnum
.
FILE_TYPE_X_ZIP
.
type
.
equals
(
fileContentType
))
{
//zip解压缩处理
packFilePath
+=
FileTypeEnum
.
FILE_TYPE_ZIP
.
fileStufix
;
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"上传的压缩包格式不正确,仅支持zip压缩文件!"
);
}
File
fi
=
new
File
(
packFilePath
);
File
fi
le
=
new
File
(
packFilePath
);
try
{
file
.
transferTo
(
fi
);
//保存压缩包
FileOutputStream
os
=
new
FileOutputStream
(
file
);
IOUtil
.
copy
(
uFile
.
getInputStream
(),
os
);
os
.
close
();
}
catch
(
IOException
e
)
{
log
.
error
(
"zip file save to "
+
uploadPath
+
" error"
,
e
.
getMessage
(),
e
);
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"保存压缩文件到:"
+
uploadPath
+
" 失败!"
);
}
//zip压缩包
return
unPackZip
(
fi
,
password
,
uploadPath
);
//zip压缩包
解压
return
unPackZip
(
fi
le
,
prefix
);
}
public
ObjectRestResponse
unPackZip
(
File
file
,
String
password
,
String
destPath
)
throws
IOException
{
ZipFile
zipFile
=
new
ZipFile
(
file
);
public
ObjectRestResponse
<
String
>
unPackZip
(
File
file
,
String
prefix
)
throws
IOException
{
ZipFile
zipFile
=
new
ZipFile
(
file
,
Charset
.
forName
(
"GBK"
)
);
Enumeration
<?
extends
ZipEntry
>
entries
=
zipFile
.
entries
();
long
millis
=
System
.
currentTimeMillis
();
String
dirPathToday
=
prefix
+
File
.
separator
+
millis
;
String
redisNoKey
=
RedisKey
.
UPLOAD_FILE_NO_PREFIX
+
millis
;
StringBuffer
result
=
new
StringBuffer
();
Integer
index
=
0
;
while
(
entries
.
hasMoreElements
())
{
ZipEntry
entry
=
entries
.
nextElement
();
if
(
entry
.
isDirectory
())
{
destPath
=
destPath
+
File
.
separator
+
entry
.
getName
();
File
dir
=
new
File
(
destPath
);
if
(
entry
.
isDirectory
()
&&
index
++
==
0
)
{
File
dir
=
new
File
(
uploadPath
+
dirPathToday
);
dir
.
mkdir
();
}
else
{
}
else
if
(!
entry
.
isDirectory
())
{
Long
no
=
redisTemplate
.
opsForValue
().
increment
(
redisNoKey
);
if
(
no
.
equals
(
1
l
)){
redisTemplate
.
expire
(
redisNoKey
,
1
,
TimeUnit
.
DAYS
);
}
String
name
=
entry
.
getName
();
String
format
=
name
.
substring
(
name
.
lastIndexOf
(
"."
));
if
(
PHOTO_FORMAT
.
contains
(
format
))
{
String
realFileRelPath
=
dirPathToday
+
File
.
separator
+
no
+
format
;
File
targetFile
=
new
File
(
uploadPath
+
realFileRelPath
);
FileUtils
.
copyInputStreamToFile
(
zipFile
.
getInputStream
(
entry
),
targetFile
);
realFileRelPath
=
xx_url
+
SystemConfig
.
XXMP_URL
+
realFileRelPath
;
result
.
append
(
realFileRelPath
+
","
);
}
return
null
;
}
}
result
.
substring
(
0
,
result
.
length
()-
1
);
return
ObjectRestResponse
.
succ
(
result
.
substring
(
0
,
result
.
length
()-
1
));
}
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/entity/BookRecordUpdateLog.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
vehicle
.
entity
;
import
lombok.Data
;
import
java.util.Date
;
import
javax.persistence.*
;
@Data
@Table
(
name
=
"book_record_update_log"
)
public
class
BookRecordUpdateLog
{
@Id
private
Integer
id
;
/**
* 订单ID
*/
@Column
(
name
=
"order_id"
)
private
Integer
orderId
;
/**
* 预定记录ID
*/
@Column
(
name
=
"book_record_id"
)
private
Long
bookRecordId
;
/**
* 原还车公司ID
*/
@Column
(
name
=
"old_ret_company_id"
)
private
Integer
oldRetCompanyId
;
/**
* 新还车公司ID
*/
@Column
(
name
=
"new_ret_company_id"
)
private
Integer
newRetCompanyId
;
/**
* 操作人ID
*/
@Column
(
name
=
"operater_id"
)
private
Integer
operaterId
;
/**
* 操作人姓名
*/
@Column
(
name
=
"operater_name"
)
private
String
operaterName
;
/**
* 创建时间
*/
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
}
\ No newline at end of file
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/entity/VehicleCountRecord.java
View file @
e5e96737
...
...
@@ -72,6 +72,16 @@ public class VehicleCountRecord {
)
private
Date
countDate
;
/**
* 无效数据数量(超过还车时间后还未出车的数据)
*/
@Column
(
name
=
"no_use_num"
)
private
Integer
noUseNum
;
@Column
(
name
=
"cancel_num"
)
private
Integer
cancelNum
;
@Transient
private
String
startTime
;
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
View file @
e5e96737
...
...
@@ -10,6 +10,7 @@ import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import
com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo
;
import
com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo
;
import
com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -163,4 +164,8 @@ public interface VehicleFeign {
@GetMapping
(
"/vehicleInfo/findVehicleIds"
)
List
<
String
>
findbyPlateNumberAndVehicleCod
(
@RequestParam
(
value
=
"plateNumber"
)
String
plateNumber
,
@RequestParam
(
value
=
"vehicleCode"
)
String
vehicleCode
);
@RequestMapping
(
value
=
"/vehicleInfo/bookRecord/update"
,
method
=
RequestMethod
.
POST
)
public
ObjectRestResponse
update
(
@RequestBody
BookRecordUpdateLog
bookRecordUpdateLog
);
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/BookRecordUpdateLogBiz.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
vehicle
.
biz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.vehicle.entity.BookRecordUpdateLog
;
import
com.xxfc.platform.vehicle.mapper.BookRecordUpdateLogMapper
;
import
org.springframework.stereotype.Service
;
@Service
public
class
BookRecordUpdateLogBiz
extends
BaseBiz
<
BookRecordUpdateLogMapper
,
BookRecordUpdateLog
>
{
public
ObjectRestResponse
save
(
BookRecordUpdateLog
bookRecordUpdateLog
)
{
BookRecordUpdateLog
oldValue
=
mapper
.
selectOne
(
bookRecordUpdateLog
);
if
(
oldValue
!=
null
)
{
return
ObjectRestResponse
.
succ
();
}
insertSelectiveRe
(
bookRecordUpdateLog
);
return
ObjectRestResponse
.
succ
();
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBookRecordBiz.java
View file @
e5e96737
...
...
@@ -78,6 +78,9 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired
VehicleDepartureService
vehicleDepartureService
;
@Autowired
BookRecordUpdateLogBiz
bookRecordUpdateLogBiz
;
@Override
public
UserFeign
getUserFeign
()
{
return
userFeign
;
...
...
@@ -324,6 +327,21 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return
vehicleBookRecordVos
;
}
public
ObjectRestResponse
update
(
BookRecordUpdateLog
bookRecordUpdateLog
)
{
VehicleBookRecord
vehicleBookRecord
=
selectById
(
bookRecordUpdateLog
.
getBookRecordId
());
if
(
vehicleBookRecord
!=
null
)
{
vehicleBookRecord
.
setRetCompany
(
bookRecordUpdateLog
.
getNewRetCompanyId
());
int
a
=
updateSelectiveByIdRe
(
vehicleBookRecord
);
log
.
info
(
vehicleBookRecord
.
toString
());
if
(
a
<=
0
)
{
return
ObjectRestResponse
.
createDefaultFail
();
}
return
bookRecordUpdateLogBiz
.
save
(
bookRecordUpdateLog
);
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
VEHICLE_BOOK_RECORD_IS_NOT_EXIST
.
getCode
(),
ResCode
.
VEHICLE_BOOK_RECORD_IS_NOT_EXIST
.
getDesc
());
}
}
public
ObjectRestResponse
<
List
<
VehicleBookRecordVo
>>
selectByIds
(
List
<
Long
>
ids
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"ids"
,
ids
);
...
...
@@ -644,6 +662,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
public
List
<
VehicleBookRecordVo
>
selectAllCancelBookRecord
(
Map
<
String
,
Object
>
param
)
{
return
mapper
.
selectAllCancelBookRecord
(
param
);
}
public
PageDataVO
<
VehicleRecordInfoVo
>
getListByParam
(
VehiclePlanDto
vehiclePlanDto
)
{
Query
query
=
new
Query
(
vehiclePlanDto
);
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleCountRecordBiz.java
View file @
e5e96737
...
...
@@ -279,6 +279,24 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
if
(
innerAfterArrivalNum
!=
null
&&
innerAfterArrivalNum
>
0
)
{
innerCountRecord
.
setAfterArrivalNum
(
innerAfterArrivalNum
);
}
//在当前时间内已经取消的记录数
List
<
VehicleBookRecordVo
>
vehicleBookRecordVos
=
vehicleBookRecordBiz
.
selectAllCancelBookRecord
(
param
);
if
(
vehicleBookRecordVos
!=
null
&&
vehicleBookRecordVos
.
size
()
>
0
)
{
innerCountRecord
.
setCancelNum
(
vehicleBookRecordVos
.
size
());
}
//过期未出车无效数据
param
.
put
(
"startTime"
,
DateTime
.
parse
(
"1970-01-01 00:00:00"
,
DATE_TIME_FORMATTER
).
toDate
());
List
<
VehicleBookRecordVo
>
vehicleBookRecordList
=
vehicleBookRecordBiz
.
selectAllBookRecord
(
startTime
,
endTime
,
2
).
getData
();
if
(
vehicleBookRecordList
!=
null
&&
vehicleBookRecordList
.
size
()
>
0
)
{
Iterator
<
VehicleBookRecordVo
>
iterator
=
vehicleBookRecordList
.
iterator
();
while
(
iterator
.
hasNext
())
{
if
(
iterator
.
next
().
getVehicleDepartureLogVo
()
!=
null
)
{
iterator
.
remove
();
}
}
innerCountRecord
.
setNoUseNum
(
vehicleBookRecordList
.
size
());
}
innerCountRecord
.
setType
(
VehicleCountType
.
INNER
.
getCode
());
vehicleCountRecord
.
setCountDate
(
nowDate
);
tourCountRecord
.
setCountDate
(
nowDate
);
...
...
@@ -323,6 +341,13 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
vehicleCountRecord
.
setDepartureNum
(
vehicleDepartureList
.
size
());
}
Map
<
String
,
Object
>
param
=
new
HashMap
<>();
SimpleDateFormat
simpleDateFormat1
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
try
{
startDate
=
simpleDateFormat1
.
format
(
startTime
);
endDate
=
simpleDateFormat1
.
format
(
endTime
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
param
.
put
(
"startTime"
,
DateTime
.
parse
(
startDate
,
DATE_TIME_FORMATTER
).
toDate
());
param
.
put
(
"endTime"
,
DateTime
.
parse
(
endDate
,
DATE_TIME_FORMATTER
).
toDate
());
//1代表出车 2代表还车
...
...
@@ -330,6 +355,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
param
.
put
(
"bookUser"
,
-
2
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//租车提前出车数量
Integer
beforeDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
beforeDepartureNum
!=
null
&&
beforeDepartureNum
>
0
)
{
...
...
@@ -450,6 +476,24 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
innerCountRecord
.
setAfterArrivalNum
(
innerAfterArrivalNum
);
}
innerCountRecord
.
setType
(
VehicleCountType
.
INNER
.
getCode
());
//在当前时间内已经取消的记录数
List
<
VehicleBookRecordVo
>
vehicleBookRecordVos
=
vehicleBookRecordBiz
.
selectAllCancelBookRecord
(
param
);
if
(
vehicleBookRecordVos
!=
null
&&
vehicleBookRecordVos
.
size
()
>
0
)
{
innerCountRecord
.
setCancelNum
(
vehicleBookRecordVos
.
size
());
}
//过期未出车无效数据
param
.
put
(
"startTime"
,
DateTime
.
parse
(
"1970-01-01 00:00:00"
,
DATE_TIME_FORMATTER
).
toDate
());
List
<
VehicleBookRecordVo
>
vehicleBookRecordList
=
vehicleBookRecordBiz
.
selectAllBookRecord
(
startTime
,
endTime
,
2
).
getData
();
if
(
vehicleBookRecordList
!=
null
&&
vehicleBookRecordList
.
size
()
>
0
)
{
Iterator
<
VehicleBookRecordVo
>
iterator
=
vehicleBookRecordList
.
iterator
();
while
(
iterator
.
hasNext
())
{
if
(
iterator
.
next
().
getVehicleDepartureLogVo
()
!=
null
)
{
iterator
.
remove
();
}
}
innerCountRecord
.
setNoUseNum
(
vehicleBookRecordList
.
size
());
}
vehicleCountRecord
.
setCountDate
(
nowDate
);
tourCountRecord
.
setCountDate
(
nowDate
);
innerCountRecord
.
setCountDate
(
nowDate
);
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/BookRecordUpdateLogMapper.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.BookRecordUpdateLog
;
import
tk.mybatis.mapper.common.Mapper
;
public
interface
BookRecordUpdateLogMapper
extends
Mapper
<
BookRecordUpdateLog
>
{
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleBookRecordMapper.java
View file @
e5e96737
...
...
@@ -43,4 +43,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public
List
<
VehicleBookRecordVo
>
selectAllBookRecord
(
Map
<
String
,
Object
>
param
);
public
List
<
VehicleBookRecordVo
>
selectByIds
(
Map
<
String
,
Object
>
param
);
public
List
<
VehicleBookRecordVo
>
selectAllCancelBookRecord
(
Map
<
String
,
Object
>
param
);
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/BookRecordUpdateLogController.java
0 → 100644
View file @
e5e96737
package
com
.
xxfc
.
platform
.
vehicle
.
rest
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.vehicle.biz.BookRecordUpdateLogBiz
;
import
com.xxfc.platform.vehicle.entity.BookRecordUpdateLog
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
(
"/bookRecord"
)
public
class
BookRecordUpdateLogController
{
@Autowired
BookRecordUpdateLogBiz
bookRecordUpdateLogBiz
;
@PostMapping
(
value
=
"/update"
)
public
ObjectRestResponse
save
(
@RequestBody
BookRecordUpdateLog
bookRecordUpdateLog
)
{
return
bookRecordUpdateLogBiz
.
save
(
bookRecordUpdateLog
);
}
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
e5e96737
...
...
@@ -20,9 +20,7 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
com.xxfc.platform.vehicle.constant.ResCode.ResCode
;
import
com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus
;
import
com.xxfc.platform.vehicle.entity.BranchCompany
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.VehicleBookInfo
;
import
com.xxfc.platform.vehicle.entity.*
;
import
com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
...
...
@@ -38,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -76,6 +75,10 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
@Autowired
BranchCompanyBiz
branchCompanyBiz
;
@Autowired
BookRecordUpdateLogBiz
bookRecordUpdateLogBiz
;
public
UserFeign
getUserFeign
()
{
return
userFeign
;
}
...
...
@@ -304,6 +307,35 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
}
@RequestMapping
(
value
=
"/bookRecord/update"
,
method
=
RequestMethod
.
POST
)
@ApiOperation
(
value
=
"修改预定记录还车地点"
)
public
ObjectRestResponse
update
(
@RequestBody
BookRecordUpdateLog
bookRecordUpdateLog
){
return
vehicleBookRecordBiz
.
update
(
bookRecordUpdateLog
);
}
@RequestMapping
(
value
=
"/bookRecord/updateById"
,
method
=
RequestMethod
.
POST
)
@ApiOperation
(
value
=
"修改预定记录还车地点"
)
public
ObjectRestResponse
updateById
(
@RequestBody
VehicleBookRecord
vehicleBookRecord
){
VehicleBookRecord
oldValue
=
vehicleBookRecordBiz
.
selectById
(
vehicleBookRecord
.
getId
());
UserDTO
userDTO
=
getAdminUserInfo
();
if
(
userDTO
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
RSTOKEN_EXPIRED_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
RSTOKEN_EXPIRED_CODE
));
}
if
(
oldValue
!=
null
)
{
oldValue
.
setRetCompany
(
vehicleBookRecord
.
getRetCompany
());
BookRecordUpdateLog
bookRecordUpdateLog
=
new
BookRecordUpdateLog
();
bookRecordUpdateLog
.
setBookRecordId
(
vehicleBookRecord
.
getId
());
bookRecordUpdateLog
.
setOldRetCompanyId
(
vehicleBookRecord
.
getRetCompany
());
bookRecordUpdateLog
.
setNewRetCompanyId
(
vehicleBookRecord
.
getRetCompany
());
bookRecordUpdateLog
.
setOperaterId
(
userDTO
.
getId
());
bookRecordUpdateLog
.
setOperaterName
(
userDTO
.
getName
());
bookRecordUpdateLog
.
setCreateTime
(
new
Date
());
vehicleBookRecordBiz
.
updateSelectiveByIdRe
(
vehicleBookRecord
);
return
bookRecordUpdateLogBiz
.
save
(
bookRecordUpdateLog
);
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
VEHICLE_BOOK_RECORD_IS_NOT_EXIST
.
getCode
(),
ResCode
.
VEHICLE_BOOK_RECORD_IS_NOT_EXIST
.
getDesc
());
}
}
@RequestMapping
(
value
=
"/bookedRecord"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取多个预定记录"
)
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/builder/generatorConfig.xml
View file @
e5e96737
...
...
@@ -37,7 +37,7 @@
<!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table
tableName=
"
vehicle_count_record"
domainObjectName=
"VehicleCountRecord
"
></table>
<table
tableName=
"
book_record_update_log"
domainObjectName=
"BookRecordUpdateLog
"
></table>
<!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>-->
</context>
</generatorConfiguration>
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/BookRecordUpdateLogMapper.xml
0 → 100644
View file @
e5e96737
<?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.vehicle.mapper.BookRecordUpdateLogMapper"
>
</mapper>
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleBookRecordMapper.xml
View file @
e5e96737
...
...
@@ -526,6 +526,17 @@
and v1.book_end_date between #{startTime} and #{endTime}
</if>
</select>
<!--获取所有已取消的预定记录-->
<select
id=
"selectAllCancelBookRecord"
resultMap=
"searchBookRecord"
parameterType=
"Map"
>
select v1.* from vehicle_book_record v1
where v1.status in (4,6)
<if
test=
"startTime != null"
>
and v1.book_start_date
<
#{startTime} and v1.book_end_date
>
#{endTime}
</if>
and book_user != -2
</select>
<select
id=
"selectByIds"
resultMap=
"searchBookRecord"
parameterType=
"Map"
>
select v1.* from vehicle_book_record v1
where v1.status not in (4,6,7,3)
...
...
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