feat:人脸同步
This commit is contained in:
1 parent
b5262330a6
commit
a49b913e9f
8 files changed
+70
-34
No files matched your search
+1
-1
@@ -38,7 +38,7 @@ public class HardManagerEntity extends Model<HardManagerEntity> {
|
||||
private Long merchantId;
|
||||
|
||||
/**
|
||||
* 商家部门id
|
||||
* 部门id
|
||||
*/
|
||||
@Schema(description="商家部门id")
|
||||
private Long deptId;
|
||||
|
||||
+24
-21
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
||||
import com.bsd.pjcloud.common.security.service.PjcloudUser;
|
||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||
import com.bsd.pjcloud.hard.api.dto.HardInvoiceDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
|
||||
import com.bsd.pjcloud.hard.api.entity.HardManagerEntity;
|
||||
@@ -31,16 +33,16 @@ import java.util.List;
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/hard-manager" )
|
||||
@Tag(description = "hard-manager" , name = "设备管理管理" )
|
||||
@RequestMapping("/hard-manager")
|
||||
@Tag(description = "hard-manager", name = "设备管理管理")
|
||||
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||
public class HardManagerController {
|
||||
|
||||
private final HardManagerService hardManagerService;
|
||||
|
||||
@Operation(summary = "分页查询" , description = "分页查询" )
|
||||
@GetMapping("/page" )
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_view')" )
|
||||
@Operation(summary = "分页查询", description = "分页查询")
|
||||
@GetMapping("/page")
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_view')")
|
||||
public R getHardManagerPage(@ParameterObject Page page, @ParameterObject HardManagerEntity hardManager) {
|
||||
LambdaQueryWrapper<HardManagerEntity> wrapper = Wrappers.lambdaQuery();
|
||||
return R.ok(hardManagerService.page(page, wrapper));
|
||||
@@ -53,42 +55,43 @@ public class HardManagerController {
|
||||
return R.ok(hardManagerService.scopePageList(page, dto));
|
||||
}
|
||||
|
||||
@Operation(summary = "通过id查询" , description = "通过id查询" )
|
||||
@GetMapping("/{id}" )
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_view')" )
|
||||
public R getById(@PathVariable("id" ) Long id) {
|
||||
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_view')")
|
||||
public R getById(@PathVariable("id") Long id) {
|
||||
return R.ok(hardManagerService.getById(id));
|
||||
}
|
||||
|
||||
@Operation(summary = "新增设备管理" , description = "新增设备管理" )
|
||||
@SysLog("新增设备管理" )
|
||||
@Operation(summary = "新增设备管理", description = "新增设备管理")
|
||||
@SysLog("新增设备管理")
|
||||
@PostMapping
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_add')" )
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_add')")
|
||||
public R save(@RequestBody HardManagerDto dto) {
|
||||
return R.ok(hardManagerService.create(dto));
|
||||
PjcloudUser user = SecurityUtils.getUser();
|
||||
return R.ok(hardManagerService.create(dto, user));
|
||||
}
|
||||
|
||||
@Operation(summary = "修改设备管理" , description = "修改设备管理" )
|
||||
@SysLog("修改设备管理" )
|
||||
@Operation(summary = "修改设备管理", description = "修改设备管理")
|
||||
@SysLog("修改设备管理")
|
||||
@PutMapping
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_edit')" )
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_edit')")
|
||||
public R updateById(@RequestBody HardManagerDto dto) {
|
||||
hardManagerService.edit(dto);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@Operation(summary = "通过id删除设备管理" , description = "通过id删除设备管理" )
|
||||
@SysLog("通过id删除设备管理" )
|
||||
@Operation(summary = "通过id删除设备管理", description = "通过id删除设备管理")
|
||||
@SysLog("通过id删除设备管理")
|
||||
@DeleteMapping
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_del')" )
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_del')")
|
||||
public R removeById(@RequestBody Long[] ids) {
|
||||
return R.ok(hardManagerService.removeBatchByIds(CollUtil.toList(ids)));
|
||||
}
|
||||
|
||||
@ResponseExcel
|
||||
@GetMapping("/export")
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_export')" )
|
||||
public List<HardManagerEntity> export(HardManagerEntity hardManager,Long[] ids) {
|
||||
@PreAuthorize("@pms.hasPermission('hard_hardManager_export')")
|
||||
public List<HardManagerEntity> export(HardManagerEntity hardManager, Long[] ids) {
|
||||
return hardManagerService.list(Wrappers.lambdaQuery(hardManager).in(ArrayUtil.isNotEmpty(ids), HardManagerEntity::getId, ids));
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.bsd.pjcloud.common.security.service.PjcloudUser;
|
||||
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto;
|
||||
import com.bsd.pjcloud.hard.api.entity.HardManagerEntity;
|
||||
@@ -13,7 +14,7 @@ public interface HardManagerService extends IService<HardManagerEntity> {
|
||||
|
||||
Page<HardManagerVo> scopePageList(Page page, HardManagerDto dto);
|
||||
|
||||
Long create(HardManagerDto dto);
|
||||
Long create(HardManagerDto dto, PjcloudUser user);
|
||||
|
||||
void edit(HardManagerDto dto);
|
||||
|
||||
|
||||
+24
-7
@@ -10,6 +10,7 @@ import com.bsd.pjcloud.admin.api.utils.DataUtil;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
import com.bsd.pjcloud.common.core.util.CollectionUtils;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.security.service.PjcloudUser;
|
||||
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto;
|
||||
import com.bsd.pjcloud.hard.api.entity.HardManagerEntity;
|
||||
@@ -98,10 +99,10 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long create(HardManagerDto dto) {
|
||||
public Long create(HardManagerDto dto, PjcloudUser user) {
|
||||
R<MchManageVo> mch = mchService.getById(dto.getMerchantId());
|
||||
Long deptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在"));
|
||||
dto.setDeptId(deptId);
|
||||
Long mchDeptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在"));
|
||||
dto.setDeptId(user.getDeptId());
|
||||
// mq地址和端口
|
||||
dto.setMqSocketAddress(mqttConfig.getAndroidAddress());
|
||||
dto.setMqSocketPort(mqttConfig.getAndroidPort());
|
||||
@@ -109,13 +110,13 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
|
||||
baseMapper.insert(dto);
|
||||
// topic
|
||||
HardManagerEntity updateObj = HardManagerEntity.builder().id(dto.getId()).build();
|
||||
String topic = createMqConfigByAction(dto.getDeptId(), null, 1) + "/#";
|
||||
String topic = createMqConfigByAction(mchDeptId, null, 1) + "/#";
|
||||
updateObj.setMainTopic(topic);
|
||||
// client id
|
||||
String clientId = createMqConfigByAction(dto.getDeptId(), dto.getId(), 2);
|
||||
String clientId = createMqConfigByAction(mchDeptId, dto.getId(), 2);
|
||||
updateObj.setMqClientId(clientId);
|
||||
// username TODO 密码9位随机数字加字母
|
||||
String mqUsername = createMqConfigByAction(dto.getDeptId(), dto.getId(), 3);
|
||||
String mqUsername = createMqConfigByAction(mchDeptId, dto.getId(), 3);
|
||||
updateObj.setMqUsername(mqUsername);
|
||||
updateObj.setMqPassword(RandomUtil.randomString(9));
|
||||
baseMapper.updateById(updateObj);
|
||||
@@ -128,6 +129,19 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
|
||||
if (ObjectUtil.isEmpty(detail)) {
|
||||
throw new RuntimeException("设备不存在");
|
||||
}
|
||||
R<MchManageVo> mch = mchService.getById(dto.getMerchantId());
|
||||
Long mchDeptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在"));
|
||||
if (!ObjectUtil.equals(dto.getMerchantId(), detail.getMerchantId())) {
|
||||
// topic
|
||||
String topic = createMqConfigByAction(mchDeptId, null, 1) + "/#";
|
||||
dto.setMainTopic(topic);
|
||||
// client id
|
||||
String clientId = createMqConfigByAction(mchDeptId, dto.getId(), 2);
|
||||
dto.setMqClientId(clientId);
|
||||
// username TODO 密码9位随机数字加字母
|
||||
String mqUsername = createMqConfigByAction(mchDeptId, dto.getId(), 3);
|
||||
dto.setMqUsername(mqUsername);
|
||||
}
|
||||
baseMapper.updateById(dto);
|
||||
// 更新mq
|
||||
remoteMqttEventService.sendConfigChangeMsg(detail.getDeptId());
|
||||
@@ -148,7 +162,10 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
|
||||
public HardManagerVo getById(Long hardId) {
|
||||
HardManagerEntity hard = baseMapper.selectById(hardId);
|
||||
HardManagerVo vo = BeanUtils.toBean(hard, HardManagerVo.class);
|
||||
vo.setMerchantDeptId(hard.getDeptId());
|
||||
MchManageVo mch = mchService.getById(hard.getMerchantId()).getData();
|
||||
if (ObjectUtil.isNotEmpty(mch)) {
|
||||
vo.setMerchantDeptId(mch.getDeptId());
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -12,4 +12,6 @@ public class SysUserFaceDto extends SysUserFaceEntity {
|
||||
|
||||
private List<Long> userIds;
|
||||
|
||||
private List<Long> deptIds;
|
||||
|
||||
}
|
||||
+2
-1
@@ -85,9 +85,10 @@ public class SysUserFaceController {
|
||||
/* ************************************* start android start ************************************* */
|
||||
@Operation(summary = "android查询人脸数据库", description = "android查询人脸数据库")
|
||||
@GetMapping("/ad/find-face")
|
||||
public R adFinFace(@ParameterObject Page page, @RequestParam(required = false) Long userId) {
|
||||
public R adFinFace(@ParameterObject Page page, @RequestParam(required = false) Long userId, @RequestParam(required = false) Long merchantDeptId) {
|
||||
SysUserFaceDto dto = new SysUserFaceDto();
|
||||
dto.setUserId(userId);
|
||||
dto.setMerchantDeptId(merchantDeptId);
|
||||
return R.ok(sysUserFaceService.pageJoin(page, dto).getRecords());
|
||||
}
|
||||
/* ************************************* start android start ************************************* */
|
||||
|
||||
+4
-3
@@ -41,10 +41,11 @@ public interface SysUserFaceMapper extends PjcloudBaseMapper<SysUserFaceEntity>
|
||||
.selectAs(SysUser::getPhone, SysUserFaceVo::getUserMobile)
|
||||
.selectAs(SysDept::getName, SysUserFaceVo::getDeptName)
|
||||
.selectAs(SysDept::getDeptId, SysUserFaceVo::getDeptId)
|
||||
.leftJoin(SysUser.class, SysUser::getUserId, SysUserFaceEntity::getUserId)
|
||||
.leftJoin(SysDept.class, SysDept::getDeptId, SysUser::getDeptId)
|
||||
.innerJoin(SysUser.class, SysUser::getUserId, SysUserFaceEntity::getUserId)
|
||||
.innerJoin(SysDept.class, SysDept::getDeptId, SysUser::getDeptId)
|
||||
.eq(ObjectUtil.isNotEmpty(dto.getUserId()), SysUserFaceEntity::getUserId, dto.getUserId())
|
||||
.in(ObjectUtil.isNotEmpty(dto.getUserIds()), SysUserFaceEntity::getUserId, dto.getUserIds());
|
||||
.in(ObjectUtil.isNotEmpty(dto.getUserIds()), SysUserFaceEntity::getUserId, dto.getUserIds())
|
||||
.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), SysUser::getDeptId, dto.getDeptIds());
|
||||
return selectJoinPage(page, SysUserFaceVo.class, wrapper);
|
||||
}
|
||||
}
|
||||
+11
@@ -1,15 +1,18 @@
|
||||
package com.bsd.pjcloud.admin.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.admin.api.dto.SysUserFaceDto;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysDept;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUser;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity;
|
||||
import com.bsd.pjcloud.admin.api.utils.DataUtil;
|
||||
import com.bsd.pjcloud.admin.api.vo.SysUserFaceVo;
|
||||
import com.bsd.pjcloud.admin.mapper.SysUserFaceMapper;
|
||||
import com.bsd.pjcloud.admin.service.SysDeptService;
|
||||
import com.bsd.pjcloud.admin.service.SysUserFaceService;
|
||||
import com.bsd.pjcloud.admin.service.SysUserService;
|
||||
import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum;
|
||||
@@ -37,6 +40,7 @@ import java.util.List;
|
||||
public class SysUserFaceServiceImpl extends ServiceImpl<SysUserFaceMapper, SysUserFaceEntity> implements SysUserFaceService {
|
||||
|
||||
private final SysUserService sysUserService;
|
||||
private final SysDeptService sysDeptService;
|
||||
|
||||
@Override
|
||||
public Long create(SysUserFaceEntity sysUserFace) {
|
||||
@@ -76,6 +80,13 @@ public class SysUserFaceServiceImpl extends ServiceImpl<SysUserFaceMapper, SysUs
|
||||
|
||||
@Override
|
||||
public Page<SysUserFaceVo> pageJoin(Page page, SysUserFaceDto dto) {
|
||||
if (ObjectUtil.isNotEmpty(dto.getMerchantDeptId())) {
|
||||
List<SysDept> deptList = sysDeptService.listDescendant(dto.getMerchantDeptId());
|
||||
if (ObjectUtil.isNotEmpty(deptList)) {
|
||||
List<Long> deptIds = deptList.stream().map(SysDept::getDeptId).toList();
|
||||
dto.setDeptIds(deptIds);
|
||||
}
|
||||
}
|
||||
return baseMapper.pageJoin(page, dto);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user