package com.panzhihua.service_equipment.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.service_equipment.config.AccessUtil;
|
import com.panzhihua.service_equipment.dao.UnionAccessMapper;
|
import com.panzhihua.service_equipment.dao.UnionUserMapper;
|
import com.panzhihua.service_equipment.model.dos.UnionAccess;
|
import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
|
import com.panzhihua.service_equipment.model.dos.UnionUser;
|
import com.panzhihua.service_equipment.service.UnionUserService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
@Service
|
@Slf4j
|
public class UnionUserServiceImpl extends ServiceImpl<UnionUserMapper, UnionUser> implements UnionUserService {
|
|
@Resource
|
private AccessUtil accessUtil;
|
|
@Resource
|
private UnionAccessMapper unionAccessMapper;
|
|
/**
|
* 总工会户外劳登录
|
*
|
* @param loginUserInfoVO
|
* @return 总工会户外劳共用户
|
*/
|
@Override
|
public R<UnionUser> login(LoginUserInfoVO loginUserInfoVO) {
|
UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", loginUserInfoVO.getUserId()));
|
if (unionUser != null) {
|
return R.ok(unionUser);
|
} else {
|
unionUser = new UnionUser();
|
unionUser.setSex(loginUserInfoVO.getSex().toString());
|
unionUser.setPhone(loginUserInfoVO.getPhone());
|
unionUser.setDeleteFlag(false);
|
unionUser.setCreateAt(LocalDateTime.now());
|
unionUser.setUpdateAt(LocalDateTime.now());
|
unionUser.setStatus(1);
|
unionUser.setNickName(loginUserInfoVO.getNickName());
|
unionUser.setUserId(loginUserInfoVO.getUserId());
|
if (loginUserInfoVO.getImageUrl() != null)
|
unionUser.setImageUrl(loginUserInfoVO.getImageUrl());
|
int insert = baseMapper.insert(unionUser);
|
if (insert > 0) {
|
return R.ok(unionUser);
|
} else {
|
return R.fail();
|
}
|
}
|
|
}
|
|
/**
|
* 总工会户外劳工站用户认证
|
*
|
* @param unionUserDto
|
* @return 总工会户外劳共用户
|
*/
|
|
@Override
|
public R authentication(UnionUserDto unionUserDto){
|
UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionUserDto.getUserId()));
|
if (unionUser != null){
|
log.info("查询到用户开始认证操作{}",unionUser);
|
//设备下发照片代码
|
LambdaQueryWrapper<UnionAccess> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.inSql(UnionAccess::getSiteId, "SELECT id FROM union_outdoor_site WHERE area_code='" + unionUserDto.getAreaCode() + "'");
|
List<UnionAccess> unionAccesses = unionAccessMapper.selectList(queryWrapper);
|
for (UnionAccess unionAccess : unionAccesses) {
|
try {
|
log.info("人脸注册");
|
accessUtil.faceEnroll(unionUser.getPhone(), unionUserDto.getName(), unionUserDto.getAuthenticatedUrlBase(), unionAccess.getCommunityExternalId(), unionAccess.getUnitId());
|
} catch (Exception e) {
|
// 处理异常
|
e.printStackTrace();
|
return R.fail("认证失败,请验证照片是否符合规范或者联系工作人员"); // 或者抛出自定义异常,根据实际情况进行处理
|
}
|
}
|
//更改数据库
|
unionUser.setName(unionUserDto.getName());
|
unionUser.setIdCard(unionUserDto.getIdCard());
|
unionUser.setAreaCode(unionUserDto.getAreaCode());
|
unionUser.setAuthenticatedUrl(unionUserDto.getAuthenticatedUrl());
|
unionUser.setAuthenticatedUrlBase(unionUserDto.getAuthenticatedUrlBase());
|
unionUser.setIsAuthenticated(1);
|
int i = baseMapper.updateById(unionUser);
|
if (i>0){
|
return R.ok("认证成功");
|
}
|
else {
|
return R.fail("认证失败");
|
}
|
}
|
else {
|
log.info("未查询到用户");
|
return R.fail("认证失败");
|
}
|
|
}
|
}
|