Commit fac8b470d03f0b9e1cd782a716aec11e15cae7ec
1 parent
94b83dba
优化图片上传和显示
Showing
15 changed files
with
388 additions
and
41 deletions
Bsth-admin/src/main/java/com/ruoyi/controller/dss/DssEquipmentController.java
| @@ -103,7 +103,7 @@ public class DssEquipmentController extends BaseController { | @@ -103,7 +103,7 @@ public class DssEquipmentController extends BaseController { | ||
| 103 | //LoginUser loginUser = (LoginUser) authentication.getPrincipal(); | 103 | //LoginUser loginUser = (LoginUser) authentication.getPrincipal(); |
| 104 | LoginUser loginUser = new LoginUser(); | 104 | LoginUser loginUser = new LoginUser(); |
| 105 | loginUser.setUserId(Convert.toLong(equipment.getId())); | 105 | loginUser.setUserId(Convert.toLong(equipment.getId())); |
| 106 | - loginUser.setDeptId(Convert.toLong(equipment.getDeviceId())); | 106 | + loginUser.setDeviceId(equipment.getDeviceId()); |
| 107 | loginUser.setUser(new SysUser()); | 107 | loginUser.setUser(new SysUser()); |
| 108 | 108 | ||
| 109 | 109 |
Bsth-admin/src/main/java/com/ruoyi/driver/controller/DriverController.java
| @@ -3,6 +3,7 @@ package com.ruoyi.driver.controller; | @@ -3,6 +3,7 @@ package com.ruoyi.driver.controller; | ||
| 3 | import com.ruoyi.common.annotation.Log; | 3 | import com.ruoyi.common.annotation.Log; |
| 4 | import com.ruoyi.common.core.controller.BaseController; | 4 | import com.ruoyi.common.core.controller.BaseController; |
| 5 | import com.ruoyi.common.core.domain.AjaxResult; | 5 | import com.ruoyi.common.core.domain.AjaxResult; |
| 6 | +import com.ruoyi.common.core.domain.entity.SysDictData; | ||
| 6 | import com.ruoyi.common.core.page.TableDataInfo; | 7 | import com.ruoyi.common.core.page.TableDataInfo; |
| 7 | import com.ruoyi.common.enums.BusinessType; | 8 | import com.ruoyi.common.enums.BusinessType; |
| 8 | import com.ruoyi.common.global.Result; | 9 | import com.ruoyi.common.global.Result; |
| @@ -13,9 +14,11 @@ import com.ruoyi.pojo.request.DriverRequestVo; | @@ -13,9 +14,11 @@ import com.ruoyi.pojo.request.DriverRequestVo; | ||
| 13 | import com.ruoyi.pojo.request.DriverSignInRequestVo; | 14 | import com.ruoyi.pojo.request.DriverSignInRequestVo; |
| 14 | import com.ruoyi.pojo.request.FaceRegistrationFeedbackVo; | 15 | import com.ruoyi.pojo.request.FaceRegistrationFeedbackVo; |
| 15 | import com.ruoyi.pojo.request.FaceUpdateReqVo; | 16 | import com.ruoyi.pojo.request.FaceUpdateReqVo; |
| 17 | +import com.ruoyi.system.service.ISysDictDataService; | ||
| 16 | import io.swagger.annotations.Api; | 18 | import io.swagger.annotations.Api; |
| 17 | import io.swagger.annotations.ApiOperation; | 19 | import io.swagger.annotations.ApiOperation; |
| 18 | import io.swagger.annotations.ApiParam; | 20 | import io.swagger.annotations.ApiParam; |
| 21 | +import org.apache.commons.lang3.StringUtils; | ||
| 19 | import org.springframework.beans.factory.annotation.Autowired; | 22 | import org.springframework.beans.factory.annotation.Autowired; |
| 20 | import org.springframework.validation.annotation.Validated; | 23 | import org.springframework.validation.annotation.Validated; |
| 21 | import org.springframework.web.bind.annotation.*; | 24 | import org.springframework.web.bind.annotation.*; |
| @@ -24,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile; | @@ -24,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile; | ||
| 24 | import javax.servlet.http.HttpServletRequest; | 27 | import javax.servlet.http.HttpServletRequest; |
| 25 | import javax.servlet.http.HttpServletResponse; | 28 | import javax.servlet.http.HttpServletResponse; |
| 26 | import java.util.List; | 29 | import java.util.List; |
| 30 | +import java.util.Objects; | ||
| 27 | 31 | ||
| 28 | /** | 32 | /** |
| 29 | * 驾驶员信息Controller | 33 | * 驾驶员信息Controller |
| @@ -37,6 +41,8 @@ import java.util.List; | @@ -37,6 +41,8 @@ import java.util.List; | ||
| 37 | public class DriverController extends BaseController { | 41 | public class DriverController extends BaseController { |
| 38 | @Autowired | 42 | @Autowired |
| 39 | private IDriverService driverService; | 43 | private IDriverService driverService; |
| 44 | + @Autowired | ||
| 45 | + private ISysDictDataService sysDictDataService; | ||
| 40 | 46 | ||
| 41 | 47 | ||
| 42 | /** | 48 | /** |
| @@ -106,7 +112,14 @@ public class DriverController extends BaseController { | @@ -106,7 +112,14 @@ public class DriverController extends BaseController { | ||
| 106 | @GetMapping(value = "/{id}") | 112 | @GetMapping(value = "/{id}") |
| 107 | @ApiOperation("获取驾驶员信息详细信息") | 113 | @ApiOperation("获取驾驶员信息详细信息") |
| 108 | public AjaxResult getInfo(@ApiParam(value = "id", required = true) @PathVariable("id") Long id) { | 114 | public AjaxResult getInfo(@ApiParam(value = "id", required = true) @PathVariable("id") Long id) { |
| 109 | - return success(driverService.selectDriverById(id)); | 115 | + Driver driver = driverService.selectDriverById(id); |
| 116 | + if (Objects.nonNull(driver)) { | ||
| 117 | + SysDictData source = sysDictDataService.getResourceBaseUrl(); | ||
| 118 | + if (source.isCombationVal()) { | ||
| 119 | + driver.setImage(sysDictDataService.combationValue(driver.getImage(), source)); | ||
| 120 | + } | ||
| 121 | + } | ||
| 122 | + return success(driver); | ||
| 110 | } | 123 | } |
| 111 | 124 | ||
| 112 | /** | 125 | /** |
| @@ -117,6 +130,7 @@ public class DriverController extends BaseController { | @@ -117,6 +130,7 @@ public class DriverController extends BaseController { | ||
| 117 | @PostMapping | 130 | @PostMapping |
| 118 | @ApiOperation("新增驾驶员信息(后台)") | 131 | @ApiOperation("新增驾驶员信息(后台)") |
| 119 | public AjaxResult add(@ApiParam @RequestBody Driver driver) { | 132 | public AjaxResult add(@ApiParam @RequestBody Driver driver) { |
| 133 | + driver.setImage(sysDictDataService.splitURL(driver.getImage())); | ||
| 120 | return toAjax(driverService.insertDriver(driver)); | 134 | return toAjax(driverService.insertDriver(driver)); |
| 121 | } | 135 | } |
| 122 | 136 | ||
| @@ -139,9 +153,12 @@ public class DriverController extends BaseController { | @@ -139,9 +153,12 @@ public class DriverController extends BaseController { | ||
| 139 | */ | 153 | */ |
| 140 | // @PreAuthorize("@ss.hasPermi('driver:driver:edit')") | 154 | // @PreAuthorize("@ss.hasPermi('driver:driver:edit')") |
| 141 | // @Log(title = "驾驶员信息", businessType = BusinessType.UPDATE) | 155 | // @Log(title = "驾驶员信息", businessType = BusinessType.UPDATE) |
| 142 | - @PutMapping | 156 | + @PutMapping("/edit") |
| 143 | @ApiOperation("修改驾驶员信息") | 157 | @ApiOperation("修改驾驶员信息") |
| 144 | public AjaxResult edit(@ApiParam("driver") @RequestBody Driver driver) { | 158 | public AjaxResult edit(@ApiParam("driver") @RequestBody Driver driver) { |
| 159 | + if (StringUtils.isNotEmpty(driver.getImage())) { | ||
| 160 | + driver.setImage(sysDictDataService.splitURL(driver.getImage())); | ||
| 161 | + } | ||
| 145 | return toAjax(driverService.updateDriver(driver) + 1); | 162 | return toAjax(driverService.updateDriver(driver) + 1); |
| 146 | } | 163 | } |
| 147 | 164 | ||
| @@ -191,7 +208,17 @@ public class DriverController extends BaseController { | @@ -191,7 +208,17 @@ public class DriverController extends BaseController { | ||
| 191 | @ApiOperation("驾驶员人脸上传接口") | 208 | @ApiOperation("驾驶员人脸上传接口") |
| 192 | public AjaxResult uploadImage(MultipartFile file) { | 209 | public AjaxResult uploadImage(MultipartFile file) { |
| 193 | try { | 210 | try { |
| 194 | - return driverService.uploadImage(file); | 211 | + return driverService.uploadImage(file, null); |
| 212 | + } catch (Exception e) { | ||
| 213 | + return AjaxResult.error(e.getMessage()); | ||
| 214 | + } | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + @PostMapping("/upload/{id}") | ||
| 218 | + @ApiOperation("驾驶员人脸上传接口") | ||
| 219 | + public AjaxResult uploadImage(MultipartFile file, @PathVariable("id") Integer id) { | ||
| 220 | + try { | ||
| 221 | + return driverService.uploadImage(file, id); | ||
| 195 | } catch (Exception e) { | 222 | } catch (Exception e) { |
| 196 | return AjaxResult.error(e.getMessage()); | 223 | return AjaxResult.error(e.getMessage()); |
| 197 | } | 224 | } |
Bsth-admin/src/main/java/com/ruoyi/driver/service/IDriverService.java
| @@ -88,7 +88,7 @@ public interface IDriverService extends IService<Driver> | @@ -88,7 +88,7 @@ public interface IDriverService extends IService<Driver> | ||
| 88 | 88 | ||
| 89 | AjaxResult checkJobCode(Driver jobCode); | 89 | AjaxResult checkJobCode(Driver jobCode); |
| 90 | 90 | ||
| 91 | - AjaxResult uploadImage(MultipartFile file) throws InvalidExtensionException, IOException; | 91 | + AjaxResult uploadImage(MultipartFile file,Integer id) throws InvalidExtensionException, IOException; |
| 92 | 92 | ||
| 93 | void downloadHeadImage(String jobCode, HttpServletResponse response); | 93 | void downloadHeadImage(String jobCode, HttpServletResponse response); |
| 94 | 94 |
Bsth-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
| @@ -45,6 +45,7 @@ import com.ruoyi.utils.ConstDateUtil; | @@ -45,6 +45,7 @@ import com.ruoyi.utils.ConstDateUtil; | ||
| 45 | import com.ruoyi.utils.ListUtils; | 45 | import com.ruoyi.utils.ListUtils; |
| 46 | import org.apache.commons.collections4.CollectionUtils; | 46 | import org.apache.commons.collections4.CollectionUtils; |
| 47 | import org.apache.commons.io.FilenameUtils; | 47 | import org.apache.commons.io.FilenameUtils; |
| 48 | +import org.apache.commons.lang3.RandomUtils; | ||
| 48 | import org.apache.commons.lang3.StringUtils; | 49 | import org.apache.commons.lang3.StringUtils; |
| 49 | import org.slf4j.Logger; | 50 | import org.slf4j.Logger; |
| 50 | import org.slf4j.LoggerFactory; | 51 | import org.slf4j.LoggerFactory; |
| @@ -269,9 +270,11 @@ public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> impleme | @@ -269,9 +270,11 @@ public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> impleme | ||
| 269 | // 修改排班表scheduling 以及缓存信息 | 270 | // 修改排班表scheduling 以及缓存信息 |
| 270 | List<DriverScheduling> driverSchedulings = cache.getCacheScheduling(ConstDateUtil.getStringNowLocalDate("-")).get(driver.getJobCode()); | 271 | List<DriverScheduling> driverSchedulings = cache.getCacheScheduling(ConstDateUtil.getStringNowLocalDate("-")).get(driver.getJobCode()); |
| 271 | // 只改变车队信息 其他信息由调度接口 和 人事系统决定 本来是不修改的但是人事数据有问题 | 272 | // 只改变车队信息 其他信息由调度接口 和 人事系统决定 本来是不修改的但是人事数据有问题 |
| 272 | - for (DriverScheduling scheduling : driverSchedulings) { | ||
| 273 | - if (StringUtil.isNotEmpty(driver.getFleetName())) { | ||
| 274 | - scheduling.setFleetName(driver.getFleetName()); | 273 | + if(CollectionUtils.isNotEmpty(driverSchedulings)) { |
| 274 | + for (DriverScheduling scheduling : driverSchedulings) { | ||
| 275 | + if (StringUtil.isNotEmpty(driver.getFleetName())) { | ||
| 276 | + scheduling.setFleetName(driver.getFleetName()); | ||
| 277 | + } | ||
| 275 | } | 278 | } |
| 276 | } | 279 | } |
| 277 | return driverMapper.updateDriver(driver); | 280 | return driverMapper.updateDriver(driver); |
| @@ -356,7 +359,7 @@ public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> impleme | @@ -356,7 +359,7 @@ public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> impleme | ||
| 356 | } | 359 | } |
| 357 | 360 | ||
| 358 | @Override | 361 | @Override |
| 359 | - public AjaxResult uploadImage(MultipartFile file) throws InvalidExtensionException, IOException { | 362 | + public AjaxResult uploadImage(MultipartFile file,Integer id) throws InvalidExtensionException, IOException { |
| 360 | // 上传并返回新文件名称 | 363 | // 上传并返回新文件名称 |
| 361 | // 上传文件路径 | 364 | // 上传文件路径 |
| 362 | String baseUrl = RuoYiConfig.getUploadPath() + headImagePre; | 365 | String baseUrl = RuoYiConfig.getUploadPath() + headImagePre; |
| @@ -364,13 +367,23 @@ public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> impleme | @@ -364,13 +367,23 @@ public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> impleme | ||
| 364 | FileUploadUtils.assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); | 367 | FileUploadUtils.assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); |
| 365 | // 后期可以通过请求头拿到对应的工号 | 368 | // 后期可以通过请求头拿到对应的工号 |
| 366 | String fileName = FilenameUtils.getBaseName(file.getOriginalFilename()) + "." + FileUploadUtils.getExtension(file); | 369 | String fileName = FilenameUtils.getBaseName(file.getOriginalFilename()) + "." + FileUploadUtils.getExtension(file); |
| 370 | + if(Objects.nonNull(id)){ | ||
| 371 | + fileName = StringUtils.join(id,"/",fileName); | ||
| 372 | + }else{ | ||
| 373 | + fileName = StringUtils.join("head/", RandomUtils.nextInt(1,90000),"/",fileName); | ||
| 374 | + } | ||
| 375 | + String urlFileName = fileName; | ||
| 367 | String absPath = FileUploadUtils.getAbsoluteFile(baseUrl, fileName).getAbsolutePath(); | 376 | String absPath = FileUploadUtils.getAbsoluteFile(baseUrl, fileName).getAbsolutePath(); |
| 368 | fileName = FileUploadUtils.getPathFileName(baseUrl, fileName); | 377 | fileName = FileUploadUtils.getPathFileName(baseUrl, fileName); |
| 369 | file.transferTo(Paths.get(absPath)); | 378 | file.transferTo(Paths.get(absPath)); |
| 370 | - String url = serverConfig.getUrl() + fileName; | 379 | + |
| 380 | + SysDictData source = sysDictDataService.getResourceBaseUrl(); | ||
| 381 | + String url = sysDictDataService.combationValue(urlFileName,source); | ||
| 382 | + | ||
| 383 | + | ||
| 371 | AjaxResult ajax = AjaxResult.success(); | 384 | AjaxResult ajax = AjaxResult.success(); |
| 372 | ajax.put("url", url); | 385 | ajax.put("url", url); |
| 373 | - ajax.put("fileName", fileName); | 386 | + ajax.put("fileName", url); |
| 374 | ajax.put("newFileName", FileUtils.getName(fileName)); | 387 | ajax.put("newFileName", FileUtils.getName(fileName)); |
| 375 | ajax.put("originalFilename", file.getOriginalFilename()); | 388 | ajax.put("originalFilename", file.getOriginalFilename()); |
| 376 | return ajax; | 389 | return ajax; |
Bsth-admin/src/main/java/com/ruoyi/equipment/controller/EquipmentController.java
| @@ -3,6 +3,7 @@ package com.ruoyi.equipment.controller; | @@ -3,6 +3,7 @@ package com.ruoyi.equipment.controller; | ||
| 3 | import com.ruoyi.common.annotation.Log; | 3 | import com.ruoyi.common.annotation.Log; |
| 4 | import com.ruoyi.common.core.controller.BaseController; | 4 | import com.ruoyi.common.core.controller.BaseController; |
| 5 | import com.ruoyi.common.core.domain.AjaxResult; | 5 | import com.ruoyi.common.core.domain.AjaxResult; |
| 6 | +import com.ruoyi.common.core.domain.entity.SysDictData; | ||
| 6 | import com.ruoyi.common.core.page.TableDataInfo; | 7 | import com.ruoyi.common.core.page.TableDataInfo; |
| 7 | import com.ruoyi.common.enums.BusinessType; | 8 | import com.ruoyi.common.enums.BusinessType; |
| 8 | import com.ruoyi.common.utils.poi.ExcelUtil; | 9 | import com.ruoyi.common.utils.poi.ExcelUtil; |
| @@ -11,6 +12,7 @@ import com.ruoyi.equipment.domain.Equipment; | @@ -11,6 +12,7 @@ import com.ruoyi.equipment.domain.Equipment; | ||
| 11 | import com.ruoyi.equipment.domain.EquipmentLog; | 12 | import com.ruoyi.equipment.domain.EquipmentLog; |
| 12 | import com.ruoyi.equipment.service.IEquipmentService; | 13 | import com.ruoyi.equipment.service.IEquipmentService; |
| 13 | import com.ruoyi.service.venue.info.LinggangVenueInfoService; | 14 | import com.ruoyi.service.venue.info.LinggangVenueInfoService; |
| 15 | +import com.ruoyi.system.service.ISysDictDataService; | ||
| 14 | import io.swagger.annotations.Api; | 16 | import io.swagger.annotations.Api; |
| 15 | import io.swagger.annotations.ApiOperation; | 17 | import io.swagger.annotations.ApiOperation; |
| 16 | import org.apache.commons.collections4.CollectionUtils; | 18 | import org.apache.commons.collections4.CollectionUtils; |
| @@ -38,6 +40,8 @@ public class EquipmentController extends BaseController { | @@ -38,6 +40,8 @@ public class EquipmentController extends BaseController { | ||
| 38 | private IEquipmentService equipmentService; | 40 | private IEquipmentService equipmentService; |
| 39 | @Autowired | 41 | @Autowired |
| 40 | private LinggangVenueInfoService venueInfoService; | 42 | private LinggangVenueInfoService venueInfoService; |
| 43 | + @Autowired | ||
| 44 | + private ISysDictDataService sysDictDataService; | ||
| 41 | 45 | ||
| 42 | /** | 46 | /** |
| 43 | * 查询设备信息列表 | 47 | * 查询设备信息列表 |
| @@ -49,18 +53,21 @@ public class EquipmentController extends BaseController { | @@ -49,18 +53,21 @@ public class EquipmentController extends BaseController { | ||
| 49 | startPage(); | 53 | startPage(); |
| 50 | List<Equipment> list = equipmentService.selectEquipmentList(equipment); | 54 | List<Equipment> list = equipmentService.selectEquipmentList(equipment); |
| 51 | if (CollectionUtils.isNotEmpty(list)) { | 55 | if (CollectionUtils.isNotEmpty(list)) { |
| 56 | + SysDictData sysDictData = sysDictDataService.getResourceBaseUrl(); | ||
| 52 | Collection<Integer> yarIds = list.stream().map(Equipment::getYardId).collect(Collectors.toSet()); | 57 | Collection<Integer> yarIds = list.stream().map(Equipment::getYardId).collect(Collectors.toSet()); |
| 53 | List<LinggangVenueInfo> venueInfos = venueInfoService.listOfIds(yarIds); | 58 | List<LinggangVenueInfo> venueInfos = venueInfoService.listOfIds(yarIds); |
| 54 | - if (CollectionUtils.isNotEmpty(venueInfos)) { | ||
| 55 | - list = list.stream().map(eq -> { | 59 | + list = list.stream().map(eq -> { |
| 60 | + if (CollectionUtils.isNotEmpty(venueInfos)) { | ||
| 56 | Optional<LinggangVenueInfo> optional = venueInfos.stream().filter(v -> Objects.equals(v.getId(), eq.getYardId())).findFirst(); | 61 | Optional<LinggangVenueInfo> optional = venueInfos.stream().filter(v -> Objects.equals(v.getId(), eq.getYardId())).findFirst(); |
| 57 | if (optional.isPresent()) { | 62 | if (optional.isPresent()) { |
| 58 | eq.setYardName(optional.get().getName()); | 63 | eq.setYardName(optional.get().getName()); |
| 59 | } | 64 | } |
| 65 | + } | ||
| 66 | + eq.setImage(sysDictDataService.combationValue(eq.getImage(),sysDictData)); | ||
| 67 | + | ||
| 68 | + return eq; | ||
| 69 | + }).collect(Collectors.toList()); | ||
| 60 | 70 | ||
| 61 | - return eq; | ||
| 62 | - }).collect(Collectors.toList()); | ||
| 63 | - } | ||
| 64 | 71 | ||
| 65 | } | 72 | } |
| 66 | return getDataTable(list); | 73 | return getDataTable(list); |
| @@ -104,7 +111,11 @@ public class EquipmentController extends BaseController { | @@ -104,7 +111,11 @@ public class EquipmentController extends BaseController { | ||
| 104 | @GetMapping(value = "/{id}") | 111 | @GetMapping(value = "/{id}") |
| 105 | @ApiOperation("获取设备信息详细信息") | 112 | @ApiOperation("获取设备信息详细信息") |
| 106 | public AjaxResult getInfo(@PathVariable("id") Long id) { | 113 | public AjaxResult getInfo(@PathVariable("id") Long id) { |
| 107 | - return success(equipmentService.selectEquipmentById(id)); | 114 | + Equipment equipment = equipmentService.selectEquipmentById(id); |
| 115 | + if(Objects.nonNull(equipment)){ | ||
| 116 | + equipment.setImage(sysDictDataService.combationValue(equipment.getImage())); | ||
| 117 | + } | ||
| 118 | + return success(equipment); | ||
| 108 | } | 119 | } |
| 109 | 120 | ||
| 110 | /** | 121 | /** |
| @@ -115,6 +126,7 @@ public class EquipmentController extends BaseController { | @@ -115,6 +126,7 @@ public class EquipmentController extends BaseController { | ||
| 115 | @PostMapping | 126 | @PostMapping |
| 116 | @ApiOperation("新增设备信息") | 127 | @ApiOperation("新增设备信息") |
| 117 | public AjaxResult add(@RequestBody Equipment equipment) { | 128 | public AjaxResult add(@RequestBody Equipment equipment) { |
| 129 | + equipment.setImage(sysDictDataService.splitURL(equipment.getImage())); | ||
| 118 | return toAjax(equipmentService.insertEquipment(equipment)); | 130 | return toAjax(equipmentService.insertEquipment(equipment)); |
| 119 | } | 131 | } |
| 120 | 132 | ||
| @@ -126,6 +138,7 @@ public class EquipmentController extends BaseController { | @@ -126,6 +138,7 @@ public class EquipmentController extends BaseController { | ||
| 126 | @PutMapping | 138 | @PutMapping |
| 127 | @ApiOperation("修改设备信息") | 139 | @ApiOperation("修改设备信息") |
| 128 | public AjaxResult edit(@RequestBody Equipment equipment) { | 140 | public AjaxResult edit(@RequestBody Equipment equipment) { |
| 141 | + equipment.setImage(sysDictDataService.splitURL(equipment.getImage())); | ||
| 129 | return toAjax(equipmentService.updateEquipment(equipment)); | 142 | return toAjax(equipmentService.updateEquipment(equipment)); |
| 130 | } | 143 | } |
| 131 | 144 |
Bsth-admin/src/main/java/com/ruoyi/service/impl/driver/NewDriverServiceImpl.java
| @@ -232,6 +232,7 @@ public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver | @@ -232,6 +232,7 @@ public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver | ||
| 232 | if (opt.isPresent()) { | 232 | if (opt.isPresent()) { |
| 233 | d.setId(opt.get().getId()); | 233 | d.setId(opt.get().getId()); |
| 234 | d.setImage(null); | 234 | d.setImage(null); |
| 235 | + d.setPosts(opt.get().getPosts()); | ||
| 235 | } | 236 | } |
| 236 | return d; | 237 | return d; |
| 237 | }).collect(Collectors.toList()); | 238 | }).collect(Collectors.toList()); |
Bsth-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
| 1 | package com.ruoyi.web.controller.common; | 1 | package com.ruoyi.web.controller.common; |
| 2 | 2 | ||
| 3 | -import java.util.ArrayList; | ||
| 4 | -import java.util.List; | ||
| 5 | -import javax.servlet.http.HttpServletRequest; | ||
| 6 | -import javax.servlet.http.HttpServletResponse; | 3 | +import com.ruoyi.common.config.RuoYiConfig; |
| 4 | +import com.ruoyi.common.constant.Constants; | ||
| 5 | +import com.ruoyi.common.core.domain.AjaxResult; | ||
| 6 | +import com.ruoyi.common.utils.StringUtils; | ||
| 7 | +import com.ruoyi.common.utils.file.FileUploadUtils; | ||
| 8 | +import com.ruoyi.common.utils.file.FileUtils; | ||
| 9 | +import com.ruoyi.common.utils.spring.SpringUtils; | ||
| 10 | +import com.ruoyi.framework.config.ServerConfig; | ||
| 11 | +import com.ruoyi.system.service.ISysDictDataService; | ||
| 7 | import org.slf4j.Logger; | 12 | import org.slf4j.Logger; |
| 8 | import org.slf4j.LoggerFactory; | 13 | import org.slf4j.LoggerFactory; |
| 9 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -13,13 +18,11 @@ import org.springframework.web.bind.annotation.PostMapping; | @@ -13,13 +18,11 @@ import org.springframework.web.bind.annotation.PostMapping; | ||
| 13 | import org.springframework.web.bind.annotation.RequestMapping; | 18 | import org.springframework.web.bind.annotation.RequestMapping; |
| 14 | import org.springframework.web.bind.annotation.RestController; | 19 | import org.springframework.web.bind.annotation.RestController; |
| 15 | import org.springframework.web.multipart.MultipartFile; | 20 | import org.springframework.web.multipart.MultipartFile; |
| 16 | -import com.ruoyi.common.config.RuoYiConfig; | ||
| 17 | -import com.ruoyi.common.constant.Constants; | ||
| 18 | -import com.ruoyi.common.core.domain.AjaxResult; | ||
| 19 | -import com.ruoyi.common.utils.StringUtils; | ||
| 20 | -import com.ruoyi.common.utils.file.FileUploadUtils; | ||
| 21 | -import com.ruoyi.common.utils.file.FileUtils; | ||
| 22 | -import com.ruoyi.framework.config.ServerConfig; | 21 | + |
| 22 | +import javax.servlet.http.HttpServletRequest; | ||
| 23 | +import javax.servlet.http.HttpServletResponse; | ||
| 24 | +import java.util.ArrayList; | ||
| 25 | +import java.util.List; | ||
| 23 | 26 | ||
| 24 | /** | 27 | /** |
| 25 | * 通用请求处理 | 28 | * 通用请求处理 |
| @@ -37,6 +40,10 @@ public class CommonController | @@ -37,6 +40,10 @@ public class CommonController | ||
| 37 | 40 | ||
| 38 | private static final String FILE_DELIMETER = ","; | 41 | private static final String FILE_DELIMETER = ","; |
| 39 | 42 | ||
| 43 | + private ISysDictDataService sysDictDataService; | ||
| 44 | + @Autowired | ||
| 45 | + private SpringUtils springUtils; | ||
| 46 | + | ||
| 40 | /** | 47 | /** |
| 41 | * 通用下载请求 | 48 | * 通用下载请求 |
| 42 | * | 49 | * |
| @@ -78,13 +85,17 @@ public class CommonController | @@ -78,13 +85,17 @@ public class CommonController | ||
| 78 | try | 85 | try |
| 79 | { | 86 | { |
| 80 | // 上传文件路径 | 87 | // 上传文件路径 |
| 81 | - String filePath = RuoYiConfig.getUploadPath(); | 88 | + String filePath = org.apache.commons.lang3.StringUtils.join(RuoYiConfig.getUploadPath(),"/image"); |
| 89 | + | ||
| 82 | // 上传并返回新文件名称 | 90 | // 上传并返回新文件名称 |
| 83 | String fileName = FileUploadUtils.upload(filePath, file); | 91 | String fileName = FileUploadUtils.upload(filePath, file); |
| 84 | - String url = serverConfig.getUrl() + fileName; | 92 | + fileName = org.apache.commons.lang3.StringUtils.substringAfter(fileName, "upload/image"); |
| 93 | + String url = getSysDictDataService().combationValue(fileName); | ||
| 85 | AjaxResult ajax = AjaxResult.success(); | 94 | AjaxResult ajax = AjaxResult.success(); |
| 95 | + | ||
| 96 | + log.info("filePath:[{}],fileName:[{}]", filePath, fileName); | ||
| 86 | ajax.put("url", url); | 97 | ajax.put("url", url); |
| 87 | - ajax.put("fileName", fileName); | 98 | + ajax.put("fileName", url); |
| 88 | ajax.put("newFileName", FileUtils.getName(fileName)); | 99 | ajax.put("newFileName", FileUtils.getName(fileName)); |
| 89 | ajax.put("originalFilename", file.getOriginalFilename()); | 100 | ajax.put("originalFilename", file.getOriginalFilename()); |
| 90 | return ajax; | 101 | return ajax; |
| @@ -95,6 +106,13 @@ public class CommonController | @@ -95,6 +106,13 @@ public class CommonController | ||
| 95 | } | 106 | } |
| 96 | } | 107 | } |
| 97 | 108 | ||
| 109 | + public ISysDictDataService getSysDictDataService(){ | ||
| 110 | + if(sysDictDataService == null){ | ||
| 111 | + sysDictDataService = SpringUtils.getBean(ISysDictDataService.class); | ||
| 112 | + } | ||
| 113 | + return sysDictDataService; | ||
| 114 | + } | ||
| 115 | + | ||
| 98 | /** | 116 | /** |
| 99 | * 通用上传请求(多个) | 117 | * 通用上传请求(多个) |
| 100 | */ | 118 | */ |
Bsth-admin/src/main/resources/application-druid-dev.yml
| @@ -174,7 +174,7 @@ api: | @@ -174,7 +174,7 @@ api: | ||
| 174 | apk: | 174 | apk: |
| 175 | path: /apk/dev | 175 | path: /apk/dev |
| 176 | # 用户头像存放位置 | 176 | # 用户头像存放位置 |
| 177 | - headImage: /head/image | 177 | + headImage: /image |
| 178 | sign: | 178 | sign: |
| 179 | image: /image | 179 | image: /image |
| 180 | video: | 180 | video: |
| @@ -221,5 +221,5 @@ bsth: | @@ -221,5 +221,5 @@ bsth: | ||
| 221 | faceFeature: | 221 | faceFeature: |
| 222 | url: http://222.76.217.238:8880/fcgi-bin/entry.fcgi/system | 222 | url: http://222.76.217.238:8880/fcgi-bin/entry.fcgi/system |
| 223 | skip: | 223 | skip: |
| 224 | - url: /big/view/queryNumberByType;/big/view/queryLineInfo/*;/big/view/querySignDetails;/report/list/**;/system/dict/data/**;/app/version/check/**;/app/checkDeviceHeart;/app/download;"/driver/**;/in/**;/eexception/**;/equipment/**;/report/**;/login;/register;/captchaImage;/dss/Driver/Auth;/test/**;/login/no/code;/actuator/health; | 224 | + url: /big/view/queryNumberByType;/big/view/queryLineInfo/*;/big/view/querySignDetails;/report/list/**;/system/dict/data/**;/app/version/check/**;/app/checkDeviceHeart;/app/download;"/driver/**;/in/**;/eexception/**;/equipment/**;/report/**;/login;/register;/captchaImage;/dss/Driver/Auth;/test/**;/login/no/code;/actuator/health;/upload/image/**; |
| 225 | 225 |
Bsth-admin/src/main/resources/application-druid-devTest.yml
| @@ -173,8 +173,8 @@ api: | @@ -173,8 +173,8 @@ api: | ||
| 173 | nonce: adfsad | 173 | nonce: adfsad |
| 174 | apk: | 174 | apk: |
| 175 | path: /apk/dev | 175 | path: /apk/dev |
| 176 | - # 用户头像存放位置 | ||
| 177 | - headImage: /head/image | 176 | + # 用户头像存放位置f |
| 177 | + headImage: /image | ||
| 178 | sign: | 178 | sign: |
| 179 | image: /image | 179 | image: /image |
| 180 | video: | 180 | video: |
| @@ -215,4 +215,4 @@ bsth: | @@ -215,4 +215,4 @@ bsth: | ||
| 215 | faceFeature: | 215 | faceFeature: |
| 216 | url: http://222.76.217.238:8880/fcgi-bin/entry.fcgi/system | 216 | url: http://222.76.217.238:8880/fcgi-bin/entry.fcgi/system |
| 217 | skip: | 217 | skip: |
| 218 | - url: /big/view/queryNumberByType;/big/view/queryLineInfo/*;/big/view/querySignDetails;/report/list/**;/system/dict/data/**;/app/version/check/**;/app/checkDeviceHeart;/app/download;"/driver/**;/in/**;/eexception/**;/equipment/**;/report/**;/login;/register;/captchaImage;/dss/Driver/Auth;/login/no/code | 218 | + url: /big/view/queryNumberByType;/big/view/queryLineInfo/*;/big/view/querySignDetails;/report/list/**;/system/dict/data/**;/app/version/check/**;/app/checkDeviceHeart;/app/download;"/driver/**;/in/**;/eexception/**;/equipment/**;/report/**;/login;/register;/captchaImage;/dss/Driver/Auth;/login/no/code;/uploadPath/** |
Bsth-admin/src/main/resources/application-druid-lingangTest.yml
0 → 100644
| 1 | + | ||
| 2 | +# 数据源配置 | ||
| 3 | +spring: | ||
| 4 | + # 邮箱配置 | ||
| 5 | + mail: | ||
| 6 | + # 只发送不接收 | ||
| 7 | + host: smtp.163.com | ||
| 8 | + # 自己的邮箱 | ||
| 9 | + username: m18980249160@163.com | ||
| 10 | + # 提供的密码 不是自己的登录密码 | ||
| 11 | + password: RZHJXWXPCALIAOCG1 | ||
| 12 | + # 占用端口号 | ||
| 13 | + port: 465 | ||
| 14 | + nickname: 酒精测试异常通知 | ||
| 15 | + form: m18980249160@163.com | ||
| 16 | + protocol: smtp | ||
| 17 | + properties: | ||
| 18 | + mail: | ||
| 19 | + smtp: | ||
| 20 | + ssl: | ||
| 21 | + enable: true | ||
| 22 | + socketFactory: | ||
| 23 | + class: javax.net.ssl.SSLSocketFactory | ||
| 24 | + datasource: | ||
| 25 | + type: com.alibaba.druid.pool.DruidDataSource | ||
| 26 | + driverClassName: com.mysql.cj.jdbc.Driver | ||
| 27 | + druid: | ||
| 28 | + # 主库数据源 | ||
| 29 | + master: | ||
| 30 | + # 测试地址 | ||
| 31 | + # url: jdbc:mysql://localhost:3306/all-in-one?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&useAffectedRows=true&allowMultiQueries=true | ||
| 32 | + #url: jdbc:mysql://192.168.168.124:3306/lingang_all_in_one?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | ||
| 33 | + url: jdbc:mysql://192.168.168.124:3306/lingang_all_in_one1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | ||
| 34 | + # url: jdbc:mysql://127.0.0.1:3306/lingang_all_in_one?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true | ||
| 35 | + username: root | ||
| 36 | + password: guzijian | ||
| 37 | + # password: 1 | ||
| 38 | + # 从库数据源 | ||
| 39 | + slave: | ||
| 40 | + # 从数据源开关/默认关闭 | ||
| 41 | + enabled: false | ||
| 42 | + url: | ||
| 43 | + username: | ||
| 44 | + password: | ||
| 45 | + # 初始连接数 | ||
| 46 | + initialSize: 5 | ||
| 47 | + # 最小连接池数量 | ||
| 48 | + minIdle: 10 | ||
| 49 | + # 最大连接池数量 | ||
| 50 | + maxActive: 20 | ||
| 51 | + # 配置获取连接等待超时的时间 | ||
| 52 | + maxWait: 60000 | ||
| 53 | + # 配置连接超时时间 | ||
| 54 | + connectTimeout: 30000 | ||
| 55 | + # 配置网络超时时间 | ||
| 56 | + socketTimeout: 60000 | ||
| 57 | + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 | ||
| 58 | + timeBetweenEvictionRunsMillis: 60000 | ||
| 59 | + # 配置一个连接在池中最小生存的时间,单位是毫秒 | ||
| 60 | + minEvictableIdleTimeMillis: 300000 | ||
| 61 | + # 配置一个连接在池中最大生存的时间,单位是毫秒 | ||
| 62 | + maxEvictableIdleTimeMillis: 900000 | ||
| 63 | + # 配置检测连接是否有效 | ||
| 64 | + validationQuery: SELECT 1 FROM DUAL | ||
| 65 | + testWhileIdle: true | ||
| 66 | + testOnBorrow: false | ||
| 67 | + testOnReturn: false | ||
| 68 | + webStatFilter: | ||
| 69 | + enabled: true | ||
| 70 | + statViewServlet: | ||
| 71 | + enabled: true | ||
| 72 | + # 设置白名单,不填则允许所有访问 | ||
| 73 | + allow: | ||
| 74 | + url-pattern: /druid/* | ||
| 75 | + # 控制台管理用户名和密码 | ||
| 76 | + login-username: ruoyi | ||
| 77 | + login-password: 123456 | ||
| 78 | + filter: | ||
| 79 | + stat: | ||
| 80 | + enabled: true | ||
| 81 | + # 慢SQL记录 | ||
| 82 | + log-slow-sql: true | ||
| 83 | + slow-sql-millis: 1000 | ||
| 84 | + merge-sql: true | ||
| 85 | + wall: | ||
| 86 | + config: | ||
| 87 | + multi-statement-allow: true | ||
| 88 | + # 文件上传 | ||
| 89 | + servlet: | ||
| 90 | + multipart: | ||
| 91 | + # 单个文件大小 | ||
| 92 | + max-file-size: 100MB | ||
| 93 | + # 设置总上传的文件大小 | ||
| 94 | + max-request-size: 100MB | ||
| 95 | + # 服务模块 | ||
| 96 | + devtools: | ||
| 97 | + restart: | ||
| 98 | + # 热部署开关 | ||
| 99 | + enabled: true | ||
| 100 | + # redis 配置 | ||
| 101 | + redis: | ||
| 102 | + # 地址 | ||
| 103 | +# host: 121.41.83.61 | ||
| 104 | + host: localhost | ||
| 105 | + database: 4 | ||
| 106 | +# password: "guzijian" | ||
| 107 | + port: 6379 | ||
| 108 | + # 连接超时时间 | ||
| 109 | + timeout: 10s | ||
| 110 | + lettuce: | ||
| 111 | + pool: | ||
| 112 | + # 连接池中的最小空闲连接 | ||
| 113 | + min-idle: 0 | ||
| 114 | + # 连接池中的最大空闲连接 | ||
| 115 | + max-idle: 8 | ||
| 116 | + # 连接池的最大数据库连接数 | ||
| 117 | + max-active: 8 | ||
| 118 | + # #连接池最大阻塞等待时间(使用负值表示没有限制) | ||
| 119 | + max-wait: -1ms | ||
| 120 | + # token配置 | ||
| 121 | + token: | ||
| 122 | + # 令牌自定义标识 | ||
| 123 | + header: Authorization | ||
| 124 | + # 令牌密钥 | ||
| 125 | + secret: abcdefghijklmnopqrstuvwxyz | ||
| 126 | + # 令牌有效期(默认30分钟) | ||
| 127 | + expireTime: 30 | ||
| 128 | + | ||
| 129 | +# 项目相关配置 | ||
| 130 | +ruoyi: | ||
| 131 | + # 名称 | ||
| 132 | + name: RuoYi | ||
| 133 | + # 版本 | ||
| 134 | + version: 3.8.5 | ||
| 135 | + # 版权年份 | ||
| 136 | + copyrightYear: 2023 | ||
| 137 | + # 实例演示开关 | ||
| 138 | + demoEnabled: true | ||
| 139 | + # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) | ||
| 140 | + profile: /data/test/bath-alcoho-sign/apache-tomcat-8.5.61/webapps/uploadPath | ||
| 141 | + # 获取ip地址开关 | ||
| 142 | + addressEnabled: false | ||
| 143 | + # 验证码类型 math 数字计算 char 字符验证 | ||
| 144 | + captchaType: math | ||
| 145 | +mybatis-plus: | ||
| 146 | + # 搜索指定包别名 | ||
| 147 | + typeAliasesPackage: com.ruoyi.**.domain | ||
| 148 | + # 配置mapper的扫描,找到所有的mapper.xml映射文件 | ||
| 149 | + mapperLocations: classpath*:mapper/**/*Mapper.xml | ||
| 150 | + # 加载全局的配置文件 | ||
| 151 | + configLocation: classpath:mybatis/mybatis-config.xml | ||
| 152 | +# Swagger配置 | ||
| 153 | +swagger: | ||
| 154 | + # 是否开启swagger | ||
| 155 | + enabled: true | ||
| 156 | + # 请求前缀 | ||
| 157 | + # pathMapping: /dev-api | ||
| 158 | + pathMapping: / | ||
| 159 | +api: | ||
| 160 | + template: 车队与线路匹配模板 | ||
| 161 | + url: | ||
| 162 | + # all 为获取所有驾驶员信息 | ||
| 163 | + getDriverInfo: http://dsh.bdo2o.com:6280/shr | ||
| 164 | + # 获取公司编码下的员工信息 暂时没用 | ||
| 165 | + getCompanyInfo: | ||
| 166 | + # 获取排班信息 | ||
| 167 | + getSchedulingInfo: http://58.34.47.74:9089/webservice/rest/schedule_real/sch_jk/%s/%s?timestamp=%d&nonce=%s&password=%s&sign=%s | ||
| 168 | + getSchedulingInfoNew: http://58.34.47.74:9089/webservice/rest/schedule_real/sch_jk/%s/%s?timestamp=%d&nonce=%s&password=%s&sign=%s | ||
| 169 | + getSchedulingInfoPlan: http://58.34.47.74:9089/webservice/rest/schedule/sch_jk/%s/%s?timestamp=%d&nonce=%s&password=%s&sign=%s | ||
| 170 | + config: | ||
| 171 | + password: c4dd3d8cb9a82f6d6a625818618b28ca7bebb464 | ||
| 172 | + # 随机字符串 | ||
| 173 | + nonce: adfsad | ||
| 174 | + apk: | ||
| 175 | + path: /apk/dev | ||
| 176 | + # 用户头像存放位置 | ||
| 177 | + headImage: /head/image | ||
| 178 | + sign: | ||
| 179 | + image: /image | ||
| 180 | + video: | ||
| 181 | + basePath: /video | ||
| 182 | + | ||
| 183 | + personnel: | ||
| 184 | + token: | ||
| 185 | + tokenUrl: https://api.dingtalk.com/v1.0/oauth2/accessToken | ||
| 186 | + appKey: dingsclwvxui5zilg1xk | ||
| 187 | + appSecret: ckV20k3jMKJpUkfXXSGhLk077rQQjsSaAusiSVY-nm4glwweCmb_SMJ62Cpf4YQ5 | ||
| 188 | + people: | ||
| 189 | + url: https://api.dingtalk.com/v1.0/yida/forms/instances/search | ||
| 190 | +log: | ||
| 191 | + path: logs | ||
| 192 | +server: | ||
| 193 | + port: 8102 | ||
| 194 | +netty: | ||
| 195 | + # 是否开启netty服务 | ||
| 196 | + enabled: true | ||
| 197 | + socket: | ||
| 198 | + # 相对路径 classpath | ||
| 199 | + catalogue: | ||
| 200 | + image: device/image | ||
| 201 | + speech: device/speech | ||
| 202 | + port: 8989 | ||
| 203 | + | ||
| 204 | + | ||
| 205 | +bsth: | ||
| 206 | + face: | ||
| 207 | + app: | ||
| 208 | + id: 8jPk3SNnaoGsd9SidMefgZXg1zbst64jB44vVyx9Cijq | ||
| 209 | + sdk: | ||
| 210 | + key: C21s5J1n1rHwXPkvVjubKshtfYuvuSe2GHus41Q1NPcT | ||
| 211 | + # key: C21s5J1n1rHwXPkvVjubKshtofV5sHXvyUQqSWYxHp2b | ||
| 212 | + lib: | ||
| 213 | + path: /data/test/bath-alcoho-sign/LINUX64 | ||
| 214 | + # path: D:/work/code/jienengjiancha/bsth-alcohol-sign/Bsth-admin/src/main/resources/libs/WIN64 | ||
| 215 | + faceFeature: | ||
| 216 | + url: http://222.76.217.238:8880/fcgi-bin/entry.fcgi/system | ||
| 217 | + skip: | ||
| 218 | + url: /big/view/queryNumberByType;/big/view/queryLineInfo/*;/big/view/querySignDetails;/report/list/**;/system/dict/data/**;/app/version/check/**;/app/checkDeviceHeart;/app/download;"/driver/**;/in/**;/eexception/**;/equipment/**;/report/**;/login;/register;/captchaImage;/dss/Driver/Auth;/login/no/code |
Bsth-common/src/main/java/com/ruoyi/common/constant/Constants.java
| @@ -116,7 +116,7 @@ public class Constants { | @@ -116,7 +116,7 @@ public class Constants { | ||
| 116 | /** | 116 | /** |
| 117 | * 资源映射路径 前缀 | 117 | * 资源映射路径 前缀 |
| 118 | */ | 118 | */ |
| 119 | - public static final String RESOURCE_PREFIX = "/profile"; | 119 | + public static final String RESOURCE_PREFIX = ""; |
| 120 | 120 | ||
| 121 | /** | 121 | /** |
| 122 | * RMI 远程方法调用 | 122 | * RMI 远程方法调用 |
Bsth-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
| @@ -72,6 +72,16 @@ public class LoginUser implements UserDetails | @@ -72,6 +72,16 @@ public class LoginUser implements UserDetails | ||
| 72 | */ | 72 | */ |
| 73 | private SysUser user; | 73 | private SysUser user; |
| 74 | 74 | ||
| 75 | + private String deviceId; | ||
| 76 | + | ||
| 77 | + public String getDeviceId() { | ||
| 78 | + return deviceId; | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + public void setDeviceId(String deviceId) { | ||
| 82 | + this.deviceId = deviceId; | ||
| 83 | + } | ||
| 84 | + | ||
| 75 | public Long getUserId() | 85 | public Long getUserId() |
| 76 | { | 86 | { |
| 77 | return userId; | 87 | return userId; |
Bsth-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
| @@ -62,7 +62,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { | @@ -62,7 +62,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { | ||
| 62 | return "没有登陆信息"; | 62 | return "没有登陆信息"; |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | - if(org.apache.commons.lang3.StringUtils.equals(device,Convert.toStr(loginUser.getDeptId()))){ | 65 | + if(org.apache.commons.lang3.StringUtils.equals(device,Convert.toStr(loginUser.getDeviceId()))){ |
| 66 | return null; | 66 | return null; |
| 67 | } | 67 | } |
| 68 | 68 |
Bsth-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
| @@ -30,6 +30,10 @@ public interface ISysDictDataService extends IService<SysDictData> { | @@ -30,6 +30,10 @@ public interface ISysDictDataService extends IService<SysDictData> { | ||
| 30 | 30 | ||
| 31 | String combationValue(String url,SysDictData dictData); | 31 | String combationValue(String url,SysDictData dictData); |
| 32 | 32 | ||
| 33 | + String combationValue(String url); | ||
| 34 | + | ||
| 35 | + String splitURL(String url); | ||
| 36 | + | ||
| 33 | /** | 37 | /** |
| 34 | * 根据字典类型和字典键值查询字典数据信息 | 38 | * 根据字典类型和字典键值查询字典数据信息 |
| 35 | * | 39 | * |
Bsth-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
| 1 | package com.ruoyi.system.service.impl; | 1 | package com.ruoyi.system.service.impl; |
| 2 | 2 | ||
| 3 | +import com.alibaba.fastjson2.JSON; | ||
| 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| 5 | import com.ruoyi.common.core.domain.entity.SysDictData; | 6 | import com.ruoyi.common.core.domain.entity.SysDictData; |
| @@ -8,7 +9,10 @@ import com.ruoyi.system.mapper.SysDictDataMapper; | @@ -8,7 +9,10 @@ import com.ruoyi.system.mapper.SysDictDataMapper; | ||
| 8 | import com.ruoyi.system.service.ISysDictDataService; | 9 | import com.ruoyi.system.service.ISysDictDataService; |
| 9 | import org.apache.commons.collections4.CollectionUtils; | 10 | import org.apache.commons.collections4.CollectionUtils; |
| 10 | import org.apache.commons.lang3.StringUtils; | 11 | import org.apache.commons.lang3.StringUtils; |
| 12 | +import org.slf4j.Logger; | ||
| 13 | +import org.slf4j.LoggerFactory; | ||
| 11 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 15 | +import org.springframework.data.redis.core.RedisTemplate; | ||
| 12 | import org.springframework.stereotype.Service; | 16 | import org.springframework.stereotype.Service; |
| 13 | 17 | ||
| 14 | import java.util.Collection; | 18 | import java.util.Collection; |
| @@ -24,6 +28,10 @@ import java.util.Objects; | @@ -24,6 +28,10 @@ import java.util.Objects; | ||
| 24 | public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements ISysDictDataService { | 28 | public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements ISysDictDataService { |
| 25 | @Autowired | 29 | @Autowired |
| 26 | private SysDictDataMapper dictDataMapper; | 30 | private SysDictDataMapper dictDataMapper; |
| 31 | + @Autowired | ||
| 32 | + private RedisTemplate<String, String> redisTemplate; | ||
| 33 | + | ||
| 34 | + private static final Logger LOGGER = LoggerFactory.getLogger(SysDictDataServiceImpl.class); | ||
| 27 | 35 | ||
| 28 | /** | 36 | /** |
| 29 | * 根据条件分页查询字典数据 | 37 | * 根据条件分页查询字典数据 |
| @@ -59,9 +67,13 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi | @@ -59,9 +67,13 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi | ||
| 59 | 67 | ||
| 60 | @Override | 68 | @Override |
| 61 | public SysDictData getResourceBaseUrl() { | 69 | public SysDictData getResourceBaseUrl() { |
| 62 | - SysDictData source = new SysDictData(); | ||
| 63 | - source.setDictType("resource_base_url"); | ||
| 64 | - List<SysDictData> sysDictDatas = queryDictDateList(source); | 70 | + List<SysDictData> sysDictDatas = getDataOfRedis("resource_base_url"); |
| 71 | + if (CollectionUtils.isEmpty(sysDictDatas)) { | ||
| 72 | + SysDictData source = new SysDictData(); | ||
| 73 | + source.setDictType("resource_base_url"); | ||
| 74 | + sysDictDatas = queryDictDateList(source); | ||
| 75 | + } | ||
| 76 | + | ||
| 65 | 77 | ||
| 66 | String url1 = ""; | 78 | String url1 = ""; |
| 67 | String flag1 = null; | 79 | String flag1 = null; |
| @@ -87,6 +99,18 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi | @@ -87,6 +99,18 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi | ||
| 87 | return target; | 99 | return target; |
| 88 | } | 100 | } |
| 89 | 101 | ||
| 102 | + public List<SysDictData> getDataOfRedis(String dicType) { | ||
| 103 | + try { | ||
| 104 | + String key = StringUtils.join("sys_dict:", dicType); | ||
| 105 | + String json = redisTemplate.opsForValue().get(key); | ||
| 106 | + return JSON.parseArray(json, SysDictData.class); | ||
| 107 | + } catch (Exception e) { | ||
| 108 | + LOGGER.info("从redis中获取数据异常:[{}]", dicType, e); | ||
| 109 | + } | ||
| 110 | + return null; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + | ||
| 90 | @Override | 114 | @Override |
| 91 | public String combationValue(String url, SysDictData dictData) { | 115 | public String combationValue(String url, SysDictData dictData) { |
| 92 | if (Objects.isNull(dictData) || StringUtils.isEmpty(url)) { | 116 | if (Objects.isNull(dictData) || StringUtils.isEmpty(url)) { |
| @@ -106,6 +130,25 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi | @@ -106,6 +130,25 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi | ||
| 106 | return url; | 130 | return url; |
| 107 | } | 131 | } |
| 108 | 132 | ||
| 133 | + @Override | ||
| 134 | + public String combationValue(String url) { | ||
| 135 | + SysDictData source = getResourceBaseUrl(); | ||
| 136 | + return combationValue(url, source); | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + @Override | ||
| 140 | + public String splitURL(String url) { | ||
| 141 | + if (StringUtils.isEmpty(url)) { | ||
| 142 | + return url; | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + SysDictData sysDictData = getResourceBaseUrl(); | ||
| 146 | + if (Objects.nonNull(sysDictData) && StringUtils.isNotEmpty(sysDictData.getDictValueStr())) { | ||
| 147 | + return StringUtils.substringAfter(url, sysDictData.getDictValueStr()); | ||
| 148 | + } | ||
| 149 | + return url; | ||
| 150 | + } | ||
| 151 | + | ||
| 109 | /** | 152 | /** |
| 110 | * 根据字典类型和字典键值查询字典数据信息 | 153 | * 根据字典类型和字典键值查询字典数据信息 |
| 111 | * | 154 | * |