提交 8ff3f6ee 编写于 作者: zhehao.chen's avatar zhehao.chen

Merge branch 'dev-cancel-1207' into 'release'

Dev cancel 1207

See merge request !89
流水线 #40553 已失败 于阶段
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-client</artifactId> <artifactId>pica-cloud-account-client</artifactId>
<version>1.0.6</version> <version>1.0.7</version>
<name>pica-cloud-account-client</name> <name>pica-cloud-account-client</name>
<packaging>jar</packaging> <packaging>jar</packaging>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<dependency> <dependency>
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId> <artifactId>pica-cloud-account-common</artifactId>
<version>1.0.2.1</version> <version>1.0.7</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
......
package com.pica.cloud.account.account.client;
import com.pica.cloud.account.account.common.dto.CancelAccountDto;
import com.pica.cloud.foundation.entity.PicaResponse;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
/**
* @author andong
* @create 2019/7/19
*/
@FeignClient(name = "13201-pica-cloud-account")
public interface AccountDoctorClient {
@PostMapping("/account/doctor/cancel/account")
PicaResponse<Void> cancelAccountByDoctorId(@RequestBody CancelAccountDto cancelAccountDto, @RequestHeader(value = "token") String token);
}
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId> <artifactId>pica-cloud-account-common</artifactId>
<version>1.0.2.1</version> <version>1.0.7</version>
<name>pica-cloud-account-common</name> <name>pica-cloud-account-common</name>
<packaging>jar</packaging> <packaging>jar</packaging>
......
package com.pica.cloud.account.account.common.dto;
import io.swagger.annotations.ApiModelProperty;
/**
* @Description
* @Author bsh
* @Date 2021/12/07 13:51
*/
public class CancelAccountDto {
@ApiModelProperty("注销原因NO")
private Integer reasonNo;
@ApiModelProperty("注销原因")
private String reasonValue;
@ApiModelProperty("其他注销原因")
private String reasonDesc;
private String remarks;
public Integer getReasonNo() {
return reasonNo;
}
public void setReasonNo(Integer reasonNo) {
this.reasonNo = reasonNo;
}
public String getReasonValue() {
return reasonValue;
}
public void setReasonValue(String reasonValue) {
this.reasonValue = reasonValue;
}
public String getReasonDesc() {
return reasonDesc;
}
public void setReasonDesc(String reasonDesc) {
this.reasonDesc = reasonDesc;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
}
...@@ -86,8 +86,18 @@ ...@@ -86,8 +86,18 @@
<groupId>com.pica.cloud.foundation</groupId> <groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-service-starter</artifactId> <artifactId>pica-cloud-service-starter</artifactId>
</exclusion> </exclusion>
<exclusion>
<artifactId>pica-cloud-kafka</artifactId>
<groupId>com.pica.cloud.foundation</groupId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-kafka</artifactId>
<version>1.3.6</version>
</dependency>
<!--<dependency>--> <!--<dependency>-->
<!--<groupId>io.springfox</groupId>--> <!--<groupId>io.springfox</groupId>-->
<!--<artifactId>springfox-swagger2</artifactId>--> <!--<artifactId>springfox-swagger2</artifactId>-->
...@@ -151,7 +161,7 @@ ...@@ -151,7 +161,7 @@
<dependency> <dependency>
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId> <artifactId>pica-cloud-account-common</artifactId>
<version>1.0.2.1</version> <version>1.0.7</version>
</dependency> </dependency>
<dependency> <dependency>
......
//
package com.pica.cloud.account.account.server.configuration;
import com.pica.cloud.foundation.kafka.producer.ISimpleProducer;
import com.pica.cloud.foundation.kafka.producer.SimpleProducer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @ClassName BeanConfiguration
* @Description TODO
* @Author wangxinxu
* @Date 2019/9/17 上午10:59
* @ModifyDate 2019/9/17 上午10:59
* @Version 1.0
*/
@Configuration
public class BeanConfiguration {
@Autowired
private PropertiesConfiguration propertiesConfiguration;
// 定义 ISimplerProducer bean 默认投递模式为 Delivery.AT_LEAST_ONCE
// Key:类型为String
// Value:类型为PicaUser
@Bean
public ISimpleProducer<String, Object> simpleProducer() {
return new SimpleProducer<>(propertiesConfiguration.getEnvironment());
}
}
...@@ -14,7 +14,7 @@ public class PropertiesConfiguration { ...@@ -14,7 +14,7 @@ public class PropertiesConfiguration {
private String messageUrl; private String messageUrl;
@Value("${environment.name}") @Value("${environment.name}")
private String environment; private String environment = "dev";
public String getMessageUrl() { public String getMessageUrl() {
......
...@@ -78,4 +78,9 @@ public class Constants { ...@@ -78,4 +78,9 @@ public class Constants {
/** 内部机构医生ids数据 */ /** 内部机构医生ids数据 */
public static final String INNER_ORG_IDS = "inner-org-ids"; public static final String INNER_ORG_IDS = "inner-org-ids";
// 1:新增,2:修改、变更,3:删除
public static final Integer CHANGE_FLAG_1=1;
public static final Integer CHANGE_FLAG_2=2;
public static final Integer CHANGE_FLAG_3=3;
} }
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.common.dto.CancelAccountDto;
import com.pica.cloud.account.account.server.entity.AccountUser; import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.Doctor; import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum; import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
...@@ -18,8 +19,6 @@ import org.apache.commons.lang3.StringUtils; ...@@ -18,8 +19,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* Created on 2019/9/10 18:51 * Created on 2019/9/10 18:51
* author:crs * author:crs
...@@ -113,4 +112,12 @@ public class DoctorController extends AccountBaseController { ...@@ -113,4 +112,12 @@ public class DoctorController extends AccountBaseController {
} }
return PicaResponse.toResponse(); return PicaResponse.toResponse();
} }
@ApiOperation(value = "注销账号")
@PostMapping("/cancel/account")
@EnabledLoginValidate
public PicaResponse<Void> cancelAccountByDoctorId(@RequestBody CancelAccountDto cancelAccountDto) {
doctorService.cancelAccountByDoctorId(cancelAccountDto, super.fetchPicaUser());
return PicaResponse.toResponse();
}
} }
package com.pica.cloud.account.account.server.entity;
import java.util.Date;
public class CancelAccountLog {
private Integer id;
private Integer doctorId;
private Integer reasonNo;
private String reasonValue;
private String reasonDesc;
private String remarks;
private Integer deleteFlag;
private Integer creatId;
private Date creatTime;
private Integer modifyId;
private Date modifyTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDoctorId() {
return doctorId;
}
public void setDoctorId(Integer doctorId) {
this.doctorId = doctorId;
}
public Integer getReasonNo() {
return reasonNo;
}
public void setReasonNo(Integer reasonNo) {
this.reasonNo = reasonNo;
}
public String getReasonValue() {
return reasonValue;
}
public void setReasonValue(String reasonValue) {
this.reasonValue = reasonValue == null ? null : reasonValue.trim();
}
public String getReasonDesc() {
return reasonDesc;
}
public void setReasonDesc(String reasonDesc) {
this.reasonDesc = reasonDesc == null ? null : reasonDesc.trim();
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks == null ? null : remarks.trim();
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getCreatId() {
return creatId;
}
public void setCreatId(Integer creatId) {
this.creatId = creatId;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
public Integer getModifyId() {
return modifyId;
}
public void setModifyId(Integer modifyId) {
this.modifyId = modifyId;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
}
\ No newline at end of file
package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.server.entity.CancelAccountLog;
public interface CancelAccountLogMapper {
int deleteByPrimaryKey(Integer id);
int insert(CancelAccountLog record);
int insertSelective(CancelAccountLog record);
CancelAccountLog selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(CancelAccountLog record);
int updateByPrimaryKey(CancelAccountLog record);
}
\ No newline at end of file
...@@ -18,4 +18,6 @@ public interface DoctorEducationMapper { ...@@ -18,4 +18,6 @@ public interface DoctorEducationMapper {
int updateByPrimaryKey(DoctorEducation record); int updateByPrimaryKey(DoctorEducation record);
int updateRevertByDocIds(List<Integer> list); int updateRevertByDocIds(List<Integer> list);
void updateByDoctorIdSelective(DoctorEducation doctorEducation);
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.mapper; ...@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.server.entity.DoctorHospital; import com.pica.cloud.account.account.server.entity.DoctorHospital;
import java.util.List; import java.util.List;
import java.util.Map;
public interface DoctorHospitalMapper { public interface DoctorHospitalMapper {
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
...@@ -18,4 +19,6 @@ public interface DoctorHospitalMapper { ...@@ -18,4 +19,6 @@ public interface DoctorHospitalMapper {
int updateByPrimaryKey(DoctorHospital record); int updateByPrimaryKey(DoctorHospital record);
int updateRevertByDocIds(List<Integer> list); int updateRevertByDocIds(List<Integer> list);
void deleteDoctorHospitalById(Map<String, Object> hospitalMap);
} }
\ No newline at end of file
package com.pica.cloud.account.account.server.model;
public class PICAPDoctorKafkaModel {
private Integer doctorId;
private Integer hospitalId;
private String hospitalName;
private Integer departmentId;
private String department;
private Integer titleId;
private String title;
private Integer provinceId;
private Long countyId;
private Long cityId;
private Long townId;
private String provinceName;
private String cityName;
private String countyName;
private String townName;
private Integer changeFlag;
public Integer getDoctorId() {
return doctorId;
}
public void setDoctorId(Integer doctorId) {
this.doctorId = doctorId;
}
public Integer getHospitalId() {
return hospitalId;
}
public void setHospitalId(Integer hospitalId) {
this.hospitalId = hospitalId;
}
public String getHospitalName() {
return hospitalName;
}
public void setHospitalName(String hospitalName) {
this.hospitalName = hospitalName;
}
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
}
public Integer getTitleId() {
return titleId;
}
public void setTitleId(Integer titleId) {
this.titleId = titleId;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getProvinceId() {
return provinceId;
}
public void setProvinceId(Integer provinceId) {
this.provinceId = provinceId;
}
public Long getCountyId() {
return countyId;
}
public void setCountyId(Long countyId) {
this.countyId = countyId;
}
public Long getCityId() {
return cityId;
}
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public Long getTownId() {
return townId;
}
public void setTownId(Long townId) {
this.townId = townId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getCountyName() {
return countyName;
}
public void setCountyName(String countyName) {
this.countyName = countyName;
}
public String getTownName() {
return townName;
}
public void setTownName(String townName) {
this.townName = townName;
}
public Integer getChangeFlag() {
return changeFlag;
}
public void setChangeFlag(Integer changeFlag) {
this.changeFlag = changeFlag;
}
}
package com.pica.cloud.account.account.server.service; package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.common.dto.CancelAccountDto;
import com.pica.cloud.account.account.server.entity.Doctor; import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.req.DoctorReq; import com.pica.cloud.account.account.server.req.DoctorReq;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import java.util.List; import java.util.List;
...@@ -59,4 +61,6 @@ public interface DoctorService { ...@@ -59,4 +61,6 @@ public interface DoctorService {
void revertAccts(List<Integer> doctorIds); void revertAccts(List<Integer> doctorIds);
List<Integer> getDoctorsByInnerOrg(); List<Integer> getDoctorsByInnerOrg();
void cancelAccountByDoctorId(CancelAccountDto cancelAccountDto, PicaUser fetchPicaUser);
} }
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.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import com.pica.cloud.account.account.common.dto.CancelAccountDto;
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.AccountInfoEntity; import com.pica.cloud.account.account.server.entity.AccountInfoEntity;
import com.pica.cloud.account.account.server.entity.CancelAccountLog;
import com.pica.cloud.account.account.server.entity.Doctor; import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.entity.DoctorEducation;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum; import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum; import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException; import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.mapper.*; import com.pica.cloud.account.account.server.mapper.*;
import com.pica.cloud.account.account.server.model.PICAPDoctorKafkaModel;
import com.pica.cloud.account.account.server.req.DoctorReq; import com.pica.cloud.account.account.server.req.DoctorReq;
import com.pica.cloud.account.account.server.service.DoctorService; import com.pica.cloud.account.account.server.service.DoctorService;
import com.pica.cloud.account.account.server.util.AESUtil; import com.pica.cloud.account.account.server.util.AESUtil;
import com.pica.cloud.account.account.server.util.AccountUtils; import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.HttpUtil;
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.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.entity.PicaWarnException; import com.pica.cloud.foundation.entity.PicaWarnException;
import com.pica.cloud.foundation.kafka.producer.ISimpleProducer;
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.utils.StringUtil; import com.pica.cloud.foundation.utils.utils.StringUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.producer.RecordMetadata;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
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;
import java.util.Arrays; import java.util.*;
import java.util.Date; import java.util.concurrent.Future;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -52,9 +65,18 @@ public class DoctorServiceImpl implements DoctorService { ...@@ -52,9 +65,18 @@ public class DoctorServiceImpl implements DoctorService {
@Autowired @Autowired
private AccountUnionMapper accountUnionMapper; private AccountUnionMapper accountUnionMapper;
@Autowired
private CancelAccountLogMapper cancelAccountLogMapper;
@Autowired @Autowired
private ICacheClient cacheClient; private ICacheClient cacheClient;
@Autowired
private ISimpleProducer<String, Object> simpleProducer;
@Value("${pica.cloud.url}")
private String picaCloudUrl;
@Value("${kafka.doctor.change.result.topic}")
private String kafkaSendTopic;
@Override @Override
public Doctor getDoctorInfo(Integer id) { public Doctor getDoctorInfo(Integer id) {
...@@ -251,6 +273,122 @@ public class DoctorServiceImpl implements DoctorService { ...@@ -251,6 +273,122 @@ public class DoctorServiceImpl implements DoctorService {
} }
} }
/**
*注销账号
* @param cancelAccountDto
* @param picaUser
*/
@Override
public void cancelAccountByDoctorId(CancelAccountDto cancelAccountDto, PicaUser picaUser) {
logger.info("DoctorServiceImpl.deleteDoctorById CancelAccountDto:{}; USER: {}", JSON.toJSONString(cancelAccountDto), JSON.toJSONString(picaUser));
Doctor doctor = doctorMapper.selectByPrimaryKey(picaUser.getId());
if (Objects.isNull(doctor)) {
throw new PicaException(PicaResultCode.PARAM_NOT_COMPLETE.code(), "未查询到要删除的用户");
}
Map<String, String> headerMap = Maps.newHashMap();
headerMap.put("token", picaUser.getToken());
/**删除账户前 查询账户是否已无资金*/
String checkExecute = HttpUtil.getHttpExecute(picaCloudUrl + "/trade/account/amount/balance/" + doctor.getId(), headerMap);
this.checkResponse(checkExecute);
boolean data = JSON.parseObject(checkExecute).getBoolean("data");
if (!data) {
throw new PicaException(PicaResultCode.DATA_EXCEPTION.code(), "要删除的账户资金未完成清算,不可删除");
}
/**删除医生信息*/
Integer acctId = doctor.getAcctId();
HashMap<String, Long> map = new HashMap<>();
map.put("id", doctor.getId().longValue());
map.put("modifyId", picaUser.getId().longValue());
doctorMapper.updateDeleteByPrimaryKey(map);
HashMap<String, Long> acctMap = new HashMap<>();
acctMap.put("modifyId", picaUser.getId().longValue());
acctMap.put("acctId", acctId.longValue());
accountInfoDetailMapper.updateDeleteByPrimaryKey(acctMap);
logger.info("deleteDoctorInfo acctId:{}", acctId);
accountUnionMapper.deleteByAcctId(acctId);
/**解绑支付账号*/
String unbindPayExecute = HttpUtil.getHttpExecute(picaCloudUrl + "/trade/account/cancelAccount?doctorId=" + doctor.getId(), headerMap);
this.checkResponse(unbindPayExecute);
/**删除教育信息*/
DoctorEducation doctorEducation = new DoctorEducation();
doctorEducation.setDoctorId(doctor.getId());
doctorEducation.setDeleteFlag(2);
doctorEducation.setModifyId(doctor.getId());
doctorEducation.setModifyTime(new Date());
doctorEducationMapper.updateByDoctorIdSelective(doctorEducation);
/**删除 医生机构关联*/
Map<String, Object> hospitalMap = Maps.newHashMap();
hospitalMap.put("modifiedId", picaUser.getId());
hospitalMap.put("doctorId", doctor.getId());
doctorHospitalMapper.deleteDoctorHospitalById(hospitalMap);
/**删除 cache*/
String token = cacheClient.getTokenByUserId(doctor.getId().toString(), "app");
if (StringUtil.isNotNull(token)) {
cacheClient.del(token);
cacheClient.del("token-doctor-" + doctor.getId());
cacheClient.del("token-doctor-" + doctor.getId() + "-app");
cacheClient.del("token-doctor-" + doctor.getId() + "-saas");
cacheClient.del("token-doctor-" + token.replace("token-",""));
}
token = cacheClient.getTokenByUserId(doctor.getId().toString(),"saas");
if (StringUtil.isNotNull(token)) {
cacheClient.del(token);
cacheClient.del("token-doctor-" + doctor.getId());
cacheClient.del("token-doctor-" + doctor.getId() + "-app");
cacheClient.del("token-doctor-" + doctor.getId() + "-saas");
cacheClient.del("token-doctor-" + token.replace("token-",""));
}
/**log*/
CancelAccountLog cancelAccountLog = new CancelAccountLog();
BeanUtils.copyProperties(cancelAccountDto, cancelAccountLog);
cancelAccountLog.setDoctorId(picaUser.getId());
cancelAccountLog.setDeleteFlag(1);
cancelAccountLog.setCreatId(picaUser.getId());
cancelAccountLog.setCreatTime(new Date());
cancelAccountLog.setModifyId(picaUser.getId());
cancelAccountLog.setModifyTime(new Date());
cancelAccountLogMapper.insert(cancelAccountLog);
/**kafka*/
PICAPDoctorKafkaModel kafkaModel = new PICAPDoctorKafkaModel();
kafkaModel.setChangeFlag(Constants.CHANGE_FLAG_3);
kafkaModel = buildKafkaModel(kafkaModel,doctor);
simpleProducer.send(kafkaSendTopic, kafkaModel);
}
private void checkResponse(String checkExecute) {
PicaResponse checkResponse = JSON.parseObject(checkExecute, PicaResponse.class);
if (!checkResponse.getCode().equals(PicaResultCode.SUCCESS.code())) {
throw new PicaException(checkResponse.getCode(), checkResponse.getMessage());
}
}
private PICAPDoctorKafkaModel buildKafkaModel(PICAPDoctorKafkaModel kafkaModel, Doctor doctor){
kafkaModel.setDoctorId(doctor.getId());
kafkaModel.setHospitalId(doctor.getHospitalId());
kafkaModel.setHospitalName(doctor.getHospital());
kafkaModel.setDepartmentId(doctor.getDepartmentId());
kafkaModel.setDepartment(doctor.getDepartment());
kafkaModel.setTitleId(doctor.getTitleId());
kafkaModel.setTitle(doctor.getTitle());
kafkaModel.setProvinceId(doctor.getProvince().intValue());
kafkaModel.setProvinceName(doctor.getProvinceName());
kafkaModel.setCityId(doctor.getCity());
kafkaModel.setCityName(doctor.getCityName());
kafkaModel.setCountyId(doctor.getCounty());
kafkaModel.setCountyName(doctor.getCountyName());
kafkaModel.setTownId(doctor.getTown());
kafkaModel.setTownName(doctor.getTownName());
return kafkaModel;
}
} }
...@@ -6,6 +6,7 @@ import com.pica.cloud.foundation.utils.utils.StringUtil; ...@@ -6,6 +6,7 @@ import com.pica.cloud.foundation.utils.utils.StringUtil;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder; import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
...@@ -14,7 +15,10 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; ...@@ -14,7 +15,10 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
...@@ -61,4 +65,50 @@ public class HttpUtil { ...@@ -61,4 +65,50 @@ public class HttpUtil {
} }
return data; return data;
} }
public static String getHttpExecute(String url, Map<String, String> headerParams) {
String result = "";
BufferedReader br = null;
CloseableHttpResponse response = null;
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Content-Type", "application/json;charset=utf-8");
if(null!=headerParams){
headerParams.forEach(httpGet::setHeader);
}
response = httpClient.execute(httpGet);
br = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
for(String output = null; (output = br.readLine()) != null; result = output) {
;
}
} catch (MalformedURLException var22) {
logger.error("获取session出错:" + var22);
} catch (IOException var23) {
logger.error("获取session出错:" + var23);
} finally {
try {
if (br != null) {
br.close();
}
} catch (Exception var21) {
logger.warn("IOException关闭异常");
}
try {
if (response != null) {
response.close();
}
} catch (Exception var20) {
logger.warn("CloseableHttpResponse关闭异常");
}
}
return result;
}
} }
...@@ -74,3 +74,7 @@ xxl.job.executor.logretentiondays=-1 ...@@ -74,3 +74,7 @@ xxl.job.executor.logretentiondays=-1
pica.cloud.message.url=https://dev-sc.yunqueyi.com/message 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
...@@ -67,6 +67,8 @@ xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler ...@@ -67,6 +67,8 @@ xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler
### xxl-job log retention days ### xxl-job log retention days
xxl.job.executor.logretentiondays=-1 xxl.job.executor.logretentiondays=-1
pica.cloud.message.url=https://sc.yunqueyi.com/message
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
...@@ -72,3 +72,6 @@ xxl.job.executor.logretentiondays=-1 ...@@ -72,3 +72,6 @@ xxl.job.executor.logretentiondays=-1
pica.cloud.message.url=https://test1-sc.yunqueyi.com/message 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
...@@ -67,3 +67,6 @@ xxl.job.accessToken= ...@@ -67,3 +67,6 @@ xxl.job.accessToken=
xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler
### xxl-job log retention days ### xxl-job log retention days
xxl.job.executor.logretentiondays=-1 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
...@@ -72,3 +72,6 @@ xxl.job.executor.logretentiondays=-1 ...@@ -72,3 +72,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
kafka.doctor.change.result.topic=8090-11907-doctor-change-result-topic
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<!-- <classPathEntry location="/Users/wangyongbo/Downloads/software/mysql-connector-java-5.1.39.jar"/>--> <!-- <classPathEntry location="/Users/wangyongbo/Downloads/software/mysql-connector-java-5.1.39.jar"/>-->
<!-- <classPathEntry location="D:\programer\reponsitory\maven\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/>--> <!-- <classPathEntry location="D:\programer\reponsitory\maven\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/>-->
<!--<classPathEntry location="E:\mysql_jar/mysql-connector-java-5.1.39.jar"/>--> <!--<classPathEntry location="E:\mysql_jar/mysql-connector-java-5.1.39.jar"/>-->
<classPathEntry location="/Users/zhoupengcheng/mysql_jar/mysql-connector-java-5.1.49.jar"/> <classPathEntry location="C:\\soft\\apache-maven-3.6.1\\resp\\mysql\\mysql-connector-java\\5.1.47\\mysql-connector-java-5.1.47.jar"/>
<context id="tableEntity" targetRuntime="MyBatis3"> <context id="tableEntity" targetRuntime="MyBatis3">
<commentGenerator> <commentGenerator>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<!-- <table tableName="account_apple_info" domainObjectName="AccountAppleInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>--> <!-- <table tableName="account_apple_info" domainObjectName="AccountAppleInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
<!-- <table tableName="account_pat_family_record" domainObjectName="AccountPatFamilyRecord" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>--> <!-- <table tableName="account_pat_family_record" domainObjectName="AccountPatFamilyRecord" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
<table tableName="log_one_chlick_check" domainObjectName="LogOneChlickCheck" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> <table tableName="cancel_account_log" domainObjectName="CancelAccountLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context> </context>
</generatorConfiguration> </generatorConfiguration>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pica.cloud.account.account.server.mapper.CancelAccountLogMapper" >
<resultMap id="BaseResultMap" type="com.pica.cloud.account.account.server.entity.CancelAccountLog" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="doctor_id" property="doctorId" jdbcType="INTEGER" />
<result column="reason_no" property="reasonNo" jdbcType="INTEGER" />
<result column="reason_value" property="reasonValue" jdbcType="VARCHAR" />
<result column="reason_desc" property="reasonDesc" jdbcType="VARCHAR" />
<result column="remarks" property="remarks" jdbcType="VARCHAR" />
<result column="delete_flag" property="deleteFlag" jdbcType="INTEGER" />
<result column="creat_id" property="creatId" jdbcType="INTEGER" />
<result column="creat_time" property="creatTime" jdbcType="TIMESTAMP" />
<result column="modify_id" property="modifyId" jdbcType="INTEGER" />
<result column="modify_time" property="modifyTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, doctor_id, reason_no, reason_value, reason_desc, remarks, delete_flag, creat_id,
creat_time, modify_id, modify_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from cancel_account_log
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from cancel_account_log
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.pica.cloud.account.account.server.entity.CancelAccountLog" >
insert into cancel_account_log (id, doctor_id, reason_no,
reason_value, reason_desc, remarks,
delete_flag, creat_id, creat_time,
modify_id, modify_time)
values (#{id,jdbcType=INTEGER}, #{doctorId,jdbcType=INTEGER}, #{reasonNo,jdbcType=INTEGER},
#{reasonValue,jdbcType=VARCHAR}, #{reasonDesc,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR},
#{deleteFlag,jdbcType=INTEGER}, #{creatId,jdbcType=INTEGER}, #{creatTime,jdbcType=TIMESTAMP},
#{modifyId,jdbcType=INTEGER}, #{modifyTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.pica.cloud.account.account.server.entity.CancelAccountLog" >
insert into cancel_account_log
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="doctorId != null" >
doctor_id,
</if>
<if test="reasonNo != null" >
reason_no,
</if>
<if test="reasonValue != null" >
reason_value,
</if>
<if test="reasonDesc != null" >
reason_desc,
</if>
<if test="remarks != null" >
remarks,
</if>
<if test="deleteFlag != null" >
delete_flag,
</if>
<if test="creatId != null" >
creat_id,
</if>
<if test="creatTime != null" >
creat_time,
</if>
<if test="modifyId != null" >
modify_id,
</if>
<if test="modifyTime != null" >
modify_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="doctorId != null" >
#{doctorId,jdbcType=INTEGER},
</if>
<if test="reasonNo != null" >
#{reasonNo,jdbcType=INTEGER},
</if>
<if test="reasonValue != null" >
#{reasonValue,jdbcType=VARCHAR},
</if>
<if test="reasonDesc != null" >
#{reasonDesc,jdbcType=VARCHAR},
</if>
<if test="remarks != null" >
#{remarks,jdbcType=VARCHAR},
</if>
<if test="deleteFlag != null" >
#{deleteFlag,jdbcType=INTEGER},
</if>
<if test="creatId != null" >
#{creatId,jdbcType=INTEGER},
</if>
<if test="creatTime != null" >
#{creatTime,jdbcType=TIMESTAMP},
</if>
<if test="modifyId != null" >
#{modifyId,jdbcType=INTEGER},
</if>
<if test="modifyTime != null" >
#{modifyTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pica.cloud.account.account.server.entity.CancelAccountLog" >
update cancel_account_log
<set >
<if test="doctorId != null" >
doctor_id = #{doctorId,jdbcType=INTEGER},
</if>
<if test="reasonNo != null" >
reason_no = #{reasonNo,jdbcType=INTEGER},
</if>
<if test="reasonValue != null" >
reason_value = #{reasonValue,jdbcType=VARCHAR},
</if>
<if test="reasonDesc != null" >
reason_desc = #{reasonDesc,jdbcType=VARCHAR},
</if>
<if test="remarks != null" >
remarks = #{remarks,jdbcType=VARCHAR},
</if>
<if test="deleteFlag != null" >
delete_flag = #{deleteFlag,jdbcType=INTEGER},
</if>
<if test="creatId != null" >
creat_id = #{creatId,jdbcType=INTEGER},
</if>
<if test="creatTime != null" >
creat_time = #{creatTime,jdbcType=TIMESTAMP},
</if>
<if test="modifyId != null" >
modify_id = #{modifyId,jdbcType=INTEGER},
</if>
<if test="modifyTime != null" >
modify_time = #{modifyTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.pica.cloud.account.account.server.entity.CancelAccountLog" >
update cancel_account_log
set doctor_id = #{doctorId,jdbcType=INTEGER},
reason_no = #{reasonNo,jdbcType=INTEGER},
reason_value = #{reasonValue,jdbcType=VARCHAR},
reason_desc = #{reasonDesc,jdbcType=VARCHAR},
remarks = #{remarks,jdbcType=VARCHAR},
delete_flag = #{deleteFlag,jdbcType=INTEGER},
creat_id = #{creatId,jdbcType=INTEGER},
creat_time = #{creatTime,jdbcType=TIMESTAMP},
modify_id = #{modifyId,jdbcType=INTEGER},
modify_time = #{modifyTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
...@@ -208,4 +208,51 @@ ...@@ -208,4 +208,51 @@
#{item} #{item}
</foreach> </foreach>
</update> </update>
<update id="updateByDoctorIdSelective"
parameterType="com.pica.cloud.account.account.server.entity.DoctorEducation">
update p_doctor_education
<set>
<if test="doctorId != null">
doctor_id = #{doctorId,jdbcType=INTEGER},
</if>
<if test="schoolName != null">
school_name = #{schoolName,jdbcType=VARCHAR},
</if>
<if test="majorId != null">
major_id = #{majorId,jdbcType=INTEGER},
</if>
<if test="majorName != null">
major_name = #{majorName,jdbcType=VARCHAR},
</if>
<if test="educationId != null">
education_id = #{educationId,jdbcType=VARCHAR},
</if>
<if test="educationName != null">
education_name = #{educationName,jdbcType=VARCHAR},
</if>
<if test="year != null">
year = #{year,jdbcType=VARCHAR},
</if>
<if test="deleteFlag != null">
delete_flag = #{deleteFlag,jdbcType=INTEGER},
</if>
<if test="creatId != null">
creat_id = #{creatId,jdbcType=INTEGER},
</if>
<if test="creatTime != null">
creat_time = #{creatTime,jdbcType=TIMESTAMP},
</if>
<if test="modifyId != null">
modify_id = #{modifyId,jdbcType=INTEGER},
</if>
<if test="modifyTime != null">
modify_time = #{modifyTime,jdbcType=TIMESTAMP},
</if>
<if test="graduatedYear != null">
graduated_year = #{graduatedYear,jdbcType=VARCHAR},
</if>
</set>
where doctor_id = #{doctorId,jdbcType=INTEGER} and delete_flag = 1
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -28,7 +28,8 @@ ...@@ -28,7 +28,8 @@
delete from doctor_hospital delete from doctor_hospital
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</delete> </delete>
<insert id="insert" parameterType="com.pica.cloud.account.account.server.entity.DoctorHospital" >
<insert id="insert" parameterType="com.pica.cloud.account.account.server.entity.DoctorHospital" >
insert into doctor_hospital (id, doctor_id, hospital_id, insert into doctor_hospital (id, doctor_id, hospital_id,
status, sys_code, memo, status, sys_code, memo,
delete_flag, created_id, created_time, delete_flag, created_id, created_time,
...@@ -173,4 +174,12 @@ ...@@ -173,4 +174,12 @@
#{item} #{item}
</foreach> </foreach>
</update> </update>
<update id="deleteDoctorHospitalById" parameterType="map">
update pica.doctor_hospital set
delete_flag = 2,
modified_id = #{modifiedId},
modified_time = now()
where delete_flag = 1 and doctor_id=#{doctorId}
</update>
</mapper> </mapper>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册