From ce4a770744d7a0b4e4ea3b5101556b94e72bdf1c Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期二, 14 十一月 2023 17:49:20 +0800
Subject: [PATCH] 修改打卡
---
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 205 insertions(+), 7 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java
index a0a095d..f565bca 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java
@@ -6,19 +6,22 @@
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.common.redis.TokenManager;
+import com.panzhihua.service_equipment.dao.*;
+import com.panzhihua.service_equipment.model.dos.*;
+import com.panzhihua.service_equipment.until.AccessUtil;
import com.panzhihua.service_equipment.service.UnionUserService;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
@Service
@Slf4j
@@ -29,6 +32,30 @@
@Resource
private UnionAccessMapper unionAccessMapper;
+
+ @Resource
+ private UsersMapper usersMapper;
+
+ @Resource
+ private TokenManager tokenManager;
+
+ @Resource
+ private UnionOpenDoorMapper unionOpenDoorMapper;
+
+ @Resource
+ private UnionIntegralRuleMapper unionIntegralRuleMapper;
+
+ @Resource
+ private UnionIntegralRuleRecordMapper unionIntegralRuleRecordMapper;
+
+ @Resource
+ private UnionIntegralSummarizeMapper unionIntegralSummarizeMapper;
+
+ @Resource
+ private UnionOutdoorSiteMapper unionOutdoorSiteMapper;
+
+ @Resource
+ private UnionIntegralRecordMapper unionIntegralRecordMapper;
/**
* 总工会户外劳登录
@@ -64,6 +91,85 @@
}
/**
+ * 总工会户外劳登录(h5)
+ *
+ * @param phone
+ * @return 总工会户外劳共用户
+ */
+ @Override
+ public R<Map<String, Object>> loginByUnion(String phone){
+ Map<String, Object> mapUser = new HashMap<>();
+ Users users = usersMapper.selectOne(new QueryWrapper<Users>()
+ .eq("phone", phone)
+ .eq("deleted", 0)
+ .eq("freezeFlag", 0)
+ .orderByDesc("updateTime")
+ .last("limit 1"));
+ if (users!=null){
+ UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("union_h5_user_id", users.getUsersID()));
+ if (unionUser!=null){
+ String token = tokenManager.getTokenByUserId(unionUser.getId().toString());
+// String token=null;
+ if (token == null) {
+ //生成一个token,保存用户登录状态
+ token = tokenManager.createToken(unionUser.getId().toString(), unionUser.getId().toString());
+ }
+ mapUser.put("token", token);
+ mapUser.put("unionUser",unionUser);
+ log.info("mapUser{}",mapUser);
+ return R.ok(mapUser);
+ }
+ else {
+ unionUser=new UnionUser();
+ unionUser.setPhone(users.getPhone());
+ unionUser.setDeleteFlag(false);
+ unionUser.setCreateAt(LocalDateTime.now());
+ unionUser.setUpdateAt(LocalDateTime.now());
+ unionUser.setStatus(1);
+ unionUser.setNickName(users.getUname());
+ unionUser.setUnionH5UserId(users.getUsersID());
+ int insert = baseMapper.insert(unionUser);
+ if (insert >0){
+ unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("union_h5_user_id", users.getUsersID()));
+ if (unionUser!=null){
+ String token = tokenManager.getTokenByUserId(unionUser.getId().toString());
+ if (token == null) {
+ //生成一个token,保存用户登录状态
+ token = tokenManager.createToken(unionUser.getId().toString(), unionUser.getId().toString());
+ }
+ mapUser.put("token", token);
+ mapUser.put("unionUser",unionUser);
+ log.info("mapUser{}",mapUser);
+ return R.ok(mapUser);
+ }
+
+ }
+
+ }
+ return R.fail("新增用户失败请查看是否在川共之家登录");
+ }else {
+ log.info("总工会数据库没有人物");
+ return R.fail("数据错误,请先在川共之家登录");
+ }
+
+ }
+
+ /**
+ * 使用id查找用户
+ *
+ * @param id
+ * @return 总工会户外劳共用户
+ */
+ @Override
+ public UnionUserDto selectById(Long id){
+ UnionUserDto unionUserDto=new UnionUserDto();
+ UnionUser unionUser = baseMapper.selectById(id);
+ BeanUtils.copyProperties(unionUser, unionUserDto);
+ return unionUserDto;
+ }
+
+
+ /**
* 总工会户外劳工站用户认证
*
* @param unionUserDto
@@ -72,7 +178,11 @@
@Override
public R authentication(UnionUserDto unionUserDto){
- UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionUserDto.getUserId()));
+ UnionUser unionUser=null;
+ if (unionUserDto.getIsApplets().equals(1))
+ unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionUserDto.getUserId()));
+ else
+ unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("id", unionUserDto.getId()));
if (unionUser != null){
log.info("查询到用户开始认证操作{}",unionUser);
//设备下发照片代码
@@ -110,4 +220,92 @@
}
}
+
+
+ /**
+ * 用户开门
+ *
+ * @return 总工会户外劳共用户
+ */
+ @Override
+ public R openDoor(UnionUserDto unionUserDto,String qRCode){
+ log.info("开始开门当前用户为{}",unionUserDto);
+ UnionAccess unionAccess = unionAccessMapper.selectOne(new QueryWrapper<UnionAccess>().eq("q_r_code", qRCode));
+ if (unionAccess==null){
+ return R.fail("无效的二维码");
+ }
+ try {
+ accessUtil.deviceOpen(unionAccess.getSn(), unionUserDto.getName(), "scan", "occupant");
+ } catch (Exception e) {
+ e.printStackTrace(); // 打印异常信息
+ log.info("开门失败原因{}",e);
+ return R.fail("开门失败请检查人脸照片是否你本人或者联系工作人员");
+ }
+ Integer userLastOpenDoorMinutesDiff = unionOpenDoorMapper.getUserLastOpenDoorMinutesDiff(unionUserDto.getId());
+ log.info("上次开门时间间隔时间{}分钟",userLastOpenDoorMinutesDiff);
+ QueryWrapper<UnionOpenDoor> queryWrapper = new QueryWrapper<>();
+ QueryWrapper<UnionOpenDoor> eq = queryWrapper.eq("user_id", unionUserDto.getId())
+ .eq("DATE(create_at)", LocalDate.now())
+ .eq("type", 1);
+ Integer count = unionOpenDoorMapper.selectCount(eq);
+ log.info("今日获得积分的开门次数为{}",count);
+ UnionIntegralRule unionIntegralRule =
+ unionIntegralRuleMapper.selectOne(new QueryWrapper<UnionIntegralRule>().eq("id", 1));
+ log.info("当前规则{}",unionIntegralRule);
+ if (unionIntegralRule.getDayNumber()>count && unionIntegralRule.getTimeNumber() <userLastOpenDoorMinutesDiff ){
+ log.info("此次开门获得积分");
+ UnionOpenDoor unionOpenDoor=new UnionOpenDoor();
+ unionOpenDoor.setSiteId(unionAccess.getSiteId());
+ unionOpenDoor.setUserId(unionUserDto.getId());
+ unionOpenDoor.setType(1);
+ unionOpenDoor.setCreateAt(LocalDateTime.now());
+ unionOpenDoorMapper.insert(unionOpenDoor);
+ UnionIntegralRuleRecord unionIntegralRuleRecord = unionIntegralRuleRecordMapper.selectOne(new QueryWrapper<UnionIntegralRuleRecord>()
+ .eq("rule_id", unionIntegralRule.getId())
+ .eq("count", count + 1));
+ log.info("此次开门获得积分{}",unionIntegralRuleRecord.getIntegralNumber());
+ UnionOutdoorSite unionOutdoorSite = unionOutdoorSiteMapper.selectById(unionAccess.getSiteId());
+ UnionIntegralSummarize unionIntegralSummarize = unionIntegralSummarizeMapper.selectOne(new QueryWrapper<UnionIntegralSummarize>()
+ .eq("community_id", unionOutdoorSite.getAreaCode()).eq("user_id", unionUserDto.getId()));
+ if (unionIntegralSummarize==null){
+ log.info("第一次开门在此区域没有积分表新增一个");
+ unionIntegralSummarize=new UnionIntegralSummarize();
+ unionIntegralSummarize.setUserId(unionUserDto.getId().toString());
+ unionIntegralSummarize.setCommunityId(unionOutdoorSite.getAreaCode());
+ unionIntegralSummarize.setCreateTime(new Date());
+ unionIntegralSummarize.setUpdateTime(new Date());
+ unionIntegralSummarize.setAllIntegral(unionIntegralRuleRecord.getIntegralNumber().toString());
+ unionIntegralSummarizeMapper.insert(unionIntegralSummarize);
+ }else {
+ log.info("用户积分修改前{}",unionIntegralSummarize);
+ unionIntegralSummarize.setUpdateTime(new Date());
+ unionIntegralSummarize.setAllIntegral(String.valueOf((Integer.parseInt(unionIntegralSummarize.getAllIntegral())
+ +unionIntegralRuleRecord.getIntegralNumber())));
+ log.info("用户积分修改后{}",unionIntegralSummarize);
+ unionIntegralSummarizeMapper.updateById(unionIntegralSummarize);
+ }
+ log.info("新增积分记录");
+ UnionIntegralRecord unionIntegralRecord=new UnionIntegralRecord();
+ unionIntegralRecord.setIntegralType("1");
+ unionIntegralRecord.setIntegral(unionIntegralRuleRecord.getIntegralNumber().toString());
+ unionIntegralRecord.setUserId(unionUserDto.getId().toString());
+ unionIntegralRecord.setCreateTime(new Date());
+ unionIntegralRecord.setUpdateTime(new Date());
+ unionIntegralRecord.setCommunityId(unionOutdoorSite.getAreaCode());
+ unionIntegralRecord.setIntegralId(unionIntegralSummarize.getId());
+ unionIntegralRecord.setType("1");
+ unionIntegralRecordMapper.insert(unionIntegralRecord);
+ return R.ok("开门成功");
+ }
+ else {
+ log.info("此次开门不获得积分");
+ UnionOpenDoor unionOpenDoor=new UnionOpenDoor();
+ unionOpenDoor.setSiteId(unionAccess.getSiteId());
+ unionOpenDoor.setUserId(unionUserDto.getId());
+ unionOpenDoor.setType(2);
+ unionOpenDoor.setCreateAt(LocalDateTime.now());
+ unionOpenDoorMapper.insert(unionOpenDoor);
+ return R.ok("开门成功");
+ }
+ }
}
--
Gitblit v1.7.1