APP用户设备绑定
This commit is contained in:
@ -70,6 +70,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
/**
|
/**
|
||||||
* 创建Token 设置永不过期,
|
* 创建Token 设置永不过期,
|
||||||
* Token 的时间有效性转到Redis 维护
|
* Token 的时间有效性转到Redis 维护
|
||||||
|
*
|
||||||
* @param user /
|
* @param user /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
@ -77,7 +78,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
// 设置参数
|
// 设置参数
|
||||||
Map<String, Object> claims = new HashMap<>(6);
|
Map<String, Object> claims = new HashMap<>(6);
|
||||||
// 设置用户ID
|
// 设置用户ID
|
||||||
// claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
||||||
// if (user.getAppUser() != null){
|
// if (user.getAppUser() != null){
|
||||||
// claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
// claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
||||||
// }else {
|
// }else {
|
||||||
@ -94,6 +95,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
/**
|
/**
|
||||||
* APP创建Token 设置永不过期,
|
* APP创建Token 设置永不过期,
|
||||||
* Token 的时间有效性转到Redis 维护
|
* Token 的时间有效性转到Redis 维护
|
||||||
|
*
|
||||||
* @param user /
|
* @param user /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
@ -102,7 +104,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
Map<String, Object> claims = new HashMap<>(6);
|
Map<String, Object> claims = new HashMap<>(6);
|
||||||
|
|
||||||
// 设置用户ID
|
// 设置用户ID
|
||||||
// claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
||||||
// if (user.getAppUser() != null){
|
// if (user.getAppUser() != null){
|
||||||
// claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
// claims.put(AUTHORITIES_UID_KEY, user.getAppUser().getId());
|
||||||
// }else {
|
// }else {
|
||||||
@ -110,7 +112,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
// }
|
// }
|
||||||
// 设置UUID,确保每次Token不一样
|
// 设置UUID,确保每次Token不一样
|
||||||
claims.put(AUTHORITIES_UUID_KEY, IdUtil.simpleUUID());
|
claims.put(AUTHORITIES_UUID_KEY, IdUtil.simpleUUID());
|
||||||
claims.put("userType","1");//0 系统登录 1 APP登录
|
claims.put("userType", "1");// 0 系统登录 1 APP登录
|
||||||
return jwtBuilder
|
return jwtBuilder
|
||||||
.setClaims(claims)
|
.setClaims(claims)
|
||||||
.setSubject(user.getAppUser().getUsername())
|
.setSubject(user.getAppUser().getUsername())
|
||||||
@ -162,6 +164,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取登录用户RedisKey
|
* 获取登录用户RedisKey
|
||||||
|
*
|
||||||
* @param token /
|
* @param token /
|
||||||
* @return key
|
* @return key
|
||||||
*/
|
*/
|
||||||
@ -172,6 +175,7 @@ public class AppTokenProvider implements InitializingBean {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取会话编号
|
* 获取会话编号
|
||||||
|
*
|
||||||
* @param token /
|
* @param token /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
|
@ -3,10 +3,13 @@ package com.fuyuanshen.modules.system.domain.app;
|
|||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fuyuanshen.modules.system.domain.DeviceType;
|
import com.fuyuanshen.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 设备类型
|
* @Description: 设备类型
|
||||||
* @Author: WY
|
* @Author: WY
|
||||||
@ -14,11 +17,40 @@ import lombok.Data;
|
|||||||
**/
|
**/
|
||||||
@Data
|
@Data
|
||||||
@TableName("app_device_type")
|
@TableName("app_device_type")
|
||||||
public class APPDeviceType extends DeviceType {
|
public class APPDeviceType extends BaseEntity implements Serializable {
|
||||||
|
|
||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "客户号")
|
||||||
|
private Long customerId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建该类型的客户")
|
||||||
|
private Long ownerCustomerId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
|
// @TableField(value = "tenant_id")
|
||||||
|
// @ApiModelProperty(hidden = true)
|
||||||
|
// private Long tenantId;
|
||||||
|
|
||||||
|
@NotBlank(message = "设备类型名称不能为空")
|
||||||
|
@ApiModelProperty(value = "类型名称", required = true)
|
||||||
|
private String typeName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否支持蓝牙")
|
||||||
|
private Boolean isSupportBle;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "定位方式", example = "0:无;1:GPS;2:基站;3:wifi;4:北斗")
|
||||||
|
private String locateMode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "联网方式", example = "0:无;1:4G;2:WIFI")
|
||||||
|
private String networkWay;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "通讯方式", example = "0:4G;1:蓝牙")
|
||||||
|
private String communicationMode;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.fuyuanshen.modules.system.mapper.app;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.fuyuanshen.modules.system.domain.app.APPDeviceType;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 97433
|
||||||
|
* @description 针对表【app_device_type(设备类型表)】的数据库操作Mapper
|
||||||
|
* @createDate 2025-06-24 11:16:18
|
||||||
|
* @Entity system.domain.AppDeviceType
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AppDeviceTypeMapper extends BaseMapper<APPDeviceType> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -69,7 +69,7 @@ public class APPDeviceController {
|
|||||||
|
|
||||||
@GetMapping(value = "/bind")
|
@GetMapping(value = "/bind")
|
||||||
@ApiOperation("APP用户设备绑定")
|
@ApiOperation("APP用户设备绑定")
|
||||||
public ResponseVO<String> appBindDevice(@ApiParam("设备MAC地址") String mac) {
|
public ResponseVO<String> appBindDevice(@ApiParam("设备MAC地址") @RequestParam String mac) {
|
||||||
appDeviceService.appBindDevice(mac);
|
appDeviceService.appBindDevice(mac);
|
||||||
return ResponseVO.success("绑定成功!");
|
return ResponseVO.success("绑定成功!");
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ import com.fuyuanshen.modules.system.enums.UserType;
|
|||||||
import com.fuyuanshen.modules.system.mapper.DeviceMapper;
|
import com.fuyuanshen.modules.system.mapper.DeviceMapper;
|
||||||
import com.fuyuanshen.modules.system.mapper.DeviceTypeMapper;
|
import com.fuyuanshen.modules.system.mapper.DeviceTypeMapper;
|
||||||
import com.fuyuanshen.modules.system.mapper.app.APPDeviceMapper;
|
import com.fuyuanshen.modules.system.mapper.app.APPDeviceMapper;
|
||||||
|
import com.fuyuanshen.modules.system.mapper.app.AppDeviceTypeMapper;
|
||||||
import com.fuyuanshen.utils.PageResult;
|
import com.fuyuanshen.utils.PageResult;
|
||||||
import com.fuyuanshen.utils.SecurityUtils;
|
import com.fuyuanshen.utils.SecurityUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -26,6 +27,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description:
|
* @Description:
|
||||||
@ -40,6 +42,7 @@ public class APPDeviceServiceImpl extends ServiceImpl<APPDeviceMapper, APPDevice
|
|||||||
private final APPDeviceMapper appDeviceMapper;
|
private final APPDeviceMapper appDeviceMapper;
|
||||||
private final DeviceMapper deviceMapper;
|
private final DeviceMapper deviceMapper;
|
||||||
private final DeviceTypeMapper deviceTypeMapper;
|
private final DeviceTypeMapper deviceTypeMapper;
|
||||||
|
private final AppDeviceTypeMapper appDeviceTypeMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -62,7 +65,7 @@ public class APPDeviceServiceImpl extends ServiceImpl<APPDeviceMapper, APPDevice
|
|||||||
|
|
||||||
Device device = devices.get(0);
|
Device device = devices.get(0);
|
||||||
APPDevice appDevice = new APPDevice();
|
APPDevice appDevice = new APPDevice();
|
||||||
BeanUtil.copyProperties(appDevice, device);
|
BeanUtil.copyProperties(device, appDevice);
|
||||||
appDevice.setBindingType(UserType.APP.getValue());
|
appDevice.setBindingType(UserType.APP.getValue());
|
||||||
appDevice.setBindingStatus(BindingStatusEnum.BOUND.getCode());
|
appDevice.setBindingStatus(BindingStatusEnum.BOUND.getCode());
|
||||||
Long currentUserId = SecurityUtils.getCurrentUserId();
|
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
@ -71,8 +74,8 @@ public class APPDeviceServiceImpl extends ServiceImpl<APPDeviceMapper, APPDevice
|
|||||||
|
|
||||||
DeviceType deviceType = deviceTypeMapper.selectById(device.getDeviceType());
|
DeviceType deviceType = deviceTypeMapper.selectById(device.getDeviceType());
|
||||||
APPDeviceType appDeviceType = new APPDeviceType();
|
APPDeviceType appDeviceType = new APPDeviceType();
|
||||||
BeanUtil.copyProperties(appDeviceType, deviceType);
|
BeanUtil.copyProperties(deviceType, appDeviceType);
|
||||||
deviceTypeMapper.insert(appDeviceType);
|
appDeviceTypeMapper.insert(appDeviceType);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +103,12 @@ public class APPDeviceServiceImpl extends ServiceImpl<APPDeviceMapper, APPDevice
|
|||||||
@Transactional
|
@Transactional
|
||||||
public void unbindAPPDevice(APPUnbindDTO deviceForm) {
|
public void unbindAPPDevice(APPUnbindDTO deviceForm) {
|
||||||
|
|
||||||
appDeviceMapper.delete(new QueryWrapper<APPDevice>().eq("device_mac", deviceForm.getDeviceMac()));
|
appDeviceMapper.delete(new QueryWrapper<APPDevice>().eq("device_mac", deviceForm.getDeviceMac()).eq("binding_type", UserType.APP.getValue()));
|
||||||
|
List<Device> devices = deviceMapper.selectList(new QueryWrapper<Device>().eq("device_mac", deviceForm.getDeviceMac()));
|
||||||
|
List<Long> ids = devices.stream()
|
||||||
|
.map(Device::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
appDeviceTypeMapper.deleteBatchIds(ids);
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
device.setId(deviceForm.getCustomerId());
|
device.setId(deviceForm.getCustomerId());
|
||||||
device.setBindingStatus(BindingStatusEnum.UNBOUND.getCode());
|
device.setBindingStatus(BindingStatusEnum.UNBOUND.getCode());
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.fuyuanshen.modules.system.service.app;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.fuyuanshen.modules.system.domain.app.APPDeviceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 97433
|
||||||
|
* @description 针对表【app_device_type(设备类型表)】的数据库操作Service
|
||||||
|
* @createDate 2025-06-24 11:16:18
|
||||||
|
*/
|
||||||
|
public interface AppDeviceTypeService extends IService<APPDeviceType> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.fuyuanshen.modules.system.service.impl.app;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.fuyuanshen.modules.system.domain.app.APPDeviceType;
|
||||||
|
import com.fuyuanshen.modules.system.mapper.app.AppDeviceTypeMapper;
|
||||||
|
import com.fuyuanshen.modules.system.service.app.AppDeviceTypeService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 97433
|
||||||
|
* @description 针对表【app_device_type(设备类型表)】的数据库操作Service实现
|
||||||
|
* @createDate 2025-06-24 11:16:18
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AppDeviceTypeServiceImpl extends ServiceImpl<AppDeviceTypeMapper, APPDeviceType>
|
||||||
|
implements AppDeviceTypeService {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.fuyuanshen.modules.system.mapper.app.AppDeviceTypeMapper">
|
||||||
|
|
||||||
|
<resultMap id="BaseResultMap" type="com.fuyuanshen.modules.system.domain.app.APPDeviceType">
|
||||||
|
<id property="id" column="id" />
|
||||||
|
<result property="typeName" column="type_name" />
|
||||||
|
<result property="isSupportBle" column="is_support_ble" />
|
||||||
|
<result property="locateMode" column="locate_mode" />
|
||||||
|
<result property="networkWay" column="network_way" />
|
||||||
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="updateBy" column="update_by" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="customerId" column="customer_id" />
|
||||||
|
<result property="communicationMode" column="communication_mode" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id,type_name,is_support_ble,locate_mode,network_way,create_by,
|
||||||
|
update_by,create_time,update_time,customer_id,communication_mode
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
Reference in New Issue
Block a user