Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
4959ed03
Commit
4959ed03
authored
Apr 18, 2022
by
龙于生
Committed by
284718418@qq.com
Mar 30, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增h5颜色测评接口 模板消息 公众号绑定
parent
2243bf8c
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
796 additions
and
5 deletions
+796
-5
src/main/java/cn/timer/api/bean/zpgl/ZpglRcxx.java
+7
-0
src/main/java/cn/timer/api/bean/zpgl/ZpglWxgzptEmpRcxx.java
+1
-1
src/main/java/cn/timer/api/controller/LoginController.java
+50
-2
src/main/java/cn/timer/api/controller/oss/OSSController.java
+34
-2
src/main/java/cn/timer/api/controller/verify/VerifyController.java
+39
-0
src/main/java/cn/timer/api/controller/zpgl/ZpglEvaluationController.java
+50
-0
src/main/java/cn/timer/api/controller/zpgl/ZpglWxgzptController.java
+301
-0
src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglWxgzptService.java
+27
-0
src/main/java/cn/timer/api/dto/template/Miniprogram.java
+26
-0
src/main/java/cn/timer/api/dto/template/TemplateData.java
+39
-0
src/main/java/cn/timer/api/dto/template/TemplateMessage.java
+69
-0
src/main/java/cn/timer/api/dto/wxgzh/LoginDto.java
+30
-0
src/main/java/cn/timer/api/dto/wxgzh/MessageQueueDto.java
+115
-0
src/main/java/cn/timer/api/dto/zpgl/InterviewApplicationDto.java
+8
-0
No files found.
src/main/java/cn/timer/api/bean/zpgl/ZpglRcxx.java
View file @
4959ed03
...
...
@@ -212,6 +212,13 @@ public class ZpglRcxx extends Model<ZpglRcxx> {
*/
@ApiModelProperty
(
value
=
"招聘渠道ID"
)
private
Integer
zpglZpqdId
;
/**
* 签名图片
*/
@ApiModelProperty
(
value
=
"签名图片"
)
private
String
signatureImg
;
/**
* 文件名
*/
...
...
src/main/java/cn/timer/api/bean/zpgl/ZpglWxgzptEmpRcxx.java
View file @
4959ed03
...
...
@@ -67,7 +67,7 @@ public class ZpglWxgzptEmpRcxx extends Model<ZpglWxgzptEmpRcxx> {
* 组织机构代码
*/
@ApiModelProperty
(
value
=
"组织机构代码"
)
private
String
orgCode
;
private
Integer
orgCode
;
/**
* 逻辑删除标记0.未删除 1.删除
*/
...
...
src/main/java/cn/timer/api/controller/LoginController.java
View file @
4959ed03
...
...
@@ -7,11 +7,13 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
import
cn.timer.api.utils.redis.RedisUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -169,6 +171,9 @@ public class LoginController {
@Autowired
private
AliyunSMS
aliyunSMS
;
@Resource
private
RedisUtil
redisUtil
;
// @Autowired
// private DataSourceTransactionManager transactionManager;
...
...
@@ -253,9 +258,52 @@ public class LoginController {
String
message
=
j
.
getString
(
"Message"
);
if
(
"OK"
.
equals
(
message
))
{
session
.
setAttribute
(
phone
,
code
);
// redisTemplate.set(phone, code);
// redisTemplate.expire(phone, 60);
// redisTemplate.set(phone, code);
// redisTemplate.expire(phone, 60);
return
ResultUtil
.
data
(
"发送验证码成功"
);
}
else
{
return
ResultUtil
.
error
(
"发送验证码失败"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResultUtil
.
error
(
"发送验证码失败"
);
}
}
/**
* 发送验证码
*
* @param entRegisterDto
* @return
*/
@PostMapping
(
value
=
"/sendcode1"
)
@ApiOperation
(
value
=
"1.发送验证码"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperationSupport
(
order
=
1
)
@Log
(
title
=
"发送验证码"
,
businessType
=
BusinessType
.
SEND_CODE
)
public
Result
<
String
>
sendCode1
(
@RequestBody
EntRegisterDto
entRegisterDto
)
{
String
phone
=
entRegisterDto
.
getPhone
();
if
(
phone
==
null
||
StrUtil
.
hasBlank
(
phone
))
{
return
ResultUtil
.
error
(
"请输入手机号"
);
}
// 6位随机数验证码
try
{
Integer
code
=
(
int
)
((
Math
.
random
()
*
9
+
1
)
*
100000
);
if
(
phone
==
null
||
""
.
equals
(
phone
))
{
phone
=
entRegisterDto
.
getUsername
();
entRegisterDto
.
setPhone
(
phone
);
}
List
<
Object
>
list
=
aliyunSMS
.
authCode
(
entRegisterDto
,
entRegisterDto
.
getTc
(),
code
);
Integer
useId
=
(
Integer
)
list
.
get
(
0
);
JSONObject
j
=
(
JSONObject
)
list
.
get
(
1
);
// 获取当前日期的字符串格式
String
message
=
j
.
getString
(
"Message"
);
if
(
"OK"
.
equals
(
message
))
{
session
.
setAttribute
(
phone
,
code
);
redisUtil
.
set
(
phone
,
code
,
60
*
5
);
return
ResultUtil
.
data
(
"发送验证码成功"
);
}
else
{
return
ResultUtil
.
error
(
"发送验证码失败"
);
...
...
src/main/java/cn/timer/api/controller/oss/OSSController.java
View file @
4959ed03
package
cn
.
timer
.
api
.
controller
.
oss
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.*
;
import
cn.timer.api.service.OSSService
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -20,6 +21,8 @@ import cn.timer.api.utils.aliyun.OSSUtil;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.servlet.http.HttpServletRequest
;
@Api
(
tags
=
"9.0阿里云OSS操作"
)
@Transactional
@RequestMapping
(
value
=
"/oss"
,
produces
=
{
"application/json"
})
...
...
@@ -176,4 +179,33 @@ public class OSSController {
return
data
;
}
@PostMapping
(
value
=
"/uploadImg"
)
@ApiOperation
(
value
=
"上传图片"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ResponseBody
public
Result
<
String
>
uploadImg
(
@RequestParam
(
required
=
true
)
String
param
,
@RequestParam
(
required
=
false
)
String
moudle
,
@Param
(
"file"
)
MultipartFile
file
)
throws
Exception
{
if
(
file
==
null
||
file
.
getSize
()
<=
0
)
{
return
ResultUtil
.
error
(
"上传的文件为空,请重新选择!"
);
}
Set
<
String
>
typeSet
=
new
HashSet
<>();
typeSet
.
add
(
".jpg"
);
typeSet
.
add
(
".png"
);
typeSet
.
add
(
".gif"
);
String
fileName
=
file
.
getOriginalFilename
();
int
index
=
fileName
.
lastIndexOf
(
"."
);
String
fileType
=
fileName
.
substring
(
index
);
//校验图片类型是否有效
if
(!
typeSet
.
contains
(
fileType
))
{
return
ResultUtil
.
error
(
"只能上传图片文件!"
);
}
JSONObject
jsonObject
=
JSON
.
parseObject
(
param
);
Integer
id
=
jsonObject
.
getInteger
(
"id"
);
String
orgid
=
jsonObject
.
getString
(
"orgid"
);
moudle
=
id
+
""
;
Result
<
String
>
data
=
ossService
.
upload
(
1
,
moudle
,
file
);
return
data
;
}
}
src/main/java/cn/timer/api/controller/verify/VerifyController.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
controller
.
verify
;
import
cn.timer.api.utils.wxgzh.SignUtil
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
/**
*
* @author longys
* @date 2022/3/30 15:35
*/
@RestController
@RequestMapping
(
"/"
)
public
class
VerifyController
{
/**
* 网页授权域名
* 验证文件
* @param response
*/
@GetMapping
(
"/MP_verify_VohzppEKB3VfeKxw.txt"
)
public
void
verify
(
HttpServletResponse
response
){
PrintWriter
out
=
null
;
try
{
out
=
response
.
getWriter
();
out
.
write
(
"VohzppEKB3VfeKxw"
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
out
.
close
();
}
}
}
src/main/java/cn/timer/api/controller/zpgl/ZpglEvaluationController.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
controller
.
zpgl
;
import
cn.timer.api.bean.zpgl.ZpglCptk
;
import
cn.timer.api.bean.zpgl.ZpglDtk
;
import
cn.timer.api.utils.Result
;
import
cn.timer.api.utils.ResultUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @author longys
* @date 2022/4/14 15:48
*/
@Api
(
tags
=
"性格颜色测评"
)
@RestController
@RequestMapping
(
value
=
"/evaluation"
)
public
class
ZpglEvaluationController
{
@ApiOperation
(
value
=
"获取测评题库"
,
httpMethod
=
"GET"
,
notes
=
"获取测评题库"
)
@RequestMapping
(
"/get_cptk_list"
)
public
Result
<
List
<
ZpglCptk
>>
getCptkList
(){
List
<
ZpglCptk
>
zpglCptks
=
ZpglCptk
.
builder
().
build
()
.
selectList
(
new
QueryWrapper
<
ZpglCptk
>().
lambda
().
orderByAsc
(
ZpglCptk:
:
getSort
));
return
ResultUtil
.
data
(
zpglCptks
);
}
@ApiOperation
(
value
=
"提交测评"
,
httpMethod
=
"POST"
,
notes
=
"提交测评"
)
@RequestMapping
(
"/add_evaluation"
)
public
Result
<
Object
>
addEvaluation
(
@RequestBody
ZpglDtk
zpglDtk
){
ZpglDtk
dtk
=
zpglDtk
.
selectOne
(
new
QueryWrapper
<
ZpglDtk
>()
.
lambda
().
eq
(
ZpglDtk:
:
getZpglRcxxId
,
zpglDtk
.
getZpglRcxxId
()));
if
(
dtk
!=
null
){
return
ResultUtil
.
error
(
"你已提交测评!"
);
}
try
{
zpglDtk
.
insert
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResultUtil
.
error
();
}
return
ResultUtil
.
success
();
}
}
src/main/java/cn/timer/api/controller/zpgl/ZpglWxgzptController.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
controller
.
zpgl
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpUtil
;
import
cn.timer.api.bean.qyzx.QyzxEmpLogin
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.bean.zpgl.ZpglRcxx
;
import
cn.timer.api.bean.zpgl.ZpglWxgzptEmpRcxx
;
import
cn.timer.api.controller.zpgl.sevice.ZpglWxgzptService
;
import
cn.timer.api.dto.template.TemplateData
;
import
cn.timer.api.dto.template.TemplateMessage
;
import
cn.timer.api.dto.wxgzh.LoginDto
;
import
cn.timer.api.dto.wxgzh.MessageQueueDto
;
import
cn.timer.api.utils.Result
;
import
cn.timer.api.utils.ResultUtil
;
import
cn.timer.api.utils.redis.RedisUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
javax.transaction.Transactional
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author longys
* @date 2022/3/25 17:18
*/
@Api
(
tags
=
"微信公众平台"
)
@RestController
@RequestMapping
(
value
=
"/wxgzpt"
)
public
class
ZpglWxgzptController
{
@Value
(
"${wxgzh.appid}"
)
private
String
appid
;
@Value
(
"${wxgzh.appSecret}"
)
private
String
appSecret
;
@Value
(
"${config-8timer.authentication-code}"
)
public
String
authentication_code
;
@Value
(
"${h5.url}"
)
public
String
h5Url
;
public
static
final
String
OAUTH_GET_ACCESS_TOKEN_URL
=
"https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"
;
@Resource
private
ZpglWxgzptService
zpglWxgzptService
;
@Resource
private
RedisUtil
redisUtil
;
/**
* 重定向到绑定登录页面
* @param request
* @return
*/
@RequestMapping
(
"/toLoginPage"
)
@ApiOperation
(
value
=
"重定向到绑定登录页面"
,
httpMethod
=
"GET"
,
notes
=
"重定向到绑定登录页面"
)
public
ModelAndView
toLoginPage
(
HttpServletRequest
request
){
String
state
=
request
.
getParameter
(
"state"
);
String
code
=
request
.
getParameter
(
"code"
);
//用code获取openid
String
url
=
OAUTH_GET_ACCESS_TOKEN_URL
.
replace
(
"APPID"
,
appid
).
replace
(
"SECRET"
,
appSecret
).
replace
(
"CODE"
,
code
);
String
s
=
HttpUtil
.
get
(
url
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
s
);
String
openid
=
jsonObject
.
getString
(
"openid"
);
//查询是否已绑定人才信息
ZpglWxgzptEmpRcxx
wxgzptEmpRcxx
=
ZpglWxgzptEmpRcxx
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
ZpglWxgzptEmpRcxx
>().
lambda
()
.
eq
(
ZpglWxgzptEmpRcxx:
:
getOpenid
,
openid
));
ModelAndView
mav
=
new
ModelAndView
();
mav
.
addObject
(
"openid"
,
openid
);
if
(
wxgzptEmpRcxx
!=
null
){
mav
.
setViewName
(
"redirect:"
+
h5Url
+
"/#/wxgzhIndex"
);
}
else
{
mav
.
setViewName
(
"redirect:"
+
h5Url
+
"/#/wxgzhLogin"
);
}
return
mav
;
}
/**
* 重定向到绑定登录页面
* @param request
* @return
*/
@RequestMapping
(
"/basic_info"
)
@ApiOperation
(
value
=
"重定向到面试申请页面"
,
httpMethod
=
"GET"
,
notes
=
"重定向到面试申请页面"
)
public
ModelAndView
basicInfo
(
HttpServletRequest
request
){
String
mobile
=
request
.
getParameter
(
"mobile"
);
String
orgId
=
request
.
getParameter
(
"orgId"
);
ModelAndView
mav
=
new
ModelAndView
();
mav
.
addObject
(
"mobile"
,
mobile
);
mav
.
addObject
(
"orgId"
,
Integer
.
valueOf
(
orgId
));
mav
.
setViewName
(
"redirect:"
+
h5Url
+
"/#/basicInfo"
);
return
mav
;
}
/**
* 查询是否已绑定人才信息
* @param openid
* @return
*/
@RequestMapping
(
"/checkBind"
)
@ApiOperation
(
value
=
"查询是否已绑定人才信息"
,
httpMethod
=
"GET"
,
notes
=
"查询是否已绑定人才信息"
)
public
Result
<
Object
>
checkBind
(
String
openid
){
ZpglWxgzptEmpRcxx
wxgzptEmpRcxx
=
ZpglWxgzptEmpRcxx
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
ZpglWxgzptEmpRcxx
>().
lambda
()
.
eq
(
ZpglWxgzptEmpRcxx:
:
getOpenid
,
openid
)
.
eq
(
ZpglWxgzptEmpRcxx:
:
getDeleteFlag
,
0
));
if
(
wxgzptEmpRcxx
==
null
)
return
ResultUtil
.
error
(
"25001"
,
"未绑定"
);
return
ResultUtil
.
success
(
"已绑定."
);
}
/**
* 查询已绑定信息
* @param openid
* @return
*/
@RequestMapping
(
"/getBindInfo"
)
@ApiOperation
(
value
=
"查询已绑定信息"
,
httpMethod
=
"GET"
,
notes
=
"查询已绑定信息"
)
public
Result
<
LoginDto
>
getBindInfo
(
String
openid
){
//查询是否已绑定人才信息
ZpglWxgzptEmpRcxx
wxgzptEmpRcxx
=
ZpglWxgzptEmpRcxx
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
ZpglWxgzptEmpRcxx
>().
lambda
()
.
eq
(
ZpglWxgzptEmpRcxx:
:
getOpenid
,
openid
)
.
eq
(
ZpglWxgzptEmpRcxx:
:
getDeleteFlag
,
0
));
if
(
wxgzptEmpRcxx
!=
null
){
LoginDto
loginDao
=
new
LoginDto
();
YgglMainEmp
userInfo
=
new
YgglMainEmp
();
//判断是否有人才信息表id
if
(
wxgzptEmpRcxx
.
getZpglRcxxId
()
!=
null
&&
wxgzptEmpRcxx
.
getZpglRcxxId
()
!=
0
){
//查询人才信息表
ZpglRcxx
zpglRcxx
=
ZpglRcxx
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZpglRcxx
>()
.
lambda
().
eq
(
ZpglRcxx:
:
getId
,
wxgzptEmpRcxx
.
getZpglRcxxId
()));
userInfo
.
setPhone
(
zpglRcxx
.
getMobile
());
userInfo
.
setName
(
zpglRcxx
.
getName
());
}
//判断员工档案ID不等于空
if
(
wxgzptEmpRcxx
.
getYgglMainEmpId
()
!=
null
){
userInfo
=
userInfo
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
()
.
select
(
YgglMainEmp:
:
getId
,
YgglMainEmp:
:
getEmpNum
,
YgglMainEmp:
:
getName
,
YgglMainEmp:
:
getPhone
,
YgglMainEmp:
:
getBmgwId
,
YgglMainEmp:
:
getOrgCode
)
.
eq
(
YgglMainEmp:
:
getId
,
wxgzptEmpRcxx
.
getYgglMainEmpId
())
.
eq
(
YgglMainEmp:
:
getOrgCode
,
wxgzptEmpRcxx
.
getOrgCode
()));
loginDao
.
setUserName
(
userInfo
.
getName
());
loginDao
.
setPhone
(
userInfo
.
getPhone
());
loginDao
.
setAvatar
(
userInfo
.
getHeadUrl
());
}
else
{
loginDao
.
setPhone
(
wxgzptEmpRcxx
.
getMobile
());
}
return
ResultUtil
.
data
(
loginDao
);
}
return
null
;
}
/**
* 公众号登录绑定
*/
@RequestMapping
(
"/login"
)
@ApiOperation
(
value
=
"公众号登录绑定"
,
httpMethod
=
"POST"
,
notes
=
"公众号登录绑定"
)
public
Result
<
Object
>
login
(
@RequestBody
LoginDto
loginDao
,
HttpServletRequest
request
){
System
.
out
.
println
(
loginDao
);
HttpSession
session
=
request
.
getSession
();
String
code
=
loginDao
.
getCode
();
String
phone
=
loginDao
.
getPhone
();
String
openid
=
loginDao
.
getOpenid
();
if
(
StringUtils
.
isEmpty
(
code
))
{
return
ResultUtil
.
error
(
"请输入验证码"
);
}
//String codeRedis = session.getAttribute(phone) != null ? session.getAttribute(phone).toString() : "";
String
codeRedis
=
redisUtil
.
get
(
phone
)
!=
null
?
redisUtil
.
get
(
phone
).
toString
()
:
null
;
if
(
authentication_code
!=
null
&&
!(
""
).
equals
(
authentication_code
))
{
if
(
authentication_code
.
equals
(
code
))
{
return
loginhan
(
phone
,
openid
);
}
}
if
(
codeRedis
==
null
||
!
code
.
equals
(
codeRedis
)){
return
ResultUtil
.
error
(
"验证码不符"
);
}
return
loginhan
(
phone
,
openid
);
}
public
Result
<
Object
>
loginhan
(
String
phone
,
String
openid
)
{
//查询该手机号是否绑定了公众号
ZpglWxgzptEmpRcxx
wxgzptEmpRcxx
=
ZpglWxgzptEmpRcxx
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
ZpglWxgzptEmpRcxx
>().
lambda
()
.
eq
(
ZpglWxgzptEmpRcxx:
:
getMobile
,
phone
)
.
eq
(
ZpglWxgzptEmpRcxx:
:
getDeleteFlag
,
0
));
//如果绑定过其他微信openid 替换成当前的openid
if
(
wxgzptEmpRcxx
!=
null
){
wxgzptEmpRcxx
.
setOpenid
(
openid
);
wxgzptEmpRcxx
.
updateById
();
}
else
{
//查询员工登录表
QyzxEmpLogin
qyzxEmpLogin
=
QyzxEmpLogin
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
QyzxEmpLogin
>().
lambda
()
.
eq
(!
StrUtil
.
hasBlank
(
phone
),
QyzxEmpLogin:
:
getPhone
,
phone
));
YgglMainEmp
userInfo
=
null
;
if
(
qyzxEmpLogin
!=
null
){
//查询员工档案表
userInfo
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
()
.
select
(
YgglMainEmp:
:
getId
,
YgglMainEmp:
:
getEmpNum
,
YgglMainEmp:
:
getName
,
YgglMainEmp:
:
getPhone
,
YgglMainEmp:
:
getBmgwId
,
YgglMainEmp:
:
getOrgCode
)
.
eq
(
YgglMainEmp:
:
getEmpNum
,
qyzxEmpLogin
.
getId
())
.
eq
(
YgglMainEmp:
:
getOrgCode
,
qyzxEmpLogin
.
getOrgId
()));
}
//查询人才信息表
ZpglRcxx
zpglRcxx
=
ZpglRcxx
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZpglRcxx
>()
.
lambda
().
eq
(!
StrUtil
.
hasBlank
(
phone
),
ZpglRcxx:
:
getMobile
,
phone
));
//没有加入企业
/*if (userInfo == null && zpglRcxx == null){
return ResultUtil.error("25002","没有找到匹配的企业");
}*/
ZpglWxgzptEmpRcxx
empRcxx
=
new
ZpglWxgzptEmpRcxx
();
empRcxx
.
setZpglRcxxId
(
zpglRcxx
!=
null
?
zpglRcxx
.
getId
():
null
);
empRcxx
.
setYgglMainEmpId
(
userInfo
!=
null
?
userInfo
.
getId
():
null
);
empRcxx
.
setOrgCode
(
userInfo
!=
null
?
userInfo
.
getOrgCode
():
null
);
empRcxx
.
setOpenid
(
openid
);
empRcxx
.
setMobile
(
phone
);
empRcxx
.
insert
();
}
return
ResultUtil
.
success
();
}
/**
*根据手机号查询绑定的openid
* @return
*/
@GetMapping
(
value
=
"/getOpenid"
)
@ApiOperation
(
value
=
"获取openid"
,
httpMethod
=
"POST"
,
notes
=
"根据手机号查询绑定的openid"
)
public
Result
<
ZpglWxgzptEmpRcxx
>
getOpenid
(
String
phone
){
//查询该手机号是否绑定了公众号
ZpglWxgzptEmpRcxx
wxgzptEmpRcxx
=
ZpglWxgzptEmpRcxx
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
ZpglWxgzptEmpRcxx
>().
lambda
()
.
eq
(
ZpglWxgzptEmpRcxx:
:
getMobile
,
phone
)
.
eq
(
ZpglWxgzptEmpRcxx:
:
getDeleteFlag
,
0
));
return
ResultUtil
.
data
(
wxgzptEmpRcxx
);
}
@RequestMapping
(
"/addMessageQueue"
)
public
Result
<
Object
>
addMessageQueue
(){
//消息队列对象
MessageQueueDto
mqd
=
new
MessageQueueDto
();
/**
* 模板消息内容 start
*/
List
<
TemplateData
>
templateData
=
new
ArrayList
<>();
TemplateData
key1
=
new
TemplateData
(
"first"
,
"您好,JAVA工程师张三已安排由您面试"
,
"#000000"
);
TemplateData
key2
=
new
TemplateData
(
"keyword1"
,
"JAVA工程师"
,
"#000000"
);
TemplateData
key3
=
new
TemplateData
(
"keyword2"
,
"2021-03-23 10:00"
,
"#000000"
);
TemplateData
key4
=
new
TemplateData
(
"remark"
,
"点击填写面试申请"
,
"#000000"
);
templateData
.
add
(
key1
);
templateData
.
add
(
key2
);
templateData
.
add
(
key3
);
templateData
.
add
(
key4
);
//数据处理成固定好的json格式
String
content
=
mqd
.
getContentJson
(
templateData
);
/**
* 模板消息内容 end
*/
mqd
.
setContent
(
content
);
//消息内容模板消息 json格式 普通消息字符串类型
mqd
.
setMobile
(
"18212310017"
);
//手机号
mqd
.
setType
(
2
);
//类型(1 短信,2 邮件,3 微信模板消息)
mqd
.
setWxgzhType
(
1
);
//公众号类型 1:8小时企业管理 2:优领人才网
mqd
.
setTemplateId
(
"Uz6mVUYk9Tu7EO2V1pqiQ3x4EudDJTYWdaFtdf64h3M"
);
//模板id
mqd
.
setUrl
(
null
);
//网页地址
mqd
.
setWxxcxPageId
(
null
);
//小程序页面地址
Map
map
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
mqd
),
Map
.
class
);
String
s
=
zpglWxgzptService
.
addMessageQueue
(
map
);
return
ResultUtil
.
success
(
s
);
}
}
src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglWxgzptService.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
controller
.
zpgl
.
sevice
;
import
cn.hutool.http.HttpUtil
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.Map
;
/**
* @author longys
* @date 2022/3/25 18:08
*/
@Service
public
class
ZpglWxgzptService
{
@Value
(
"${youling.serverUrl}"
)
private
String
serverUrl
;
/**
* 添加消息队列
* @param map
* @return
*/
public
String
addMessageQueue
(
Map
<
String
,
Object
>
map
){
return
HttpUtil
.
post
(
serverUrl
+
"/wxgzh/addMessageQueue"
,
map
);
}
}
src/main/java/cn/timer/api/dto/template/Miniprogram.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
dto
.
template
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* 跳小程序所需数据
* @author longys
* @date 2022/3/23 15:48
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
Miniprogram
implements
Serializable
{
/**
*所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系)
*/
private
String
appid
;
/**
* 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布
*/
private
String
pagepath
;
}
src/main/java/cn/timer/api/dto/template/TemplateData.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
dto
.
template
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author longys
* @date 2022/3/22 16:52
*/
@Data
public
class
TemplateData
implements
Serializable
{
// 参数名称
private
String
name
;
// 参数值
private
String
value
;
// 颜色
private
String
color
;
public
TemplateData
(
String
name
,
String
value
,
String
color
)
{
this
.
name
=
name
;
this
.
value
=
value
;
this
.
color
=
color
;
}
public
TemplateData
(
List
<
TemplateData
>
dateList
){
Map
<
String
,
Map
<
String
,
Object
>>
nameMap
=
new
HashMap
<>();
for
(
TemplateData
date
:
dateList
){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"value"
,
date
.
getValue
());
map
.
put
(
"color"
,
date
.
getColor
());
nameMap
.
put
(
date
.
getName
(),
map
);
}
}
}
src/main/java/cn/timer/api/dto/template/TemplateMessage.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
dto
.
template
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 模版消息发送对象
* @author longys
* @date 2022/3/22 16:51
*/
@Data
public
class
TemplateMessage
implements
Serializable
{
/**
* 接收者openid
*/
private
String
touser
;
/**
* 模版ID
*/
private
String
template_id
;
/**
* 跳转URL
*/
private
String
url
;
/**
* 跳小程序所需数据 不需跳小程序可不用传该数据
*/
private
Miniprogram
miniprogram
;
/**
* 模板数据
*/
private
Map
<
String
,
Map
<
String
,
Object
>>
data
;
public
TemplateMessage
(
List
<
TemplateData
>
dateList
,
String
touser
,
String
templateId
,
String
url
,
Miniprogram
miniprogram
){
Map
<
String
,
Map
<
String
,
Object
>>
nameMap
=
new
HashMap
<>();
for
(
TemplateData
date
:
dateList
){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"value"
,
date
.
getValue
());
map
.
put
(
"color"
,
date
.
getColor
());
nameMap
.
put
(
date
.
getName
(),
map
);
}
this
.
data
=
nameMap
;
this
.
touser
=
touser
;
this
.
template_id
=
templateId
;
//以下不需要跳转传 null
this
.
url
=
url
;
this
.
miniprogram
=
miniprogram
;
};
public
TemplateMessage
(
Map
<
String
,
Map
<
String
,
Object
>>
data
,
String
touser
,
String
templateId
,
String
url
,
Miniprogram
miniprogram
){
this
.
data
=
data
;
this
.
touser
=
touser
;
this
.
template_id
=
templateId
;
//以下不需要跳转传 null
this
.
url
=
url
;
this
.
miniprogram
=
miniprogram
;
};
}
\ No newline at end of file
src/main/java/cn/timer/api/dto/wxgzh/LoginDto.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
dto
.
wxgzh
;
import
cn.timer.api.dto.login.QysDto
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author longys
* @date 2022/3/30 16:46
*/
@Data
public
class
LoginDto
{
private
String
phone
;
private
String
code
;
private
String
openid
;
/**
* 姓名
*/
private
String
userName
;
/**
* 个人头像
*/
private
String
avatar
;
}
src/main/java/cn/timer/api/dto/wxgzh/MessageQueueDto.java
0 → 100644
View file @
4959ed03
package
cn
.
timer
.
api
.
dto
.
wxgzh
;
import
cn.timer.api.dto.template.Miniprogram
;
import
cn.timer.api.dto.template.TemplateData
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author longys
* @date 2022/4/2 17:31
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
MessageQueueDto
{
/**
* id
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 内容 、 公众号模板消息内容 是JSON格式
*/
private
String
content
;
/**
* 类型(1 短信,2 邮件,3 微信模板消息)
*/
private
Integer
type
;
/**
* 状态(0 发送成功,1 未发送,2 发送失败)
*/
private
Integer
status
;
/**
* 手机号码
*/
private
String
mobile
;
/**
* 邮箱
*/
private
String
email
;
/**
* 微信openid
*/
private
String
openid
;
/**
* 模版消息id (发送公众号模板消息用到)
*/
private
String
templateId
;
/**
* 业务类型
*/
private
Integer
tos
;
/**
* 公众号配置表id
*/
private
Integer
wxgzhType
;
/**
* 网页地址
*/
private
String
url
;
/**
* 小程序页面配置表id
*/
private
Long
wxxcxPageId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
/**
* 转json格式模板消息内容
* @param dateList
* @return
*/
public
String
getContentJson
(
List
<
TemplateData
>
dateList
){
Map
<
String
,
Map
<
String
,
Object
>>
nameMap
=
new
HashMap
<>();
for
(
TemplateData
date
:
dateList
){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"value"
,
date
.
getValue
());
map
.
put
(
"color"
,
date
.
getColor
());
nameMap
.
put
(
date
.
getName
(),
map
);
}
return
JSON
.
toJSONString
(
nameMap
);
};
}
src/main/java/cn/timer/api/dto/zpgl/InterviewApplicationDto.java
View file @
4959ed03
...
...
@@ -240,6 +240,12 @@ public class InterviewApplicationDto implements Serializable {
private
Integer
zpglZpqdId
;
/**
* 签名图片
*/
@ApiModelProperty
(
value
=
"签名图片"
)
private
String
signatureImg
;
/**
* 职位信息ID
*/
@ApiModelProperty
(
value
=
"职位信息ID"
)
...
...
@@ -268,4 +274,6 @@ public class InterviewApplicationDto implements Serializable {
@ApiModelProperty
(
value
=
"家庭资料"
)
private
List
<
ZpglRcxxJtzl
>
zpglRcxxJtzls
;
}
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