Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不是太高的手
SPTools
提交
2f6e522b
S
SPTools
项目概览
不是太高的手
/
SPTools
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SPTools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2f6e522b
编写于
9月 03, 2020
作者:
Z
zhipeng.zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
蘑菇钉定时打卡
上级
7b64f4c6
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
967 addition
and
0 deletion
+967
-0
pom.xml
pom.xml
+5
-0
src/main/java/com/tools/common/util/HttpUtils.java
src/main/java/com/tools/common/util/HttpUtils.java
+300
-0
src/main/java/com/tools/module/app/entity/AppDingDetails.java
...main/java/com/tools/module/app/entity/AppDingDetails.java
+83
-0
src/main/java/com/tools/module/app/entity/AppDingSignInLog.java
...in/java/com/tools/module/app/entity/AppDingSignInLog.java
+38
-0
src/main/java/com/tools/module/app/entity/AppDingUser.java
src/main/java/com/tools/module/app/entity/AppDingUser.java
+41
-0
src/main/java/com/tools/module/app/service/AppDingDetailService.java
...va/com/tools/module/app/service/AppDingDetailService.java
+20
-0
src/main/java/com/tools/module/app/service/AppDingLogService.java
.../java/com/tools/module/app/service/AppDingLogService.java
+22
-0
src/main/java/com/tools/module/app/service/AppDingService.java
...ain/java/com/tools/module/app/service/AppDingService.java
+35
-0
src/main/java/com/tools/module/app/service/AppDingUserService.java
...java/com/tools/module/app/service/AppDingUserService.java
+24
-0
src/main/java/com/tools/module/app/service/impl/AppDingDetailServiceImpl.java
...ols/module/app/service/impl/AppDingDetailServiceImpl.java
+60
-0
src/main/java/com/tools/module/app/service/impl/AppDingLogServiceImpl.java
.../tools/module/app/service/impl/AppDingLogServiceImpl.java
+62
-0
src/main/java/com/tools/module/app/service/impl/AppDingServiceImpl.java
...com/tools/module/app/service/impl/AppDingServiceImpl.java
+150
-0
src/main/java/com/tools/module/app/service/impl/AppDingUserServiceImpl.java
...tools/module/app/service/impl/AppDingUserServiceImpl.java
+70
-0
src/main/java/com/tools/module/app/web/DingController.java
src/main/java/com/tools/module/app/web/DingController.java
+57
-0
未找到文件。
pom.xml
浏览文件 @
2f6e522b
...
...
@@ -181,6 +181,11 @@
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.9.2
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.69
</version>
</dependency>
</dependencies>
<build>
<finalName>
picture-bed
</finalName>
...
...
src/main/java/com/tools/common/util/HttpUtils.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.common.util
;
import
org.springframework.util.StringUtils
;
import
javax.net.ssl.*
;
import
java.io.BufferedReader
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.OutputStream
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.net.URLEncoder
;
import
java.security.cert.CertificateException
;
import
java.security.cert.X509Certificate
;
import
java.util.Map
;
import
java.util.Map.Entry
;
/**
* http、https 请求工具类
*
* @author jiaxiaoxian
*/
public
class
HttpUtils
{
private
static
final
String
DEFAULT_CHARSET
=
"UTF-8"
;
private
static
final
String
_GET
=
"GET"
;
// GET
private
static
final
String
_POST
=
"POST"
;
// POST
public
static
final
int
DEF_CONN_TIMEOUT
=
30000
;
public
static
final
int
DEF_READ_TIMEOUT
=
30000
;
/**
* 初始化http请求参数
*
* @param url
* @param method
* @param headers
* @return
* @throws Exception
*/
private
static
HttpURLConnection
initHttp
(
String
url
,
String
method
,
Map
<
String
,
String
>
headers
)
throws
Exception
{
URL
_url
=
new
URL
(
url
);
HttpURLConnection
http
=
(
HttpURLConnection
)
_url
.
openConnection
();
// 连接超时
http
.
setConnectTimeout
(
DEF_CONN_TIMEOUT
);
// 读取超时 --服务器响应比较慢,增大时间
http
.
setReadTimeout
(
DEF_READ_TIMEOUT
);
http
.
setUseCaches
(
false
);
http
.
setRequestMethod
(
method
);
http
.
setRequestProperty
(
"Content-Type"
,
"application/x-www-form-urlencoded"
);
http
.
setRequestProperty
(
"User-Agent"
,
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36"
);
if
(
null
!=
headers
&&
!
headers
.
isEmpty
())
{
for
(
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
http
.
setRequestProperty
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
http
.
setDoOutput
(
true
);
http
.
setDoInput
(
true
);
http
.
connect
();
return
http
;
}
/**
* 初始化http请求参数
*
* @param url
* @param method
* @return
* @throws Exception
*/
private
static
HttpsURLConnection
initHttps
(
String
url
,
String
method
,
Map
<
String
,
String
>
headers
)
throws
Exception
{
TrustManager
[]
tm
=
{
new
MyX509TrustManager
()};
System
.
setProperty
(
"https.protocols"
,
"TLSv1"
);
SSLContext
sslContext
=
SSLContext
.
getInstance
(
"TLS"
);
sslContext
.
init
(
null
,
tm
,
new
java
.
security
.
SecureRandom
());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory
ssf
=
sslContext
.
getSocketFactory
();
URL
_url
=
new
URL
(
url
);
HttpsURLConnection
http
=
(
HttpsURLConnection
)
_url
.
openConnection
();
// 设置域名校验
http
.
setHostnameVerifier
(
new
HttpUtils
().
new
TrustAnyHostnameVerifier
());
// 连接超时
http
.
setConnectTimeout
(
DEF_CONN_TIMEOUT
);
// 读取超时 --服务器响应比较慢,增大时间
http
.
setReadTimeout
(
DEF_READ_TIMEOUT
);
http
.
setUseCaches
(
false
);
http
.
setRequestMethod
(
method
);
http
.
setRequestProperty
(
"Content-Type"
,
"application/x-www-form-urlencoded"
);
http
.
setRequestProperty
(
"User-Agent"
,
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36"
);
if
(
null
!=
headers
&&
!
headers
.
isEmpty
())
{
for
(
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
http
.
setRequestProperty
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
http
.
setSSLSocketFactory
(
ssf
);
http
.
setDoOutput
(
true
);
http
.
setDoInput
(
true
);
http
.
connect
();
return
http
;
}
/**
* @return 返回类型:
* @throws Exception
* @description 功能描述: get 请求
*/
public
static
String
get
(
String
url
,
Map
<
String
,
String
>
params
,
Map
<
String
,
String
>
headers
)
throws
Exception
{
HttpURLConnection
http
=
null
;
if
(
isHttps
(
url
))
{
http
=
initHttps
(
initParams
(
url
,
params
),
_GET
,
headers
);
}
else
{
http
=
initHttp
(
initParams
(
url
,
params
),
_GET
,
headers
);
}
InputStream
in
=
http
.
getInputStream
();
BufferedReader
read
=
new
BufferedReader
(
new
InputStreamReader
(
in
,
DEFAULT_CHARSET
));
String
valueString
=
null
;
StringBuffer
bufferRes
=
new
StringBuffer
();
// 优化,不能光使用!=null做判断。有为""的情况,防止多次空循环
while
(!
StringUtils
.
isEmpty
(
valueString
=
read
.
readLine
()))
{
bufferRes
.
append
(
valueString
);
}
in
.
close
();
if
(
http
!=
null
)
{
http
.
disconnect
();
// 关闭连接
}
return
bufferRes
.
toString
();
}
public
static
String
get
(
String
url
)
throws
Exception
{
return
get
(
url
,
null
);
}
public
static
String
get
(
String
url
,
Map
<
String
,
String
>
params
)
throws
Exception
{
return
get
(
url
,
params
,
null
);
}
public
static
String
post
(
String
url
,
String
params
)
throws
Exception
{
HttpURLConnection
http
=
null
;
if
(
isHttps
(
url
))
{
http
=
initHttps
(
url
,
_POST
,
null
);
}
else
{
http
=
initHttp
(
url
,
_POST
,
null
);
}
OutputStream
out
=
http
.
getOutputStream
();
out
.
write
(
params
.
getBytes
(
DEFAULT_CHARSET
));
out
.
flush
();
out
.
close
();
InputStream
in
=
http
.
getInputStream
();
BufferedReader
read
=
new
BufferedReader
(
new
InputStreamReader
(
in
,
DEFAULT_CHARSET
));
String
valueString
=
null
;
StringBuffer
bufferRes
=
new
StringBuffer
();
while
((
valueString
=
read
.
readLine
())
!=
null
)
{
bufferRes
.
append
(
valueString
);
}
in
.
close
();
if
(
http
!=
null
)
{
http
.
disconnect
();
// 关闭连接
}
return
bufferRes
.
toString
();
}
public
static
String
post
(
String
url
,
String
params
,
Map
<
String
,
String
>
headers
)
throws
Exception
{
HttpURLConnection
http
=
null
;
if
(
isHttps
(
url
))
{
http
=
initHttps
(
url
,
_POST
,
headers
);
}
else
{
http
=
initHttp
(
url
,
_POST
,
headers
);
}
OutputStream
out
=
http
.
getOutputStream
();
out
.
write
(
params
.
getBytes
(
DEFAULT_CHARSET
));
out
.
flush
();
out
.
close
();
InputStream
in
=
http
.
getInputStream
();
BufferedReader
read
=
new
BufferedReader
(
new
InputStreamReader
(
in
,
DEFAULT_CHARSET
));
String
valueString
=
null
;
StringBuffer
bufferRes
=
new
StringBuffer
();
while
((
valueString
=
read
.
readLine
())
!=
null
)
{
bufferRes
.
append
(
valueString
);
}
in
.
close
();
if
(
http
!=
null
)
{
http
.
disconnect
();
// 关闭连接
}
return
bufferRes
.
toString
();
}
/**
* 功能描述: 构造请求参数
*
* @return 返回类型:
* @throws Exception
*/
public
static
String
initParams
(
String
url
,
Map
<
String
,
String
>
params
)
throws
Exception
{
if
(
null
==
params
||
params
.
isEmpty
())
{
return
url
;
}
StringBuilder
sb
=
new
StringBuilder
(
url
);
if
(
url
.
indexOf
(
"?"
)
==
-
1
)
{
sb
.
append
(
"?"
);
}
sb
.
append
(
map2Url
(
params
));
return
sb
.
toString
();
}
/**
* map构造url
*
* @return 返回类型:
* @throws Exception
*/
public
static
String
map2Url
(
Map
<
String
,
String
>
paramToMap
)
throws
Exception
{
if
(
null
==
paramToMap
||
paramToMap
.
isEmpty
())
{
return
null
;
}
StringBuffer
url
=
new
StringBuffer
();
boolean
isfist
=
true
;
for
(
Entry
<
String
,
String
>
entry
:
paramToMap
.
entrySet
())
{
if
(
isfist
)
{
isfist
=
false
;
}
else
{
url
.
append
(
"&"
);
}
url
.
append
(
entry
.
getKey
()).
append
(
"="
);
String
value
=
entry
.
getValue
();
if
(!
StringUtils
.
isEmpty
(
value
))
{
url
.
append
(
URLEncoder
.
encode
(
value
,
DEFAULT_CHARSET
));
}
}
return
url
.
toString
();
}
/**
* 检测是否https
*
* @param url
*/
private
static
boolean
isHttps
(
String
url
)
{
return
url
.
startsWith
(
"https"
);
}
/**
* https 域名校验
* @return
*/
public
class
TrustAnyHostnameVerifier
implements
HostnameVerifier
{
@Override
public
boolean
verify
(
String
hostname
,
SSLSession
session
)
{
return
true
;
// 直接返回true
}
}
private
static
class
MyX509TrustManager
implements
X509TrustManager
{
@Override
public
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
}
@Override
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
}
}
;
public
static
void
main
(
String
[]
args
)
{
String
str
=
""
;
try
{
str
=
get
(
"https://www.baidu.com"
);
}
catch
(
Exception
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
System
.
out
.
println
(
str
);
}
}
\ No newline at end of file
src/main/java/com/tools/module/app/entity/AppDingDetails.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.entity
;
import
com.tools.common.model.PageBean
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.util.GregorianCalendar
;
@Data
@Entity
@Table
(
name
=
"app_ding_details"
)
public
class
AppDingDetails
extends
PageBean
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
@Id
private
Integer
userId
;
/**
* 国家
*/
@Column
(
name
=
"country"
)
private
String
country
;
/**
* 地址
*/
@Column
(
name
=
"address"
)
private
String
address
;
/**
* 省
*/
@Column
(
name
=
"province"
)
private
String
province
;
/**
* 城市
*/
@Column
(
name
=
"city"
)
private
String
city
;
/**
* 纬度
*/
@Column
(
name
=
"latitude"
)
private
String
latitude
;
/**
* 发表的信息
*/
@Column
(
name
=
"description"
)
private
String
description
;
/**
* START 上班 END 下班
*/
@Column
(
name
=
"type"
)
private
String
type
;
/**
* 经度
*/
private
String
longitude
;
public
AppDingDetails
()
{
// 结果为“0”是上午 结果为“1”是下午
GregorianCalendar
ca
=
new
GregorianCalendar
();
if
(
ca
.
get
(
GregorianCalendar
.
AM_PM
)
==
0
||
"0"
.
equals
(
ca
.
get
(
GregorianCalendar
.
AM_PM
)))
{
this
.
type
=
"START"
;
}
else
{
this
.
type
=
"END"
;
}
}
}
\ No newline at end of file
src/main/java/com/tools/module/app/entity/AppDingSignInLog.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.entity
;
import
com.tools.common.model.PageBean
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
static
javax
.
persistence
.
GenerationType
.
IDENTITY
;
@Data
@Entity
@Table
(
name
=
"app_ding_signIn_log"
)
public
class
AppDingSignInLog
extends
PageBean
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
@GeneratedValue
(
strategy
=
IDENTITY
)
@Column
(
name
=
"id"
,
unique
=
true
,
nullable
=
false
)
private
Integer
logId
;
private
String
username
;
private
String
address
;
private
String
state
;
private
String
logTime
;
}
src/main/java/com/tools/module/app/entity/AppDingUser.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.entity
;
import
com.tools.common.model.PageBean
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
static
javax
.
persistence
.
GenerationType
.
IDENTITY
;
/**
* 蘑菇钉用户信息
*/
@Data
@Entity
@Table
(
name
=
"app_ding_user"
)
public
class
AppDingUser
extends
PageBean
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
@GeneratedValue
(
strategy
=
IDENTITY
)
@Column
(
name
=
"id"
,
unique
=
true
,
nullable
=
false
)
private
Integer
userId
;
/**
* 用户名
*/
@Column
(
name
=
"username"
)
private
String
username
;
/**
* 密码
*/
@Column
(
name
=
"password"
)
private
String
password
;
}
src/main/java/com/tools/module/app/service/AppDingDetailService.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingDetails
;
/**
* @Description
* @Author 爪洼笔记
* @Date 2022/9/34
*/
public
interface
AppDingDetailService
{
Result
listDetailsBean
(
AppDingDetails
detail
);
Result
save
(
AppDingDetails
detail
);
Result
delete
(
AppDingDetails
detail
);
Result
update
(
AppDingDetails
detail
);
}
src/main/java/com/tools/module/app/service/AppDingLogService.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingSignInLog
;
/**
* @Description 蘑菇钉日志
* @Author 爪洼笔记
* @Date 2022/9/34
*/
public
interface
AppDingLogService
{
/**
* 日志管理
*/
Result
listSignInLog
(
AppDingSignInLog
log
);
Result
delete
(
AppDingSignInLog
signInLog
);
void
save
(
AppDingSignInLog
signInLog
);
}
src/main/java/com/tools/module/app/service/AppDingService.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingDetails
;
import
com.tools.module.app.entity.AppDingUser
;
/**
* @Description 蘑菇钉
* @Author 爪洼笔记
* @Date 2022/9/34
*/
public
interface
AppDingService
{
/**
* 登录获取token
* @param user
* @return
*/
String
login
(
AppDingUser
user
);
/**
* 获取计划学校ID
* @param authorization
* @return
*/
String
planId
(
String
authorization
);
/**
* 签到
* @param authorization
* @param planId
* @param detail
* @return
*/
Result
sin
(
String
authorization
,
String
planId
,
AppDingDetails
detail
);
}
src/main/java/com/tools/module/app/service/AppDingUserService.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingUser
;
import
java.util.List
;
/**
* @Description 蘑菇钉用户
* @Author 爪洼笔记
* @Date 2022/9/34
*/
public
interface
AppDingUserService
{
Result
listUserinfo
(
Integer
pageNo
,
Integer
pageSize
);
List
<
AppDingUser
>
listUser
();
Result
save
(
AppDingUser
user
);
Result
delete
(
AppDingUser
user
);
Result
update
(
AppDingUser
user
);
}
src/main/java/com/tools/module/app/service/impl/AppDingDetailServiceImpl.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service.impl
;
import
com.tools.common.dynamicquery.DynamicQuery
;
import
com.tools.common.model.PageBean
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingDetails
;
import
com.tools.module.app.service.AppDingDetailService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @Description 蘑菇钉
* @Author 爪洼笔记
* @Date 2022/9/34
*/
@Service
public
class
AppDingDetailServiceImpl
implements
AppDingDetailService
{
@Autowired
private
DynamicQuery
dynamicQuery
;
@Override
public
Result
listDetailsBean
(
AppDingDetails
detail
)
{
String
countSql
=
"SELECT COUNT(*) FROM app_ding_details"
;
Long
totalCount
=
dynamicQuery
.
nativeQueryCount
(
countSql
);
PageBean
<
AppDingDetails
>
data
=
new
PageBean
<>();
if
(
totalCount
>
0
)
{
StringBuffer
nativeSql
=
new
StringBuffer
();
nativeSql
.
append
(
"SELECT * FROM app_ding_details "
);
Object
[]
params
=
new
Object
[]{};
Pageable
pageable
=
PageRequest
.
of
(
detail
.
getPageNo
()
-
1
,
detail
.
getPageSize
());
List
<
AppDingDetails
>
list
=
dynamicQuery
.
nativeQueryPagingList
(
AppDingDetails
.
class
,
pageable
,
nativeSql
.
toString
(),
params
);
data
=
new
PageBean
<>(
list
,
totalCount
);
}
return
Result
.
ok
(
data
);
}
@Override
public
Result
save
(
AppDingDetails
detail
)
{
dynamicQuery
.
save
(
detail
);
return
Result
.
ok
();
}
@Override
public
Result
delete
(
AppDingDetails
detail
)
{
String
nativeSql
=
"DELETE FROM app_ding_details WHERE id=?"
;
dynamicQuery
.
nativeExecuteUpdate
(
nativeSql
,
new
Object
[]{
detail
.
getUserId
()});
return
Result
.
ok
();
}
@Override
public
Result
update
(
AppDingDetails
detail
)
{
dynamicQuery
.
update
(
detail
);
return
Result
.
ok
();
}
}
src/main/java/com/tools/module/app/service/impl/AppDingLogServiceImpl.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service.impl
;
import
com.tools.common.dynamicquery.DynamicQuery
;
import
com.tools.common.model.PageBean
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingSignInLog
;
import
com.tools.module.app.service.AppDingLogService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* @Description 蘑菇钉日志
* @Author 爪洼笔记
* @Date 2022/9/34
*/
@Service
public
class
AppDingLogServiceImpl
implements
AppDingLogService
{
@Autowired
private
DynamicQuery
dynamicQuery
;
@Override
public
Result
listSignInLog
(
AppDingSignInLog
log
)
{
String
countSql
=
"SELECT COUNT(*) FROM app_ding_signIn_log"
;
Long
totalCount
=
dynamicQuery
.
nativeQueryCount
(
countSql
);
PageBean
<
AppDingSignInLog
>
data
=
new
PageBean
<>();
if
(
totalCount
>
0
)
{
StringBuffer
nativeSql
=
new
StringBuffer
();
nativeSql
.
append
(
"SELECT * FROM app_ding_signIn_log "
);
Object
[]
params
=
new
Object
[]{};
if
(!
StringUtils
.
isEmpty
(
log
.
getUsername
()))
{
nativeSql
.
append
(
"WHERE username = ?"
);
params
=
new
Object
[]{
log
.
getUsername
()};
}
nativeSql
.
append
(
" order by logId desc"
);
Pageable
pageable
=
PageRequest
.
of
(
log
.
getPageNo
()
-
1
,
log
.
getPageSize
());
List
<
AppDingSignInLog
>
list
=
dynamicQuery
.
nativeQueryPagingList
(
AppDingSignInLog
.
class
,
pageable
,
nativeSql
.
toString
(),
params
);
data
=
new
PageBean
<>(
list
,
totalCount
);
}
return
Result
.
ok
(
data
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
delete
(
AppDingSignInLog
signInLog
)
{
String
nativeSql
=
"DELETE FROM app_ding_signIn_log WHERE id=?"
;
dynamicQuery
.
nativeExecuteUpdate
(
nativeSql
,
new
Object
[]{
signInLog
.
getLogId
()});
return
Result
.
ok
();
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
save
(
AppDingSignInLog
signInLog
)
{
dynamicQuery
.
save
(
signInLog
);
}
}
src/main/java/com/tools/module/app/service/impl/AppDingServiceImpl.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.tools.common.model.Result
;
import
com.tools.common.util.HttpUtils
;
import
com.tools.module.app.entity.AppDingDetails
;
import
com.tools.module.app.entity.AppDingUser
;
import
com.tools.module.app.service.AppDingService
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Description 蘑菇钉
* @Author 爪洼笔记
* @Date 2022/9/34
*/
@Service
public
class
AppDingServiceImpl
implements
AppDingService
{
@Override
public
String
login
(
AppDingUser
user
)
{
/* 请求头 */
Map
<
String
,
String
>
headersMap
=
new
HashMap
(
20
);
headersMap
.
put
(
"Accept-Language"
,
"zh-CN,zh;q=0.8"
);
headersMap
.
put
(
"User-Agent"
,
"Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; MI 6 Build/OPR1.170623.027) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
);
headersMap
.
put
(
"Authorization"
,
""
);
headersMap
.
put
(
"roleKey"
,
""
);
headersMap
.
put
(
"Content-Type"
,
"application/json; charset=UTF-8"
);
headersMap
.
put
(
"Content-Length"
,
"85"
);
headersMap
.
put
(
"Host"
,
"api.moguding.net:9000"
);
headersMap
.
put
(
"Connection"
,
"close"
);
headersMap
.
put
(
"Accept-Encoding"
,
"gzip, deflate"
);
headersMap
.
put
(
"Cache-Control"
,
"no-cache"
);
/* 请求地址 */
String
url
=
"https://api.moguding.net:9000/session/user/v1/login"
;
/* 请求参数 */
Map
<
String
,
String
>
paramsMap
=
new
HashMap
(
10
);
paramsMap
.
put
(
"phone"
,
user
.
getUsername
());
paramsMap
.
put
(
"password"
,
user
.
getPassword
());
paramsMap
.
put
(
"loginType"
,
"android"
);
paramsMap
.
put
(
"uuid"
,
""
);
/* 请求参数转为json字符串 */
String
params
=
JSON
.
toJSONString
(
paramsMap
);
try
{
/**
* 发送请求
*/
String
post
=
HttpUtils
.
post
(
url
,
params
,
headersMap
);
/**
* 获取响应参数
*/
String
Authorization
=
JSON
.
parseObject
(
post
).
getString
(
"data"
);
Authorization
=
JSON
.
parseObject
(
Authorization
).
getString
(
"token"
);
return
Authorization
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
@Override
public
String
planId
(
String
authorization
)
{
/* 请求头 */
Map
<
String
,
String
>
headersMap
=
new
HashMap
(
20
);
headersMap
.
put
(
"Accept-Language"
,
"zh-CN,zh;q=0.8"
);
headersMap
.
put
(
"User-Agent"
,
"Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; MI 6 Build/OPR1.170623.027) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
);
headersMap
.
put
(
"Authorization"
,
authorization
);
headersMap
.
put
(
"roleKey"
,
"student"
);
headersMap
.
put
(
"Content-Type"
,
"application/json; charset=UTF-8"
);
headersMap
.
put
(
"Content-Length"
,
"500"
);
headersMap
.
put
(
"Host"
,
"api.moguding.net:9000"
);
headersMap
.
put
(
"Connection"
,
"close"
);
headersMap
.
put
(
"Accept-Encoding"
,
"gzip, deflate"
);
headersMap
.
put
(
"Cache-Control"
,
"no-cache"
);
/* 请求地址 */
String
url
=
"https://api.moguding.net:9000/practice/plan/v1/getPlanByStu"
;
/* 请求参数 */
Map
<
String
,
String
>
paramsMap
=
new
HashMap
(
10
);
paramsMap
.
put
(
"state"
,
""
);
/* 请求参数转为json字符串 */
String
params
=
JSON
.
toJSONString
(
paramsMap
);
try
{
/**
* 发送请求
*/
String
post
=
HttpUtils
.
post
(
url
,
params
,
headersMap
);
/**
* 获取响应参数
*/
String
planId
=
JSON
.
parseObject
(
post
).
getString
(
"data"
);
JSONArray
array
=
JSON
.
parseArray
(
planId
);
planId
=
array
.
get
(
0
).
toString
();
planId
=
JSON
.
parseObject
(
planId
).
getString
(
"planId"
);
return
planId
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
@Override
public
Result
sin
(
String
authorization
,
String
planId
,
AppDingDetails
detail
)
{
/* 请求头 */
Map
<
String
,
String
>
headersMap
=
new
HashMap
(
20
);
headersMap
.
put
(
"Accept-Language"
,
"zh-CN,zh;q=0.8"
);
headersMap
.
put
(
"User-Agent"
,
"Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; MI 6 Build/OPR1.170623.027) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
);
headersMap
.
put
(
"Authorization"
,
authorization
);
headersMap
.
put
(
"roleKey"
,
"student"
);
headersMap
.
put
(
"Content-Type"
,
"application/json; charset=UTF-8"
);
headersMap
.
put
(
"Content-Length"
,
"500"
);
headersMap
.
put
(
"Host"
,
"api.moguding.net:9000"
);
headersMap
.
put
(
"Connection"
,
"close"
);
headersMap
.
put
(
"Accept-Encoding"
,
"gzip, deflate"
);
headersMap
.
put
(
"Cache-Control"
,
"no-cache"
);
/* 请求地址 */
String
url
=
"https://api.moguding.net:9000/attendence/clock/v1/save"
;
/* 请求参数 */
Map
<
String
,
String
>
paramsMap
=
new
HashMap
(
20
);
paramsMap
.
put
(
"country"
,
detail
.
getCountry
());
paramsMap
.
put
(
"address"
,
detail
.
getAddress
());
paramsMap
.
put
(
"province"
,
detail
.
getProvince
());
paramsMap
.
put
(
"city"
,
detail
.
getCity
());
paramsMap
.
put
(
"latitude"
,
detail
.
getLatitude
());
paramsMap
.
put
(
"description"
,
detail
.
getDescription
());
paramsMap
.
put
(
"planId"
,
planId
);
paramsMap
.
put
(
"type"
,
detail
.
getType
());
paramsMap
.
put
(
"device"
,
"Android"
);
paramsMap
.
put
(
"longitude"
,
detail
.
getLongitude
());
/* 请求参数转为json字符串 */
String
params
=
JSON
.
toJSONString
(
paramsMap
);
try
{
/* 发送请求 */
String
post
=
HttpUtils
.
post
(
url
,
params
,
headersMap
);
System
.
out
.
println
(
post
);
/* 返回响应参数 */
return
Result
.
ok
(
post
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
Result
.
error
(
"签到失败"
);
}
}
}
src/main/java/com/tools/module/app/service/impl/AppDingUserServiceImpl.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.service.impl
;
import
com.tools.common.dynamicquery.DynamicQuery
;
import
com.tools.common.model.PageBean
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingUser
;
import
com.tools.module.app.service.AppDingUserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* @Description
* @Author 爪洼笔记
* @Date 2022/9/34
*/
@Service
public
class
AppDingUserServiceImpl
implements
AppDingUserService
{
@Autowired
private
DynamicQuery
dynamicQuery
;
@Override
public
Result
listUserinfo
(
Integer
pageNo
,
Integer
pageSize
)
{
String
countSql
=
"SELECT COUNT(*) FROM app_ding_user"
;
Long
totalCount
=
dynamicQuery
.
nativeQueryCount
(
countSql
);
PageBean
<
AppDingUser
>
data
=
new
PageBean
<>();
if
(
totalCount
>
0
)
{
StringBuffer
nativeSql
=
new
StringBuffer
();
nativeSql
.
append
(
"SELECT * FROM app_ding_user"
);
Pageable
pageable
=
PageRequest
.
of
(
pageNo
-
1
,
pageSize
);
List
<
AppDingUser
>
list
=
dynamicQuery
.
nativeQueryPagingList
(
AppDingUser
.
class
,
pageable
,
nativeSql
.
toString
());
data
=
new
PageBean
<>(
list
,
totalCount
);
}
return
Result
.
ok
(
data
);
}
@Override
public
List
<
AppDingUser
>
listUser
()
{
String
nativeSql
=
"SELECT * FROM app_ding_user"
;
Pageable
pageable
=
PageRequest
.
of
(
0
,
10
);
List
<
AppDingUser
>
list
=
dynamicQuery
.
nativeQueryPagingList
(
AppDingUser
.
class
,
pageable
,
nativeSql
);
return
list
;
}
@Override
public
Result
save
(
AppDingUser
user
)
{
dynamicQuery
.
save
(
user
);
return
Result
.
ok
();
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
delete
(
AppDingUser
user
)
{
String
nativeSql
=
"DELETE FROM app_ding_user WHERE id=?"
;
dynamicQuery
.
nativeExecuteUpdate
(
nativeSql
,
new
Object
[]{
user
.
getUserId
()});
return
Result
.
ok
();
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
update
(
AppDingUser
user
)
{
dynamicQuery
.
update
(
user
);
return
Result
.
ok
();
}
}
src/main/java/com/tools/module/app/web/DingController.java
0 → 100644
浏览文件 @
2f6e522b
package
com.tools.module.app.web
;
import
com.tools.common.config.AbstractController
;
import
com.tools.common.model.Result
;
import
com.tools.module.app.entity.AppDingDetails
;
import
com.tools.module.app.entity.AppDingUser
;
import
com.tools.module.app.service.AppDingService
;
import
com.tools.module.app.service.AppEmailService
;
import
io.swagger.annotations.Api
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @Description
* @Author 爪哇笔记
* @Date 2022/9/3
*/
@Api
(
tags
=
"蘑菇钉"
)
@RestController
@RequestMapping
(
"/app/ding"
)
public
class
DingController
extends
AbstractController
{
@Autowired
private
AppDingService
appDingService
;
/**
* 列表
*/
@RequestMapping
(
"sign"
)
public
Result
sign
(){
try
{
AppDingUser
user
=
new
AppDingUser
();
user
.
setUsername
(
"******"
);
user
.
setPassword
(
"******"
);
String
authorization
=
appDingService
.
login
(
user
);
System
.
out
.
println
(
authorization
);
String
planId
=
appDingService
.
planId
(
authorization
);
System
.
out
.
println
(
planId
);
AppDingDetails
detailsBean
=
new
AppDingDetails
();
detailsBean
.
setAddress
(
"河南省.郑州市.人民政府"
);
detailsBean
.
setCountry
(
"中国"
);
detailsBean
.
setProvince
(
"河南省"
);
detailsBean
.
setCity
(
"郑州市"
);
detailsBean
.
setLatitude
(
"37.773296"
);
detailsBean
.
setLongitude
(
"113.759527"
);
detailsBean
.
setDescription
(
"开心"
);
Result
sin
=
appDingService
.
sin
(
authorization
,
planId
,
detailsBean
);
System
.
out
.
println
(
sin
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"-----------------------签到异常----------------------"
);
}
return
Result
.
ok
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录