123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- package com.bofeng.service;
- import com.baomidou.mybatisplus.toolkit.IdWorker;
- import com.bofeng.dao.*;
- import com.bofeng.entity.*;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.List;
- @Service
- @Transactional(readOnly = true)
- public class WxUserOpenService {
- @Autowired
- private HomeService homeService;
- @Autowired
- private UserRoleMapper userRoleMapper;
- @Autowired
- private UptownHouseMapper uptownHouseMapper;
- @Autowired
- private UptownHomeMapper uptownHomeMapper;
- @Autowired
- private OwnerMapper ownerMapper;
- @Autowired
- private OwnerLinkmanMapper ownerLinkmanMapper;
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public Long createRole(Long isFamily, Long isYWH) throws Exception {
- if (isFamily == 0L && isYWH == 0L) {
- throw new Exception("请至少选择一个角色");
- }
- UserOpen userOpen = homeService.getUserOpen();
- if (userOpen == null) {
- throw new Exception("微信登录失败");
- }
- //判断该用户是否已经创建了角色
- List<UserRole> list = new ArrayList<>();
- if (userOpen.getUserId() > 0L) {
- list = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
- }
- if (list.size() > 0) {
- throw new Exception("角色已存在");
- }
- UserRole userRole = new UserRole();
- userRole.setUrId(IdWorker.getId());
- userRole.setUserId(userOpen.getUserId());
- userRole.setUserCreate(userOpen.getUserId());
- userRole.setUserUpdate(userOpen.getUserId());
- //根据页面勾选情况创建角色
- if (isFamily > 0L) {
- userRole.setRoleId(1); //家庭用户
- userRoleMapper.insert(userRole);
- }
- if (isYWH > 0L) {
- userRole.setRoleId(2); //业委会成员
- userRoleMapper.insert(userRole);
- }
- return userRole.getUserId();
- }
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public Long createFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone) throws Exception {
- Long sysUserId = 0L;
- if (userId == null || userId == 0L) {
- UserOpen userOpen = homeService.getUserOpen();
- if (userOpen == null) {
- throw new Exception("微信登录失败");
- }
- sysUserId = userOpen.getUserId();
- } else {
- sysUserId = userId;
- }
- //判断该用户是否已经创建了家庭用户角色
- List<UserRole> lstUserRole = new ArrayList<>();
- if (sysUserId > 0L) {
- lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
- }
- if (lstUserRole.size() > 0) {
- for (UserRole item : lstUserRole) {
- if (item.getRoleId() == 1L) {
- throw new Exception("家庭用户角色已存在"); //todo 暂时只允许一个用户角色绑定一个家庭门牌号
- }
- }
- }
- //创建家庭用户角色
- UserRole userRole = new UserRole();
- userRole.setUrId(IdWorker.getId());
- userRole.setUserId(sysUserId);
- userRole.setUserCreate(sysUserId);
- userRole.setUserUpdate(sysUserId);
- userRole.setRoleId(1); //家庭用户
- //判断该门牌号是否被创建(该楼栋单元下)
- List<UptownHouse> lstUptownHouse = uptownHouseMapper.getUptownHouseBy(unitId, doorPlate);
- if (lstUptownHouse.size() > 0) {
- throw new Exception("当前单元下已有该门牌信息!");
- }
- UptownHouse uptownHouse = new UptownHouse();
- uptownHouse.setHouseId(IdWorker.getId());
- uptownHouse.setUnitId(unitId);
- uptownHouse.setDoorplate(doorPlate);
- uptownHouse.setStatus(1);
- if (uptownHouseMapper.insert(uptownHouse) != 1) {
- throw new Exception("创建门牌失败!");
- }
- userRole.setPropertyId(uptownHouse.getHouseId()); //绑定家庭用户角色的门牌id
- //判断该门牌是否存在家庭信息
- List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId());
- if (lstUptownHome.size() > 0) {
- throw new Exception("该门牌已有人入住!");
- }
- UptownHome uptownHome = new UptownHome();
- uptownHome.setHouseId(uptownHouse.getHouseId());
- uptownHome.setLinkman(linkMan);
- uptownHome.setPhone(phone);
- uptownHome.setYoung(0);
- uptownHome.setMiddle(0);
- uptownHome.setOld(helpNum);
- uptownHome.setRemark("");
- uptownHome.setStatus(1);
- if (uptownHomeMapper.insert(uptownHome) != 1) {
- throw new Exception("创建家庭信息失败!");
- }
- userRoleMapper.insert(userRole);
- return 1L;
- }
- public Long createYWH(List<OwnerLinkman> lstOwnerMan, Long uptownId) throws Exception {
- UserOpen userOpen = homeService.getUserOpen();
- if (userOpen == null) {
- throw new Exception("微信登录失败");
- }
- //判断该用户是否已经创建了业委会角色
- List<UserRole> lstUserRole = new ArrayList<>();
- if (userOpen.getUserId() > 0L) {
- lstUserRole = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
- }
- if (lstUserRole.size() > 0) {
- //判断该用户是否创建了业委会的角色
- for (UserRole item : lstUserRole) {
- if (item.getRoleId() == 2L) {
- throw new Exception("业委会用户角色已存在"); //todo 暂时只允许一个用户角色绑定一个业委会
- }
- }
- }
- //创建业委会用户角色
- UserRole userRole = new UserRole();
- userRole.setUrId(IdWorker.getId());
- userRole.setUserId(userOpen.getUserId());
- userRole.setUserCreate(userOpen.getUserId());
- userRole.setUserUpdate(userOpen.getUserId());
- userRole.setRoleId(2); //业委会
- //判断业委会是否已经建立
- List<Owner> lstOwner = new ArrayList<>();
- Owner owner;
- if (uptownId > 0L) {
- lstOwner = ownerMapper.getOwnerByUptownId(uptownId);
- }
- if (lstOwner.size() > 0) {
- //判断该用户是否创建了业委会
- for (Owner item : lstOwner) {
- if (item.getUptownId() == uptownId) {
- throw new Exception("该小区已建立业委会");
- }
- }
- }
- owner = new Owner();
- owner.setOwnerId(IdWorker.getId());
- owner.setUptownId(uptownId);
- owner.setUserCreate(userOpen.getUserId());
- owner.setUserUpdate(userOpen.getUserId());
- userRole.setPropertyId(owner.getOwnerId());
- userRoleMapper.insert(userRole);
- //建立业委会成员
- if (lstOwnerMan == null) {
- throw new Exception("请新增业委会成员");
- }
- int masterNum = 0;
- for (OwnerLinkman item : lstOwnerMan) {
- if (item.getType() == 1L) {
- masterNum++;
- }
- }
- if (masterNum != 1L) {
- throw new Exception("业委会负责人只允许有一个");
- }
- for (OwnerLinkman item : lstOwnerMan) {
- if (item.getType() == 1L) {
- owner.setLinkman(item.getLinkman());
- owner.setPhone(item.getPhone());
- }
- item.setOwnerId(owner.getOwnerId());
- ownerLinkmanMapper.insert(item);
- }
- ownerMapper.insert(owner);
- return 1L;
- }
- }
|