提交 78b03133 作者: zhenjie

单位管理、账号绑定单位

上级 abba2882
......@@ -66,7 +66,8 @@ public class BUserAccountVO implements Serializable {
@Email
private String email;
@ApiModelProperty(value = "所属公司ID",example = "1", hidden = true)
@ApiModelProperty(value = "所属公司ID",example = "0")
@NotNull(message = "所属公司不能为空", groups = {Create.class})
private Integer companyId;
@ApiModelProperty(value = "账号类型:0合伙人 1员工", example = "1", hidden = true)
......
......@@ -19,6 +19,8 @@ public enum ResultEnum implements BaseErrorInfoInterface{
LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"),
LOGIN_PASSWORD_ERROR("5006", "密码错误"),
LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"),
REMOVE_COMPANY_BINDING_ERROR("5009", "删除失败,该单位存在绑定的账号"),
REMOVE_COMPANY_TASK_ERROR("5010", "删除失败,该单位存在绑定的服务"),
//微信相关
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{
@ApiOperation(value = "移除")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("remove")
public ResultBody remove(@RequestParam Integer id){
return companyService.removeCompanyInfo(id);
public ResultBody remove(@RequestParam Integer id, @RequestHeader String token){
return companyService.removeCompanyInfo(id, token);
}
@ApiOperation(value = "修改")
......
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.model.qo.CompanyInfoQO;
import org.apache.ibatis.annotations.Mapper;
......@@ -57,4 +58,23 @@ public interface CompanyDao {
* @return
*/
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;
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.vo.CompanyInfoVO;
......@@ -20,9 +20,10 @@ public interface CompanyService {
/**
* 移除
* @param id
* @param token
* @return
*/
ResultBody removeCompanyInfo(Integer id);
ResultBody removeCompanyInfo(Integer id, String token);
/**
* 修改
......@@ -51,4 +52,16 @@ public interface CompanyService {
* @return
*/
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;
import com.mmc.iuav.user.auth.PwdUtil;
import com.mmc.iuav.user.dao.BackUserAccountDao;
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.vo.BUserAccountVO;
import com.mmc.iuav.user.model.vo.BackUserAccountVO;
import com.mmc.iuav.user.service.BackUserAccountService;
import com.mmc.iuav.user.service.CompanyService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -28,6 +30,9 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
@Autowired
private BackUserAccountDao backUserAccountDao;
@Autowired
private CompanyService companyService;
@Override
public ResultBody insertBAccount(BUserAccountVO bUserAccountVO) {
if (!bUserAccountVO.getPassWord().equals(bUserAccountVO.getAlertPwd())) {
......@@ -46,6 +51,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
return ResultBody.error(ResultEnum.PWD_CREATE_ERROR);
}
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();
}
......@@ -61,6 +73,13 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
}
BackUserAccountDO userAccountDO = new BackUserAccountDO(bUserAccountVO);
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();
}
......
......@@ -2,9 +2,10 @@ package com.mmc.iuav.user.service.impl;
import com.mmc.iuav.page.PageResult;
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.entity.CompanyAuthDO;
import com.mmc.iuav.user.entity.CompanyBackUserDO;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
......@@ -25,6 +26,9 @@ public class CompanyServiceImpl implements CompanyService {
@Autowired
private CompanyDao companyDao;
@Autowired
private PmsClient pmsClient;
@Override
public ResultBody addCompanyInfo(CompanyInfoVO companyInfo) {
CompanyInfoDO companyInfoDO = new CompanyInfoDO(companyInfo);
......@@ -33,7 +37,17 @@ public class CompanyServiceImpl implements CompanyService {
}
@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);
return ResultBody.success();
}
......@@ -51,7 +65,7 @@ public class CompanyServiceImpl implements CompanyService {
if (companyInfoDO != null){
return ResultBody.success(companyInfoDO.buildCompanyInfoVO());
}
return null;
return ResultBody.success();
}
@Override
......@@ -75,4 +89,14 @@ public class CompanyServiceImpl implements CompanyService {
}
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:
iuav:
pay:
uri: http://payment-svc:8088
\ No newline at end of file
uri: http://payment-svc:8088
pms:
uri: http://pms-svc:8099
\ No newline at end of file
......@@ -41,4 +41,6 @@ third-party:
iuav:
pay:
uri: http://127.0.0.1:8088
\ No newline at end of file
uri: http://127.0.0.1:8088
pms:
uri: http://127.0.0.1:8099
\ No newline at end of file
......@@ -70,4 +70,6 @@ third-party:
iuav:
pay:
uri: http://payment-svc:8088
\ No newline at end of file
uri: http://payment-svc:8088
pms:
uri: http://pms-svc:8099
\ No newline at end of file
......@@ -9,6 +9,11 @@
values (#{companyType}, #{companyName}, #{fullName}, #{province}, #{city}, #{district}, #{address}, #{companyUserName}, #{phoneNum}, #{remark}, NOW())
</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 company_info set is_deleted = 1 where id = #{id}
</update>
......@@ -50,6 +55,10 @@
id = #{id}
</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, company_type, company_name, full_name, province, city, district, address, company_user_name, phone_num, remark, create_time
from company_info
......@@ -81,4 +90,9 @@
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
</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>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论