| | |
| | | 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; |
| | |
| | | |
| | | @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; |
| | | |
| | | /** |
| | | * 总工会户外劳登录 |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 用户开门 |
| | | * |
| | | * @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("开门成功"); |
| | | } |
| | | } |
| | | } |