Commit c880dc07223ea5def3ec36e1257f64bcc30928fd
1 parent
5ab2f5ee
fix: 新增日志,新增请求token任务
Showing
9 changed files
with
110 additions
and
20 deletions
ruoyi-admin/src/main/java/com/ruoyi/in/service/impl/SignInServiceImpl.java
| @@ -164,6 +164,7 @@ public class SignInServiceImpl implements ISignInService { | @@ -164,6 +164,7 @@ public class SignInServiceImpl implements ISignInService { | ||
| 164 | SignInResponseVo vo = new SignInResponseVo(); | 164 | SignInResponseVo vo = new SignInResponseVo(); |
| 165 | vo.setAddress(equipment.getAddress()); | 165 | vo.setAddress(equipment.getAddress()); |
| 166 | vo.setDeviceId(signIn.getDeviceId()); | 166 | vo.setDeviceId(signIn.getDeviceId()); |
| 167 | + System.out.println("返回数据:" + vo.toString()); | ||
| 167 | return SIGN_IN_SUCCESS.equals(signIn.getStatus()) ? AjaxResult.success(SIGN_IN_SUCCESS_STRING,vo) : AjaxResult.error(SIGN_IN_ERROR + signIn.getRemark(),vo); | 168 | return SIGN_IN_SUCCESS.equals(signIn.getStatus()) ? AjaxResult.success(SIGN_IN_SUCCESS_STRING,vo) : AjaxResult.error(SIGN_IN_ERROR + signIn.getRemark(),vo); |
| 168 | } | 169 | } |
| 169 | 170 |
ruoyi-admin/src/main/java/com/ruoyi/job/DriverJob.java
| @@ -4,14 +4,17 @@ import com.ruoyi.common.core.redis.RedisCache; | @@ -4,14 +4,17 @@ import com.ruoyi.common.core.redis.RedisCache; | ||
| 4 | import com.ruoyi.driver.domain.Driver; | 4 | import com.ruoyi.driver.domain.Driver; |
| 5 | import com.ruoyi.driver.service.IDriverService; | 5 | import com.ruoyi.driver.service.IDriverService; |
| 6 | import com.ruoyi.pojo.response.ResponseScheduling; | 6 | import com.ruoyi.pojo.response.ResponseScheduling; |
| 7 | +import com.ruoyi.pojo.response.TokenResponseVo; | ||
| 7 | import com.ruoyi.utils.ConstDateUtil; | 8 | import com.ruoyi.utils.ConstDateUtil; |
| 8 | import com.ruoyi.utils.ListUtils; | 9 | import com.ruoyi.utils.ListUtils; |
| 9 | import org.springframework.beans.factory.InitializingBean; | 10 | import org.springframework.beans.factory.InitializingBean; |
| 10 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
| 11 | import org.springframework.beans.factory.annotation.Value; | 12 | import org.springframework.beans.factory.annotation.Value; |
| 12 | import org.springframework.core.ParameterizedTypeReference; | 13 | import org.springframework.core.ParameterizedTypeReference; |
| 13 | -import org.springframework.http.HttpMethod; | 14 | +import org.springframework.http.*; |
| 14 | import org.springframework.stereotype.Component; | 15 | import org.springframework.stereotype.Component; |
| 16 | +import org.springframework.util.LinkedMultiValueMap; | ||
| 17 | +import org.springframework.util.MultiValueMap; | ||
| 15 | import org.springframework.web.client.RestTemplate; | 18 | import org.springframework.web.client.RestTemplate; |
| 16 | 19 | ||
| 17 | import javax.annotation.Resource; | 20 | import javax.annotation.Resource; |
| @@ -42,6 +45,16 @@ public class DriverJob implements InitializingBean { | @@ -42,6 +45,16 @@ public class DriverJob implements InitializingBean { | ||
| 42 | @Value("${api.url.getDriverInfo}") | 45 | @Value("${api.url.getDriverInfo}") |
| 43 | private String getDriverInfoUrl; | 46 | private String getDriverInfoUrl; |
| 44 | 47 | ||
| 48 | + | ||
| 49 | + @Value("${api.personnel.token.tokenUrl}") | ||
| 50 | + private String tokenUrl; | ||
| 51 | + | ||
| 52 | + @Value("${api.personnel.token.appKey}") | ||
| 53 | + private String appKey; | ||
| 54 | + | ||
| 55 | + @Value("${api.personnel.token.appSecret}") | ||
| 56 | + private String appSecret; | ||
| 57 | + | ||
| 45 | @Value("${api.url.getSchedulingInfo}") | 58 | @Value("${api.url.getSchedulingInfo}") |
| 46 | private String getSchedulingInfoUrl; | 59 | private String getSchedulingInfoUrl; |
| 47 | 60 | ||
| @@ -51,6 +64,9 @@ public class DriverJob implements InitializingBean { | @@ -51,6 +64,9 @@ public class DriverJob implements InitializingBean { | ||
| 51 | @Value("${api.config.nonce}") | 64 | @Value("${api.config.nonce}") |
| 52 | private String nonce; | 65 | private String nonce; |
| 53 | 66 | ||
| 67 | + private static String APP_KEY; | ||
| 68 | + private static String TOKEN_URL; | ||
| 69 | + private static String APP_SECRET; | ||
| 54 | private static IDriverService DRIVER_SERVICE; | 70 | private static IDriverService DRIVER_SERVICE; |
| 55 | private static RedisCache REDIS_CACHE; | 71 | private static RedisCache REDIS_CACHE; |
| 56 | private static RestTemplate RESTTEMPLATE; | 72 | private static RestTemplate RESTTEMPLATE; |
| @@ -70,7 +86,7 @@ public class DriverJob implements InitializingBean { | @@ -70,7 +86,7 @@ public class DriverJob implements InitializingBean { | ||
| 70 | String getDriverInfoUrl = String.format(GET_DRIVER_INFO_URL, params); | 86 | String getDriverInfoUrl = String.format(GET_DRIVER_INFO_URL, params); |
| 71 | long timestamp = System.currentTimeMillis(); | 87 | long timestamp = System.currentTimeMillis(); |
| 72 | // 获取驾驶员信息 | 88 | // 获取驾驶员信息 |
| 73 | - List<Driver> drivers = getDrivers(getDriverInfoUrl, String.valueOf(timestamp)); | 89 | + List<Driver> drivers = getDrivers(APP_SECRET, String.valueOf(timestamp)); |
| 74 | // 格式化请求 | 90 | // 格式化请求 |
| 75 | String getSchedulingInfoUrl = String.format(GET_SCHEDULING_INFO_URL, "99", ConstDateUtil.formatDate("yyyyMMdd"), timestamp, NONCE, PASSWORD, getSHA1(getStringStringMap(String.valueOf(timestamp)))); | 91 | String getSchedulingInfoUrl = String.format(GET_SCHEDULING_INFO_URL, "99", ConstDateUtil.formatDate("yyyyMMdd"), timestamp, NONCE, PASSWORD, getSHA1(getStringStringMap(String.valueOf(timestamp)))); |
| 76 | // 获取排班信息并存入redis | 92 | // 获取排班信息并存入redis |
| @@ -89,6 +105,11 @@ public class DriverJob implements InitializingBean { | @@ -89,6 +105,11 @@ public class DriverJob implements InitializingBean { | ||
| 89 | } | 105 | } |
| 90 | 106 | ||
| 91 | /** | 107 | /** |
| 108 | + * 获取员工数据 | ||
| 109 | + */ | ||
| 110 | + | ||
| 111 | + | ||
| 112 | + /** | ||
| 92 | * 导入图片任务 | 113 | * 导入图片任务 |
| 93 | */ | 114 | */ |
| 94 | public void importImages(){ | 115 | public void importImages(){ |
| @@ -131,25 +152,30 @@ public class DriverJob implements InitializingBean { | @@ -131,25 +152,30 @@ public class DriverJob implements InitializingBean { | ||
| 131 | return driverSchedulingMap; | 152 | return driverSchedulingMap; |
| 132 | } | 153 | } |
| 133 | 154 | ||
| 134 | - private List<Driver> getDrivers(String format, String timestamp) throws Exception { | 155 | + private List<Driver> getDrivers(String url, String timestamp) throws Exception { |
| 135 | Map<String, String> configMap = getStringStringMap(timestamp); | 156 | Map<String, String> configMap = getStringStringMap(timestamp); |
| 136 | String sign = getSHA1(configMap); | 157 | String sign = getSHA1(configMap); |
| 137 | - String url = format | ||
| 138 | - + "?timestamp=" + timestamp | ||
| 139 | - + "&nonce=" + NONCE | ||
| 140 | - + "&password=" + PASSWORD | ||
| 141 | - + "&sign=" + sign; | ||
| 142 | //生成签名 | 158 | //生成签名 |
| 143 | - List<Driver> drivers = RESTTEMPLATE.exchange( | ||
| 144 | - url, | ||
| 145 | - HttpMethod.GET, | ||
| 146 | - null, | ||
| 147 | - new ParameterizedTypeReference<List<Driver>>() { | ||
| 148 | - }).getBody().stream().map(item ->{ | ||
| 149 | - item.setJobCode(item.getJobCode().split("-")[1]); | ||
| 150 | - return item; | ||
| 151 | - }).collect(Collectors.toList()); | ||
| 152 | - return drivers; | 159 | + TokenResponseVo tokenVo = getToken(url); |
| 160 | +// redisCache.setCacheObject(); | ||
| 161 | +// getPersonInfo(tokenVo); | ||
| 162 | +// return drivers; | ||
| 163 | + return null; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + private TokenResponseVo getToken(String url) { | ||
| 167 | + MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); | ||
| 168 | + params.add("appSecret", APP_SECRET); | ||
| 169 | + params.add("appKey", APP_KEY); | ||
| 170 | + // 设置请求头 | ||
| 171 | + HttpHeaders headers = new HttpHeaders(); | ||
| 172 | + headers.setContentType(MediaType.APPLICATION_JSON); | ||
| 173 | + // 创建HttpEntity对象 | ||
| 174 | + HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers); | ||
| 175 | + | ||
| 176 | + // 发送POST请求 | ||
| 177 | + ResponseEntity<TokenResponseVo> responseEntity = restTemplate.postForEntity(url, requestEntity, TokenResponseVo.class); | ||
| 178 | + return responseEntity.getBody(); | ||
| 153 | } | 179 | } |
| 154 | 180 | ||
| 155 | public Map<String, String> getStringStringMap(String timestamp) { | 181 | public Map<String, String> getStringStringMap(String timestamp) { |
| @@ -229,5 +255,9 @@ public class DriverJob implements InitializingBean { | @@ -229,5 +255,9 @@ public class DriverJob implements InitializingBean { | ||
| 229 | DRIVER_SERVICE = driverService; | 255 | DRIVER_SERVICE = driverService; |
| 230 | REDIS_CACHE = redisCache; | 256 | REDIS_CACHE = redisCache; |
| 231 | GET_SCHEDULING_INFO_URL = getSchedulingInfoUrl; | 257 | GET_SCHEDULING_INFO_URL = getSchedulingInfoUrl; |
| 258 | + | ||
| 259 | + TOKEN_URL = tokenUrl; | ||
| 260 | + APP_KEY = appKey; | ||
| 261 | + APP_SECRET = appSecret; | ||
| 232 | } | 262 | } |
| 233 | } | 263 | } |
ruoyi-admin/src/main/java/com/ruoyi/pojo/request/TokenRequestVo.java
0 → 100644
ruoyi-admin/src/main/java/com/ruoyi/pojo/response/SignInResponseVo.java
| @@ -10,4 +10,12 @@ import lombok.Data; | @@ -10,4 +10,12 @@ import lombok.Data; | ||
| 10 | public class SignInResponseVo { | 10 | public class SignInResponseVo { |
| 11 | String address; | 11 | String address; |
| 12 | String deviceId; | 12 | String deviceId; |
| 13 | + | ||
| 14 | + @Override | ||
| 15 | + public String toString() { | ||
| 16 | + return "SignInResponseVo{" + | ||
| 17 | + "address='" + address + '\'' + | ||
| 18 | + ", deviceId='" + deviceId + '\'' + | ||
| 19 | + '}'; | ||
| 20 | + } | ||
| 13 | } | 21 | } |
ruoyi-admin/src/main/java/com/ruoyi/pojo/response/TokenResponseVo.java
0 → 100644
| 1 | +package com.ruoyi.pojo.response; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * token接收 | ||
| 7 | + * @author 20412 | ||
| 8 | + */ | ||
| 9 | +@Data | ||
| 10 | +public class TokenResponseVo { | ||
| 11 | + /** | ||
| 12 | + * 生成的accessToken(此Token仅用于获取员工数据及获取临时照片下载地址) | ||
| 13 | + */ | ||
| 14 | + String accessToken; | ||
| 15 | + /** | ||
| 16 | + * :accessToken的有效期为7200秒(2小时) | ||
| 17 | + */ | ||
| 18 | + Long expireIn; | ||
| 19 | +} |
ruoyi-admin/src/main/resources/application-druid-dev.yml
| @@ -144,4 +144,7 @@ api: | @@ -144,4 +144,7 @@ api: | ||
| 144 | nonce: adfsad | 144 | nonce: adfsad |
| 145 | apk: | 145 | apk: |
| 146 | path: /apk/dev/ | 146 | path: /apk/dev/ |
| 147 | - | 147 | + personnel: |
| 148 | + tokenUrl: https://api.dingtalk.com/v1.0/oauth2/accessToken | ||
| 149 | + appKey: dingsclwvxui5zilg1xk | ||
| 150 | + appSecret: ckV20k3jMKJpUkfXXSGhLk077rQQjsSaAusiSVY-nm4glwweCmb_SMJ62Cpf4YQ5 | ||
| 148 | \ No newline at end of file | 151 | \ No newline at end of file |
ruoyi-admin/src/main/resources/application-druid-prd.yml
| @@ -104,3 +104,7 @@ api: | @@ -104,3 +104,7 @@ api: | ||
| 104 | nonce: adfsad | 104 | nonce: adfsad |
| 105 | apk: | 105 | apk: |
| 106 | path: /apk/dev/ | 106 | path: /apk/dev/ |
| 107 | + personnel: | ||
| 108 | + tokenUrl: https://api.dingtalk.com/v1.0/oauth2/accessToken | ||
| 109 | + appKey: dingsclwvxui5zilg1xk | ||
| 110 | + appSecret: ckV20k3jMKJpUkfXXSGhLk077rQQjsSaAusiSVY-nm4glwweCmb_SMJ62Cpf4YQ5 | ||
| 107 | \ No newline at end of file | 111 | \ No newline at end of file |
ruoyi-admin/src/main/resources/application-druid-uat.yml
| @@ -164,3 +164,10 @@ api: | @@ -164,3 +164,10 @@ api: | ||
| 164 | nonce: adfsad | 164 | nonce: adfsad |
| 165 | apk: | 165 | apk: |
| 166 | path: /apk/dev/ | 166 | path: /apk/dev/ |
| 167 | + personnel: | ||
| 168 | + token: | ||
| 169 | + tokenUrl: https://api.dingtalk.com/v1.0/oauth2/accessToken | ||
| 170 | + appKey: dingsclwvxui5zilg1xk | ||
| 171 | + appSecret: ckV20k3jMKJpUkfXXSGhLk077rQQjsSaAusiSVY-nm4glwweCmb_SMJ62Cpf4YQ5 | ||
| 172 | + personnel: | ||
| 173 | + url: https://api.dingtalk.com/v1.0/yida/forms/instances/search | ||
| 167 | \ No newline at end of file | 174 | \ No newline at end of file |
ruoyi-admin/src/main/resources/application.yml
| @@ -146,4 +146,8 @@ api: | @@ -146,4 +146,8 @@ api: | ||
| 146 | config: | 146 | config: |
| 147 | password: c4dd3d8cb9a82f6d6a625818618b28ca7bebb464 | 147 | password: c4dd3d8cb9a82f6d6a625818618b28ca7bebb464 |
| 148 | # 随机字符串 | 148 | # 随机字符串 |
| 149 | - nonce: adfsad | ||
| 150 | \ No newline at end of file | 149 | \ No newline at end of file |
| 150 | + nonce: adfsad | ||
| 151 | + personnel: | ||
| 152 | + tokenUrl: https://api.dingtalk.com/v1.0/oauth2/accessToken | ||
| 153 | + appKey: dingsclwvxui5zilg1xk | ||
| 154 | + appSecret: ckV20k3jMKJpUkfXXSGhLk077rQQjsSaAusiSVY-nm4glwweCmb_SMJ62Cpf4YQ5 |