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

saas用户标签实时更新

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