Browse Source

注册,获取角色,完善门牌、家庭信息

hudingbo 5 years ago
parent
commit
6613733f7d

+ 101 - 0
whepi-web/src/main/java/com/bofeng/controller/WxUserOpenController.java

@@ -0,0 +1,101 @@
+package com.bofeng.controller;
+
+import com.bofeng.dao.UptownHomeMapper;
+import com.bofeng.dao.UptownHouseMapper;
+import com.bofeng.dao.UserRoleMapper;
+import com.bofeng.entity.UserOpen;
+import com.bofeng.entity.UserRole;
+import com.bofeng.service.HomeService;
+import com.bofeng.service.WxUserOpenService;
+import com.yvan.Model;
+import com.yvan.platform.StringUtils;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+public class WxUserOpenController {
+
+    @Autowired
+    private HomeService homeService;
+    @Autowired
+    private UserRoleMapper userRoleMapper;
+    @Autowired
+    private UptownHouseMapper uptownHouseMapper;
+    @Autowired
+    private UptownHomeMapper uptownHomeMapper;
+    @Autowired
+    private WxUserOpenService wxUserOpenService;
+
+    @ApiOperation("用户注册页面点登录")
+    @GetMapping("/userOpen/login")
+    public Model<Long> login() {
+        UserOpen userOpen = homeService.getUserOpen();
+        if (userOpen == null) {
+            return Model.newFail("微信登录失败");
+        }
+        //成功返回用户Id
+        return Model.newSuccess(userOpen.getUserId());
+    }
+
+    @ApiOperation("身份录入之创建角色(家庭用户或业委会成员)")
+    @PostMapping("/userOpen/createRole")
+    public Model<Long> createRole(HttpServletRequest request) throws Exception {
+        Long isFamily = Long.parseLong(request.getParameter("isFamily"));
+        Long isYWH = Long.parseLong(request.getParameter("isYWH"));
+        if (isFamily == 0L && isYWH == 0L) {
+            return Model.newFail("请至少选择一个角色");
+        }
+        //成功返回用户Id
+        return Model.newSuccess(wxUserOpenService.createRole(isFamily, isYWH));
+    }
+
+    @ApiOperation("完善基础数据之获取创建的角色")
+    @GetMapping("/userOpen/queryUserRoles")
+    public Model<List<UserRole>> queryUserRoles() {
+        UserOpen userOpen = homeService.getUserOpen();
+        List<UserRole> list = new ArrayList<>();
+        if (userOpen.getUserId() > 0L) {
+            list = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
+        }
+        if (list.size() == 0) {
+            return Model.newFail("尚未创建任何角色");
+        }
+        //成功返回用户角色
+        return Model.newSuccess(list);
+    }
+
+    @ApiOperation("完善家庭及住宅信息")
+    @PostMapping("/userOpen/createFamily")
+    public Model<Long> createFamily(HttpServletRequest request) throws Exception {
+        Long unitId = Long.parseLong(request.getParameter("unitId"));
+        String doorPlate = request.getParameter("doorPlate");
+        String linkMan = request.getParameter("linkMan");
+        Integer helpNum = Integer.parseInt(request.getParameter("helpNum"));
+        String phone = request.getParameter("phone");
+        if (unitId == null || unitId == 0L) {
+            return Model.newFail("请选择所在单元");
+        }
+        if (StringUtils.isNullOrEmpty(doorPlate)) {
+            return Model.newFail("请填写门牌号");
+        }
+        if (StringUtils.isNullOrEmpty(linkMan)) {
+            return Model.newFail("请填写家庭联系人");
+        }
+        if (helpNum == null) {
+            helpNum = 0;
+        }
+        if (StringUtils.isNullOrEmpty(phone)) {
+            return Model.newFail("请填写家庭联系电话");
+        }
+        //成功返回用户Id
+        return Model.newSuccess(wxUserOpenService.createFamily(unitId, doorPlate, linkMan, helpNum, phone));
+    }
+
+}

+ 124 - 0
whepi-web/src/main/java/com/bofeng/service/WxUserOpenService.java

@@ -0,0 +1,124 @@
+package com.bofeng.service;
+
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.bofeng.dao.UptownHomeMapper;
+import com.bofeng.dao.UptownHouseMapper;
+import com.bofeng.dao.UserRoleMapper;
+import com.bofeng.entity.UptownHome;
+import com.bofeng.entity.UptownHouse;
+import com.bofeng.entity.UserOpen;
+import com.bofeng.entity.UserRole;
+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;
+
+    @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 unitId, String doorPlate, String linkMan, Integer helpNum, String phone) 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) {
+            throw new Exception("尚未创建任何角色");
+        }
+        //判断该用户是否创建了家庭用户的角色
+        Boolean isFamily = false;
+        for (UserRole item : lstUserRole) {
+            if (item.getRoleId() == 1L) {
+                isFamily = true;
+                continue;
+            }
+        }
+        if (!isFamily) {
+            throw new Exception("尚未创建家庭用户角色");
+        }
+        //判断该门牌号是否被创建(该楼栋单元下)
+        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("创建门牌失败!");
+        }
+        //判断该门牌是否存在家庭信息
+        List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId(), doorPlate);
+        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("创建家庭信息失败!");
+        }
+        return 1L;
+    }
+
+}

+ 19 - 0
yvan-core/src/main/java/com/yvan/platform/StringUtils.java

@@ -1,4 +1,23 @@
 package com.yvan.platform;
 package com.yvan.platform;
 
 
 public class StringUtils {
 public class StringUtils {
+    private static final String EMPTY = "";
+
+    /**
+     * 判断是否为null或空字符串。如果不为null,在判断是否为空字符串之前会调用trim()。
+     */
+    public static boolean isNullOrEmpty(String str) {
+        return str == null || str.trim().equals(EMPTY);
+    }
+
+    /**
+     * 判断是否为null或空字符串。如果不为null,在判断是否为空字符串之前会调用trim()。
+     */
+    public static boolean isNullOrEmpty(Object object) {
+
+        if (object == null) {
+            return true;
+        }
+        return isNullOrEmpty(object.toString());
+    }
 }
 }