package com.panzhihua.service_community.service.impl; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.constants.UserConstants; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComPropertyVO; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.service_community.entity.ComActSocialOrg; import com.panzhihua.service_community.entity.ComProperty; import com.panzhihua.service_community.dao.ComPropertyDao; import com.panzhihua.service_community.service.ComPropertyService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import static java.util.Objects.isNull; import static java.util.Objects.nonNull; import static org.apache.commons.lang3.StringUtils.isNotBlank; /** * (ComProperty)表服务实现类 * * @author makejava * @since 2021-09-18 10:46:51 */ @Slf4j @Service public class ComPropertyServiceImpl extends ServiceImpl implements ComPropertyService { @Resource private ComPropertyDao comPropertyDao; @Resource private UserService userService; @Resource private StringRedisTemplate stringRedisTemplate; @Override public R pageList(CommonPage commonPage) { return R.ok(comPropertyDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage)); } @Override public R selectById(Long id) { return null; } @Override @Transactional(rollbackFor = Exception.class) public R insert(ComPropertyVO comPropertyVO) { if(comPropertyVO!=null){ ComProperty comProperty=new ComProperty(); BeanUtils.copyProperties(comPropertyVO,comProperty); if (isNotBlank(comPropertyVO.getAccount())) { AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); administratorsUserVO.setType(3); if (comPropertyVO.getCommunityId().equals(10172)){ administratorsUserVO.setType(20); } administratorsUserVO.setAccount(comPropertyVO.getAccount()); administratorsUserVO.setPassword(comPropertyVO.getPassword()); administratorsUserVO.setRoleId(comPropertyVO.getRoleId()); administratorsUserVO.setCommunityId(comPropertyVO.getCommunityId()); administratorsUserVO.setAreaId(comPropertyVO.getAreaId()); administratorsUserVO.setName(comPropertyVO.getContactName()); administratorsUserVO.setPhone(comPropertyVO.getPhone()); administratorsUserVO.setAppid(userService.detailUser(comPropertyVO.getCreateUserId()).getData().getAppId()); R r=userService.addUserBackstageProperty(administratorsUserVO); if(R.isOk(r)){ comProperty.setUserId(Long.parseLong(r.getData().toString())); comProperty.setCreateTime(DateUtil.date()); this.comPropertyDao.insert(comProperty); return R.ok(); } } else { comProperty.setCreateTime(DateUtil.date()); this.comPropertyDao.insert(comProperty); return R.ok(); } return R.fail("账号或手机号已存在"); } return R.fail(); } @Override public R update(ComPropertyVO comPropertyVO) { if(comPropertyVO!=null){ ComProperty comProperty=new ComProperty(); BeanUtils.copyProperties(comPropertyVO,comProperty); if(comPropertyVO.getRoleId()!=null){ ComProperty comPropertyBase=this.comPropertyDao.selectById(comPropertyVO.getId()); AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); administratorsUserVO.setUserId(comPropertyBase.getUserId()); administratorsUserVO.setAccount(comPropertyVO.getAccount()); administratorsUserVO.setPassword(comPropertyVO.getPassword()); administratorsUserVO.setRoleId(comPropertyVO.getRoleId()); administratorsUserVO.setLastLoginTime(DateUtil.date()); administratorsUserVO.setAreaId(comPropertyVO.getAreaId()); this.userService.putUserBackstage(administratorsUserVO); // 删除用户信息缓存 String userKey = UserConstants.LOGIN_USER_INFO + comPropertyBase.getUserId(); stringRedisTemplate.delete(userKey); } this.comPropertyDao.updateById(comProperty); return R.ok(); } return R.fail(); } @Override public R delete(Long id) { ComProperty comProperty=comPropertyDao.selectById(id); if(comProperty!=null){ if(comProperty.getUserId()!=null){ AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); administratorsUserVO.setUserId(comProperty.getUserId()); administratorsUserVO.setCommunityId(comProperty.getCommunityId()); userService.deleteUserBackstage(administratorsUserVO); } this.comPropertyDao.deleteById(id); return R.ok(); } return R.fail("用户账号错误"); } /** * 物业公司详情 * @param id * @return */ @Override public R detailProperty(Long id) { ComProperty comProperty = comPropertyDao.selectById(id); if (isNull(comProperty)) { return R.fail("资源不存在"); } ComPropertyVO comPropertyVO = new ComPropertyVO(); BeanUtils.copyProperties(comProperty, comPropertyVO); comPropertyVO.setPassword(null); return R.ok(comPropertyVO); } @Override public R noticeList(Integer page, Integer size, Long propertyId) { return R.ok(comPropertyDao.noticeList(new Page(page,size),propertyId)); } }