From c6f8a03a3675efa99a833e16ad34ac0dd0fbc9b0 Mon Sep 17 00:00:00 2001 From: fengjin <1435304038@qq.com> Date: 星期三, 20 九月 2023 17:55:29 +0800 Subject: [PATCH] 1.扫码开门 2. 修改bug --- springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 110 insertions(+), 6 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 343f5e2..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 @@ -7,20 +7,18 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; 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.dao.UnionAccessMapper; -import com.panzhihua.service_equipment.dao.UnionUserMapper; -import com.panzhihua.service_equipment.dao.UsersMapper; -import com.panzhihua.service_equipment.model.dos.UnionAccess; -import com.panzhihua.service_equipment.model.dos.UnionUser; -import com.panzhihua.service_equipment.model.dos.Users; 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; @@ -40,6 +38,24 @@ @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; /** * 总工会户外劳登录 @@ -204,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