diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java index 5f2f7033e..bc238cb9f 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java @@ -54,11 +54,7 @@ public class CanteenSpuController { @GetMapping("/page") @PreAuthorize("@pms.hasPermission('canteen_canteenSpu_view')") public R getCanteenSpuPage(@ParameterObject Page page, @ParameterObject CanteenSpuEntity canteenSpu) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.like(StrUtil.isNotBlank(canteenSpu.getName()), CanteenSpuEntity::getName, canteenSpu.getName()); - wrapper.eq(Objects.nonNull(canteenSpu.getCategoryId()), CanteenSpuEntity::getCategoryId, canteenSpu.getCategoryId()); - wrapper.orderByAsc(CanteenSpuEntity::getSort); - return R.ok(canteenSpuService.pageScope(page, wrapper)); + return R.ok(canteenSpuService.pageScope(page, canteenSpu)); } diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java index fdb3acefd..613151372 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java @@ -38,10 +38,10 @@ public interface CanteenSpuService extends IService { /** * 分页查询 * @param page - * @param wrapper + * @param * @return */ - Object pageScope(Page page, LambdaQueryWrapper wrapper); + Object pageScope(Page page, CanteenSpuEntity canteenSpu); /** diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java index 805ebbd44..55482a806 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java @@ -95,8 +95,14 @@ public class CanteenSpuServiceImpl extends ServiceImpl wrapper) { - return baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + public Object pageScope(Page page, CanteenSpuEntity canteenSpu) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(StrUtil.isNotBlank(canteenSpu.getName()), CanteenSpuEntity::getName, canteenSpu.getName()); + wrapper.eq(Objects.nonNull(canteenSpu.getCategoryId()), CanteenSpuEntity::getCategoryId, canteenSpu.getCategoryId()); + wrapper.orderByAsc(CanteenSpuEntity::getSort).orderByDesc(CanteenSpuEntity::getId); + + Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + return pageData; } @Override diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/DeviceFingerprintUtil.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/util/DeviceFingerprintUtil.java similarity index 50% rename from pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/DeviceFingerprintUtil.java rename to pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/util/DeviceFingerprintUtil.java index cbc193f2f..540aafb52 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/DeviceFingerprintUtil.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/util/DeviceFingerprintUtil.java @@ -1,4 +1,4 @@ -package com.bsd.pjcloud.thirdparty.utils; +package com.bsd.pjcloud.common.core.util; import com.bsd.pjcloud.common.core.util.WebUtils; import jakarta.servlet.http.HttpServletRequest; @@ -7,8 +7,12 @@ import org.springframework.util.DigestUtils; public class DeviceFingerprintUtil { public static String generate(HttpServletRequest request) { String userAgent = request.getHeader("User-Agent"); - String ip = WebUtils.getIP(request); +// String ip = WebUtils.getIP(request); String accept = request.getHeader("Accept"); - return DigestUtils.md5DigestAsHex((userAgent + ip + accept).getBytes()); + System.out.println(userAgent); + System.out.println(accept); + System.out.println("******"); + System.out.println(DigestUtils.md5DigestAsHex((userAgent + accept).getBytes())); + return DigestUtils.md5DigestAsHex((userAgent + accept).getBytes()); } } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/DeviceVerifyDTO.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/DeviceVerifyDTO.java new file mode 100644 index 000000000..06c501d13 --- /dev/null +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/DeviceVerifyDTO.java @@ -0,0 +1,13 @@ +package com.bsd.pjcloud.thirdparty.dto; + +import lombok.Data; + +@Data +public class DeviceVerifyDTO { + + + private String code; + + + private String mobilePhone; +} diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java index fca8dc49a..0b04d7fe4 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java @@ -1,26 +1,25 @@ package com.bsd.pjcloud.thirdparty.controller; -import com.bsd.pjcloud.admin.api.dto.UserDTO; import com.bsd.pjcloud.admin.api.dto.UserTokenDTO; import com.bsd.pjcloud.admin.api.entity.SysUser; +import com.bsd.pjcloud.admin.api.entity.UserTrustedDeviceEntity; import com.bsd.pjcloud.admin.api.feign.RemoteTokenService; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; +import com.bsd.pjcloud.admin.api.feign.RemoteUserTrustedDeviceService; +import com.bsd.pjcloud.common.core.util.DeviceFingerprintUtil; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.core.util.WebUtils; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.common.security.annotation.Inner; +import com.bsd.pjcloud.thirdparty.dto.DeviceVerifyDTO; import com.bsd.pjcloud.thirdparty.dto.SHJNSSODTO; import com.bsd.pjcloud.thirdparty.dto.UrlTokenDTO; import com.bsd.pjcloud.thirdparty.dto.ZZDUserDTO; -import com.bsd.pjcloud.thirdparty.entity.ThirdPartyUserEntity; import com.bsd.pjcloud.thirdparty.service.SmsService; import com.bsd.pjcloud.thirdparty.service.ThirdPartyOAuth2Service; import com.bsd.pjcloud.thirdparty.service.ThirdPartyUserService; -import com.bsd.pjcloud.thirdparty.utils.DeviceFingerprintUtil; import com.bsd.pjcloud.thirdparty.utils.SmsCodeUtil; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; @@ -36,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; @@ -58,6 +58,8 @@ public class ThirdPartyOAth2Cotroller { @Autowired private RedisTemplate redisTemplate; + private final RemoteUserTrustedDeviceService remoteUserTrustedDeviceService; + // @Operation(summary = "浙政钉token" ) // @GetMapping("/zzd/sso" ) // public R getThirdPartyzzdsso(@RequestParam("token")String token) { @@ -203,7 +205,7 @@ public class ThirdPartyOAth2Cotroller { @SysLog("诗画江南单点登录") @Transactional @GlobalTransactional - public R shjnsso(@RequestBody @Valid SHJNSSODTO shjnsso) { + public R shjnsso(@RequestBody @Valid SHJNSSODTO shjnsso,HttpServletRequest httpServletRequest) { //检查设备指纹 ZZDUserDTO zzdUserDTO = thirdPartyOAuth2Service.shjnsso(shjnsso.getAccountId(), shjnsso.getSessionId()); if (null==zzdUserDTO){ @@ -214,9 +216,17 @@ public class ThirdPartyOAth2Cotroller { R> userByMobileOrEmployeeCode = remoteUserService.getUserByMobileOrEmployeeCode(null, mobile); List sysUserList = userByMobileOrEmployeeCode.getData(); if(!CollectionUtils.isEmpty(sysUserList)){ + SysUser sysUser = sysUserList.get(0); + //判断当前用户设备是否信任 +// String md5 = DeviceFingerprintUtil.generate(httpServletRequest); +// R userTrustedDeviceR = remoteUserTrustedDeviceService.getUserTrustedDeviceByIdAndMD5(sysUser.getPhone(), md5); +// UserTrustedDeviceEntity userTrustedDevice = userTrustedDeviceR.getData(); +// if (userTrustedDevice == null || userTrustedDevice.getExpireTime().isBefore(LocalDateTime.now())){ +// return R.failed(-1,"请先信任设备"); +// } //登录成功生成token UserTokenDTO userTokenDTO = new UserTokenDTO(); - userTokenDTO.setSysUser(sysUserList.get(0)); + userTokenDTO.setSysUser(sysUser); return remoteTokenService.generateToken(userTokenDTO); }else { @@ -241,23 +251,6 @@ public class ThirdPartyOAth2Cotroller { } } - - // 在shjnsso方法中添加验证 -// @PostMapping("/shjnsso") -// public R shjnsso(..., HttpServletRequest request) { -// // 设备指纹验证 -// String clientFingerprint = DeviceFingerprintUtil.generate(request); -// String storedFingerprint = redisTemplate.opsForValue().get("device_fp:" + shjnsso.getAccountId()); -// -// if (!clientFingerprint.equals(storedFingerprint)) { -// // 新设备需要短信验证 -// String code = SmsCodeUtil.generateNumberCode(6); -// smsService.sendSms(mobile, "验证码模板ID", Map.of("code", code)); -// return R.failed("new_device").data("needSmsVerify", true); -// } -// -// // 原有逻辑继续执行... -// } @Inner(value = false) @GetMapping("/getAuthToken/{token}") public R info(@PathVariable(name = "token") String token) { @@ -280,36 +273,53 @@ public class ThirdPartyOAth2Cotroller { return R.ok(stringObjectHashMap); } + @PostMapping("/verify-device") + @SysLog("设备验证") + @Inner(value = false) + public R verifyDevice(@RequestBody DeviceVerifyDTO dto,HttpServletRequest httpServletRequest) { + // 1. 校验验证码 + String redisKey = "smsCode_" + dto.getMobilePhone(); + String storedCode = (String) redisTemplate.opsForValue().get(redisKey); + if (!dto.getCode().equals(storedCode)) { + return R.failed("验证码错误"); + } + + // 验证成功后移除验证码(可选) +// redisTemplate.delete(redisKey); + + + // 2. 记录信任设备 + //查询之前的是否有过期的数据,有就更新 + String generate = DeviceFingerprintUtil.generate(httpServletRequest); + R userTrustedDeviceR = remoteUserTrustedDeviceService.getUserTrustedDeviceByIdAndMD5(dto.getMobilePhone(), generate); + if (userTrustedDeviceR.getData() != null){ + userTrustedDeviceR.getData().setExpireTime(LocalDateTime.now().plusMonths(3)); + remoteUserTrustedDeviceService.updateById(userTrustedDeviceR.getData()); + }else { + UserTrustedDeviceEntity userTrustedDevice = new UserTrustedDeviceEntity(); + userTrustedDevice.setMobilePhone(dto.getMobilePhone()); + userTrustedDevice.setExpireTime(LocalDateTime.now().plusMonths(3)); + userTrustedDevice.setDeviceName("诗画设备认证"); + userTrustedDevice.setDeviceFingerprint(generate); + remoteUserTrustedDeviceService.save(userTrustedDevice); + } + return R.ok(); + } @PostMapping("/loginSms") - @Operation(summary = "短信登录认证") - @SysLog("短信登录认证") + @Operation(summary = "发送登录短信") + @SysLog("发送登录短信") @Inner(value = false) public R loginSms(@RequestParam String mobilePhone,HttpServletRequest httpServletRequest) { Map stringHashMap = new LinkedHashMap<>(); String s = SmsCodeUtil.generateNumberCode(6); stringHashMap.put("code",s); stringHashMap.put("date","5"); - System.out.println(WebUtils.getIP()); - System.out.println(WebUtils.getIP(httpServletRequest)); smsService.sendSms(mobilePhone, "20657",stringHashMap, WebUtils.getIP()); - redisTemplate.opsForSet().add("smsCode_"+mobilePhone,s, 5, TimeUnit.MINUTES); + redisTemplate.opsForValue().set("smsCode_"+mobilePhone,s, 5, TimeUnit.MINUTES); - //记录信任的设备 - // 2. 记录信任设备 -// String deviceFingerprint = DeviceFingerprintUtil.generate(request); -// deviceService.addTrustedDevice( -// dto.getUserId(), -// deviceFingerprint, -// LocalDateTime.now().plusMonths(3) // 信任3个月 -// ); -// -// // 3. 生成令牌 -// User user = userService.getById(dto.getUserId()); -// String token = jwtService.generateToken(user); -// return R.ok().data("token", token); return R.ok(); } diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/UserTrustedDeviceEntity.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/UserTrustedDeviceEntity.java index 7e73beeb1..ba47477c7 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/UserTrustedDeviceEntity.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/UserTrustedDeviceEntity.java @@ -28,10 +28,10 @@ public class UserTrustedDeviceEntity extends Model { private Long id; /** - * 用户id + * 手机号 */ @Schema(description="用户id") - private Long userId; + private String mobilePhone; /** * MD5 diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserTrustedDeviceService.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserTrustedDeviceService.java new file mode 100644 index 000000000..c917b5344 --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserTrustedDeviceService.java @@ -0,0 +1,64 @@ +/* + * + * Copyright (c) 2018-2025, pjcloud All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: pjcloud + * + */ + +package com.bsd.pjcloud.admin.api.feign; + +import com.bsd.pjcloud.admin.api.dto.UserDTO; +import com.bsd.pjcloud.admin.api.dto.UserInfo; +import com.bsd.pjcloud.admin.api.entity.SysUser; +import com.bsd.pjcloud.admin.api.entity.UserTrustedDeviceEntity; +import com.bsd.pjcloud.admin.api.vo.UserVO; +import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.feign.annotation.NoToken; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author pjcloud + * @date 2018/6/22 + */ +@FeignClient(contextId = "remoteUserTrustedDeviceService", value = ServiceNameConstants.UPMS_SERVICE) +public interface RemoteUserTrustedDeviceService { + +// @NoToken +// @PostMapping("/user/inner-page") +// R> getRemoteUserPage(@RequestParam Long current, @RequestParam Long size, @RequestBody UserDTO userDTO); + + + @NoToken + @GetMapping("/userTrustedDevice/getUserTrustedDeviceByIdAndMD5" ) + R getUserTrustedDeviceByIdAndMD5(@RequestParam("mobilePhone")String mobilePhone,@RequestParam("md5") String md5); + + + @PostMapping("/userTrustedDevice/save") + @NoToken + R save(@RequestBody UserTrustedDeviceEntity userTrustedDevice); + + + @PutMapping("/userTrustedDevice/update") + @NoToken + R updateById(@RequestBody UserTrustedDeviceEntity userTrustedDevice); + +} diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/UserTrustedDeviceController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/UserTrustedDeviceController.java index 3c2376ac1..e80365561 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/UserTrustedDeviceController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/UserTrustedDeviceController.java @@ -9,6 +9,7 @@ import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.admin.api.entity.UserTrustedDeviceEntity; import com.bsd.pjcloud.admin.service.UserTrustedDeviceService; +import com.bsd.pjcloud.common.security.annotation.Inner; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -69,11 +70,10 @@ public class UserTrustedDeviceController { * @return R */ @Operation(summary = "新增设备指纹" , description = "新增设备指纹" ) - @SysLog("新增设备指纹" ) - @PostMapping - @PreAuthorize("@pms.hasPermission('admin_userTrustedDevice_add')" ) + @PostMapping("/save") + @Inner public R save(@RequestBody UserTrustedDeviceEntity userTrustedDevice) { - return R.ok(userTrustedDeviceService.save(userTrustedDevice)); + return R.ok(userTrustedDeviceService.saveUserTruste(userTrustedDevice)); } /** @@ -83,8 +83,8 @@ public class UserTrustedDeviceController { */ @Operation(summary = "修改设备指纹" , description = "修改设备指纹" ) @SysLog("修改设备指纹" ) - @PutMapping - @PreAuthorize("@pms.hasPermission('admin_userTrustedDevice_edit')" ) + @PutMapping("/update") + @Inner public R updateById(@RequestBody UserTrustedDeviceEntity userTrustedDevice) { return R.ok(userTrustedDeviceService.updateById(userTrustedDevice)); } @@ -103,16 +103,11 @@ public class UserTrustedDeviceController { } - /** - * 导出excel 表格 - * @param userTrustedDevice 查询条件 - * @param ids 导出指定ID - * @return excel 文件流 - */ - @ResponseExcel - @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('admin_userTrustedDevice_export')" ) - public List export(UserTrustedDeviceEntity userTrustedDevice,Long[] ids) { - return userTrustedDeviceService.list(Wrappers.lambdaQuery(userTrustedDevice).in(ArrayUtil.isNotEmpty(ids), UserTrustedDeviceEntity::getId, ids)); + + @Operation(summary = "通过md5和用户查询设备" , description = "通过md5和用户查询设备" ) + @GetMapping("/getUserTrustedDeviceByIdAndMD5" ) + @Inner + public R getUserTrustedDeviceByIdAndMD5(@RequestParam("mobilePhone")String mobilePhone,@RequestParam("md5") String md5) { + return R.ok(userTrustedDeviceService.getUserTrustedDeviceByIdAndMD5(mobilePhone,md5)); } } \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/UserTrustedDeviceService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/UserTrustedDeviceService.java index 4f7610283..14bc5a1e0 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/UserTrustedDeviceService.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/UserTrustedDeviceService.java @@ -5,4 +5,15 @@ import com.bsd.pjcloud.admin.api.entity.UserTrustedDeviceEntity; public interface UserTrustedDeviceService extends IService { + + /** + * 新增 + * @param userTrustedDevice + * @return + */ + Object saveUserTruste(UserTrustedDeviceEntity userTrustedDevice); + + + + UserTrustedDeviceEntity getUserTrustedDeviceByIdAndMD5(String mobilePhone, String md5); } \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/UserTrustedDeviceServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/UserTrustedDeviceServiceImpl.java index 5193e6f95..03ed989d0 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/UserTrustedDeviceServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/UserTrustedDeviceServiceImpl.java @@ -1,9 +1,12 @@ package com.bsd.pjcloud.admin.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.admin.api.entity.UserTrustedDeviceEntity; import com.bsd.pjcloud.admin.mapper.UserTrustedDeviceMapper; import com.bsd.pjcloud.admin.service.UserTrustedDeviceService; +import com.bsd.pjcloud.common.core.util.DeviceFingerprintUtil; +import com.bsd.pjcloud.common.core.util.WebUtils; import org.springframework.stereotype.Service; /** * 设备指纹 @@ -13,4 +16,17 @@ import org.springframework.stereotype.Service; */ @Service public class UserTrustedDeviceServiceImpl extends ServiceImpl implements UserTrustedDeviceService { + @Override + public Object saveUserTruste(UserTrustedDeviceEntity userTrustedDevice) { + return baseMapper.insert(userTrustedDevice); + } + + @Override + public UserTrustedDeviceEntity getUserTrustedDeviceByIdAndMD5(String mobilePhone, String md5) { + LambdaQueryWrapper userTrustedDeviceEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + userTrustedDeviceEntityLambdaQueryWrapper.eq(UserTrustedDeviceEntity::getMobilePhone, mobilePhone); + userTrustedDeviceEntityLambdaQueryWrapper.eq(UserTrustedDeviceEntity::getDeviceFingerprint, md5); + return baseMapper.selectOne(userTrustedDeviceEntityLambdaQueryWrapper); + + } } \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/UserTrustedDeviceMapper.xml b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/UserTrustedDeviceMapper.xml index 06b1459a5..132bdc870 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/UserTrustedDeviceMapper.xml +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/UserTrustedDeviceMapper.xml @@ -5,7 +5,7 @@ - +