Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
xunj
/
festival-activites
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 5bbfa686
authored
Jan 27, 2021
by
xunj
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
微信分享
1 parent
9204c4c4
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
182 additions
and
2 deletions
activity-admin/src/main/java/com/polysoft/activity/AdminApplication.java
activity-admin/src/main/java/com/polysoft/activity/controller/UserController.java
activity-admin/src/main/java/com/polysoft/activity/mapper/UserInfoMapper.java
activity-admin/src/main/java/com/polysoft/activity/model/dto/UserCattleBrandDto.java
activity-admin/src/main/java/com/polysoft/activity/model/dto/WechatTokenDto.java
activity-admin/src/main/java/com/polysoft/activity/model/param/ShareLinkParam.java
activity-admin/src/main/java/com/polysoft/activity/model/vo/ShareLinkVO.java
activity-admin/src/main/java/com/polysoft/activity/model/vo/WechatToken.java
activity-admin/src/main/java/com/polysoft/activity/service/UserInfoService.java
activity-admin/src/main/java/com/polysoft/activity/service/impl/UserInfoServiceImpl.java
activity-admin/src/main/resources/application-prod.yml
activity-admin/src/main/resources/mapper/UserInfoMapper.xml
activity-admin/src/main/java/com/polysoft/activity/AdminApplication.java
View file @
5bbfa68
package
com
.
polysoft
.
activity
;
package
com
.
polysoft
.
activity
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.web.client.RestTemplateBuilder
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
import
java.util.Date
;
import
java.util.Date
;
...
...
activity-admin/src/main/java/com/polysoft/activity/controller/UserController.java
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
controller
;
package
com
.
polysoft
.
activity
.
controller
;
import
com.polysoft.activity.model.param.ShareLinkParam
;
import
com.polysoft.activity.model.param.UserInfoParam
;
import
com.polysoft.activity.model.param.UserInfoParam
;
import
com.polysoft.activity.service.UserInfoService
;
import
com.polysoft.activity.service.UserInfoService
;
import
com.polysoft.activity.utils.ApiResult
;
import
com.polysoft.activity.utils.ApiResult
;
...
@@ -24,4 +25,10 @@ public class UserController {
...
@@ -24,4 +25,10 @@ public class UserController {
return
userInfoService
.
queryAuthUser
(
param
.
getPhone
());
return
userInfoService
.
queryAuthUser
(
param
.
getPhone
());
}
}
@PostMapping
(
"/getShareLink"
)
@ResponseBody
public
ApiResult
getShareLink
(
@RequestBody
@Validated
ShareLinkParam
param
)
{
return
userInfoService
.
getShareLink
(
param
);
}
}
}
activity-admin/src/main/java/com/polysoft/activity/mapper/UserInfoMapper.java
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
mapper
;
package
com
.
polysoft
.
activity
.
mapper
;
import
com.polysoft.activity.model.dto.WechatTokenDto
;
import
com.polysoft.activity.model.vo.UserInfoVO
;
import
com.polysoft.activity.model.vo.UserInfoVO
;
import
com.polysoft.activity.model.vo.WechatToken
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -9,4 +11,6 @@ import java.util.List;
...
@@ -9,4 +11,6 @@ import java.util.List;
@Mapper
@Mapper
public
interface
UserInfoMapper
{
public
interface
UserInfoMapper
{
UserInfoVO
queryAuthUser
(
@Param
(
"phone"
)
String
phone
);
UserInfoVO
queryAuthUser
(
@Param
(
"phone"
)
String
phone
);
WechatToken
getWechatToken
();
int
updateWechatToken
(
WechatTokenDto
dto
);
}
}
activity-admin/src/main/java/com/polysoft/activity/model/dto/UserCattleBrandDto.java
0 → 100644
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
model
.
dto
;
import
lombok.Data
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
UserCattleBrandDto
{
private
Long
id
;
private
Long
userId
;
private
Long
cattleBrandId
;
}
activity-admin/src/main/java/com/polysoft/activity/model/dto/WechatTokenDto.java
0 → 100644
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
model
.
dto
;
import
lombok.Data
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
WechatTokenDto
{
private
Long
id
;
private
String
updateTime
;
private
String
accessToken
;
}
activity-admin/src/main/java/com/polysoft/activity/model/param/ShareLinkParam.java
0 → 100644
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
model
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
ShareLinkParam
{
@ApiModelProperty
(
"分享的链接全地址"
)
// @NotBlank(message = "分享的链接不能为空")
private
String
url
;
@ApiModelProperty
(
"用户ID"
)
// @NotBlank(message = "用户ID不能为空")
private
Long
userId
;
@ApiModelProperty
(
"牛牌ID"
)
// @NotBlank(message = "牛牌ID不能为空")
private
Long
cattleId
;
}
activity-admin/src/main/java/com/polysoft/activity/model/vo/ShareLinkVO.java
0 → 100644
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
model
.
vo
;
import
lombok.Data
;
import
java.util.UUID
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
ShareLinkVO
{
private
String
appId
=
"wx747674121d6fd50a"
;
// private String jsapi_ticket ;
private
String
noncestr
=
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
);
private
Long
timestamp
=
System
.
currentTimeMillis
()/
1000
;
private
String
signature
;
}
activity-admin/src/main/java/com/polysoft/activity/model/vo/WechatToken.java
0 → 100644
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
model
.
vo
;
import
lombok.Data
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
WechatToken
{
private
String
updateTime
;
private
String
accessToken
;
public
Long
getUpdateTime
()
{
long
ts
=
0
;
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
date
=
simpleDateFormat
.
parse
(
this
.
updateTime
);
ts
=
date
.
getTime
();
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
ts
;
}
}
activity-admin/src/main/java/com/polysoft/activity/service/UserInfoService.java
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
service
;
package
com
.
polysoft
.
activity
.
service
;
import
com.polysoft.activity.model.param.ShareLinkParam
;
import
com.polysoft.activity.utils.ApiResult
;
import
com.polysoft.activity.utils.ApiResult
;
public
interface
UserInfoService
{
public
interface
UserInfoService
{
ApiResult
queryAuthUser
(
String
phone
);
ApiResult
queryAuthUser
(
String
phone
);
ApiResult
getShareLink
(
ShareLinkParam
param
);
}
}
activity-admin/src/main/java/com/polysoft/activity/service/impl/UserInfoServiceImpl.java
View file @
5bbfa68
package
com
.
polysoft
.
activity
.
service
.
impl
;
package
com
.
polysoft
.
activity
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.polysoft.activity.mapper.UserInfoMapper
;
import
com.polysoft.activity.mapper.UserInfoMapper
;
import
com.polysoft.activity.model.dto.WechatTokenDto
;
import
com.polysoft.activity.model.param.ShareLinkParam
;
import
com.polysoft.activity.model.vo.ShareLinkVO
;
import
com.polysoft.activity.model.vo.UserInfoVO
;
import
com.polysoft.activity.model.vo.UserInfoVO
;
import
com.polysoft.activity.model.vo.WechatToken
;
import
com.polysoft.activity.service.UserInfoService
;
import
com.polysoft.activity.service.UserInfoService
;
import
com.polysoft.activity.utils.ApiResult
;
import
com.polysoft.activity.utils.ApiResult
;
import
com.polysoft.activity.utils.SHA1
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.UUID
;
@Service
@Service
...
@@ -14,6 +27,16 @@ public class UserInfoServiceImpl implements UserInfoService {
...
@@ -14,6 +27,16 @@ public class UserInfoServiceImpl implements UserInfoService {
@Resource
@Resource
private
UserInfoMapper
mapper
;
private
UserInfoMapper
mapper
;
@Resource
private
RestTemplate
restTemplate
;
@Value
(
"${wechat.appId}"
)
private
String
appId
;
@Value
(
"${wechat.password}"
)
private
String
passWord
;
@Value
(
"${wechat.accessTokenUrl}"
)
private
String
accessTokenUrl
;
@Value
(
"${wechat.jsapiTicketUrl}"
)
private
String
jsapiTicketUrl
;
@Override
@Override
public
ApiResult
queryAuthUser
(
String
phone
)
{
public
ApiResult
queryAuthUser
(
String
phone
)
{
UserInfoVO
user
=
mapper
.
queryAuthUser
(
phone
);
UserInfoVO
user
=
mapper
.
queryAuthUser
(
phone
);
...
@@ -22,4 +45,31 @@ public class UserInfoServiceImpl implements UserInfoService {
...
@@ -22,4 +45,31 @@ public class UserInfoServiceImpl implements UserInfoService {
}
}
return
ApiResult
.
ok
(
user
);
return
ApiResult
.
ok
(
user
);
}
}
@Override
public
ApiResult
getShareLink
(
ShareLinkParam
param
)
{
ShareLinkVO
shareLinkVO
=
new
ShareLinkVO
();
WechatToken
wechatToken
=
mapper
.
getWechatToken
();
String
access_token
=
null
;
if
((
System
.
currentTimeMillis
()/
1000
-
wechatToken
.
getUpdateTime
()/
1000
)
>
6600
){
JSONObject
object
=
restTemplate
.
getForObject
(
accessTokenUrl
+
"appid="
+
appId
+
"&secret="
+
passWord
+
""
,
JSONObject
.
class
);
access_token
=
object
.
getString
(
"access_token"
);
WechatTokenDto
dto
=
new
WechatTokenDto
();
dto
.
setAccessToken
(
access_token
);
dto
.
setUpdateTime
(
DateUtil
.
format
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
mapper
.
updateWechatToken
(
dto
);
}
else
{
access_token
=
wechatToken
.
getAccessToken
();
}
JSONObject
object
=
restTemplate
.
getForObject
(
jsapiTicketUrl
+
"access_token="
+
access_token
+
""
,
JSONObject
.
class
);
String
jsapi_ticket
=
object
.
getString
(
"ticket"
);
String
noncestr
=
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
);
Long
timestamp
=
System
.
currentTimeMillis
()/
1000
;
String
signStr
=
"jsapi_ticket"
+
jsapi_ticket
+
"&noncestr"
+
noncestr
+
"×tamp"
+
timestamp
+
"&"
+
param
.
getUrl
();
shareLinkVO
.
setAppId
(
appId
);
shareLinkVO
.
setNoncestr
(
noncestr
);
shareLinkVO
.
setTimestamp
(
timestamp
);
shareLinkVO
.
setSignature
(
SHA1
.
encode
(
signStr
));
return
ApiResult
.
ok
(
shareLinkVO
);
}
}
}
activity-admin/src/main/resources/application-prod.yml
View file @
5bbfa68
...
@@ -62,3 +62,9 @@ ftp:
...
@@ -62,3 +62,9 @@ ftp:
#存储数据转文件的路径
#存储数据转文件的路径
localDir1
:
/ccivol_nas/outbound/data_send/
localDir1
:
/ccivol_nas/outbound/data_send/
roadRescueLocalDir
:
/ccivol_nas/outbound/roadRescueData/
roadRescueLocalDir
:
/ccivol_nas/outbound/roadRescueData/
wechat
:
appId
:
wx747674121d6fd50a
password
:
0c3b082fa27a5b50f79fb7f91aeaa41a
accessTokenUrl
:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&
jsapiTicketUrl
:
https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&
activity-admin/src/main/resources/mapper/UserInfoMapper.xml
View file @
5bbfa68
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.polysoft.activity.mapper.UserInfoMapper"
>
<mapper
namespace=
"com.polysoft.activity.mapper.UserInfoMapper"
>
<select
id=
"queryAuthUser"
resultType=
"com.polysoft.activity.model.vo.UserInfoVO"
>
<select
id=
"queryAuthUser"
resultType=
"com.polysoft.activity.model.vo.UserInfoVO"
>
select
select
user_id ,
user_id ,
...
@@ -12,4 +10,10 @@
...
@@ -12,4 +10,10 @@
from
from
t_user where phone=#{phone}
t_user where phone=#{phone}
</select>
</select>
<select
id=
"getWechatToken"
resultType=
"com.polysoft.activity.model.vo.WechatToken"
>
select access_token,update_time from wechat_token where id =1
</select>
<update
id=
"updateWechatToken"
parameterType=
"com.polysoft.activity.model.dto.WechatTokenDto"
>
update wechat_token set access_token=#{accessToken},update_time=#{updateTime} where id =1
</update>
</mapper>
</mapper>
Write
Preview
Markdown
is supported
Attach a file
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 post a comment