提交 0453a3ed 编写于 作者: shihao.bao's avatar shihao.bao

saas用户标签实时更新

上级 ef699c62
流水线 #44166 已失败 于阶段
......@@ -227,7 +227,7 @@
<dependency>
<groupId>com.pica.cloud.tag</groupId>
<artifactId>pica-cloud-transport-client</artifactId>
<version>1.0.5</version>
<version>1.0.6</version>
</dependency>
<!-- apple identifyToken校验 -->
......
......@@ -39,8 +39,7 @@ public class HospitalSaasUserController extends AccountBaseController {
@EnabledLoginValidate
public PicaResponse<Integer> register(@RequestBody HospitalSaasUserReq req, @RequestHeader("token") String token) {
logger.info("register: url:/saas/hospital/register. start: {}", JSON.toJSONString(req));
Long doctorId = super.getDoctorIdByToken();
return PicaResponse.toResponse(hospitalSaasUserService.register(req, doctorId));
return PicaResponse.toResponse(hospitalSaasUserService.register(req, super.fetchPicaUser()));
}
@ApiOperation("机构saas平台人员更新 0失败 1成功")
......@@ -48,8 +47,7 @@ public class HospitalSaasUserController extends AccountBaseController {
@EnabledLoginValidate
public PicaResponse<Integer> upsert(@RequestBody HospitalSaasUserReq req) {
logger.info("upsert: url:/saas/hospital/upsert. start: {}", JSON.toJSONString(req));
Long doctorId = super.getDoctorIdByToken();
return PicaResponse.toResponse(hospitalSaasUserService.upsert(req,doctorId));
return PicaResponse.toResponse(hospitalSaasUserService.upsert(req, super.fetchPicaUser()));
}
@ApiOperation("机构saas平台人员列表查询")
......
......@@ -43,4 +43,6 @@ public interface PermissionDoctorRoleMapper {
PermissionDoctorRole selectByHospitalIdRoleId(@Param("hospitalId") Integer hospitalId, @Param("roleId") Integer roleId);
int batchInsert(List<PermissionDoctorRole> list);
Integer checkIsSaas(@Param("doctorId") Long doctorId);
}
\ No newline at end of file
// Copyright 2016-2101 Pica.
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.req.HospitalSaasUserListReq;
import com.pica.cloud.account.account.server.req.HospitalSaasUserReq;
import com.pica.cloud.account.account.server.resp.HospitalSaasUserDetailResp;
import com.pica.cloud.account.account.server.resp.HospitalSaasUserEditResp;
import com.pica.cloud.account.account.server.resp.HospitalSaasUserResp;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import java.util.List;
/**
* @Author Pica
* @Date 2022/3/1 15:50
*/
public interface HospitalSaasUserService {
int register(HospitalSaasUserReq baseRequest, Long doctorId);
int register(HospitalSaasUserReq baseRequest, PicaUser picaUser);
HospitalSaasUserResp listByPage(HospitalSaasUserListReq req);
int upsert(HospitalSaasUserReq req, Long doctorId);
int upsert(HospitalSaasUserReq req, PicaUser picaUser);
int delete(Long id);
......
......@@ -2,6 +2,7 @@
package com.pica.cloud.account.account.server.service.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
......@@ -19,10 +20,13 @@ import com.pica.cloud.account.account.server.util.ExecutorServiceUtils;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils;
import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.MD5Util;
import com.pica.cloud.tag.transport.client.ITransportDoctorClient;
import com.pica.cloud.tag.transport.contract.req.StickerProfileDto;
import com.pica.cloud.trade.store.client.StoreCertifyServiceClient;
import com.pica.cloud.trade.store.resp.certify.StoreCertifyStatus;
import org.apache.commons.collections.CollectionUtils;
......@@ -30,6 +34,7 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -70,10 +75,15 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
private PasswordService passwordService;
@Autowired
private RegisterService registerService;
@Autowired
private ITransportDoctorClient iTransportDoctorClient;
@Value("${saas.sticker.id}")
private Integer saasStickerId;
@Override
@Transactional
public int register(HospitalSaasUserReq req, Long doctorId) {
public int register(HospitalSaasUserReq req, PicaUser picaUser) {
req.checkInsertParams();
if (req.getRoleId().contains(SaasRoleEnum.SAAS_MAIN_ADMIN.getCode())) {
PermissionDoctorRole existRole = doctorRoleMapper.selectByHospitalIdRoleId(req.getHospitalId(), SaasRoleEnum.SAAS_MAIN_ADMIN.getCode().intValue());
......@@ -126,6 +136,10 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
registerService.processRoleMap(account.getId());
insertSaasRole(req.getRoleId(), req.getHospitalId().longValue(), account.getId(), account.getId());
redisClient.del(nxKey);
//saas用户标签
this.refreshTag(account.getId(), picaUser.getToken());
return 1;
}
//用户存在的处理逻辑 给出提示信息
......@@ -196,7 +210,7 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
}
@Override
public int upsert(HospitalSaasUserReq req, Long doctorId) {
public int upsert(HospitalSaasUserReq req, PicaUser picaUser) {
if (Objects.isNull(req) || Objects.isNull(req.getHospitalId()) || CollectionUtils.isEmpty(req.getRoleId())) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "参数错误");
}
......@@ -230,21 +244,27 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
Map<String, Object> map = new HashMap(3);
map.put("id", req.getId());
map.put("delRoleIdList", delRoleIdList);
map.put("modifiedId", doctorId);
map.put("modifiedId", picaUser.getId());
map.put("modifiedTime", new Date());
doctorRoleMapper.deleteByDoctorId(map);
if (!inputRoleIdList.contains(SaasRoleEnum.NULL_ROLE.getCode())) {
insertSaasRole(inputRoleIdList, req.getHospitalId().longValue(), req.getId(), doctorId);
} else if (inputRoleIdList.size() > 1) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "角色清除与其他角色添加不可以并存");
try {
if (!inputRoleIdList.contains(SaasRoleEnum.NULL_ROLE.getCode())) {
insertSaasRole(inputRoleIdList, req.getHospitalId().longValue(), req.getId(), picaUser.getId().longValue());
} else if (inputRoleIdList.size() > 1) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "角色清除与其他角色添加不可以并存");
}
} catch (PicaException picaException) {
throw picaException;
} finally {
this.refreshTag(req.getId(), picaUser.getToken());
}
}
/** 修改备注 */
Account account = new Account();
account.setId(req.getId());
account.setModifyId(doctorId);
account.setModifyId(picaUser.getId().longValue());
account.setModifyTime(Calendar.getInstance().getTime());
if (StringUtils.isNotEmpty(req.getComment())) {
account.setComment(req.getComment());
......@@ -269,6 +289,18 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
return 1;
}
/**更新用户 saas用户标签**/
private void refreshTag(Long id, String token) {
Integer flag = doctorRoleMapper.checkIsSaas(id);
String value = (Objects.nonNull(flag) && flag == 1) ? "1" : "2";
PicaResponse<Integer> response = iTransportDoctorClient.updateDoctorProfilesById(id.intValue(), Lists.newArrayList(new StickerProfileDto(saasStickerId, value)), UUID.randomUUID().toString(), token);
if (PicaResultCode.SUCCESS.code().equals(response.getCode()) && response.getData() > 0) {
logger.info("HospitalSaasUserServiceImpl.refreshTag updateDoctorProfilesById success: doctorId-{}", id);
} else {
logger.info("HospitalSaasUserServiceImpl.refreshTag updateDoctorProfilesById failed: doctorId-{}", id);
}
}
@Override
@Deprecated
public int delete(Long id) {
......
......@@ -80,4 +80,6 @@ pica.cloud.message.url=https://dev-sc.yunqueyi.com/message
pica.cloud.url=https://dev-sc.yunqueyi.com
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic-dev
\ No newline at end of file
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic-dev
saas.sticker.id=9530
\ No newline at end of file
......@@ -71,4 +71,6 @@ pica.cloud.message.url=https://sc.yunqueyi.com/message
pica.cloud.url=https://sc.yunqueyi.com
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
\ No newline at end of file
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
saas.sticker.id=9530
\ No newline at end of file
......@@ -75,3 +75,5 @@ pica.cloud.message.url=https://test1-sc.yunqueyi.com/message
pica.cloud.url=https://test1-sc.yunqueyi.com
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
saas.sticker.id=9530
\ No newline at end of file
......@@ -69,4 +69,6 @@ xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler
xxl.job.executor.logretentiondays=-1
pica.cloud.url=https://test2-sc.yunqueyi.com
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
\ No newline at end of file
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
saas.sticker.id=9530
\ No newline at end of file
......@@ -74,4 +74,6 @@ xxl.job.executor.logretentiondays=-1
pica.cloud.message.url=https://uat-sc.yunqueyi.com/message
pica.cloud.url=https://uat-sc.yunqueyi.com
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
\ No newline at end of file
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
saas.sticker.id=9530
\ No newline at end of file
......@@ -226,4 +226,14 @@
where pdr.doctor_id = #{id,jdbcType=BIGINT}
and pdr.delete_flag = 1
</select>
<select id="checkIsSaas" resultType="java.lang.Integer">
select 1
from permission_doctor_role as pdr
join permission_role as pr ON pdr.role_id = pr.id and pr.delete_flag = 1
where pdr.delete_flag = 1
and pr.role_code like 'saas_%'
and pdr.doctor_id = #{doctorId}
limit 1
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册