package com.ruoyi.service.impl; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.domain.*; import com.ruoyi.domain.ZHealthHabit; import com.ruoyi.domain.dto.ZHealthHabitDto; import com.ruoyi.domain.dto.ZHealthHabitDto; import com.ruoyi.domain.health.*; import com.ruoyi.mapper.ZHealthHabitMapper; import com.ruoyi.service.ZHealthHabitService; import com.ruoyi.service.ZInfoUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; /** *

* 健康表的生活情况 服务实现类 *

* * @author ojq * @since 2023-03-14 */ @Service public class ZHealthHabitServiceImpl extends ServiceImpl implements ZHealthHabitService { @Autowired ZInfoUserService zInfoUserService; @Override public AjaxResult selectData() { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZHealthHabit::getUid,userId); ZHealthHabit zHealthHabit = getOne(lqw); System.out.println("+++++++6676+++++++++++"); if(zHealthHabit==null) { //根据userId查询到infouser的uaid ZInfoUser zInfoUser = zInfoUserService.getInfoBysysId(userId); System.out.println("++++++++++++++++++"); //拿到所有的sysid List fms = zInfoUserService.findByUaidToFaid(zInfoUser.getUaid()).stream().map(ZInfoUser::getSysId).collect(Collectors.toList()); for(Long id:fms) { LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>(); if(!id.equals(userId)) { System.out.println("++++++++++++++++++"); System.out.println(id); lqw1.eq(ZHealthHabit::getUid, id); zHealthHabit = getOne(lqw1); break; } } System.out.println("sdfsdf9990000"); } //如果是第一次进来,之前没有这个用户的数据,抛异常让用户先插入数据 if(zHealthHabit == null){ throw new RuntimeException("第一次进来,请先填写好数据"); } //封装要返回的数据 ZHealthHabitDto returnData = new ZHealthHabitDto(); BeanUtils.copyProperties(zHealthHabit,returnData); // returnData.setName(zHealthHabit.getName()); // returnData.setSex(zHealthHabit.getSex()); // returnData.setEducationLevel(zHealthHabit.getEducationLevel()); // returnData.setWork(zHealthHabit.getWork()); // returnData.setPhone(zHealthHabit.getPhone()); // returnData.setEmail(zHealthHabit.getEmail()); // returnData.setMedicine(zHealthHabit.getMedicine()); // returnData.setBaseDisease(zHealthHabit.getBaseDisease()); //将json数组转换成对象 returnData.setSleepClass(JSON.parseObject(zHealthHabit.getSleep(), Sleep.class)); returnData.setStoolStatusClass(JSON.parseObject(zHealthHabit.getStoolStatus(), StoolStatus.class)); returnData.setUrineStatusClass(JSON.parseObject(zHealthHabit.getUrineStatus(), UrineStatus.class)); returnData.setEatingHabitsClass(JSON.parseObject(zHealthHabit.getEatType(), EatingHabits.class)); returnData.setLifeEventClass(JSON.parseObject(zHealthHabit.getLifeType(), LifeEvent.class)); return AjaxResult.success(returnData); } @Override public AjaxResult saveOrUpdateData(ZHealthHabitDto zHealthHabitDto) { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZHealthHabit::getUid,userId); ZHealthHabit getResult = getOne(lqw); ZHealthHabit zHealthHabit = new ZHealthHabit(); BeanUtils.copyProperties(zHealthHabitDto,zHealthHabit); zHealthHabit.setUid(userId); zHealthHabit.setSleep(JSON.toJSONString(zHealthHabitDto.getSleepClass())); zHealthHabit.setStoolStatus(JSON.toJSONString(zHealthHabitDto.getStoolStatusClass())); zHealthHabit.setUrineStatus(JSON.toJSONString(zHealthHabitDto.getUrineStatusClass())); zHealthHabit.setEatType(JSON.toJSONString(zHealthHabitDto.getEatingHabitsClass())); zHealthHabit.setLifeType(JSON.toJSONString(zHealthHabitDto.getLifeEventClass())); if(getResult == null){ //如果是第一次进来,那么是新增数据 save(zHealthHabit); }else { //如果不是第一次,那就是修改数据了 zHealthHabit.setId(getResult.getId()); updateById(zHealthHabit); } return AjaxResult.success(); } }