提交 81f1528a 作者: zhenjie

单位管理、认证、加盟修改

上级 d894e079
......@@ -29,5 +29,5 @@ public class LoginSuccessDTO implements Serializable {
private String nickName;
private CompanyInfoVO companyInfoVO;
private RoleInfoDTO roleInfo;
private Integer appUserAccountId;
}
......@@ -59,6 +59,9 @@ public class UserAccountQO implements Serializable {
@ApiModelProperty(value = "用户id集合")
private List<Integer> userIds;
@ApiModelProperty(value = "单位id", required = false)
private Integer companyInfoId;
@ApiModelProperty(value = "页码", required = true, example = "1")
@NotNull(message = "页码不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
......
......@@ -56,6 +56,8 @@ public class BackUserAccountVO implements Serializable {
private String tagName;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "禁用状态")
private Integer disable;
@ApiModelProperty(value = "单位信息")
private CompanyInfoVO companyInfoVO;
@ApiModelProperty(value = "角色信息")
......
package com.mmc.iuav.response;
import com.alibaba.fastjson2.JSONObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
......@@ -17,7 +18,7 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
//@ApiModel(value = "com.mmc.iuav.response.ResultBody", description = "请求响应体")
@ApiModel(description = "请求响应体")
public class ResultBody<T> implements Serializable {
private static final long serialVersionUID = -6913505187877217885L;
......
......@@ -25,6 +25,10 @@ public enum ResultEnum implements BaseErrorInfoInterface {
REMOVE_COMPANY_BINDING_ERROR("5009", "删除失败,该单位有绑定账号"),
REMOVE_COMPANY_TASK_ERROR("5010", "删除失败,该单位有绑定服务"),
COMPANY_NAME_EXIST_ERROR("5011", "单位名称已存在"),
NOT_BINDING_COMPANY_ERROR("5012", "未绑定企业,绑定公司再重试!"),
REMOVE_COMPANY_BINDING_APP_ERROR("5013", "删除失败,该单位有绑定小程序账号!"),
UNBIND_COMPANY_MEMBER_ERROR("5014", "不能解绑管理员"),
TRANFER_COMPANY_MEMBER_LEADER_ERROR("5015", "转交人不是管理员!"),
//微信相关
PASSWORD_INCONSISTENT("5026", "新密码与确认密码不一致,请确认一致"),
......
......@@ -72,11 +72,40 @@ public class CompanyController extends BaseController {
}
@ApiOperation(value = "绑定小程序用户")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CompanyInfoVO.class)})
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("bindingCompanyMember")
public ResultBody bindingCompanyMember(@RequestParam Integer userAccountId,
public ResultBody bindingCompanyMember(HttpServletRequest request,
@RequestParam Integer userAccountId,
@RequestParam Integer companyInfoId) {
return companyService.bindingCompanyMember(this.getUserLoginInfoFromRedis(request), userAccountId, companyInfoId);
}
@ApiOperation(value = "解绑小程序用户")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("unbindCompanyMember")
public ResultBody unbindCompanyMember(HttpServletRequest request,
@RequestParam Integer userAccountId,
@RequestParam Integer companyInfoId) {
return companyService.bindingCompanyMember(userAccountId, companyInfoId);
return companyService.unbindCompanyMember(this.getUserLoginInfoFromRedis(request), userAccountId, companyInfoId);
}
@ApiOperation(value = "转让管理员")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("transferLeader")
public ResultBody transferLeader(HttpServletRequest request,
@RequestParam Integer fromUserAccountId,
@RequestParam Integer toUserAccountId,
@RequestParam Integer companyInfoId) {
return companyService.transferLeader(this.getUserLoginInfoFromRedis(request), fromUserAccountId, toUserAccountId, companyInfoId);
}
@ApiOperation(value = "单位成员列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("listCompanyMembers")
public ResultBody listCompanyMembers(HttpServletRequest request,
@RequestParam Integer companyInfoId,
@RequestParam Integer pageNo,
@RequestParam Integer pageSize) {
return companyService.listCompanyMembers(companyInfoId, this.getUserLoginInfoFromRedis(request), pageNo, pageSize);
}
}
package com.mmc.iuav.user.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.service.AuthService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* @author: zj
......@@ -23,14 +24,15 @@ public class TempLoginController extends BaseController {
private AuthService authService;
@ApiOperation(value = "小程序确认登录")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("tempConfirmLogin")
public ResultBody tempConfirmLogin(HttpServletRequest request, @ApiParam(value = "临时登录code",example = "kj6d9wcxyp92jajugdnc") @RequestParam String randomLoginCode) {
return authService.tempConfirmLogin(this.getUserLoginInfoFromRedis(request), randomLoginCode);
public ResultBody tempConfirmLogin(HttpServletRequest request, @ApiParam(value = "0:web小程序,1:web后台管理", example = "0") @RequestParam(defaultValue = "0") Integer port,
@ApiParam(value = "临时登录code", example = "kj6d9wcxyp92jajugdnc") @RequestParam String randomLoginCode) {
return authService.tempConfirmLogin(this.getUserLoginInfoFromRedis(request), port, randomLoginCode);
}
@ApiOperation(value = "查询登录信息")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("getLoginInfo")
public ResultBody getLoginInfo(
@ApiParam(value = "临时登录code", example = "kj6d9wcxyp92jajugdnc") @RequestParam String randomLoginCode) {
......
......@@ -31,8 +31,8 @@ public class UserAccountController extends BaseController {
@ApiOperation(value = "客户列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UserAccountVO.class)})
@PostMapping("listAppUser")
public ResultBody<UserAccountVO> listAppUser(@Validated(value = {Page.class}) @RequestBody UserAccountQO userAccountQO) {
return userAccountService.listAppUser(userAccountQO);
public ResultBody<UserAccountVO> listAppUser(@Validated(value = {Page.class}) @RequestBody UserAccountQO userAccountQO, HttpServletRequest request) {
return userAccountService.listAppUser(userAccountQO, this.getUserLoginInfoFromRedis(request));
}
@ApiOperation(value = "获取用户信息")
......@@ -135,4 +135,11 @@ public class UserAccountController extends BaseController {
return userAccountService.topRcd(topNum);
}
@ApiOperation(value = "手机号查询用户信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("getUserAccountByPhoneNum")
public ResultBody getUserAccountByPhoneNum(@RequestParam String phoneNum) {
return userAccountService.getUserAccountByPhoneNum(phoneNum);
}
}
......@@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Mapper;
public interface CompanyAuthDao {
/**
* 通过用户id获取企业认证信息
*
* @param userAccountId
* @return
*/
......@@ -18,7 +19,10 @@ public interface CompanyAuthDao {
/**
* 添加企业认证信息
*
* @param companyAuthDO
*/
void addCompanyAuth(CompanyAuthDO companyAuthDO);
}
......@@ -3,6 +3,7 @@ package com.mmc.iuav.user.dao;
import com.mmc.iuav.user.entity.CompanyBackUserDO;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.entity.CompanyMemberDO;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -137,4 +138,57 @@ public interface CompanyDao {
* @return
*/
CompanyInfoDO getAppCompanyInfoUId(Integer userAccountId);
/**
* 获取公司绑定的后台用户id
*
* @param id
* @return
*/
CompanyBackUserDO getCompanyBackUserByCompanyId(Integer id);
/**
* 获取绑定关系
*
* @param userAccountId
* @param companyInfoId
* @return
*/
CompanyMemberDO getCompanyMember(Integer userAccountId, Integer companyInfoId);
/**
* 解绑单位成员
*
* @param userAccountId
* @param companyInfoId
*/
void unbindCompanyMember(Integer userAccountId, Integer companyInfoId);
/**
* 修改单位管理员状态
*
* @param fromUserAccountId
* @param i
* @param companyInfoId
*/
void updateCompanyMember(Integer fromUserAccountId, Integer i, Integer companyInfoId);
/**
* 公司绑定成员个数
*
* @param id
* @return
*/
int countCompanyMembers(Integer id);
/**
* 单位成员列表-分页
*
* @param id
* @param pageNo
* @param pageSize
* @return
*/
List<UserAccountDO> listCompanyMembersPage(Integer id, Integer pageNo, Integer pageSize);
}
......@@ -157,4 +157,12 @@ public interface UserServiceDao {
* @return
*/
List<UserAccountDO> getInviteCount(@Param("uIds") List<Integer> uIds);
/**
* 根据手机号查询用户信息
*
* @param phoneNum
* @return
*/
UserAccountDO getUserAccountByPhoneNum(String phoneNum);
}
......@@ -52,7 +52,7 @@ public class BackUserAccountDO implements Serializable {
public BackUserAccountVO buildBackUserAccountVO() {
return BackUserAccountVO.builder().id(this.id).uid(this.id).accountNo(this.accountNo).phoneNum(this.phoneNum)
.userName(this.userName).userSex(this.userSex).email(this.email).accountStatus(this.accountStatus)
.remark(this.remark).address(this.address).createTime(this.createTime)
.remark(this.remark).address(this.address).createTime(this.createTime).disable(this.disable)
.roleInfoDTO(this.roleInfoDO == null ? null : this.roleInfoDO.buildRoleInfoDTO()).build();
}
}
......@@ -87,7 +87,7 @@ public class UserAccountDO implements Serializable {
public UserAccountVO buildUserAccountVO() {
return UserAccountVO.builder().id(this.id).uid(this.id + "").phoneNum(this.phoneNum).userName(this.userName).nickName(this.nickName).userImg(this.userImg)
.userSex(this.userSex).email(this.email).source(this.source).accountStatus(this.accountStatus).remark(this.remark).portType(this.portType).createTime(this.createTime)
.companyAuthStatus(this.companyAuthStatus == null || this.companyAuthStatus != 1 ? 0 : 1).companyName(this.companyName)
.companyAuthStatus(this.companyName == null ? 0 : 1).companyName(this.companyName)
.inviteCount(this.inviteCount)
.cooperationTagVOS(CollectionUtils.isEmpty(this.cooperationTagDOS) ? null : this.cooperationTagDOS.stream().map(CooperationTagDO::buildCooperationTagVO).collect(Collectors.toList()))
.userRcdVO(this.userRcdDO == null ? null : this.userRcdDO.buildUserRcdVO())
......@@ -97,7 +97,7 @@ public class UserAccountDO implements Serializable {
public UserAccountSimpleDTO buildUserAccountSimpleDTO() {
return UserAccountSimpleDTO.builder().id(this.id).uid(this.id + "").phoneNum(this.phoneNum).userName(this.userName).nickName(this.nickName)
.userImg(this.userImg).openid(this.openId).userSex(this.userSex).email(this.email).source(this.source).accountStatus(this.accountStatus).portType(this.portType)
.companyAuthStatus(this.companyAuthStatus == null || this.companyAuthStatus != 1 ? 0 : 1).companyName(this.companyName)
.companyAuthStatus(this.companyName == null ? 0 : 1).companyName(this.companyName)
.build();
}
......
......@@ -12,6 +12,7 @@ import com.mmc.iuav.user.model.vo.WxLoginVO;
public interface AuthService {
/**
* 小程序用户登录接口
*
* @param wxLoginVO
* @return
*/
......@@ -19,6 +20,7 @@ public interface AuthService {
/**
* 后台用户登录
*
* @param param
* @return
*/
......@@ -26,6 +28,7 @@ public interface AuthService {
/**
* 小程序用户登录
*
* @param unionId
* @return
*/
......@@ -33,14 +36,17 @@ public interface AuthService {
/**
* 小程序确认登录
*
* @param loginSuccessDTO
* @param port
* @param randomLoginCode
* @return
*/
ResultBody tempConfirmLogin(LoginSuccessDTO loginSuccessDTO, String randomLoginCode);
ResultBody tempConfirmLogin(LoginSuccessDTO loginSuccessDTO, Integer port, String randomLoginCode);
/**
* 获取用登录信息
*
* @param randomLoginCode
* @return
*/
......
......@@ -81,4 +81,12 @@ public interface BackUserAccountService {
* @return
*/
BackUserAccountDO getUserLoginInfo(String accountNo, String passWord);
/**
* 获取后台用户信息
*
* @param backUserAccountId
* @return
*/
BackUserAccountVO getBackUserAccountById(Integer backUserAccountId);
}
......@@ -91,9 +91,58 @@ public interface CompanyService {
/**
* 绑定小程序用户
*
* @param userLoginInfoFromRedis
* @param userAccountId
* @param companyInfoId
* @return
*/
ResultBody bindingCompanyMember(Integer userAccountId, Integer companyInfoId);
ResultBody bindingCompanyMember(LoginSuccessDTO userLoginInfoFromRedis, Integer userAccountId, Integer companyInfoId);
/**
* 获取小程序用户绑定企业信息
*
* @param userAccountId
* @return
*/
CompanyInfoVO getAppCompanyInfoUId(Integer userAccountId);
/**
* 获取公司绑定后台用户
*
* @param id
* @return
*/
CompanyBackUserDO getCompanyBackUserByCompanyId(Integer id);
/**
* 解绑成员
*
* @param userLoginInfoFromRedis
* @param userAccountId
* @param companyInfoId
* @return
*/
ResultBody unbindCompanyMember(LoginSuccessDTO userLoginInfoFromRedis, Integer userAccountId, Integer companyInfoId);
/**
* 转交管理员
*
* @param userLoginInfoFromRedis
* @param fromUserAccountId
* @param toUserAccountId
* @param companyInfoId
* @return
*/
ResultBody transferLeader(LoginSuccessDTO userLoginInfoFromRedis, Integer fromUserAccountId, Integer toUserAccountId, Integer companyInfoId);
/**
* 成员列表
*
* @param companyInfoId
* @param userLoginInfoFromRedis
* @param pageNo
* @param pageSize
* @return
*/
ResultBody listCompanyMembers(Integer companyInfoId, LoginSuccessDTO userLoginInfoFromRedis, Integer pageNo, Integer pageSize);
}
......@@ -2,6 +2,7 @@ package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.qo.UserAccountQO;
import com.mmc.iuav.user.model.qo.UserRcdQO;
......@@ -119,7 +120,7 @@ public interface UserAccountService {
* @param userAccountQO
* @return
*/
ResultBody listAppUser(UserAccountQO userAccountQO);
ResultBody listAppUser(UserAccountQO userAccountQO, LoginSuccessDTO loginSuccessDTO);
/**
* 删除小程序用户
......@@ -152,4 +153,12 @@ public interface UserAccountService {
* @return
*/
ResultBody topRcd(Integer topNum);
/**
* 通过手机号查询用户信息
*
* @param phoneNum
* @return
*/
ResultBody getUserAccountByPhoneNum(String phoneNum);
}
......@@ -11,17 +11,11 @@ import com.mmc.iuav.user.client.PayClient;
import com.mmc.iuav.user.constant.WxConstant;
import com.mmc.iuav.user.dao.CompanyAuthDao;
import com.mmc.iuav.user.dao.RoleDao;
import com.mmc.iuav.user.entity.BackUserAccountDO;
import com.mmc.iuav.user.entity.CompanyAuthDO;
import com.mmc.iuav.user.entity.RoleInfoDO;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.*;
import com.mmc.iuav.user.enums.UserAccountStatus;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.LoginUserQO;
import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.model.vo.WxLoginVO;
import com.mmc.iuav.user.model.vo.*;
import com.mmc.iuav.user.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
......@@ -105,16 +99,13 @@ public class AuthServiceImpl implements AuthService {
payClient.createWallet(userAccountDO.getId());
} else {
CompanyAuthDO companyAuthDO = companyAuthDao.getCompanyAuth(userAccountVO.getId());
if (companyAuthDO != null) {
companyAuthStatus = companyAuthDO.getAuthStatus();
}
companyAuthStatus = companyAuthDO == null ? 0 : 1;
}
Map<String, Object> map = new HashMap<String, Object>();
map.put(JwtConstant.USER_ACCOUNT_ID, userAccountVO.getId());
//map.put(JwtConstant.ROLE_ID, 0);
map.put(JwtConstant.TOKEN_TYPE, JwtConstant.IUAV_TOKEN);
String token = JwtUtil.createJwt(map);
LoginSuccessDTO loginSuccessDTO = LoginSuccessDTO.builder().token(token).userAccountId(userAccountVO.getId()).uid(userAccountVO.getId() + "")
.userName(userAccountVO.getUserName()).nickName(userAccountVO.getNickName()).phoneNum(userAccountVO.getPhoneNum()).portType(100).build();
......@@ -171,10 +162,7 @@ public class AuthServiceImpl implements AuthService {
map.put(JwtConstant.USER_ACCOUNT_ID, userAccountVO.getId());
map.put(JwtConstant.TOKEN_TYPE, JwtConstant.IUAV_TOKEN);
CompanyAuthDO companyAuthDO = companyAuthDao.getCompanyAuth(userAccountVO.getId());
Integer companyAuthStatus = 0;
if (companyAuthDO != null) {
companyAuthStatus = companyAuthDO.getAuthStatus();
}
Integer companyAuthStatus = companyAuthDO == null ? 0 : 1;
String token = JwtUtil.createJwt(map);
LoginSuccessDTO loginSuccessDTO = LoginSuccessDTO.builder().token(token).userAccountId(userAccountVO.getId()).uid(userAccountVO.getId() + "")
.userName(userAccountVO.getUserName()).nickName(userAccountVO.getNickName()).phoneNum(userAccountVO.getPhoneNum()).portType(100).build();
......@@ -189,7 +177,39 @@ public class AuthServiceImpl implements AuthService {
}
@Override
public ResultBody tempConfirmLogin(LoginSuccessDTO loginSuccessDTO, String randomLoginCode) {
public ResultBody tempConfirmLogin(LoginSuccessDTO loginSuccessDTO, Integer port, String randomLoginCode) {
if (port.equals(1)) {
// 返回所属公司后台账号token
CompanyInfoVO companyInfoVO = companyService.getAppCompanyInfoUId(loginSuccessDTO.getUserAccountId());
if (companyInfoVO == null) {
return ResultBody.error(ResultEnum.NOT_BINDING_COMPANY_ERROR);
}
// 查询所属单位
CompanyBackUserDO companyBackUserDO = companyService.getCompanyBackUserByCompanyId(companyInfoVO.getId());
if (companyBackUserDO == null) {
return ResultBody.error(ResultEnum.NOT_BINDING_COMPANY_ERROR);
}
BackUserAccountVO backUserAccountVO = backUserAccountService.getBackUserAccountById(companyBackUserDO.getBackUserAccountId());
if (backUserAccountVO.getDisable().equals(1)) {
return ResultBody.error(ResultEnum.LOGIN_ACCOUNT_NOT_EXIT_ERROR);
}
// 设置用户角色
RoleInfoDO roleInfoDO = roleDao.getRoleInfoByUserId(companyBackUserDO.getBackUserAccountId());
Map<String, Object> map = new HashMap<String, Object>();
map.put(JwtConstant.USER_ACCOUNT_ID, backUserAccountVO.getId());
map.put(JwtConstant.TOKEN_TYPE, JwtConstant.M_TOKEN);
String token = JwtUtil.createJwt(map);
LoginSuccessDTO backLoginSuccessDTO = LoginSuccessDTO.builder().token(token).userAccountId(backUserAccountVO.getId())
.accountNo(backUserAccountVO.getAccountNo()).uid(backUserAccountVO.getId() + "").userName(backUserAccountVO.getUserName())
.nickName(backUserAccountVO.getUserName()).phoneNum(backUserAccountVO.getPhoneNum()).portType(0).companyInfoVO(companyInfoVO == null ? null : companyInfoVO)
.roleInfo(roleInfoDO.buildRoleInfoDTO()).appUserAccountId(loginSuccessDTO.getAppUserAccountId()).token(token).build();
// 设置后台账号token,key为randomLoginCode
stringRedisTemplate.opsForValue().set(
randomLoginCode, JSONObject.toJSONString(backLoginSuccessDTO),
JwtConstant.EXPIRATION, TimeUnit.MILLISECONDS);
loginSuccessDTO.setToken(token);
}
stringRedisTemplate.opsForValue().set(
randomLoginCode, JSONObject.toJSONString(loginSuccessDTO),
JwtConstant.TEMP_EXPIRATION, TimeUnit.MILLISECONDS);
......
......@@ -199,4 +199,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
BackUserAccountDO userLoginInfo = backUserAccountDao.getUserLoginInfo(accountNo, passWord);
return userLoginInfo;
}
@Override
public BackUserAccountVO getBackUserAccountById(Integer backUserAccountId) {
BackUserAccountDO backUserAccountDO = backUserAccountDao.getBackUserAccountDO(backUserAccountId);
if (backUserAccountDO != null) {
return backUserAccountDO.buildBackUserAccountVO();
}
return null;
}
}
......@@ -173,6 +173,7 @@ public class CompanyAuthServiceImpl implements CompanyAuthService {
}
CompanyAuthVO companyAuthVO = companyInfoDO.buildCompanyAuthVO();
companyAuthVO.setUserAccountId(userAccountId);
companyAuthVO.setAuthStatus(1);
return companyAuthVO;
}
}
......@@ -8,12 +8,15 @@ import com.mmc.iuav.user.dao.CompanyDao;
import com.mmc.iuav.user.entity.CompanyBackUserDO;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.entity.CompanyMemberDO;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
......@@ -54,6 +57,11 @@ public class CompanyServiceImpl implements CompanyService {
if (taskCount == null || taskCount > 0) {
return ResultBody.error(ResultEnum.REMOVE_COMPANY_TASK_ERROR);
}
// 有绑定小程序用户则不能删除
List<CompanyMemberDO> memberDOS = companyDao.listCompanyMembers(id);
if (!CollectionUtils.isEmpty(memberDOS)) {
return ResultBody.error(ResultEnum.REMOVE_COMPANY_BINDING_APP_ERROR);
}
companyDao.removeCompanyInfo(id);
return ResultBody.success();
}
......@@ -130,7 +138,7 @@ public class CompanyServiceImpl implements CompanyService {
}
@Override
public ResultBody bindingCompanyMember(Integer userAccountId, Integer companyInfoId) {
public ResultBody bindingCompanyMember(LoginSuccessDTO loginSuccessDTO, Integer userAccountId, Integer companyInfoId) {
CompanyMemberDO companyMemberDO = new CompanyMemberDO();
companyMemberDO.setUserAccountId(userAccountId);
companyMemberDO.setCompanyInfoId(companyInfoId);
......@@ -138,4 +146,56 @@ public class CompanyServiceImpl implements CompanyService {
companyDao.addCompanyMember(companyMemberDO);
return ResultBody.success();
}
@Override
public CompanyInfoVO getAppCompanyInfoUId(Integer userAccountId) {
CompanyInfoDO companyInfoDO = companyDao.getAppCompanyInfoUId(userAccountId);
if (companyInfoDO != null) {
return companyInfoDO.buildCompanyInfoVO();
}
return null;
}
@Override
public CompanyBackUserDO getCompanyBackUserByCompanyId(Integer id) {
CompanyBackUserDO companyBackUserDO = companyDao.getCompanyBackUserByCompanyId(id);
return companyBackUserDO;
}
@Override
public ResultBody unbindCompanyMember(LoginSuccessDTO userLoginInfoFromRedis, Integer userAccountId, Integer companyInfoId) {
CompanyMemberDO companyMemberDO = companyDao.getCompanyMember(userAccountId, companyInfoId);
if (companyMemberDO != null) {
if (companyMemberDO.getLeader().equals(1)) {
return ResultBody.error(ResultEnum.UNBIND_COMPANY_MEMBER_ERROR);
}
}
companyDao.unbindCompanyMember(userAccountId, companyInfoId);
return ResultBody.success();
}
@Override
public ResultBody transferLeader(LoginSuccessDTO loginSuccessDTO, Integer fromUserAccountId, Integer toUserAccountId, Integer companyInfoId) {
CompanyMemberDO companyMemberDO = companyDao.getCompanyMember(fromUserAccountId, companyInfoId);
if (companyMemberDO != null) {
if (!companyMemberDO.getLeader().equals(1)) {
return ResultBody.error(ResultEnum.TRANFER_COMPANY_MEMBER_LEADER_ERROR);
}
}
companyDao.updateCompanyMember(fromUserAccountId, 0, companyInfoId);
companyDao.updateCompanyMember(toUserAccountId, 1, companyInfoId);
return ResultBody.success();
}
@Override
public ResultBody listCompanyMembers(Integer companyInfoId, LoginSuccessDTO loginSuccessDTO, Integer pageNo, Integer pageSize) {
int count = companyDao.countCompanyMembers(companyInfoId);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
}
pageNo = (pageNo - 1) * pageSize;
List<UserAccountDO> userAccountDOS = companyDao.listCompanyMembersPage(companyInfoId, pageNo, pageSize);
List<UserAccountVO> userAccountVOS = userAccountDOS.stream().map(UserAccountDO::buildUserAccountVO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, userAccountVOS));
}
}
......@@ -182,6 +182,7 @@ public class CooperationServiceImpl implements CooperationService {
// TODO 发送短信通知
log.info("bUserAccountVO:{}", JSONObject.toJSONString(bUserAccountVO));
} else {
// TODO 发送短信通知
cooperationDao.updateApplyTagStatus(id, 2);
}
return ResultBody.success();
......
......@@ -9,6 +9,7 @@ import com.mmc.iuav.user.dao.UserServiceDao;
import com.mmc.iuav.user.entity.CooperationTagDO;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.UserRcdDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.qo.UserAccountQO;
import com.mmc.iuav.user.model.qo.UserRcdQO;
......@@ -219,7 +220,11 @@ public class UserAccountServiceImpl implements UserAccountService {
}
@Override
public ResultBody listAppUser(UserAccountQO param) {
public ResultBody listAppUser(UserAccountQO param, LoginSuccessDTO loginSuccessDTO) {
// todo
if (loginSuccessDTO.getRoleInfo() != null && loginSuccessDTO.getRoleInfo().getSuperAdmin().equals(1)) {
param.setCompanyInfoId(loginSuccessDTO.getCompanyInfoVO().getId());
}
int count = userServiceDao.countListAppUser(param);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(param.getPageNo(), param.getPageSize(), count));
......@@ -308,5 +313,14 @@ public class UserAccountServiceImpl implements UserAccountService {
return ResultBody.success();
}
@Override
public ResultBody getUserAccountByPhoneNum(String phoneNum) {
UserAccountDO userAccountDO = userServiceDao.getUserAccountByPhoneNum(phoneNum);
if (userAccountDO != null) {
return ResultBody.success(userAccountDO.buildUserAccountVO());
}
return ResultBody.success();
}
}
......@@ -67,6 +67,14 @@
update company_back_user set company_info_id = #{companyInfoId} where back_user_account_id = #{backUserAccountId}
</update>
<update id="updateCompanyMember">
update company_member set is_leader = #{i} where user_account_id = #{fromUserAccountId} and company_info_id = #{companyInfoId}
</update>
<delete id="unbindCompanyMember">
delete from company_member where user_account_id = #{fromUserAccountId} and company_info_id = #{companyInfoId}
</delete>
<select id="getCompanyInfoById" resultType="com.mmc.iuav.user.entity.CompanyInfoDO">
select id, company_type, company_name, full_name, province, city, district, address, company_user_name, phone_num, remark, create_time
from company_info
......@@ -153,11 +161,40 @@
ci.company_type,
ci.company_name,
ci.credit_code,
ci.license_img
ci.license_img,
ci.brand_name,
ci.brand_logo
FROM
company_info ci
INNER JOIN company_member cm ON ci.id = cm.company_info_id
WHERE
cm.user_account_id = #{userAccountId}
cm.user_account_id = #{userAccountId} and ci.is_deleted = 0
</select>
<select id="getCompanyBackUserByCompanyId" resultType="com.mmc.iuav.user.entity.CompanyBackUserDO">
select id, back_user_account_id, company_info_id from company_back_user where company_info_id = #{companyInfoId}
</select>
<select id="getCompanyMember" resultType="com.mmc.iuav.user.entity.CompanyMemberDO">
select id, user_account_id, company_info_id, is_leader as leader from company_member where company_info_id = #{companyInfoId} and user_account_id = #{userAccountId}
</select>
<select id="countCompanyMembers" resultType="java.lang.Integer">
select count(*) from company_member where company_info_id = #{companyInfoId}
</select>
<select id="listCompanyMembersPage" resultType="com.mmc.iuav.user.entity.UserAccountDO">
SELECT
ua.id,
ua.user_name,
ua.nick_name,
ua.phone_num
FROM
company_member cm
INNER JOIN company_info ci ON cm.company_info_id = ci.id
INNER JOIN user_account ua ON ua.id = cm.user_account_id
WHERE ci.id = #{id}
order by cm.create_time desc
limit #{pageNo}, #{pageSize}
</select>
</mapper>
\ No newline at end of file
......@@ -252,14 +252,21 @@
count(*)
FROM
user_account ua
LEFT JOIN company_auth ca ON ua.id = ca.user_account_id
LEFT JOIN company_member cm ON cm.user_account_id = ua.id
LEFT JOIN company_info ci ON ci.id = cm.company_info_id
WHERE
ua.disable = 0 and ua.port_type = 100
<if test="companyInfoId != null">
and ci.id = #{companyInfoId}
</if>
<if test="phoneNum != null and phoneNum != '' ">
and ( ua.phone_num like CONCAT("%",#{phoneNum},"%") )
</if>
<if test="companyAuthStatus != null">
AND IFNULL(ca.auth_status, 0) = #{companyAuthStatus}
<if test="companyAuthStatus == 0">
AND ci.company_name is null
</if>
<if test="companyAuthStatus == 1">
AND ci.company_name is not null
</if>
<if test="startTime != null ">
AND ua.create_time >= #{startTime}
......@@ -281,21 +288,48 @@
<select id="listAppUser" resultMap="userAccountResultMap"
parameterType="com.mmc.iuav.user.model.qo.UserAccountQO">
select ua.id, ua.phone_num, ua.user_name, ua.nick_name, ua.user_img, ua.open_id,
ua.union_id, ua.user_sex, ua.email, ua.source, ua.account_status, ua.remark,
ua.port_type, ua.disable, ua.create_time, ua.update_time, IFNULL(ca.auth_status, 0) as
companyAuthStatus, ca.company_name, rcd.id as user_rcd_id, rcd.rcd_user_id, r_user.nick_name as rcdNickname,
r_user.user_name as rcdUserName
from user_account ua left join company_auth ca on ua.id = ca.user_account_id
left join user_rcd rcd on rcd.user_account_id = ua.id
left join user_account r_user on r_user.id = rcd.rcd_user_id
where
ua.disable = 0 and ua.port_type = 100
SELECT
ua.id,
ua.phone_num,
ua.user_name,
ua.nick_name,
ua.user_img,
ua.open_id,
ua.union_id,
ua.user_sex,
ua.email,
ua.source,
ua.account_status,
ua.remark,
ua.port_type,
ua.DISABLE,
ua.create_time,
ua.update_time,
ci.company_name,
rcd.id AS user_rcd_id,
rcd.rcd_user_id,
r_user.nick_name AS rcdNickname,
r_user.user_name AS rcdUserName
FROM
user_account ua
LEFT JOIN company_member cm ON cm.user_account_id = ua.id
LEFT JOIN company_info ci ON ci.id = cm.company_info_id
LEFT JOIN user_rcd rcd ON rcd.user_account_id = ua.id
LEFT JOIN user_account r_user ON r_user.id = rcd.rcd_user_id
WHERE
ua.DISABLE = 0
AND ua.port_type = 100
<if test="companyInfoId != null">
and ci.id = #{companyInfoId}
</if>
<if test="phoneNum != null and phoneNum != '' ">
and ( ua.phone_num like CONCAT("%",#{phoneNum},"%") )
</if>
<if test="companyAuthStatus != null">
AND IFNULL(ca.auth_status, 0) = #{companyAuthStatus}
<if test="companyAuthStatus == 0">
AND ci.company_name is null
</if>
<if test="companyAuthStatus == 1">
AND ci.company_name is not null
</if>
<if test="startTime != null ">
AND ua.create_time >= #{startTime}
......@@ -362,4 +396,25 @@
GROUP BY urd.rcd_user_id
</select>
<select id="getUserAccountByPhoneNum" resultType="com.mmc.iuav.user.entity.UserAccountDO">
select id,
phone_num,
user_name,
nick_name,
user_img,
open_id,
union_id,
user_sex,
email,
source,
account_status,
remark,
port_type,
disable,
create_time,
update_time
from user_account
where phone_num = #{phoneNum} and disable = 0
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论