提交 78b03133 作者: zhenjie

单位管理、账号绑定单位

上级 abba2882
...@@ -66,7 +66,8 @@ public class BUserAccountVO implements Serializable { ...@@ -66,7 +66,8 @@ public class BUserAccountVO implements Serializable {
@Email @Email
private String email; private String email;
@ApiModelProperty(value = "所属公司ID",example = "1", hidden = true) @ApiModelProperty(value = "所属公司ID",example = "0")
@NotNull(message = "所属公司不能为空", groups = {Create.class})
private Integer companyId; private Integer companyId;
@ApiModelProperty(value = "账号类型:0合伙人 1员工", example = "1", hidden = true) @ApiModelProperty(value = "账号类型:0合伙人 1员工", example = "1", hidden = true)
......
...@@ -19,6 +19,8 @@ public enum ResultEnum implements BaseErrorInfoInterface{ ...@@ -19,6 +19,8 @@ public enum ResultEnum implements BaseErrorInfoInterface{
LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"), LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"),
LOGIN_PASSWORD_ERROR("5006", "密码错误"), LOGIN_PASSWORD_ERROR("5006", "密码错误"),
LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"), LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"),
REMOVE_COMPANY_BINDING_ERROR("5009", "删除失败,该单位存在绑定的账号"),
REMOVE_COMPANY_TASK_ERROR("5010", "删除失败,该单位存在绑定的服务"),
//微信相关 //微信相关
PASSWORD_INCONSISTENT("5026", "新密码与确认密码不一致,请确认一致"), PASSWORD_INCONSISTENT("5026", "新密码与确认密码不一致,请确认一致"),
......
package com.mmc.iuav.user.client;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
/**
* @author: zj
* @Date: 2023/7/4 13:46
*/
@Component
public class PmsClient {
@Value("${iuav.pms.uri}")
private String pmsAppUri;
@Autowired
private RestTemplate restTemplate;
public Integer countCompanyTasks(Integer id, String token) {
HttpHeaders headers = new HttpHeaders();
headers.add("token", token);
HttpEntity<String> entity = new HttpEntity<>(null, headers);
ResponseEntity<ResultBody> responseEntity = restTemplate.exchange(pmsAppUri+"/pms/backstage/work/queryWorkServiceCount" + "?id=" + id, HttpMethod.GET, entity, ResultBody.class);
ResultBody body = responseEntity.getBody();
if (body.getCode().equals(ResultEnum.SUCCESS.getResultCode())){
Integer count = (Integer) body.getResult();
return count;
}
return null;
}
}
...@@ -32,8 +32,8 @@ public class CompanyController extends BaseController{ ...@@ -32,8 +32,8 @@ public class CompanyController extends BaseController{
@ApiOperation(value = "移除") @ApiOperation(value = "移除")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) }) @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("remove") @GetMapping("remove")
public ResultBody remove(@RequestParam Integer id){ public ResultBody remove(@RequestParam Integer id, @RequestHeader String token){
return companyService.removeCompanyInfo(id); return companyService.removeCompanyInfo(id, token);
} }
@ApiOperation(value = "修改") @ApiOperation(value = "修改")
......
package com.mmc.iuav.user.dao; 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.CompanyInfoDO;
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;
...@@ -57,4 +58,23 @@ public interface CompanyDao { ...@@ -57,4 +58,23 @@ public interface CompanyDao {
* @return * @return
*/ */
CompanyInfoDO getCompanyInfoByBackUserAccountId(Integer backUserAccountId); CompanyInfoDO getCompanyInfoByBackUserAccountId(Integer backUserAccountId);
/**
* 添加绑定关系
* @param companyBackUserDO
*/
void addCompanyBackUser(CompanyBackUserDO companyBackUserDO);
/**
* 修改绑定关系
* @param companyBackUserDO
*/
void updateCompanyBackUser(CompanyBackUserDO companyBackUserDO);
/**
* 查询单位绑定的账号数量
* @param id
* @return
*/
int countCompanyBackUser(Integer id);
} }
package com.mmc.iuav.user.service; package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.entity.CompanyInfoDO; import com.mmc.iuav.user.entity.CompanyBackUserDO;
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;
...@@ -20,9 +20,10 @@ public interface CompanyService { ...@@ -20,9 +20,10 @@ public interface CompanyService {
/** /**
* 移除 * 移除
* @param id * @param id
* @param token
* @return * @return
*/ */
ResultBody removeCompanyInfo(Integer id); ResultBody removeCompanyInfo(Integer id, String token);
/** /**
* 修改 * 修改
...@@ -51,4 +52,16 @@ public interface CompanyService { ...@@ -51,4 +52,16 @@ public interface CompanyService {
* @return * @return
*/ */
CompanyInfoVO getCompanyInfoByBackUserAccountId(Integer backUserAccountId); CompanyInfoVO getCompanyInfoByBackUserAccountId(Integer backUserAccountId);
/**
* 添加绑定关系
* @param companyBackUserDO
*/
void addCompanyBackUser(CompanyBackUserDO companyBackUserDO);
/**
* 修改绑定关系
* @param companyBackUserDO
*/
void updateCompanyBackUser(CompanyBackUserDO companyBackUserDO);
} }
...@@ -7,10 +7,12 @@ import com.mmc.iuav.response.ResultEnum; ...@@ -7,10 +7,12 @@ import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.auth.PwdUtil; import com.mmc.iuav.user.auth.PwdUtil;
import com.mmc.iuav.user.dao.BackUserAccountDao; import com.mmc.iuav.user.dao.BackUserAccountDao;
import com.mmc.iuav.user.entity.BackUserAccountDO; import com.mmc.iuav.user.entity.BackUserAccountDO;
import com.mmc.iuav.user.entity.CompanyBackUserDO;
import com.mmc.iuav.user.model.qo.BUserAccountQO; import com.mmc.iuav.user.model.qo.BUserAccountQO;
import com.mmc.iuav.user.model.vo.BUserAccountVO; import com.mmc.iuav.user.model.vo.BUserAccountVO;
import com.mmc.iuav.user.model.vo.BackUserAccountVO; import com.mmc.iuav.user.model.vo.BackUserAccountVO;
import com.mmc.iuav.user.service.BackUserAccountService; import com.mmc.iuav.user.service.BackUserAccountService;
import com.mmc.iuav.user.service.CompanyService;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -28,6 +30,9 @@ public class BackUserAccountServiceImpl implements BackUserAccountService { ...@@ -28,6 +30,9 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
@Autowired @Autowired
private BackUserAccountDao backUserAccountDao; private BackUserAccountDao backUserAccountDao;
@Autowired
private CompanyService companyService;
@Override @Override
public ResultBody insertBAccount(BUserAccountVO bUserAccountVO) { public ResultBody insertBAccount(BUserAccountVO bUserAccountVO) {
if (!bUserAccountVO.getPassWord().equals(bUserAccountVO.getAlertPwd())) { if (!bUserAccountVO.getPassWord().equals(bUserAccountVO.getAlertPwd())) {
...@@ -46,6 +51,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService { ...@@ -46,6 +51,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
return ResultBody.error(ResultEnum.PWD_CREATE_ERROR); return ResultBody.error(ResultEnum.PWD_CREATE_ERROR);
} }
backUserAccountDao.insertBackUserAccount(backUserAccountDO); backUserAccountDao.insertBackUserAccount(backUserAccountDO);
// 添加单位信息
if (bUserAccountVO.getCompanyId() != null){
CompanyBackUserDO companyBackUserDO = new CompanyBackUserDO();
companyBackUserDO.setBackUserAccountId(backUserAccountDO.getId());
companyBackUserDO.setCompanyInfoId(bUserAccountVO.getCompanyId());
companyService.addCompanyBackUser(companyBackUserDO);
}
return ResultBody.success(); return ResultBody.success();
} }
...@@ -61,6 +73,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService { ...@@ -61,6 +73,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
} }
BackUserAccountDO userAccountDO = new BackUserAccountDO(bUserAccountVO); BackUserAccountDO userAccountDO = new BackUserAccountDO(bUserAccountVO);
backUserAccountDao.updateBackUserAccount(userAccountDO); backUserAccountDao.updateBackUserAccount(userAccountDO);
// 修改单位信息
if (bUserAccountVO.getCompanyId() != null){
CompanyBackUserDO companyBackUserDO = new CompanyBackUserDO();
companyBackUserDO.setBackUserAccountId(userAccountDO.getId());
companyBackUserDO.setCompanyInfoId(bUserAccountVO.getCompanyId());
companyService.updateCompanyBackUser(companyBackUserDO);
}
return ResultBody.success(); return ResultBody.success();
} }
......
...@@ -2,9 +2,10 @@ package com.mmc.iuav.user.service.impl; ...@@ -2,9 +2,10 @@ package com.mmc.iuav.user.service.impl;
import com.mmc.iuav.page.PageResult; import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.dao.CompanyAuthDao; import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.client.PmsClient;
import com.mmc.iuav.user.dao.CompanyDao; import com.mmc.iuav.user.dao.CompanyDao;
import com.mmc.iuav.user.entity.CompanyAuthDO; 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.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;
...@@ -25,6 +26,9 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -25,6 +26,9 @@ public class CompanyServiceImpl implements CompanyService {
@Autowired @Autowired
private CompanyDao companyDao; private CompanyDao companyDao;
@Autowired
private PmsClient pmsClient;
@Override @Override
public ResultBody addCompanyInfo(CompanyInfoVO companyInfo) { public ResultBody addCompanyInfo(CompanyInfoVO companyInfo) {
CompanyInfoDO companyInfoDO = new CompanyInfoDO(companyInfo); CompanyInfoDO companyInfoDO = new CompanyInfoDO(companyInfo);
...@@ -33,7 +37,17 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -33,7 +37,17 @@ public class CompanyServiceImpl implements CompanyService {
} }
@Override @Override
public ResultBody removeCompanyInfo(Integer id) { public ResultBody removeCompanyInfo(Integer id, String token) {
// 查询绑定账号数量是否大于0
int backAccountCount = companyDao.countCompanyBackUser(id);
if (backAccountCount > 0){
return ResultBody.error(ResultEnum.APPLET_LOGIN_ERROR);
}
// 查询绑定服务数量是否大于0
Integer taskCount = pmsClient.countCompanyTasks(id, token);
if ( taskCount == null || taskCount > 0){
return ResultBody.error(ResultEnum.REMOVE_COMPANY_TASK_ERROR);
}
companyDao.removeCompanyInfo(id); companyDao.removeCompanyInfo(id);
return ResultBody.success(); return ResultBody.success();
} }
...@@ -51,7 +65,7 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -51,7 +65,7 @@ public class CompanyServiceImpl implements CompanyService {
if (companyInfoDO != null){ if (companyInfoDO != null){
return ResultBody.success(companyInfoDO.buildCompanyInfoVO()); return ResultBody.success(companyInfoDO.buildCompanyInfoVO());
} }
return null; return ResultBody.success();
} }
@Override @Override
...@@ -75,4 +89,14 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -75,4 +89,14 @@ public class CompanyServiceImpl implements CompanyService {
} }
return null; return null;
} }
@Override
public void addCompanyBackUser(CompanyBackUserDO companyBackUserDO) {
companyDao.addCompanyBackUser(companyBackUserDO);
}
@Override
public void updateCompanyBackUser(CompanyBackUserDO companyBackUserDO) {
companyDao.updateCompanyBackUser(companyBackUserDO);
}
} }
...@@ -70,4 +70,6 @@ third-party: ...@@ -70,4 +70,6 @@ third-party:
iuav: iuav:
pay: pay:
uri: http://payment-svc:8088 uri: http://payment-svc:8088
\ No newline at end of file pms:
uri: http://pms-svc:8099
\ No newline at end of file
...@@ -41,4 +41,6 @@ third-party: ...@@ -41,4 +41,6 @@ third-party:
iuav: iuav:
pay: pay:
uri: http://127.0.0.1:8088 uri: http://127.0.0.1:8088
\ No newline at end of file pms:
uri: http://127.0.0.1:8099
\ No newline at end of file
...@@ -70,4 +70,6 @@ third-party: ...@@ -70,4 +70,6 @@ third-party:
iuav: iuav:
pay: pay:
uri: http://payment-svc:8088 uri: http://payment-svc:8088
\ No newline at end of file pms:
uri: http://pms-svc:8099
\ No newline at end of file
...@@ -9,6 +9,11 @@ ...@@ -9,6 +9,11 @@
values (#{companyType}, #{companyName}, #{fullName}, #{province}, #{city}, #{district}, #{address}, #{companyUserName}, #{phoneNum}, #{remark}, NOW()) values (#{companyType}, #{companyName}, #{fullName}, #{province}, #{city}, #{district}, #{address}, #{companyUserName}, #{phoneNum}, #{remark}, NOW())
</insert> </insert>
<insert id="addCompanyBackUser" parameterType="com.mmc.iuav.user.entity.CompanyBackUserDO" keyProperty="id" useGeneratedKeys="true">
insert into company_back_user(back_user_account_id, company_info_id, create_time)
values (#{backUserAccountId}, #{companyInfoId}, NOW())
</insert>
<update id="removeCompanyInfo"> <update id="removeCompanyInfo">
update company_info set is_deleted = 1 where id = #{id} update company_info set is_deleted = 1 where id = #{id}
</update> </update>
...@@ -50,6 +55,10 @@ ...@@ -50,6 +55,10 @@
id = #{id} id = #{id}
</update> </update>
<update id="updateCompanyBackUser">
update company_back_user set company_info_id = #{companyInfoId} where back_user_account_id = #{backUserAccountId}
</update>
<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
...@@ -81,4 +90,9 @@ ...@@ -81,4 +90,9 @@
FROM company_info ci INNER JOIN company_back_user cbu ON ci.id = cbu.company_info_id FROM company_info ci INNER JOIN company_back_user cbu ON ci.id = cbu.company_info_id
WHERE cbu.back_user_account_id = #{backUserAccountId} and ci.is_deleted = 0 WHERE cbu.back_user_account_id = #{backUserAccountId} and ci.is_deleted = 0
</select> </select>
<select id="countCompanyBackUser" resultType="java.lang.Integer">
select count(*) from company_info ci INNER JOIN company_back_user cbu ON ci.id = cbu.company_info_id
where ci.id = #{id} and ci.is_deleted = 0
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论