提交 cd1e8dca 编写于 作者:  Peijun.zhao's avatar Peijun.zhao

提供批量初始化接口

上级 96e5c531
流水线 #25607 已失败 于阶段
in 1 second
// Copyright 2016-2101 Pica.
package com.pica.cloud.account.account.common.req;
import io.swagger.annotations.ApiModel;
/**
* @ClassName InitAcctReq
* @Description TODO
* @Author peijun.zhao
* @Date 2020/5/20 10:46
* @ModifyDate 2020/5/20 10:46
* @Version 1.0
*/
@ApiModel
public class InitAcctReq {
private Integer patId;
private String mobile;
private String encryMobile;
public String getEncryMobile() {
return encryMobile;
}
public void setEncryMobile(String encryMobile) {
this.encryMobile = encryMobile;
}
public Integer getPatId() {
return patId;
}
public void setPatId(Integer patId) {
this.patId = patId;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
}
......@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.common.req.AcctPatFamilyReq;
import com.pica.cloud.account.account.common.req.AcctPatInfoReq;
import com.pica.cloud.account.account.common.req.InitAcctReq;
import com.pica.cloud.account.account.common.resp.PatBindResp;
import com.pica.cloud.account.account.common.resp.PatFamilyResp;
import com.pica.cloud.account.account.server.service.PatHealthPackService;
......@@ -80,6 +81,11 @@ public class PatHealthPackController {
}
@ApiOperation("初始主账户数据")
@PostMapping(value = "/init/accts")
public PicaResponse initAccts(@RequestBody List<InitAcctReq> initAcctReqList) throws Exception {
return PicaResponse.toResponse(packService.initAccts(initAcctReqList));
}
}
......@@ -63,7 +63,7 @@ public enum AccountExceptionEnum {
PAT_UNIONID_BINDED_ERROR("216554","该unionid已被其他手机号绑定"),
PAT_MOBILE_BINDED_WECHAT_ERROR("216555","该手机已绑定其他微信"),
PAT_MEMBER_HAS_BINDED_SELF("216556","该成员已被账户绑定为家庭成员,不需要再次绑定"),
PAT_HAS_CREATE_ACCT("216557","初始居民已存在主账户"),
xxx_xxx("","");
......
......@@ -31,5 +31,8 @@ public interface AcctPatFamilyMapper {
List<AcctPatFamily> getListByPatIds(List<Integer> patIds);
List<AcctPatFamily> getByPatIdSelfList(List<Integer> patIds);
int initBatch(List<AcctPatFamily> list);
}
\ No newline at end of file
package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.common.req.InitAcctReq;
import com.pica.cloud.account.account.server.entity.AcctPatInfo;
import java.util.List;
......@@ -20,4 +21,8 @@ public interface AcctPatInfoMapper {
List<AcctPatInfo> selectByCondition(AcctPatInfo record);
int initBatch(List<AcctPatInfo> list);
List<AcctPatInfo> getListByMobiles(List<String> mobile);
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.common.req.AcctPatFamilyReq;
import com.pica.cloud.account.account.common.req.AcctPatInfoReq;
import com.pica.cloud.account.account.common.req.InitAcctReq;
import com.pica.cloud.account.account.common.resp.PatBindResp;
import com.pica.cloud.account.account.common.resp.PatFamilyResp;
......@@ -34,4 +35,6 @@ public interface PatHealthPackService {
Integer getFamilyAcctPatId(Integer patId);
Integer initAccts(List<InitAcctReq> list);
}
......@@ -4,6 +4,7 @@ package com.pica.cloud.account.account.server.service.impl;
import com.pica.cloud.account.account.common.req.AcctPatFamilyDto;
import com.pica.cloud.account.account.common.req.AcctPatFamilyReq;
import com.pica.cloud.account.account.common.req.AcctPatInfoReq;
import com.pica.cloud.account.account.common.req.InitAcctReq;
import com.pica.cloud.account.account.common.resp.PatBindResp;
import com.pica.cloud.account.account.common.resp.PatFamilyResp;
import com.pica.cloud.account.account.server.entity.AcctPatFamily;
......@@ -314,4 +315,51 @@ public class PatHealthPackServiceIml implements PatHealthPackService {
}
return rtnPatId;
}
@Transactional
@Override
public Integer initAccts(List<InitAcctReq> list) {
for(InitAcctReq initAcctReq : list){
initAcctReq.setEncryMobile(EncryptUtils.encryptContent(initAcctReq.getMobile(),EncryptConstants.ENCRYPT_TYPE_MOBILE));
}
List<Integer> patIds = list.stream().map(obj -> obj.getPatId()).collect(toList());
List<String> mobiles = list.stream().map(obj -> obj.getMobile()).collect(toList());
List<String> encryMobiles = list.stream().map(obj -> obj.getEncryMobile()).collect(toList());
List<AcctPatFamily> checkPatIdList = patFamilyMapper.getByPatIdSelfList(patIds);
if(CollectionUtils.isNotEmpty(checkPatIdList)){
//病人id在成员表中 作为主账户不存在
throw new PicaException(AccountExceptionEnum.PAT_HAS_CREATE_ACCT.getCode(), AccountExceptionEnum.PAT_HAS_CREATE_ACCT.getMessage());
}
List<AcctPatInfo> checkMobileList = patInfoMapper.getListByMobiles(encryMobiles);
if(CollectionUtils.isNotEmpty(checkMobileList)){
throw new PicaException(AccountExceptionEnum.PAT_HAS_CREATE_ACCT.getCode(), AccountExceptionEnum.PAT_HAS_CREATE_ACCT.getMessage());
}
//初始主账户数据
List<AcctPatInfo> infoList = new ArrayList<>();
for(InitAcctReq initAcctReq : list){
AcctPatInfo patInfo = new AcctPatInfo();
patInfo.setMobilePhone(initAcctReq.getEncryMobile());
infoList.add(patInfo);
}
patInfoMapper.initBatch(infoList);
//获取入库账户ID 关联成员表;
// List<AcctPatInfo> saveAccts = patInfoMapper.getListByMobiles(encryMobiles);
List<AcctPatFamily> saveList = new ArrayList<>();
for(AcctPatInfo acct : infoList){
for(InitAcctReq req : list){
AcctPatFamily family = new AcctPatFamily();
if(req.getEncryMobile().equals(acct.getMobilePhone())){
family.setRelation(1);
family.setPatientId(req.getPatId());
family.setAcctId(acct.getId());
saveList.add(family);
break;
}
}
}
patFamilyMapper.initBatch(saveList);
return 1;
}
}
......@@ -185,4 +185,32 @@
and delete_flag = 1;
</select>
<select id="getByPatIdSelfList" parameterType="java.util.List" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from account_pat_family
where patient_id IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
and relation = 1
and delete_flag = 1;
</select>
<insert id="initBatch" parameterType="java.util.List">
insert into account_pat_family(
acct_id, patient_id,relation,
delete_flag, created_id, created_time,
modified_id, modified_time
)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.acctId},#{item.patientId},#{item.relation},
1,99999999,now(),
99999999,now()
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
......@@ -231,5 +231,36 @@
</if>
</select>
<select id="getListByMobiles" resultMap="BaseResultMap" parameterType="java.util.List" >
select
<include refid="Base_Column_List" />
from account_pat_info
where delete_flag = 1
and mobile_phone IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<insert id="initBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into account_pat_info(
name, mobile_phone,
password, register_product,register_source,
birthday, age, sex,id_card,reg_time,
delete_flag, created_id, created_time,
modified_id, modified_time
)
values
<foreach collection="list" item="item" index="index" separator=",">
(
null,#{item.mobilePhone},
null,1,6,
null,null,null,null,now(),
1,99999999,now(),
99999999,now()
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册