提交 81f1528a 作者: zhenjie

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

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