|
@@ -1,23 +1,28 @@
|
|
package com.care.keeper.service;
|
|
package com.care.keeper.service;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.crypto.SecureUtil;
|
|
import cn.hutool.crypto.SecureUtil;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.care.common.cache.RedisKeyConstant;
|
|
import com.care.common.cache.RedisKeyConstant;
|
|
import com.care.common.cache.RedisUtil;
|
|
import com.care.common.cache.RedisUtil;
|
|
-import com.care.common.entity.CareSysUser;
|
|
|
|
-import com.care.common.service.CareSysUserService;
|
|
|
|
|
|
+import com.care.common.entity.*;
|
|
|
|
+import com.care.common.service.*;
|
|
import com.care.common.util.Result;
|
|
import com.care.common.util.Result;
|
|
import com.care.keeper.vo.KeeperInfoVO;
|
|
import com.care.keeper.vo.KeeperInfoVO;
|
|
import com.care.keeper.vo.KeeperInitParams;
|
|
import com.care.keeper.vo.KeeperInitParams;
|
|
|
|
+import com.care.keeper.vo.OlderVO;
|
|
import com.google.common.collect.Maps;
|
|
import com.google.common.collect.Maps;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -26,43 +31,51 @@ public class AbstractKeeperPassportService {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private RedisUtil redisUtil;
|
|
private RedisUtil redisUtil;
|
|
-
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private CareStationService careStationService;
|
|
|
|
+ @Resource
|
|
|
|
+ private CareEventOrderChambService careEventOrderChambService;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private CareSysUserService careSysUserService;
|
|
private CareSysUserService careSysUserService;
|
|
-
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private CareDeviceService careDeviceService;
|
|
|
|
+ @Resource
|
|
|
|
+ private CareHouseOlderRelService careHouseOlderRelService;
|
|
|
|
+ @Resource
|
|
|
|
+ private CareOlderService careOlderService;
|
|
public Result<Object> cache(KeeperInitParams params) {
|
|
public Result<Object> cache(KeeperInitParams params) {
|
|
String token = IdUtil.fastUUID();
|
|
String token = IdUtil.fastUUID();
|
|
// cache member
|
|
// cache member
|
|
- CareSysUser member = null;
|
|
|
|
|
|
+ CareSysUser sysUser = null;
|
|
|
|
|
|
if ("wx".equalsIgnoreCase(params.getLoginType())) {
|
|
if ("wx".equalsIgnoreCase(params.getLoginType())) {
|
|
- member = careSysUserService.detailByOpenid4Keeper(params.getOpenid());
|
|
|
|
- if (member == null) {
|
|
|
|
- member = careSysUserService.detailByPhone4Keeper(params.getPhone());
|
|
|
|
- if (member == null) {
|
|
|
|
|
|
+ sysUser = careSysUserService.detailByOpenid4Keeper(params.getOpenid());
|
|
|
|
+ if (sysUser == null) {
|
|
|
|
+ sysUser = careSysUserService.detailByPhone4Keeper(params.getPhone());
|
|
|
|
+ if (sysUser == null) {
|
|
return Result.error("账号不存在!");
|
|
return Result.error("账号不存在!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if ("pwd".equalsIgnoreCase(params.getLoginType())) {
|
|
} else if ("pwd".equalsIgnoreCase(params.getLoginType())) {
|
|
- member = careSysUserService.detailByPhone4Keeper(params.getPhone());
|
|
|
|
- if (member == null) {
|
|
|
|
|
|
+ sysUser = careSysUserService.detailByPhone4Keeper(params.getPhone());
|
|
|
|
+ if (sysUser == null) {
|
|
return Result.error("账号密码不匹配");
|
|
return Result.error("账号密码不匹配");
|
|
}
|
|
}
|
|
- if (!StrUtil.equalsIgnoreCase(SecureUtil.md5(params.getPassword()), member.getPassword())) {
|
|
|
|
|
|
+ if (!StrUtil.equalsIgnoreCase(SecureUtil.md5(params.getPassword()), sysUser.getPassword())) {
|
|
return Result.error("账号密码不匹配");
|
|
return Result.error("账号密码不匹配");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (StringUtils.isBlank(member.getOpenId()) && StringUtils.isNotBlank(params.getOpenid())) {
|
|
|
|
|
|
+ if (StringUtils.isBlank(sysUser.getOpenId()) && StringUtils.isNotBlank(params.getOpenid())) {
|
|
UpdateWrapper<CareSysUser> careMemberInfoUpdateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<CareSysUser> careMemberInfoUpdateWrapper = new UpdateWrapper<>();
|
|
- careMemberInfoUpdateWrapper.lambda().eq(CareSysUser::getId,member.getId()).set(CareSysUser::getOpenId,params.getOpenid());
|
|
|
|
|
|
+ careMemberInfoUpdateWrapper.lambda().eq(CareSysUser::getId,sysUser.getId()).set(CareSysUser::getOpenId,params.getOpenid());
|
|
boolean bindFlag = this.careSysUserService.update(careMemberInfoUpdateWrapper);
|
|
boolean bindFlag = this.careSysUserService.update(careMemberInfoUpdateWrapper);
|
|
if (bindFlag) {
|
|
if (bindFlag) {
|
|
- member.setOpenId(params.getOpenid());
|
|
|
|
|
|
+ sysUser.setOpenId(params.getOpenid());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
KeeperInfoVO keeperInfoVO = new KeeperInfoVO();
|
|
KeeperInfoVO keeperInfoVO = new KeeperInfoVO();
|
|
- BeanUtil.copyProperties(member,keeperInfoVO);
|
|
|
|
|
|
+ BeanUtil.copyProperties(sysUser,keeperInfoVO);
|
|
redisUtil.hset(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token, keeperInfoVO, RedisKeyConstant.PINANSHOUHU_LOGIN_INFO_TIME);
|
|
redisUtil.hset(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token, keeperInfoVO, RedisKeyConstant.PINANSHOUHU_LOGIN_INFO_TIME);
|
|
|
|
|
|
Map<String,Object> data = Maps.newHashMap();
|
|
Map<String,Object> data = Maps.newHashMap();
|
|
@@ -78,6 +91,36 @@ public class AbstractKeeperPassportService {
|
|
if (oldMemberInfoVo != null && member != null) {
|
|
if (oldMemberInfoVo != null && member != null) {
|
|
KeeperInfoVO memberInfoVO = new KeeperInfoVO();
|
|
KeeperInfoVO memberInfoVO = new KeeperInfoVO();
|
|
BeanUtil.copyProperties(member,memberInfoVO);
|
|
BeanUtil.copyProperties(member,memberInfoVO);
|
|
|
|
+ if(memberInfoVO.getStationId() != null) {
|
|
|
|
+ memberInfoVO.setStationName(careStationService.getById(memberInfoVO.getStationId()).getName());
|
|
|
|
+ }
|
|
|
|
+ //服务次数
|
|
|
|
+ QueryWrapper<CareEventOrderChamb> queryWrapper2 = new QueryWrapper<>();
|
|
|
|
+ queryWrapper2.lambda().eq(CareEventOrderChamb::getChambId,memberInfoVO.getId()).ne(CareEventOrderChamb::getStatus,"3");
|
|
|
|
+ memberInfoVO.setServeCount(this.careEventOrderChambService.count(queryWrapper2));
|
|
|
|
+ //老人列表
|
|
|
|
+ List<OlderVO> olderVOList = new ArrayList<>();
|
|
|
|
+ QueryWrapper<CareDevice> queryWrapper0 = new QueryWrapper<>();
|
|
|
|
+ queryWrapper0.lambda().eq(CareDevice::getChambId,memberInfoVO.getId());
|
|
|
|
+ List<CareDevice> listDev = this.careDeviceService.list(queryWrapper0);
|
|
|
|
+ if(CollUtil.isNotEmpty(listDev)){
|
|
|
|
+ listDev.forEach(item -> {
|
|
|
|
+ QueryWrapper<CareHouseOlderRel> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(CareHouseOlderRel::getHouseId,item.getHouseId());
|
|
|
|
+ List<CareHouseOlderRel> listRel = careHouseOlderRelService.list(queryWrapper);
|
|
|
|
+ if(CollUtil.isNotEmpty(listRel)) {
|
|
|
|
+ listRel.forEach(i->{
|
|
|
|
+ CareOlder careOlder = this.careOlderService.getById(i.getOlderId());
|
|
|
|
+ OlderVO olderVO = new OlderVO();
|
|
|
|
+ BeanUtil.copyProperties(careOlder,olderVO);
|
|
|
|
+ olderVOList.add(olderVO);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ if(CollUtil.isNotEmpty(olderVOList)){
|
|
|
|
+ memberInfoVO.setOlderVOList(olderVOList);
|
|
|
|
+ }
|
|
redisUtil.hset(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token, memberInfoVO, RedisKeyConstant.PINANSHOUHU_LOGIN_INFO_TIME);
|
|
redisUtil.hset(RedisKeyConstant.PINANSHOUHU_LOGIN_INFO, token, memberInfoVO, RedisKeyConstant.PINANSHOUHU_LOGIN_INFO_TIME);
|
|
return memberInfoVO;
|
|
return memberInfoVO;
|
|
}
|
|
}
|