Compare commits
12 Commits
1.0.19
...
1.0.24-tes
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4334f4a5b | ||
|
|
ce44e4a05a | ||
|
|
a7024f7a8d | ||
|
|
c2fe494ed9 | ||
|
|
07de3f6ba7 | ||
|
|
1c521e5378 | ||
|
|
e98e98d659 | ||
|
|
75d052bd0c | ||
|
|
3758826987 | ||
|
|
8a4cf8e439 | ||
|
|
09203ac78d | ||
|
|
ef5861327c |
20
pom.xml
20
pom.xml
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>springboot-parent</name>
|
<name>springboot-parent</name>
|
||||||
<description>杭州铁晟科技有限公司基础依赖</description>
|
<description>杭州铁晟科技有限公司基础依赖</description>
|
||||||
@@ -57,55 +57,55 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-database</artifactId>
|
<artifactId>springboot-database</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-login</artifactId>
|
<artifactId>springboot-login</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-web</artifactId>
|
<artifactId>springboot-web</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-message</artifactId>
|
<artifactId>springboot-message</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-encrypt</artifactId>
|
<artifactId>springboot-encrypt</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-poi</artifactId>
|
<artifactId>springboot-poi</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -6,11 +6,11 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-ademo</artifactId>
|
<artifactId>springboot-ademo</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-database</artifactId>
|
<artifactId>springboot-database</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-encrypt</artifactId>
|
<artifactId>springboot-encrypt</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-login</artifactId>
|
<artifactId>springboot-login</artifactId>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import com.tiesheng.login.service.TieshengLoginConfigurer;
|
|||||||
import com.tiesheng.platform.config.ding.PlatformDingConfig;
|
import com.tiesheng.platform.config.ding.PlatformDingConfig;
|
||||||
import com.tiesheng.platform.config.ding.bean.DingJsapiSignature;
|
import com.tiesheng.platform.config.ding.bean.DingJsapiSignature;
|
||||||
import com.tiesheng.platform.config.ding.bean.DingUserInfo;
|
import com.tiesheng.platform.config.ding.bean.DingUserInfo;
|
||||||
|
import com.tiesheng.platform.config.ding.bean.DingUserSimple;
|
||||||
import com.tiesheng.platform.config.wxmini.PlatformWxminiConfig;
|
import com.tiesheng.platform.config.wxmini.PlatformWxminiConfig;
|
||||||
import com.tiesheng.platform.config.wxmp.PlatformWxmpConfig;
|
import com.tiesheng.platform.config.wxmp.PlatformWxmpConfig;
|
||||||
import com.tiesheng.platform.config.wxmp.bean.WxConfigBean;
|
import com.tiesheng.platform.config.wxmp.bean.WxConfigBean;
|
||||||
@@ -85,7 +86,7 @@ public class LoginController {
|
|||||||
public ApiResp<String> uniqueIndex(@RequestBody UniqueIndexDTO dto) {
|
public ApiResp<String> uniqueIndex(@RequestBody UniqueIndexDTO dto) {
|
||||||
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo("web_unique_index",
|
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo("web_unique_index",
|
||||||
dto.getNo(), dto.getPlatform(), dto.getInfo()));
|
dto.getNo(), dto.getPlatform(), dto.getInfo()));
|
||||||
if (tokenBean == null) {
|
if (tokenBean == null || StrUtil.isEmpty(tokenBean.getId())) {
|
||||||
throw new ApiException("登录失败");
|
throw new ApiException("登录失败");
|
||||||
}
|
}
|
||||||
return ApiResp.respOK(tokenBean.toToken());
|
return ApiResp.respOK(tokenBean.toToken());
|
||||||
@@ -131,8 +132,8 @@ public class LoginController {
|
|||||||
@RequestMapping("/ding/oauth2/{service}")
|
@RequestMapping("/ding/oauth2/{service}")
|
||||||
@OperationIgnore
|
@OperationIgnore
|
||||||
public void dingOauth2(@PathVariable String service, CodeExtraDTO dto, HttpServletResponse response) {
|
public void dingOauth2(@PathVariable String service, CodeExtraDTO dto, HttpServletResponse response) {
|
||||||
String ddUserId = platformDingConfig.getUserIdByCode(service, dto.getCode());
|
DingUserSimple userSimple = platformDingConfig.getUserIdByCode(service, dto.getCode());
|
||||||
DingUserInfo dingUserInfo = platformDingConfig.topapiV2UserGet(service, ddUserId);
|
DingUserInfo dingUserInfo = platformDingConfig.topapiV2UserGet(service, userSimple.getUserid());
|
||||||
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo(dingUserInfo.getAppId(),
|
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo(dingUserInfo.getAppId(),
|
||||||
dingUserInfo.getUserid(), "ding", JSON.toJSONString(dingUserInfo)));
|
dingUserInfo.getUserid(), "ding", JSON.toJSONString(dingUserInfo)));
|
||||||
tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getTo(), dto.getExtra(), response);
|
tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getTo(), dto.getExtra(), response);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-message</artifactId>
|
<artifactId>springboot-message</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class PlatformDingConfig {
|
|||||||
* @param service
|
* @param service
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public String doRequest(String service, String url, JSONObject body) {
|
public <T> DingResponse<T> doRequest(String service, String url, JSONObject body, TypeReference<DingResponse<T>> typeReference) {
|
||||||
if (StrUtil.contains(url, "?")) {
|
if (StrUtil.contains(url, "?")) {
|
||||||
url = url + "&access_token=" + getAccessToken(service);
|
url = url + "&access_token=" + getAccessToken(service);
|
||||||
} else {
|
} else {
|
||||||
@@ -70,12 +70,15 @@ public class PlatformDingConfig {
|
|||||||
execute = HttpUtil.createPost(url).body(body.toString()).execute();
|
execute = HttpUtil.createPost(url).body(body.toString()).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
String resp = execute.body();
|
|
||||||
if (execute.isOk()) {
|
if (execute.isOk()) {
|
||||||
return resp;
|
DingResponse<T> bean = JSONUtil.toBean(execute.body(), typeReference, true);
|
||||||
|
if (!bean.isOk()) {
|
||||||
|
LogFactory.get().info(bean.getErrmsg());
|
||||||
|
}
|
||||||
|
return bean;
|
||||||
}
|
}
|
||||||
LogFactory.get().info("{}: {}", url, resp);
|
|
||||||
return "";
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -119,13 +122,15 @@ public class PlatformDingConfig {
|
|||||||
DingConfigBean dingConfigBean = getConfigBean(service);
|
DingConfigBean dingConfigBean = getConfigBean(service);
|
||||||
String jsapiTicket = TimedCacheHelper.getTimedCache().get(CACHE_JSAPI_TICKET + dingConfigBean.getAppKey(), false);
|
String jsapiTicket = TimedCacheHelper.getTimedCache().get(CACHE_JSAPI_TICKET + dingConfigBean.getAppKey(), false);
|
||||||
if (StrUtil.isEmpty(jsapiTicket)) {
|
if (StrUtil.isEmpty(jsapiTicket)) {
|
||||||
String response = doRequest(service, "https://oapi.dingtalk.com/get_jsapi_ticket", null);
|
DingResponse<String> respJson = doRequest(service, "https://oapi.dingtalk.com/get_jsapi_ticket", null,
|
||||||
JSONObject respJson = JSONUtil.parseObj(response);
|
new TypeReference<DingResponse<String>>() {
|
||||||
if (!Objects.equals(respJson.getStr("errcode"), "0")) {
|
});
|
||||||
throw new ApiException(respJson.getStr("errmsg"));
|
if (!respJson.isOk()) {
|
||||||
|
throw new ApiException(respJson.getErrmsg());
|
||||||
}
|
}
|
||||||
jsapiTicket = respJson.getStr("ticket");
|
jsapiTicket = respJson.getTicket();
|
||||||
TimedCacheHelper.getTimedCache().put(CACHE_JSAPI_TICKET + dingConfigBean.getAppKey(), jsapiTicket, respJson.getLong("expires_in"));
|
TimedCacheHelper.getTimedCache().put(CACHE_JSAPI_TICKET + dingConfigBean.getAppKey(),
|
||||||
|
jsapiTicket, respJson.getExpiresIn());
|
||||||
}
|
}
|
||||||
return jsapiTicket;
|
return jsapiTicket;
|
||||||
}
|
}
|
||||||
@@ -154,10 +159,11 @@ public class PlatformDingConfig {
|
|||||||
* @return
|
* @return
|
||||||
* @see <a href="https://open.dingtalk.com/document/isvapp-server/obtain-the-userid-of-a-user-by-using-the-log-free"></a>
|
* @see <a href="https://open.dingtalk.com/document/isvapp-server/obtain-the-userid-of-a-user-by-using-the-log-free"></a>
|
||||||
*/
|
*/
|
||||||
public String getUserIdByCode(String service, String code) {
|
public DingUserSimple getUserIdByCode(String service, String code) {
|
||||||
String resp = doRequest(service, "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo",
|
DingResponse<DingUserSimple> resp = doRequest(service, "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo",
|
||||||
JSONUtil.createObj().putOpt("code", code));
|
JSONUtil.createObj().putOpt("code", code), new TypeReference<DingResponse<DingUserSimple>>() {
|
||||||
return JSONUtil.parseObj(resp).getJSONObject("result").getStr("userid");
|
});
|
||||||
|
return resp.getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -172,12 +178,11 @@ public class PlatformDingConfig {
|
|||||||
public DingUserInfo topapiV2UserGet(String service, String ddUserId) {
|
public DingUserInfo topapiV2UserGet(String service, String ddUserId) {
|
||||||
DingConfigBean dingConfigBean = getConfigBean(service);
|
DingConfigBean dingConfigBean = getConfigBean(service);
|
||||||
|
|
||||||
String response = doRequest(service, "https://oapi.dingtalk.com/topapi/v2/user/get",
|
DingUserInfo userInfo = doRequest(service, "https://oapi.dingtalk.com/topapi/v2/user/get",
|
||||||
JSONUtil.createObj().putOpt("userid", ddUserId));
|
JSONUtil.createObj().putOpt("userid", ddUserId), new TypeReference<DingResponse<DingUserInfo>>() {
|
||||||
JSONObject resultJson = JSONUtil.parseObj(response).getJSONObject("result");
|
}).getResult();
|
||||||
DingUserInfo userInfo = JSONUtil.toBean(resultJson, DingUserInfo.class);
|
|
||||||
// 设置一下job_number
|
// 设置一下job_number
|
||||||
userInfo.setJobNumber(resultJson.getStr("job_number"));
|
userInfo.setJobNumber(userInfo.getJobNumber());
|
||||||
userInfo.setAppId(dingConfigBean.getAppKey());
|
userInfo.setAppId(dingConfigBean.getAppKey());
|
||||||
return userInfo;
|
return userInfo;
|
||||||
}
|
}
|
||||||
@@ -195,16 +200,9 @@ public class PlatformDingConfig {
|
|||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
String resp = doRequest(service, "https://oapi.dingtalk.com/topapi/v2/department/listsub",
|
return doRequest(service, "https://oapi.dingtalk.com/topapi/v2/department/listsub",
|
||||||
JSONUtil.createObj().putOpt("dept_id", deptId));
|
JSONUtil.createObj().putOpt("dept_id", deptId), new TypeReference<DingResponse<List<DingDeptVo>>>() {
|
||||||
|
}).getResult();
|
||||||
DingResponse<List<DingDeptVo>> result = JSONUtil.toBean(resp, new TypeReference<DingResponse<List<DingDeptVo>>>() {
|
|
||||||
}.getType(), true);
|
|
||||||
|
|
||||||
if (!result.isOk()) {
|
|
||||||
result.setResult(new ArrayList<>());
|
|
||||||
}
|
|
||||||
return result.getResult();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -220,19 +218,16 @@ public class PlatformDingConfig {
|
|||||||
return DingUserListVo.fail();
|
return DingUserListVo.fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
String resp = doRequest(service, "https://oapi.dingtalk.com/topapi/v2/user/list",
|
return doRequest(service, "https://oapi.dingtalk.com/topapi/v2/user/list",
|
||||||
JSONUtil.createObj().putOpt("dept_id", deptId).putOpt("cursor", cursor).putOpt("size", 100));
|
JSONUtil.createObj().putOpt("dept_id", deptId).putOpt("cursor", cursor).putOpt("size", 100),
|
||||||
|
new TypeReference<DingResponse<DingUserListVo>>() {
|
||||||
DingResponse<DingUserListVo> result = JSONUtil.toBean(resp, new TypeReference<DingResponse<DingUserListVo>>() {
|
}).getResult();
|
||||||
}.getType(), true);
|
|
||||||
if (!result.isOk()) {
|
|
||||||
result.setResult(DingUserListVo.fail());
|
|
||||||
}
|
|
||||||
return result.getResult();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同步钉钉的通讯录
|
* 同步钉钉的通讯录
|
||||||
|
* <br />
|
||||||
|
* PS:如果需要钉钉用户手机号,需要开通权限:企业员工手机号信息
|
||||||
*
|
*
|
||||||
* @param deptVo 为null时从第一级获取
|
* @param deptVo 为null时从第一级获取
|
||||||
* @param consumer 回调
|
* @param consumer 回调
|
||||||
@@ -271,18 +266,19 @@ public class PlatformDingConfig {
|
|||||||
* @param content
|
* @param content
|
||||||
* @param actionUrl
|
* @param actionUrl
|
||||||
* @param userIds
|
* @param userIds
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public void messageNotification(String service, String title, String content, String actionUrl, List<String> userIds) {
|
public DingResponse<String> messageNotification(String service, String title, String markdown, String actionUrl, List<String> userIds) {
|
||||||
|
|
||||||
if (CollUtil.isEmpty(userIds)) {
|
if (CollUtil.isEmpty(userIds)) {
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
DingConfigBean configBean = getConfigBean(service);
|
DingConfigBean configBean = getConfigBean(service);
|
||||||
|
|
||||||
JSONObject actionCard = new JSONObject();
|
JSONObject actionCard = new JSONObject();
|
||||||
actionCard.set("title", title);
|
actionCard.set("title", title);
|
||||||
actionCard.set("markdown", "### " + title + "\n" + content);
|
actionCard.set("markdown", markdown);
|
||||||
actionCard.set("single_title", "点击查看");
|
actionCard.set("single_title", "点击查看");
|
||||||
actionCard.set("single_url", actionUrl);
|
actionCard.set("single_url", actionUrl);
|
||||||
|
|
||||||
@@ -294,12 +290,14 @@ public class PlatformDingConfig {
|
|||||||
body.putOpt("agent_id", configBean.getAgentId());
|
body.putOpt("agent_id", configBean.getAgentId());
|
||||||
body.putOpt("userid_list", CollUtil.join(userIds, ","));
|
body.putOpt("userid_list", CollUtil.join(userIds, ","));
|
||||||
body.putOpt("msg", msg);
|
body.putOpt("msg", msg);
|
||||||
doRequest(service, "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2", body);
|
return doRequest(service, "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2", body,
|
||||||
|
new TypeReference<DingResponse<String>>() {
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// setter\getter
|
// setter\getter
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
public Map<String, DingConfigBean> getConfigs() {
|
public Map<String, DingConfigBean> getConfigs() {
|
||||||
return configs;
|
return configs;
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ public class DingResponse<T> {
|
|||||||
|
|
||||||
private String errcode;
|
private String errcode;
|
||||||
private String errmsg;
|
private String errmsg;
|
||||||
|
private String ticket;
|
||||||
|
private Long expiresIn;
|
||||||
private T result;
|
private T result;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
@@ -43,4 +45,20 @@ public class DingResponse<T> {
|
|||||||
public void setResult(T result) {
|
public void setResult(T result) {
|
||||||
this.result = result;
|
this.result = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getTicket() {
|
||||||
|
return ticket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTicket(String ticket) {
|
||||||
|
this.ticket = ticket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getExpiresIn() {
|
||||||
|
return expiresIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExpiresIn(Long expiresIn) {
|
||||||
|
this.expiresIn = expiresIn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,8 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* @author hao
|
* @author hao
|
||||||
*/
|
*/
|
||||||
public class DingUserInfo {
|
public class DingUserInfo extends DingUserSimple {
|
||||||
|
|
||||||
private String name;
|
|
||||||
private String userid;
|
|
||||||
private String avatar;
|
private String avatar;
|
||||||
private String mobile;
|
private String mobile;
|
||||||
private String email;
|
private String email;
|
||||||
@@ -17,7 +15,6 @@ public class DingUserInfo {
|
|||||||
private String nickname;
|
private String nickname;
|
||||||
private String title;
|
private String title;
|
||||||
private String remark;
|
private String remark;
|
||||||
private String unionid;
|
|
||||||
private String appId;
|
private String appId;
|
||||||
private List<String> deptIdList;
|
private List<String> deptIdList;
|
||||||
private boolean leader;
|
private boolean leader;
|
||||||
@@ -34,30 +31,6 @@ public class DingUserInfo {
|
|||||||
// setter\getter
|
// setter\getter
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUnionid() {
|
|
||||||
return unionid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUnionid(String unionid) {
|
|
||||||
this.unionid = unionid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUserid() {
|
|
||||||
return userid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserid(String userid) {
|
|
||||||
this.userid = userid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAvatar() {
|
public String getAvatar() {
|
||||||
return avatar;
|
return avatar;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.tiesheng.platform.config.ding.bean;
|
||||||
|
|
||||||
|
public class DingUserSimple {
|
||||||
|
|
||||||
|
private String unionid;
|
||||||
|
private String name;
|
||||||
|
private String userid;
|
||||||
|
|
||||||
|
public String getUnionid() {
|
||||||
|
return unionid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnionid(String unionid) {
|
||||||
|
this.unionid = unionid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserid() {
|
||||||
|
return userid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserid(String userid) {
|
||||||
|
this.userid = userid;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-poi</artifactId>
|
<artifactId>springboot-poi</artifactId>
|
||||||
|
|||||||
BIN
springboot-util/.DS_Store
vendored
Normal file
BIN
springboot-util/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
|
|||||||
BIN
springboot-util/src/main/.DS_Store
vendored
Normal file
BIN
springboot-util/src/main/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -7,6 +7,7 @@ import com.tiesheng.util.config.DesensitizeValueFilter;
|
|||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
public class CommonUtil {
|
public class CommonUtil {
|
||||||
|
|
||||||
@@ -18,6 +19,7 @@ public class CommonUtil {
|
|||||||
*/
|
*/
|
||||||
public static FastJsonConfig fastJsonConfig() {
|
public static FastJsonConfig fastJsonConfig() {
|
||||||
FastJsonConfig config = new FastJsonConfig();
|
FastJsonConfig config = new FastJsonConfig();
|
||||||
|
config.setCharset(StandardCharsets.UTF_8);
|
||||||
config.setSerializerFeatures(SerializerFeature.WriteMapNullValue,
|
config.setSerializerFeatures(SerializerFeature.WriteMapNullValue,
|
||||||
SerializerFeature.WriteNullStringAsEmpty,
|
SerializerFeature.WriteNullStringAsEmpty,
|
||||||
SerializerFeature.WriteEnumUsingName,
|
SerializerFeature.WriteEnumUsingName,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>1.0.19</version>
|
<version>1.0.24-test2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-web</artifactId>
|
<artifactId>springboot-web</artifactId>
|
||||||
|
|||||||
@@ -28,6 +28,28 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取(或创建)一个文本类型的配置
|
||||||
|
*
|
||||||
|
* @param configKey
|
||||||
|
* @param defaultValue
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public CoreConfigSystem getTextOrCreate(String configKey, String defaultValue) {
|
||||||
|
CoreConfigSystem oneByColumn = getOneByColumn("config_key", configKey);
|
||||||
|
if (oneByColumn == null) {
|
||||||
|
oneByColumn = new CoreConfigSystem();
|
||||||
|
oneByColumn.setId(configKey);
|
||||||
|
oneByColumn.setConfigKey(configKey);
|
||||||
|
oneByColumn.setConfigVal(defaultValue);
|
||||||
|
oneByColumn.setRemark(defaultValue);
|
||||||
|
oneByColumn.setConfigType(0);
|
||||||
|
save(oneByColumn);
|
||||||
|
}
|
||||||
|
return oneByColumn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 刷新功能点
|
* 刷新功能点
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.tiesheng.core.service;
|
package com.tiesheng.core.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.tiesheng.core.mapper.CorePlatformUniqueMapper;
|
import com.tiesheng.core.mapper.CorePlatformUniqueMapper;
|
||||||
import com.tiesheng.core.pojos.dao.CorePlatformUnique;
|
import com.tiesheng.core.pojos.dao.CorePlatformUnique;
|
||||||
import com.tiesheng.login.config.token.bean.TokenBean;
|
import com.tiesheng.login.config.token.bean.TokenBean;
|
||||||
@@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hao
|
* @author hao
|
||||||
@@ -37,11 +38,22 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
|
|||||||
platformUnique.setInfo(loginInfo.getInfo());
|
platformUnique.setInfo(loginInfo.getInfo());
|
||||||
saveOrUpdate(platformUnique);
|
saveOrUpdate(platformUnique);
|
||||||
|
|
||||||
|
String oldUserId = platformUnique.getUserId();
|
||||||
TokenBean tokenBean = tieshengWebConfigurer.login(platformUnique);
|
TokenBean tokenBean = tieshengWebConfigurer.login(platformUnique);
|
||||||
if (tokenBean != null) {
|
if (tokenBean != null) {
|
||||||
|
|
||||||
// 添加登录日志
|
// 添加登录日志
|
||||||
coreLogService.addLoginLog(platformUnique, tokenBean);
|
coreLogService.addLoginLog(platformUnique, tokenBean);
|
||||||
|
|
||||||
|
// 更新唯一值
|
||||||
|
if (!StrUtil.isEmpty(tokenBean.getId()) &&
|
||||||
|
!Objects.equals(oldUserId, tokenBean.getId())) {
|
||||||
|
platformUnique.setUserId(tokenBean.getId());
|
||||||
|
saveOrUpdate(platformUnique);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return tokenBean;
|
return tokenBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,19 +67,5 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
|
|||||||
tieshengWebConfigurer.onSignError(response);
|
tieshengWebConfigurer.onSignError(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新用户id
|
|
||||||
*
|
|
||||||
* @param uniqueId
|
|
||||||
* @param userId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public boolean updateUserId(String uniqueId, String userId) {
|
|
||||||
return update(new UpdateWrapper<CorePlatformUnique>().eq("unique_id", uniqueId)
|
|
||||||
.set("user_id", userId)
|
|
||||||
.set("is_deleted", 0)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user