Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oto
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
龚小红
oto
Commits
65b13a27
Commit
65b13a27
authored
Aug 05, 2021
by
龚小红
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
封装取关和关注公众号、禁用和切换会员
parent
07383f9d
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
279 additions
and
118 deletions
+279
-118
NoviceGuidance.java
...est/java/com/kjj/cases/assistant/menu/NoviceGuidance.java
+23
-115
KjyUserDB.java
src/test/java/com/kjj/sql/KjyUserDB.java
+143
-0
UserSqlFactory.java
src/test/java/com/kjj/sql/UserSqlFactory.java
+10
-0
BaseUtils.java
src/test/java/com/kjj/utils/BaseUtils.java
+103
-3
No files found.
src/test/java/com/kjj/cases/assistant/menu/NoviceGuidance.java
View file @
65b13a27
This diff is collapsed.
Click to expand it.
src/test/java/com/kjj/
utils/MysqlUtils
.java
→
src/test/java/com/kjj/
sql/KjyUserDB
.java
View file @
65b13a27
package
com
.
kjj
.
utils
;
package
com
.
kjj
.
sql
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSON
;
public
class
MysqlUtils
{
private
static
final
String
PREFIX
=
"dbseccode"
;
private
static
final
String
secret
=
"CNxgrtFG2nYQUfu"
;
import
java.sql.*
;
import
java.util.*
;
private
static
Map
<
String
,
MysqlUtils
>
pool
=
new
HashMap
<>();
public
class
KjyUserDB
{
private
static
KjyUserDB
user_Utils
;
//数据库用户名
private
String
USERNAME
;
// = "roo
t";
private
String
USERNAME
=
"auto_tes
t"
;
//数据库密码
private
String
PASSWORD
;
//= "yanzi";
private
String
PASSWORD
=
"881QYHoGGgc09Ngv"
;
//= "yanzi";
//驱动信息
private
String
DRIVER
=
"com.mysql.cj.jdbc.Driver"
;
//数据库地址
private
String
U
RL
;
// = "jdbc:mysql://localhost:3306/mydb
";
private
String
U
SER_URL
=
"jdbc:mysql://rm-bp11mkg584kvjr485.mysql.rds.aliyuncs.com:3306/kjy_user
"
;
private
Connection
connection
;
private
PreparedStatement
pstmt
;
private
ResultSet
resultSet
;
private
MysqlUtils
(
String
username
,
String
password
,
String
url
){
USERNAME
=
username
;
PASSWORD
=
decode
(
password
);
URL
=
url
;
MysqlUtils
mu
=
pool
.
get
(
url
);
if
(
mu
!=
null
){
System
.
out
.
println
(
"--------exists"
);
connection
=
mu
.
connection
;
}
else
{
connection
=
getConnection
();
pool
.
put
(
url
,
this
);
}
// if(mu!=null) {
// try {
// mu.connection.close();
// } catch (Exception e) {
// System.out.println("mysql error:" + e.getMessage());
// }
// }
//// }else {
// connection = getConnection();
// pool.put(url,this);
public
static
synchronized
KjyUserDB
getInstance
(){
if
(
Objects
.
nonNull
(
user_Utils
)){
return
user_Utils
;
}
/**
*
* @param username 用户名
* @param password 密码
* @param ip 数据库ip
* @param port 端口号
* @param databaseName 数据库名
*/
public
MysqlUtils
(
String
username
,
String
password
,
String
ip
,
String
port
,
String
databaseName
){
this
(
username
,
password
,
"jdbc:mysql://"
+
ip
+
":"
+
port
+
"/"
+
databaseName
);
user_Utils
=
new
KjyUserDB
();
user_Utils
.
initConnection
();
return
user_Utils
;
}
/**
* 阿里云数据库连接
* @param databaseName 数据库名字
*/
public
MysqlUtils
(
String
databaseName
){
this
(
"tuia_test"
,
"dbseccode2CJMouQ2xyuEXnhe4vBzGtrDpaDbuK8Lt"
,
"47.111.157.152"
,
"3306"
,
databaseName
);
}
public
static
MysqlUtils
mysqlDuiba
(
String
databaseName
){
return
new
MysqlUtils
(
"tuia_test"
,
"dbseccode2CJMouQ2xyuEXnhe4vGtrDpavyDbuK8Lt"
,
"47.111.157.152"
,
"3306"
,
databaseName
);
}
/**
* 获得数据库的连接
* @return
*/
public
Connection
getConnection
(){
private
Connection
initConnection
(){
try
{
try
{
Class
.
forName
(
DRIVER
);
...
...
@@ -86,10 +40,7 @@ public class MysqlUtils {
}
catch
(
ClassNotFoundException
e
)
{
e
.
printStackTrace
();
}
// connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
// "jdbc:mysql://"+ip+":"+port+"/"+databaseName);
String
url
=
URL
+
"?autoReconnect=true&testOnBorrow=true&testWhileIdle=true"
;
String
url
=
USER_URL
+
"?autoReconnect=true&testOnBorrow=true&testWhileIdle=true"
;
connection
=
DriverManager
.
getConnection
(
url
,
USERNAME
,
PASSWORD
);
System
.
out
.
println
(
"数据库连接成功!"
);
}
catch
(
SQLException
e
)
{
...
...
@@ -97,36 +48,7 @@ public class MysqlUtils {
}
return
connection
;
}
/**
* 增加、删除、改
* @param sql sql语句
* @param params 参数,替换 ?
* @return true or false
* @throws SQLException
*/
public
boolean
update
(
String
sql
,
Object
...
params
)
throws
SQLException
{
if
(!
connection
.
isValid
(
3
)){
System
.
out
.
println
(
"mysql connect is not vaild,reconnect."
);
connection
.
close
();
connection
=
getConnection
();
pool
.
put
(
URL
,
this
);
}
boolean
flag
=
false
;
int
result
=
-
1
;
pstmt
=
connection
.
prepareStatement
(
sql
);
int
index
=
1
;
if
(
params
!=
null
&&
!(
params
.
length
==
0
)){
for
(
int
i
=
0
;
i
<
params
.
length
;
i
++){
pstmt
.
setObject
(
index
++,
params
[
i
]);
}
}
System
.
out
.
println
(
"SQL语句"
+
pstmt
.
toString
());
result
=
pstmt
.
executeUpdate
();
flag
=
result
>
0
?
true
:
false
;
return
flag
;
}
/**
* 查询结果只有一行数据
* @param sql sql语句
...
...
@@ -138,8 +60,7 @@ public class MysqlUtils {
if
(!
connection
.
isValid
(
3
)){
System
.
out
.
println
(
"mysql connect is not vaild,reconnect."
);
connection
.
close
();
connection
=
getConnection
();
pool
.
put
(
URL
,
this
);
initConnection
();
}
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
int
index
=
1
;
...
...
@@ -177,8 +98,7 @@ public class MysqlUtils {
if
(!
connection
.
isValid
(
3
)){
System
.
out
.
println
(
"mysql connect is not vaild,reconnect."
);
connection
.
close
();
connection
=
getConnection
();
pool
.
put
(
URL
,
this
);
initConnection
();
}
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<
Map
<
String
,
Object
>>();
int
index
=
1
;
...
...
@@ -218,22 +138,6 @@ public class MysqlUtils {
}
}
}
public
static
void
main
(
String
[]
args
)
throws
SQLException
{
MysqlUtils
jdbcUtils
=
new
MysqlUtils
(
"tuia_adver"
);
jdbcUtils
.
getConnection
();
Map
<
String
,
Object
>
map
=
jdbcUtils
.
findSimpleResult
(
"select * from account where company_name=?"
,
"兑吧科技有限公司"
);
jdbcUtils
.
releaseConn
();
}
private
static
String
decode
(
String
value
)
{
if
(
value
.
startsWith
(
PREFIX
))
{
value
=
value
.
substring
(
PREFIX
.
length
());
return
BlowfishUtils
.
decryptBlowfish
(
value
,
secret
);
}
return
value
;
}
}
src/test/java/com/kjj/sql/UserSqlFactory.java
0 → 100644
View file @
65b13a27
package
com
.
kjj
.
sql
;
public
class
UserSqlFactory
{
private
UserSqlFactory
(){}
public
static
final
String
selectUserIdByUnionId
=
"select id from tb_users where union_id=?"
;
public
static
final
String
selectUserIdByOpenId
=
"SELECT user_id FROM `tb_users_wx_ext` WHERE `open_id` = ?"
;
}
src/test/java/com/kjj/utils/BaseUtils.java
View file @
65b13a27
package
com
.
kjj
.
utils
;
import
com.kjj.sql.KjyUserDB
;
import
com.kjj.sql.UserSqlFactory
;
import
io.restassured.response.Response
;
import
org.testng.Assert
;
import
java.
io.IO
Exception
;
import
java.
util.HashMap
;
import
java.util.
Map
;
import
java.
sql.SQL
Exception
;
import
java.
text.SimpleDateFormat
;
import
java.util.
*
;
import
static
com
.
kjj
.
config
.
BasicConfig
.*;
import
static
com
.
kjj
.
utils
.
ThreadSleepUtils
.
sleep
;
public
class
BaseUtils
{
private
static
final
NetworkUtils
network
=
NetworkUtils
.
getInstance
();
public
static
String
tku
;
/**
* 登录管理后台
...
...
@@ -42,6 +46,102 @@ public class BaseUtils {
network
.
agentHeaders
.
put
(
"X-Csrf-Token"
,
ssoCookies
.
get
(
"csrf_token"
));
// 免登
network
.
agentCookies
.
put
(
"sso_ticket"
,
"autotest"
);
}
/**
* 小葡萄关注客集集微信公众号
*/
public
static
Object
subscribe
()
throws
SQLException
{
//关注公众号
// network.agentHeaders.put("Content-Type","text/plain");
String
str
=
"<xml><ToUserName><![CDATA[gh_3b9884c7b0ee]]></ToUserName><FromUserName><![CDATA[osi5w5kT-smQ42Fc-ByO4G8C-E1M]]></FromUserName><CreateTime>1628040971</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[subscribe]]></Event></xml>"
;
Response
response
=
network
.
postXMLResponse
(
str
,
MANAGER_oamsg
);
System
.
out
.
println
(
"关注\n"
+
response
.
body
().
asString
());
sleep
(
1000
);
network
.
agentHeaders
.
put
(
"Content-Type"
,
"application/json"
);
Map
<
String
,
Object
>
result
=
KjyUserDB
.
getInstance
().
findSimpleResult
(
UserSqlFactory
.
selectUserIdByOpenId
,
"osi5w5kT-smQ42Fc-ByO4G8C-E1M"
);
Object
userId
=
result
.
get
(
"user_id"
);
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"userId"
,
userId
);
params
.
put
(
"validDays"
,
365
);
response
=
network
.
getResponse
(
params
,
MANAGER_encryptTku
);
boolean
success
=
response
.
jsonPath
().
getBoolean
(
"success"
);
Assert
.
assertTrue
(
success
,
network
.
message
(
ROOKIEGUIDE_homeGuide
,
"接口返回失败"
,
response
.
body
().
asString
()));
tku
=
response
.
jsonPath
().
getString
(
"data"
);
network
.
agentCookies
.
put
(
"tku"
,
tku
);
System
.
out
.
println
(
"小葡萄tku:"
+
tku
);
return
userId
;
}
/**
* 小葡萄取关客集集微信公众号
*/
public
static
Object
unsubscribe
()
throws
SQLException
{
//取关公众号
network
.
agentHeaders
.
put
(
"Content-Type"
,
"text/plain"
);
String
str
=
"<xml><ToUserName><![CDATA[gh_3b9884c7b0ee]]></ToUserName><FromUserName><![CDATA[osi5w5kT-smQ42Fc-ByO4G8C-E1M]]></FromUserName><CreateTime>1628040963</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[unsubscribe]]></Event></xml>"
;
Response
response
=
network
.
postXMLResponse
(
str
,
MANAGER_oamsg
);
Map
<
String
,
Object
>
result
=
KjyUserDB
.
getInstance
().
findSimpleResult
(
UserSqlFactory
.
selectUserIdByOpenId
,
"osi5w5kT-smQ42Fc-ByO4G8C-E1M"
);
System
.
out
.
println
(
"取关\n"
+
response
.
body
().
asString
());
network
.
agentHeaders
.
put
(
"Content-Type"
,
"application/json"
);
Object
userId
=
result
.
get
(
"user_id"
);
return
userId
;
}
/**
* 禁用
*/
public
static
void
disableUser
(
long
userId
){
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"userId"
,
userId
);
Response
response
=
network
.
postResponse
(
params
,
MANAGER_disableUser
);
boolean
success
=
response
.
jsonPath
().
getBoolean
(
"success"
);
boolean
result
=
response
.
jsonPath
().
getBoolean
(
"data"
);
System
.
out
.
println
(
"禁用:"
+
response
.
body
().
asString
());
Assert
.
assertTrue
(
success
,
network
.
message
(
params
,
MANAGER_disableUser
,
"接口返回失败"
,
response
.
body
().
asString
()));
Assert
.
assertTrue
(
result
,
network
.
message
(
params
,
MANAGER_disableUser
,
"返回数据为空"
,
response
.
body
().
asString
()));
}
/**
* 切换为会员
*/
public
static
void
updateTypeOrDate
(
long
userId
){
//找到用户的sellerid
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
Response
response
=
network
.
getResponse
(
USER_INFO
);
int
sellerId
=
response
.
jsonPath
().
getInt
(
"data.sellerId"
);
Assert
.
assertNotNull
(
response
.
jsonPath
().
getJsonObject
(
"data"
),
network
.
message
(
USER_INFO
,
"获取用户信息失败"
,
response
.
body
().
asString
()));
//切换代理人公司
params
.
clear
();
params
.
put
(
"id"
,
sellerId
);
params
.
put
(
"companyId"
,
6
);
response
=
network
.
getResponse
(
params
,
MANAGER_changeCompany
);
System
.
out
.
println
(
params
.
toString
());
boolean
success
=
response
.
jsonPath
().
getBoolean
(
"success"
);
boolean
result
=
response
.
jsonPath
().
getBoolean
(
"data"
);
System
.
out
.
println
(
response
.
body
().
asString
());
Assert
.
assertTrue
(
success
,
network
.
message
(
params
,
MANAGER_changeCompany
,
"接口返回失败"
,
response
.
body
().
asString
()));
Assert
.
assertTrue
(
result
,
network
.
message
(
params
,
MANAGER_changeCompany
,
"返回数据为空"
,
response
.
body
().
asString
()));
//切换会员
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
);
//设置日期格式
Date
date
=
new
Date
();
// new Date()为获取当前系统时间
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
cal
.
add
(
Calendar
.
YEAR
,
1
);
params
.
put
(
"reason"
,
"测试账号"
);
params
.
put
(
"sellerId"
,
sellerId
);
params
.
put
(
"userVersion"
,
2
);
params
.
put
(
"vipEndDate"
,
df
.
format
(
date
));
params
.
put
(
"vipStartDate"
,
df
.
format
(
cal
.
getTime
()));
params
.
put
(
"vipType"
,
2
);
response
=
network
.
postResponse
(
params
,
MANAGER_updateTypeOrDate
);
success
=
response
.
jsonPath
().
getBoolean
(
"success"
);
result
=
response
.
jsonPath
().
getBoolean
(
"data"
);
Assert
.
assertTrue
(
success
,
network
.
message
(
params
,
MANAGER_updateTypeOrDate
,
"接口返回失败"
,
response
.
body
().
asString
()));
Assert
.
assertTrue
(
result
,
network
.
message
(
params
,
MANAGER_updateTypeOrDate
,
"返回数据为空"
,
response
.
body
().
asString
()));
}
}
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