Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
ebb48a7b
提交
ebb48a7b
authored
5月 25, 2023
作者:
余乾开
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
9de2da96
adbe16a6
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
287 行增加
和
10 行删除
+287
-10
argocd-ingress.yaml
argocd/argocd-ingress.yaml
+28
-0
UserSubInfoDTO.java
...main/java/com/mmc/iuav/user/model/dto/UserSubInfoDTO.java
+29
-0
UserSubInfoDao.java
...r/src/main/java/com/mmc/iuav/user/dao/UserSubInfoDao.java
+25
-0
UserSubInfoDO.java
...src/main/java/com/mmc/iuav/user/entity/UserSubInfoDO.java
+32
-0
WxServiceImpl.java
...in/java/com/mmc/iuav/user/service/impl/WxServiceImpl.java
+55
-2
UserSubInfoDao.xml
...service-user/src/main/resources/mapper/UserSubInfoDao.xml
+81
-0
ingress.yaml
kustomization/ingress.yaml
+24
-7
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
secret.yaml
kustomization/secret.yaml
+12
-0
没有找到文件。
argocd/argocd-ingress.yaml
0 → 100644
浏览文件 @
ebb48a7b
apiVersion
:
networking.k8s.io/v1
kind
:
Ingress
metadata
:
name
:
argocd-server-ingress
namespace
:
argocd
annotations
:
nginx.io/tls-acme
:
"
true"
nginx.ingress.kubernetes.io/backend-protocol
:
"
HTTPS"
# 后端使用tls协议,设置代理后端服务器的代理协议类型,默认为 HTTP
nginx.ingress.kubernetes.io/force-ssl-redirect
:
"
true"
nginx.ingress.kubernetes.io/ssl-passthrough
:
"
true"
spec
:
ingressClassName
:
"
nginx"
tls
:
-
hosts
:
-
argocd.iuav.mmcuav.cn
secretName
:
argocd-secret
rules
:
-
host
:
argocd.iuav.mmcuav.cn
http
:
paths
:
-
path
:
/
pathType
:
Prefix
backend
:
service
:
name
:
argocd-server
port
:
name
:
https
\ No newline at end of file
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/dto/UserSubInfoDTO.java
0 → 100644
浏览文件 @
ebb48a7b
package
com
.
mmc
.
iuav
.
user
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author: zj
* @Date: 2023/5/24 15:09
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
UserSubInfoDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
152531137248542030L
;
@ApiModelProperty
(
value
=
"是否关注(0:否 1:是)-关注了才会有其他信息"
)
private
Integer
subscribe
;
@ApiModelProperty
(
value
=
"openId"
)
private
String
openId
;
@ApiModelProperty
(
value
=
"unionId"
)
private
String
unionId
;
@ApiModelProperty
(
value
=
"昵称"
)
private
String
nickName
;
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/UserSubInfoDao.java
0 → 100644
浏览文件 @
ebb48a7b
package
com
.
mmc
.
iuav
.
user
.
dao
;
import
com.mmc.iuav.user.entity.UserSubInfoDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author: zj
* @Date: 2023/5/24 15:00
*/
@Mapper
public
interface
UserSubInfoDao
{
Integer
countUserSubInfo
(
String
openId
);
UserSubInfoDO
getUserSubInfo
(
String
openId
);
UserSubInfoDO
getUserSubInfoById
(
Integer
userAccountId
);
UserSubInfoDO
getUserSubInfoByUnionId
(
String
unionId
);
void
insertUserSubInfo
(
UserSubInfoDO
subInfo
);
void
removeUserSubInfo
(
String
openId
);
void
updateUserSubInfo
(
UserSubInfoDO
subInfo
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/UserSubInfoDO.java
0 → 100644
浏览文件 @
ebb48a7b
package
com
.
mmc
.
iuav
.
user
.
entity
;
import
com.mmc.iuav.user.model.dto.UserSubInfoDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author: zj
* @Date: 2023/5/24 15:08
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
UserSubInfoDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8534660282946889549L
;
private
Integer
id
;
private
String
openId
;
private
String
unionId
;
private
String
nickName
;
private
Integer
regStatus
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
public
UserSubInfoDTO
buildUserSbuInfoDTO
()
{
return
UserSubInfoDTO
.
builder
().
openId
(
openId
).
unionId
(
unionId
).
subscribe
(
this
.
deleted
==
0
?
1
:
0
).
build
();
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/impl/WxServiceImpl.java
浏览文件 @
ebb48a7b
...
@@ -8,6 +8,8 @@ import com.mmc.iuav.response.ResultBody;
...
@@ -8,6 +8,8 @@ import com.mmc.iuav.response.ResultBody;
import
com.mmc.iuav.response.ResultEnum
;
import
com.mmc.iuav.response.ResultEnum
;
import
com.mmc.iuav.user.constant.UserSystemConstant
;
import
com.mmc.iuav.user.constant.UserSystemConstant
;
import
com.mmc.iuav.user.constant.WxConstant
;
import
com.mmc.iuav.user.constant.WxConstant
;
import
com.mmc.iuav.user.dao.UserSubInfoDao
;
import
com.mmc.iuav.user.entity.UserSubInfoDO
;
import
com.mmc.iuav.user.model.vo.AppletMsgVO
;
import
com.mmc.iuav.user.model.vo.AppletMsgVO
;
import
com.mmc.iuav.user.model.vo.WxLoginVO
;
import
com.mmc.iuav.user.model.vo.WxLoginVO
;
import
com.mmc.iuav.user.model.vo.WxMsgVO
;
import
com.mmc.iuav.user.model.vo.WxMsgVO
;
...
@@ -21,6 +23,7 @@ import org.springframework.stereotype.Service;
...
@@ -21,6 +23,7 @@ import org.springframework.stereotype.Service;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.BufferedReader
;
import
java.io.BufferedReader
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
...
@@ -36,6 +39,9 @@ public class WxServiceImpl implements WxService {
...
@@ -36,6 +39,9 @@ public class WxServiceImpl implements WxService {
@Autowired
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
private
StringRedisTemplate
stringRedisTemplate
;
@Autowired
private
UserSubInfoDao
userSubInfoDao
;
@Override
@Override
public
String
appLogin
(
WxLoginVO
wxLoginVO
)
{
public
String
appLogin
(
WxLoginVO
wxLoginVO
)
{
String
url
=
WxConstant
.
CODE2_SESSION_URL
+
"?appid="
+
userSystemConstant
.
getWxAppId
()
+
"&secret="
+
String
url
=
WxConstant
.
CODE2_SESSION_URL
+
"?appid="
+
userSystemConstant
.
getWxAppId
()
+
"&secret="
+
...
@@ -110,7 +116,7 @@ public class WxServiceImpl implements WxService {
...
@@ -110,7 +116,7 @@ public class WxServiceImpl implements WxService {
System
.
out
.
println
(
"###########取消关注############"
);
System
.
out
.
println
(
"###########取消关注############"
);
System
.
out
.
println
(
"############################"
);
System
.
out
.
println
(
"############################"
);
String
openId
=
map
.
get
(
"FromUserName"
);
String
openId
=
map
.
get
(
"FromUserName"
);
//
userSubInfoDao.removeUserSubInfo(openId);
userSubInfoDao
.
removeUserSubInfo
(
openId
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"接收消息异常"
+
e
.
getMessage
());
System
.
out
.
println
(
"接收消息异常"
+
e
.
getMessage
());
...
@@ -120,7 +126,20 @@ public class WxServiceImpl implements WxService {
...
@@ -120,7 +126,20 @@ public class WxServiceImpl implements WxService {
}
}
private
void
subScribeUser
(
Map
<
String
,
String
>
map
)
{
private
void
subScribeUser
(
Map
<
String
,
String
>
map
)
{
String
openId
=
map
.
get
(
"FromUserName"
);
Integer
count
=
userSubInfoDao
.
countUserSubInfo
(
openId
);
if
(
count
==
0
)
{
UserSubInfoDO
sub
=
new
UserSubInfoDO
();
sub
.
setOpenId
(
openId
);
sub
.
setRegStatus
(
0
);
sub
.
setDeleted
(
0
);
sub
.
setCreateTime
(
new
Date
());
userSubInfoDao
.
insertUserSubInfo
(
sub
);
// WxRequestVO wq = new WxRequestVO();
// wq.setOpenId(sub.getOpenId());
// publicsher.sendDirectWxRegUser(wq, RabbitMqConfig.USER_WX_ROUTING_KEY);
this
.
updateWXUserInfo
(
openId
);
}
}
}
private
Map
<
String
,
String
>
convertRequestToMap
(
HttpServletRequest
request
)
throws
Exception
{
private
Map
<
String
,
String
>
convertRequestToMap
(
HttpServletRequest
request
)
throws
Exception
{
...
@@ -134,6 +153,40 @@ public class WxServiceImpl implements WxService {
...
@@ -134,6 +153,40 @@ public class WxServiceImpl implements WxService {
return
WXPayUtil
.
xmlToMap
(
notifyXml
);
return
WXPayUtil
.
xmlToMap
(
notifyXml
);
}
}
private
void
updateWXUserInfo
(
String
openid
)
{
String
accessToken
=
this
.
getSubAccessToken
();
if
(
StringUtils
.
isBlank
(
accessToken
))
{
return
;
}
try
{
String
InfoUrl
=
"https://api.weixin.qq.com/cgi-bin/user/info?access_token="
+
accessToken
+
"&openid="
+
openid
+
"&lang=zh_CN"
;
//String jsonStr = HttpsOpenUtil.https(InfoUrl, "GET");// 错误:{"errcode":40013,"errmsg":"invalid appid"}
String
jsonStr
=
HttpsRequestUtil
.
httpsRequest
(
InfoUrl
,
"GET"
,
null
,
null
);
JSONObject
obj
=
JSONObject
.
parseObject
(
jsonStr
);
// 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
Integer
subscribe
=
obj
.
getInteger
(
"subscribe"
);
if
(
subscribe
!=
null
&&
subscribe
==
1
)
{
System
.
out
.
println
(
"###########access_token##########"
);
System
.
out
.
println
(
accessToken
);
System
.
out
.
println
(
"###########用户信息##########"
);
System
.
out
.
println
(
jsonStr
);
UserSubInfoDO
user
=
new
UserSubInfoDO
();
user
.
setOpenId
(
openid
);
user
.
setUnionId
(
obj
.
getString
(
"unionid"
));
user
.
setNickName
(
obj
.
getString
(
"nickname"
));
user
.
setRegStatus
(
1
);
userSubInfoDao
.
updateUserSubInfo
(
user
);
return
;
}
else
{
System
.
out
.
println
(
"未订阅公众号,无法拉取信息。"
);
return
;
}
}
catch
(
Exception
e
){
throw
new
RuntimeException
();
}
}
@Override
@Override
public
ResultBody
sendSubTemplateMsg
(
WxMsgVO
ws
)
{
public
ResultBody
sendSubTemplateMsg
(
WxMsgVO
ws
)
{
...
...
csm-service/cms-service-user/src/main/resources/mapper/UserSubInfoDao.xml
0 → 100644
浏览文件 @
ebb48a7b
<?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.mmc.iuav.user.dao.UserSubInfoDao"
>
<resultMap
id=
"userSubInfoResultMap"
type=
"com.mmc.iuav.user.entity.UserSubInfoDO"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"openId"
column=
"open_id"
/>
<result
property=
"unionId"
column=
"union_id"
/>
<result
property=
"nickName"
column=
"nick_name"
/>
<result
property=
"regStatus"
column=
"reg_status"
/>
<result
property=
"deleted"
column=
"is_deleted"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
<select
id=
"getUserSubInfo"
resultMap=
"userSubInfoResultMap"
parameterType=
"String"
>
select u.id,u.open_id,u.union_id,u.nick_name,u.reg_status,
u.is_deleted,u.create_time,u.update_time
from user_sub_info u
where u.open_id = #{openId}
</select>
<select
id=
"getUserSubInfoById"
resultMap=
"userSubInfoResultMap"
parameterType=
"Integer"
>
select usi.id,usi.open_id,usi.union_id,usi.nick_name,usi.is_deleted
from user_account ua
inner join user_sub_info usi on usi.union_id=ua.union_id
where usi.is_deleted=0 and ua.is_deleted=0
and ua.user_account_id = #{userAccountId}
</select>
<select
id=
"getUserSubInfoByUnionId"
resultMap=
"userSubInfoResultMap"
parameterType=
"String"
>
select usi.id,usi.open_id,usi.union_id,usi.nick_name,usi.is_deleted
from user_sub_info usi
where usi.union_id = #{unionId} and usi.is_deleted=0
</select>
<select
id=
"countUserSubInfo"
resultType=
"Integer"
parameterType=
"String"
>
select count(*)
from user_sub_info u
where u.open_id = #{openId} and is_deleted = 0
</select>
<insert
id=
"insertUserSubInfo"
useGeneratedKeys=
"true"
keyProperty=
"id"
parameterType=
"com.mmc.iuav.user.entity.UserSubInfoDO"
>
insert into user_sub_info
(
open_id,union_id,nick_name,reg_status,is_deleted,create_time,update_time
)
values
(
#{openId},#{unionId},#{nickName},#{regStatus},#{deleted},#{createTime},#{updateTime}
)
</insert>
<update
id=
"removeUserSubInfo"
parameterType=
"String"
>
update user_sub_info
set is_deleted = 1
where open_id = #{openId}
</update>
<update
id=
"updateUserSubInfo"
parameterType=
"com.mmc.iuav.user.entity.UserSubInfoDO"
>
update user_sub_info
<set>
<if
test=
"unionId != null and unionId != '' "
>
union_id = #{unionId},
</if>
<if
test=
"nickName != null"
>
nick_name = #{nickName},
</if>
<if
test=
"regStatus != null"
>
reg_status = #{regStatus},
</if>
</set>
where open_id = #{openId}
</update>
</mapper>
\ No newline at end of file
kustomization/ingress.yaml
浏览文件 @
ebb48a7b
...
@@ -2,15 +2,18 @@ apiVersion: networking.k8s.io/v1
...
@@ -2,15 +2,18 @@ apiVersion: networking.k8s.io/v1
kind
:
Ingress
kind
:
Ingress
metadata
:
metadata
:
name
:
sharefly-ingress
#不能超过 253 个字符;只能包含小写字母、数字,以及 '-' 和 '.';必须以字母数字开头;必须以字母数字结尾
name
:
sharefly-ingress
#不能超过 253 个字符;只能包含小写字母、数字,以及 '-' 和 '.';必须以字母数字开头;必须以字母数字结尾
namespace
:
de
fault
namespace
:
de
v
annotations
:
#
annotations:
nginx.ingress.kubernetes.io/rewrite-target
:
/
#使用注解(annotations)来配置一些选项,具体取决于 Ingress 控制器
#
nginx.ingress.kubernetes.io/rewrite-target: / #使用注解(annotations)来配置一些选项,具体取决于 Ingress 控制器
spec
:
spec
:
#ingressClassName: nginx
ingressClassName
:
nginx
tls
:
-
hosts
:
-
test.iuav.mmcuav.cn
secretName
:
test-iuav-secret
rules
:
rules
:
# - host: iuav.mmcuav.cn
-
host
:
test.iuav.mmcuav.cn
# http
http
:
-
http
:
paths
:
paths
:
-
path
:
/pms
-
path
:
/pms
pathType
:
Prefix
pathType
:
Prefix
...
@@ -19,4 +22,18 @@ spec:
...
@@ -19,4 +22,18 @@ spec:
name
:
pms-svc
name
:
pms-svc
port
:
port
:
number
:
8099
number
:
8099
-
path
:
/userapp
pathType
:
Prefix
backend
:
service
:
name
:
cms-svc
port
:
number
:
35150
-
path
:
/release
pathType
:
Prefix
backend
:
service
:
name
:
ims-svc
port
:
number
:
10001
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
ebb48a7b
...
@@ -17,4 +17,4 @@ patches:
...
@@ -17,4 +17,4 @@ patches:
images
:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag
:
a3f79b49134092c8a4a92e4c1996ac2f0522deba
newTag
:
4930721159f6cd570b7b50519e9e74c8e57e37ab
kustomization/secret.yaml
0 → 100644
浏览文件 @
ebb48a7b
apiVersion
:
v1
kind
:
Secret
metadata
:
name
:
test-iuav-secret
type
:
kubernetes.io/tls
data
:
# the data is abbreviated in this example
tls.crt
:
|
Y21zL3NlY3JldC9kZXYvMTAxNjQ2ODRfdGVzdC5pdWF2Lm1tY3Vhdi5jbi5wZW0=
tls.key
:
|
Y21zL3NlY3JldC9kZXYvMTAxNjQ2ODRfdGVzdC5pdWF2Lm1tY3Vhdi5jbi5rZXk=
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论