浏览代码

Merge branch 'dev' of LiTaohong/wlyy2.0 into dev

LiTaohong 6 年之前
父节点
当前提交
49fe8c40fa
共有 24 个文件被更改,包括 324 次插入401 次删除
  1. 2 2
      business/base-service/src/main/java/com/yihu/jw/patient/service/PatientMedicardCardService.java
  2. 7 8
      business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java
  3. 41 0
      business/sms-service/pom.xml
  4. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/sms/SmsDao.java
  5. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/sms/SmsGatewayDao.java
  6. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/sms/SmsTemplateDao.java
  7. 118 0
      business/sms-service/src/main/java/com/yihu/jw/sms/service/BaseSmsGatewayService.java
  8. 15 0
      business/sms-service/src/main/java/com/yihu/jw/sms/service/BaseSmsService.java
  9. 15 0
      business/sms-service/src/main/java/com/yihu/jw/sms/service/BaseSmsTemplateService.java
  10. 16 0
      business/sms-service/src/main/java/com/yihu/jw/sms/util/ConstantUtils.java
  11. 6 0
      svr/svr-base/pom.xml
  12. 45 44
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  13. 3 3
      svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageService.java
  14. 4 104
      svr/svr-base/src/main/java/com/yihu/jw/base/service/sms/SmsGatewayService.java
  15. 2 4
      svr/svr-base/src/main/java/com/yihu/jw/base/service/sms/SmsService.java
  16. 4 6
      svr/svr-base/src/main/java/com/yihu/jw/base/service/sms/SmsTemplateService.java
  17. 7 1
      svr/svr-patient/pom.xml
  18. 12 12
      svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/personal_info/BasePatientEndpoint.java
  19. 2 2
      svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/settings/FeedbackEndpoint.java
  20. 2 2
      svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/settings/HelpCenterEndpoint.java
  21. 0 158
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/BasePatientService.java
  22. 4 49
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/PatientMedicareCardService.java
  23. 12 0
      svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/PatientService.java
  24. 1 0
      wlyy-lib-parent-pom/pom.xml

+ 2 - 2
business/base-service/src/main/java/com/yihu/jw/patient/service/PatientMedicardCardService.java

@ -14,7 +14,7 @@ import java.util.Set;
/**
/**
 * 
 * 
 * 居民信息服务service
 * 居民卡包基础信息服务service
 * 
 * 
 * @version 
 * @version 
 * <pre>
 * <pre>
@ -25,7 +25,7 @@ import java.util.Set;
 * @since 1.
 * @since 1.
 */
 */
@Service
@Service
public class PatientMedicardCardService extends BaseJpaService<PatientMedicareCardDO, PatientMedicareCardDao> {
public class BasePatientMedicardCardService extends BaseJpaService<PatientMedicareCardDO, PatientMedicareCardDao> {
    @Autowired
    @Autowired
    private PatientMedicareCardDao patientMedicareCardDao;
    private PatientMedicareCardDao patientMedicareCardDao;

+ 7 - 8
business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java

@ -20,11 +20,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.Set;
import java.util.Set;
import java.util.regex.Pattern;
/**
/**
 * 
 * 
 * 居民信息服务service
 * 居民基础信息服务service
 * 
 * 
 * @version 
 * @version 
 * <pre>
 * <pre>
@ -41,7 +40,7 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
    private BasePatientDao basePatientDao;
    private BasePatientDao basePatientDao;
    @Autowired
    @Autowired
    private PatientMedicardCardService patientMedicardCardService;
    private BasePatientMedicardCardService basePatientMedicardCardService;
    @Autowired
    @Autowired
    private ObjectMapper objectMapper;
    private ObjectMapper objectMapper;
@ -67,7 +66,7 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
            return result.toString();
            return result.toString();
        }
        }
        result.put("patient",patientDOList.get(0));
        result.put("patient",patientDOList.get(0));
        List<PatientMedicareCardDO> cards = patientMedicardCardService.findPatientCardByCode(patientId);
        List<PatientMedicareCardDO> cards = basePatientMedicardCardService.findPatientCardByCode(patientId);
        result.put("medicareCard",cards);
        result.put("medicareCard",cards);
        return result.toJSONString();
        return result.toJSONString();
    }
    }
@ -123,7 +122,7 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
            }
            }
        });
        });
        this.save(basePatientDO);
        this.save(basePatientDO);
        patientMedicardCardService.batchInsert(list);
        basePatientMedicardCardService.batchInsert(list);
        return ConstantUtils.SUCCESS;
        return ConstantUtils.SUCCESS;
    }
    }
@ -146,7 +145,7 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
        }
        }
        // 保存修改的居民信息
        // 保存修改的居民信息
        this.save(basePatientDO);
        this.save(basePatientDO);
        Set<Object> cardIdList = patientMedicardCardService.findIdListByPatientCode(basePatientDO.getId());
        Set<Object> cardIdList = basePatientMedicardCardService.findIdListByPatientCode(basePatientDO.getId());
        // 有些卡可能是新增或修改的,一条一条修改居民相关的卡的信息
        // 有些卡可能是新增或修改的,一条一条修改居民相关的卡的信息
        for (Object obj : patientMedicareCards) {
        for (Object obj : patientMedicareCards) {
            PatientMedicareCardDO card = objectMapper.readValue(obj.toString(), PatientMedicareCardDO.class);
            PatientMedicareCardDO card = objectMapper.readValue(obj.toString(), PatientMedicareCardDO.class);
@ -154,11 +153,11 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
            if(cardIdList.contains(card.getId())){
            if(cardIdList.contains(card.getId())){
                cardIdList.remove(card.getId());
                cardIdList.remove(card.getId());
            }
            }
            patientMedicardCardService.save(card);
            basePatientMedicardCardService.save(card);
        }
        }
        // 有些卡可能是删除的
        // 有些卡可能是删除的
        if(cardIdList.size() > 0){
        if(cardIdList.size() > 0){
            patientMedicardCardService.delete(cardIdList.toArray());
            basePatientMedicardCardService.delete(cardIdList.toArray());
        }
        }
        return ConstantUtils.SUCCESS;
        return ConstantUtils.SUCCESS;
    }
    }

+ 41 - 0
business/sms-service/pom.xml

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.yihu.jw</groupId>
        <artifactId>wlyy-lib-parent-pom</artifactId>
        <version>2.0.0</version>
        <relativePath>../../wlyy-lib-parent-pom/pom.xml</relativePath>
    </parent>
    <groupId>com.yihu.jw</groupId>
    <artifactId>sms-service</artifactId>
    <version>${parent.version}</version>
    <dependencies>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>mysql-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-entity</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-exception</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-web</artifactId>
        </dependency>
        <!--   poi xml导入导出工具 end -->
    </dependencies>
</project>

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/dao/sms/SmsDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.sms;
package com.yihu.jw.sms.dao;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.entity.base.sms.SmsDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@ -8,6 +8,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 * Dao - 短信记录
 * Dao - 短信记录
 * Created by progr1mmer on 2018/8/23.
 * Created by progr1mmer on 2018/8/23.
 */
 */
public interface SmsDao extends PagingAndSortingRepository<SmsDO, String>, JpaSpecificationExecutor<SmsDO> {
public interface BaseSmsDao extends PagingAndSortingRepository<SmsDO, String>, JpaSpecificationExecutor<SmsDO> {
}
}

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/dao/sms/SmsGatewayDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.sms;
package com.yihu.jw.sms.dao;
import com.yihu.jw.entity.base.sms.SmsGatewayDO;
import com.yihu.jw.entity.base.sms.SmsGatewayDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@ -10,7 +10,7 @@ import java.util.List;
 * Dao - 短信网关
 * Dao - 短信网关
 * Created by progr1mmer on 2018/8/23.
 * Created by progr1mmer on 2018/8/23.
 */
 */
public interface SmsGatewayDao extends PagingAndSortingRepository<SmsGatewayDO, String>, JpaSpecificationExecutor<SmsGatewayDO> {
public interface BaseSmsGatewayDao extends PagingAndSortingRepository<SmsGatewayDO, String>, JpaSpecificationExecutor<SmsGatewayDO> {
    List<SmsGatewayDO> findByClientIdAndStatus(String clientId, SmsGatewayDO.Status status);
    List<SmsGatewayDO> findByClientIdAndStatus(String clientId, SmsGatewayDO.Status status);

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/dao/sms/SmsTemplateDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.sms;
package com.yihu.jw.sms.dao;
import com.yihu.jw.entity.base.sms.SmsTemplateDO;
import com.yihu.jw.entity.base.sms.SmsTemplateDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@ -10,7 +10,7 @@ import java.util.List;
 * Dao - 短信模板
 * Dao - 短信模板
 * Created by progr1mmer on 2018/8/23.
 * Created by progr1mmer on 2018/8/23.
 */
 */
public interface SmsTemplateDao extends PagingAndSortingRepository<SmsTemplateDO, String>, JpaSpecificationExecutor<SmsTemplateDO> {
public interface BaseSmsTemplateDao extends PagingAndSortingRepository<SmsTemplateDO, String>, JpaSpecificationExecutor<SmsTemplateDO> {
    List<SmsTemplateDO> findByClientIdAndType(String clientId, SmsTemplateDO.Type type);
    List<SmsTemplateDO> findByClientIdAndType(String clientId, SmsTemplateDO.Type type);

+ 118 - 0
business/sms-service/src/main/java/com/yihu/jw/sms/service/BaseSmsGatewayService.java

@ -0,0 +1,118 @@
package com.yihu.jw.sms.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.entity.base.sms.SmsGatewayDO;
import com.yihu.jw.entity.base.sms.SmsTemplateDO;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.sms.dao.BaseSmsDao;
import com.yihu.jw.sms.dao.BaseSmsGatewayDao;
import com.yihu.jw.sms.dao.BaseSmsTemplateDao;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.network.HttpResponse;
import com.yihu.utils.network.HttpUtils;
import com.yihu.utils.network.IPInfoUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * Service - 短信网关,发送短信
 * Created by progr1mmer on 2018/8/23.
 */
@Service
public class BaseSmsGatewayService extends BaseJpaService<SmsGatewayDO, BaseSmsGatewayDao> {
    private static final Pattern PATTERN  = Pattern.compile("\\$\\{[A-Za-z0-9]+\\}");
    @Autowired
    private BaseSmsTemplateDao baseSmsTemplateDao;
    @Autowired
    private BaseSmsGatewayDao baseSmsGatewayDao;
    @Autowired
    private BaseSmsDao baseSmsDao;
    @Autowired
    private ObjectMapper objectMapper;
    public SmsDO send(String clientId, SmsTemplateDO.Type type, String to) throws Exception {
        List<SmsGatewayDO> smsGatewayDOS = baseSmsGatewayDao.findByClientIdAndStatus(clientId, SmsGatewayDO.Status.available);
        if (smsGatewayDOS.size() == 0) {
            throw new ApiException("no gateway available");
        }
        List<SmsTemplateDO> smsTemplateDOS = baseSmsTemplateDao.findByClientIdAndType(clientId, type);
        if (smsTemplateDOS.size() == 0) {
            throw new ApiException("no template available");
        }
        Random random = new Random();
        SmsGatewayDO smsGatewayDO = smsGatewayDOS.get(random.nextInt(smsGatewayDOS.size()));
        SmsTemplateDO smsTemplateDO = smsTemplateDOS.get(random.nextInt(smsTemplateDOS.size()));
        //生成内容
        String rawContent = smsTemplateDO.getContent();
        /*
         * 0 - 验证码
         * 1 - 过期时间(分钟)
         */
        String [] contentDatas = new String[] {
                randomInt(6),
                smsGatewayDO.getExpireMin().toString()
        };
        Matcher contentMatcher = PATTERN.matcher(rawContent);
        int index = 0;
        while (contentMatcher.find()) {
            String matchWord = contentMatcher.group(0);
            rawContent = rawContent.replace(matchWord, contentDatas[index]);
            index ++;
        }
        String sendContent = smsTemplateDO.getHeader() + rawContent;
        //第三方API服务请求参数
        String rawCertificate = smsGatewayDO.getRequestCertificate();
        /*
         * 0 - 接收手机号码
         * 1 - 短信内容
         */
        String [] certificateDatas = new String[] {
                to,
                sendContent
        };
        Matcher certificateMatcher = PATTERN.matcher(rawCertificate);
        index = 0;
        while (certificateMatcher.find()) {
            String matchWord = certificateMatcher.group(0);
            rawCertificate = rawCertificate.replace(matchWord, certificateDatas[index]);
            index ++;
        }
        HttpResponse httpResponse = HttpUtils.doPost(smsGatewayDO.getRequestUrl(), objectMapper.readValue(rawCertificate, Map.class));
        if (httpResponse.isSuccessFlg()) {
            Map<String, Object> response = objectMapper.readValue(httpResponse.getContent(), Map.class);
            String responseCode = String.valueOf(response.get(smsGatewayDO.getResponseCode()));
            if (responseCode.equals(smsGatewayDO.getSuccessValue())) {
                HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
                SmsDO smsDO = new SmsDO();
                smsDO.setClientId(clientId);
                smsDO.setSmsGatewayId(smsGatewayDO.getId());
                smsDO.setRequestIp(IPInfoUtils.getIPAddress(request));
                smsDO.setMobile(to);
                smsDO.setContent(sendContent);
                smsDO.setDeadline(DateUtils.addMinutes(new Date(), smsGatewayDO.getExpireMin()));
                smsDO.setCaptcha(contentDatas[0]);
                smsDO.setType(type);
                return baseSmsDao.save(smsDO);
            } else {
                throw new ApiException(httpResponse.getContent());
            }
        } else {
            throw new ApiException(httpResponse.getContent());
        }
    }
}

+ 15 - 0
business/sms-service/src/main/java/com/yihu/jw/sms/service/BaseSmsService.java

@ -0,0 +1,15 @@
package com.yihu.jw.sms.service;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.sms.dao.BaseSmsDao;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * Service - 短信记录
 * Created by progr1mmer on 2018/9/6.
 */
@Service
public class BaseSmsService extends BaseJpaService<SmsDO, BaseSmsDao>{
}

+ 15 - 0
business/sms-service/src/main/java/com/yihu/jw/sms/service/BaseSmsTemplateService.java

@ -0,0 +1,15 @@
package com.yihu.jw.sms.service;
import com.yihu.jw.entity.base.sms.SmsTemplateDO;
import com.yihu.jw.sms.dao.BaseSmsTemplateDao;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * Service - 短信模板
 * Created by progr1mmer on 2018/8/23.
 */
@Service
public class BaseSmsTemplateService extends BaseJpaService<SmsTemplateDO, BaseSmsTemplateDao>{
}

+ 16 - 0
business/sms-service/src/main/java/com/yihu/jw/sms/util/ConstantUtils.java

@ -0,0 +1,16 @@
package com.yihu.jw.patient.util;
/**
 * @author litaohong on 2018/10/11
 * @project jw2.0
 */
public class ConstantUtils {
    public static final String SUCCESS = "success";
    public static final String FAIL = "fail";
    // 状态失效
    public static final String STATUS_0 = "0";
    // 状态有效
    public static final String STATUS_1 = "1";
}

+ 6 - 0
svr/svr-base/pom.xml

@ -183,6 +183,12 @@
            <version>2.0.0</version>
            <version>2.0.0</version>
            <scope>compile</scope>
            <scope>compile</scope>
        </dependency>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>sms-service</artifactId>
            <version>2.0.0</version>
            <scope>compile</scope>
        </dependency>
        <!--   poi xml导入导出工具 end -->
        <!--   poi xml导入导出工具 end -->

+ 45 - 44
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -226,10 +226,10 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
     * @return
     * @return
     */
     */
    @Transactional(rollbackFor = Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public String createDoctor(String jsonData){
    public String createDoctor(String jsonData) {
        JSONObject result = new JSONObject();
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(jsonData)){
            result.put("msg","jsonData is null");
        if (StringUtils.isEmpty(jsonData)) {
            result.put("msg", "jsonData is null");
            result.put("response", ConstantUtils.FAIL);
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
            return result.toJSONString();
        }
        }
@ -237,58 +237,60 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        JSONObject doctor = jsonObject.getJSONObject("doctor");
        JSONObject doctor = jsonObject.getJSONObject("doctor");
        JSONArray role = jsonObject.getJSONArray("role");
        JSONArray role = jsonObject.getJSONArray("role");
        JSONArray hospital = jsonObject.getJSONArray("hospital");
        JSONArray hospital = jsonObject.getJSONArray("hospital");
        if(null == doctor || CollectionUtils.isEmpty(hospital)){
            result.put("msg","parameter doctor or hospital of jsonData is null");
        if (null == doctor) {
            result.put("msg", "医生信息不可为空!");
            result.put("response", ConstantUtils.FAIL);
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
            return result.toJSONString();
        }
        }
        //组装医生信息
        //组装医生信息
        BaseDoctorDO baseDoctorDO = null;
        BaseDoctorDO baseDoctorDO = null;
        try {
        try {
            baseDoctorDO = objectMapper.readValue(doctor.toJSONString(),BaseDoctorDO.class);
            baseDoctorDO = objectMapper.readValue(doctor.toJSONString(), BaseDoctorDO.class);
        } catch (IOException e) {
        } catch (IOException e) {
           result.put("msg","convert doctor jsonObject to BaseDoctorDO failed," + e.getCause());
           result.put("response",ConstantUtils.FAIL);
           return result.toJSONString();
            result.put("msg", "convert doctor jsonObject to BaseDoctorDO failed," + e.getCause());
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        }
        baseDoctorDO.setPassword(baseDoctorDO.getIdcard().substring(11,17));
        baseDoctorDO.setPassword(baseDoctorDO.getIdcard().substring(11, 17));
        this.save(baseDoctorDO);
        this.save(baseDoctorDO);
        //组装医生角色关联关系,医生默认可以没有角色
        if(!CollectionUtils.isEmpty(role)){
        BaseDoctorRoleDO baseDoctorRoleDO = null;
        List<BaseDoctorRoleDO> baseDoctorRoleDOList = new ArrayList<>();
        try {
            for(Object object : role){
                baseDoctorRoleDO = objectMapper.readValue(object.toString(),BaseDoctorRoleDO.class);
                baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId());
                baseDoctorRoleDOList.add(baseDoctorRoleDO);
        //组装医生角色关联关系,医生默认可以没有角色,没有机构/部门信息等
        if (!CollectionUtils.isEmpty(role)) {
            BaseDoctorRoleDO baseDoctorRoleDO = null;
            List<BaseDoctorRoleDO> baseDoctorRoleDOList = new ArrayList<>();
            try {
                for (Object object : role) {
                    baseDoctorRoleDO = objectMapper.readValue(object.toString(), BaseDoctorRoleDO.class);
                    baseDoctorRoleDO.setDoctorCode(baseDoctorDO.getId());
                    baseDoctorRoleDOList.add(baseDoctorRoleDO);
                }
            } catch (IOException e) {
                result.put("msg", "convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause());
                result.put("response", ConstantUtils.FAIL);
                return result.toJSONString();
            }
            }
        } catch (IOException e) {
            result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause());
            result.put("response",ConstantUtils.FAIL);
            return result.toJSONString();
        }
        baseDoctorRoleService.batchInsert(baseDoctorRoleDOList);
            baseDoctorRoleService.batchInsert(baseDoctorRoleDOList);
        }
        }
        // 组装医生任职机构及职业信息
        BaseDoctorHospitalDO baseDoctorHospitalDO = null;
        List<BaseDoctorHospitalDO> hospitalDOList = new ArrayList<>();
        try {
            for(Object object : hospital){
                baseDoctorHospitalDO = objectMapper.readValue(object.toString(),BaseDoctorHospitalDO.class);
                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId());
                hospitalDOList.add(baseDoctorHospitalDO);
        // 组装医生任职机构及职业信息,医生默认可以没有角色,没有机构/部门信息等
        if (!CollectionUtils.isEmpty(hospital)) {
            BaseDoctorHospitalDO baseDoctorHospitalDO = null;
            List<BaseDoctorHospitalDO> hospitalDOList = new ArrayList<>();
            try {
                for (Object object : hospital) {
                    baseDoctorHospitalDO = objectMapper.readValue(object.toString(), BaseDoctorHospitalDO.class);
                    baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId());
                    hospitalDOList.add(baseDoctorHospitalDO);
                }
            } catch (IOException e) {
                result.put("msg", "convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause());
                result.put("response", ConstantUtils.FAIL);
                return result.toJSONString();
            }
            }
        } catch (IOException e) {
            result.put("msg","convert hospital jsonObject to baseDoctorHospitalDO failed," + e.getCause());
            result.put("response",ConstantUtils.FAIL);
            return result.toJSONString();
            baseDoctorHospitalService.batchInsert(hospitalDOList);
        }
        }
        baseDoctorHospitalService.batchInsert(hospitalDOList);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg",baseDoctorDO);
        result.put("response", ConstantUtils.SUCCESS);
        result.put("msg", baseDoctorDO);
        return result.toJSONString();
        return result.toJSONString();
    }
    }
@ -310,7 +312,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        JSONArray role = jsonObject.getJSONArray("role");
        JSONArray role = jsonObject.getJSONArray("role");
        JSONArray hospital = jsonObject.getJSONArray("hospital");
        JSONArray hospital = jsonObject.getJSONArray("hospital");
        if(null == doctor){
        if(null == doctor){
            result.put("msg","parameter role of jsonData is null");
            result.put("msg","parameter doctor of jsonData is null");
            result.put("response", ConstantUtils.FAIL);
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
            return result.toJSONString();
        }
        }
@ -334,7 +336,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        }
        }
        this.save(baseDoctorDO);
        this.save(baseDoctorDO);
        //修改医生角色关联关系,医生默认可以没有角色
        //修改医生角色关联关系,医生默认可以没有角色,前端不修改就不做任何操作
        if(!CollectionUtils.isEmpty(role)){
        if(!CollectionUtils.isEmpty(role)){
            BaseDoctorRoleDO baseDoctorRoleDO = null;
            BaseDoctorRoleDO baseDoctorRoleDO = null;
            Set<Object> roleIdList = baseDoctorRoleService.findRoleIdList(baseDoctorDO.getId());
            Set<Object> roleIdList = baseDoctorRoleService.findRoleIdList(baseDoctorDO.getId());
@ -356,8 +358,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
            }
            }
        }
        }
        // 修改医生任职机构及职业信息,前端不修改就不做任何操作
        // 修改医生任职机构及职业信息,,医生默认可以没有机构/部门信息,前端不修改就不做任何操作
         if(!CollectionUtils.isEmpty(hospital)){
         if(!CollectionUtils.isEmpty(hospital)){
             BaseDoctorHospitalDO baseDoctorHospitalDO = null;
             BaseDoctorHospitalDO baseDoctorHospitalDO = null;
             Set<Object> hospitalIdList = baseDoctorHospitalService.findDocHospIdList(baseDoctorDO.getId());
             Set<Object> hospitalIdList = baseDoctorHospitalService.findDocHospIdList(baseDoctorDO.getId());

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageService.java

@ -61,7 +61,7 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    public ServicePackageDO addRehabilitation(RehabilitationVO rehabilitationVO,ServicePackageSignRecordDO signRecordDO) throws Exception{
    public ServicePackageDO addRehabilitation(RehabilitationVO rehabilitationVO,ServicePackageSignRecordDO signRecordDO) throws Exception{
        ServicePackageVO servicePackageVO = rehabilitationVO.getServicePackageVO();
        ServicePackageVO servicePackageVO = rehabilitationVO.getServicePackageVO();
        ServicePackageDO servicePackageDO = convertToModelDO(servicePackageVO);
        ServicePackageDO servicePackageDO = convertToModelDO(servicePackageVO);
        List<ServicePackageDetailsDO> detailsDOList = servicePackageDO.getDetailsDOList();
        /*List<ServicePackageDetailsDO> detailsDOList = servicePackageDO.getDetailsDOList();
        //新增服务包主表
        //新增服务包主表
        servicePackageDO.setCreateTime(new Date());
        servicePackageDO.setCreateTime(new Date());
        servicePackageDO.setDel(1);
        servicePackageDO.setDel(1);
@ -99,7 +99,7 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
        logVO.setUserType(ServicePackageLogVO.UserType.doctor.getValue());
        logVO.setUserType(ServicePackageLogVO.UserType.doctor.getValue());
        logVO.setUserCode(signRecordDO.getSignDoctor());
        logVO.setUserCode(signRecordDO.getSignDoctor());
        logVO.setUserName(signRecordDO.getSignDoctorName());
        logVO.setUserName(signRecordDO.getSignDoctorName());
        elastricSearchHelper.save(servicePackLongIndex,servicePackLongType, objectMapper.writeValueAsString(logVO));
        elastricSearchHelper.save(servicePackLongIndex,servicePackLongType, objectMapper.writeValueAsString(logVO));*/
        return servicePackageDO;
        return servicePackageDO;
    }
    }
@ -157,7 +157,7 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
        BeanUtils.copyProperties(servicePackageVO, target);
        BeanUtils.copyProperties(servicePackageVO, target);
        List<ServicePackageDetailsDO> voList = convertToModels(servicePackageVO.getDetailsVOList(),new ArrayList<>(servicePackageVO.getDetailsVOList().size()),ServicePackageDetailsDO.class);
        List<ServicePackageDetailsDO> voList = convertToModels(servicePackageVO.getDetailsVOList(),new ArrayList<>(servicePackageVO.getDetailsVOList().size()),ServicePackageDetailsDO.class);
        target.setDetailsDOList(voList);
//        target.setDetailsDOList(voList);
        return target;
        return target;
    }
    }
}
}

+ 4 - 104
svr/svr-base/src/main/java/com/yihu/jw/base/service/sms/SmsGatewayService.java

@ -1,115 +1,15 @@
package com.yihu.jw.base.service.sms;
package com.yihu.jw.base.service.sms;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.sms.SmsDao;
import com.yihu.jw.base.dao.sms.SmsGatewayDao;
import com.yihu.jw.base.dao.sms.SmsTemplateDao;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.entity.base.sms.SmsGatewayDO;
import com.yihu.jw.entity.base.sms.SmsTemplateDO;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.sms.service.BaseSmsGatewayService;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.network.HttpResponse;
import com.yihu.utils.network.HttpUtils;
import com.yihu.utils.network.IPInfoUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
/**
 * Service - 短信网关
 * Created by progr1mmer on 2018/8/23.
 * Service - 短信记录
 * Created by progr1mmer on 2018/9/6.
 */
 */
@Service
@Service
public class SmsGatewayService extends BaseJpaService<SmsGatewayDO, SmsGatewayDao> {
    private static final Pattern PATTERN  = Pattern.compile("\\$\\{[A-Za-z0-9]+\\}");
    @Autowired
    private SmsTemplateDao smsTemplateDao;
    @Autowired
    private SmsGatewayDao smsGatewayDao;
    @Autowired
    private SmsDao smsDao;
    @Autowired
    private ObjectMapper objectMapper;
    public SmsDO send(String clientId, SmsTemplateDO.Type type, String to) throws Exception {
        List<SmsGatewayDO> smsGatewayDOS = smsGatewayDao.findByClientIdAndStatus(clientId, SmsGatewayDO.Status.available);
        if (smsGatewayDOS.size() == 0) {
            throw new ApiException("no gateway available");
        }
        List<SmsTemplateDO> smsTemplateDOS = smsTemplateDao.findByClientIdAndType(clientId, type);
        if (smsTemplateDOS.size() == 0) {
            throw new ApiException("no template available");
        }
        Random random = new Random();
        SmsGatewayDO smsGatewayDO = smsGatewayDOS.get(random.nextInt(smsGatewayDOS.size()));
        SmsTemplateDO smsTemplateDO = smsTemplateDOS.get(random.nextInt(smsTemplateDOS.size()));
        //生成内容
        String rawContent = smsTemplateDO.getContent();
        /*
         * 0 - 验证码
         * 1 - 过期时间(分钟)
         */
        String [] contentDatas = new String[] {
                randomInt(6),
                smsGatewayDO.getExpireMin().toString()
        };
        Matcher contentMatcher = PATTERN.matcher(rawContent);
        int index = 0;
        while (contentMatcher.find()) {
            String matchWord = contentMatcher.group(0);
            rawContent = rawContent.replace(matchWord, contentDatas[index]);
            index ++;
        }
        String sendContent = smsTemplateDO.getHeader() + rawContent;
        //第三方API服务请求参数
        String rawCertificate = smsGatewayDO.getRequestCertificate();
        /*
         * 0 - 接收手机号码
         * 1 - 短信内容
         */
        String [] certificateDatas = new String[] {
                to,
                sendContent
        };
        Matcher certificateMatcher = PATTERN.matcher(rawCertificate);
        index = 0;
        while (certificateMatcher.find()) {
            String matchWord = certificateMatcher.group(0);
            rawCertificate = rawCertificate.replace(matchWord, certificateDatas[index]);
            index ++;
        }
        HttpResponse httpResponse = HttpUtils.doPost(smsGatewayDO.getRequestUrl(), objectMapper.readValue(rawCertificate, Map.class));
        if (httpResponse.isSuccessFlg()) {
            Map<String, Object> response = objectMapper.readValue(httpResponse.getContent(), Map.class);
            String responseCode = String.valueOf(response.get(smsGatewayDO.getResponseCode()));
            if (responseCode.equals(smsGatewayDO.getSuccessValue())) {
                HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
                SmsDO smsDO = new SmsDO();
                smsDO.setClientId(clientId);
                smsDO.setSmsGatewayId(smsGatewayDO.getId());
                smsDO.setRequestIp(IPInfoUtils.getIPAddress(request));
                smsDO.setMobile(to);
                smsDO.setContent(sendContent);
                smsDO.setDeadline(DateUtils.addMinutes(new Date(), smsGatewayDO.getExpireMin()));
                smsDO.setCaptcha(contentDatas[0]);
                smsDO.setType(type);
                return smsDao.save(smsDO);
            } else {
                throw new ApiException(httpResponse.getContent());
            }
        } else {
            throw new ApiException(httpResponse.getContent());
        }
    }
public class SmsGatewayService extends BaseSmsGatewayService {
}
}

+ 2 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/service/sms/SmsService.java

@ -1,8 +1,6 @@
package com.yihu.jw.base.service.sms;
package com.yihu.jw.base.service.sms;
import com.yihu.jw.base.dao.sms.SmsDao;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.jw.sms.service.BaseSmsService;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
/**
/**
@ -10,6 +8,6 @@ import org.springframework.stereotype.Service;
 * Created by progr1mmer on 2018/9/6.
 * Created by progr1mmer on 2018/9/6.
 */
 */
@Service
@Service
public class SmsService extends BaseJpaService<SmsDO, SmsDao>{
public class SmsService extends BaseSmsService {
}
}

+ 4 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/service/sms/SmsTemplateService.java

@ -1,15 +1,13 @@
package com.yihu.jw.base.service.sms;
package com.yihu.jw.base.service.sms;
import com.yihu.jw.base.dao.sms.SmsTemplateDao;
import com.yihu.jw.entity.base.sms.SmsTemplateDO;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.jw.sms.service.BaseSmsTemplateService;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
/**
/**
 * Service - 短信模板
 * Created by progr1mmer on 2018/8/23.
 * Service - 短信记录
 * Created by progr1mmer on 2018/9/6.
 */
 */
@Service
@Service
public class SmsTemplateService extends BaseJpaService<SmsTemplateDO, SmsTemplateDao>{
public class SmsTemplateService extends BaseSmsTemplateService {
}
}

+ 7 - 1
svr/svr-patient/pom.xml

@ -179,11 +179,17 @@
        </dependency>
        </dependency>
        <!--   poi xml导入导出工具 end -->
        <!--   poi xml导入导出工具 end -->
        <!--基础业务组件-->
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>base-service</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>
    </dependencies>
    <build>
    <build>
        <finalName>svr-base</finalName>
        <finalName>svr-patient</finalName>
        <plugins>
        <plugins>
            <plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <groupId>org.springframework.boot</groupId>

+ 12 - 12
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/personal_info/BasePatientEndpoint.java

@ -1,8 +1,8 @@
package com.yihu.jw.patient.endpoint.personal_info;
package com.yihu.jw.patient.endpoint.personal_info;
import com.yihu.jw.base.service.patient.BasePatientService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.patient.service.personal_Info.PatientService;
import com.yihu.jw.patient.util.ConstantUtils;
import com.yihu.jw.restmodel.base.patient.BasePatientVO;
import com.yihu.jw.restmodel.base.patient.BasePatientVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
@ -32,17 +32,17 @@ import java.util.Map;
@RestController
@RestController
@RequestMapping(value = BaseRequestMapping.BasePatient.PREFIX)
@RequestMapping(value = BaseRequestMapping.BasePatient.PREFIX)
@Api(value = "居民信息管理", description = "居民信息管理服务接口", tags = {"wlyy基础服务 - 居民信息管理服务接口"})
@Api(value = "居民信息管理", description = "居民信息管理服务接口", tags = {"wlyy基础服务 - 居民信息管理服务接口"})
public class BasePatientEndpoint extends EnvelopRestEndpoint {
public class PatientEndpoint extends EnvelopRestEndpoint {
    @Autowired
    @Autowired
    private BasePatientService basePatientService;
    private PatientService patientService;
    @PostMapping(value = BaseRequestMapping.BasePatient.CREATE)
    @PostMapping(value = BaseRequestMapping.BasePatient.CREATE)
    @ApiOperation(value = "创建")
    @ApiOperation(value = "创建")
    public Envelop create(
    public Envelop create(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
            @RequestParam String jsonData) throws Exception {
       String msg = basePatientService.createPatient(jsonData);
       String msg = patientService.createPatient(jsonData);
       if(!StringUtils.equalsIgnoreCase(ConstantUtils.SUCCESS,msg)){
       if(!StringUtils.equalsIgnoreCase(ConstantUtils.SUCCESS,msg)){
           return success(msg);
           return success(msg);
       }
       }
@ -54,7 +54,7 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
    public Envelop delete(
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
            @RequestParam(value = "ids") String ids) {
        basePatientService.delete(ids.split(","));
        patientService.delete(ids.split(","));
        return success("删除成功");
        return success("删除成功");
    }
    }
@ -63,7 +63,7 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
    public Envelop update(
    public Envelop update(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
            @RequestParam String jsonData) throws Exception {
        String msg = basePatientService.updatePatient(jsonData);
        String msg = patientService.updatePatient(jsonData);
        if(!StringUtils.equalsIgnoreCase(ConstantUtils.SUCCESS,msg)){
        if(!StringUtils.equalsIgnoreCase(ConstantUtils.SUCCESS,msg)){
            return failed(msg);
            return failed(msg);
        }
        }
@ -75,7 +75,7 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
    public Envelop getPatientById(
    public Envelop getPatientById(
            @ApiParam(name = "id", value = "居民id")
            @ApiParam(name = "id", value = "居民id")
            @RequestParam(value = "id", required = true) String id) throws Exception {
            @RequestParam(value = "id", required = true) String id) throws Exception {
        String result = basePatientService.getPatientById(id);
        String result = patientService.getPatientById(id);
        return success(result);
        return success(result);
    }
    }
@ -92,8 +92,8 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "page") int page,
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
            @RequestParam(value = "size") int size) throws Exception {
        List<BasePatientDO> basePatients = basePatientService.search(fields, filters, sorts, page, size);
        int count = (int) basePatientService.getCount(filters);
        List<BasePatientDO> basePatients = patientService.search(fields, filters, sorts, page, size);
        int count = (int) patientService.getCount(filters);
        return success(basePatients, count, page, size, BasePatientVO.class);
        return success(basePatients, count, page, size, BasePatientVO.class);
    }
    }
@ -106,7 +106,7 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "filters", required = false) String filters,
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        List<BasePatientDO> basePatients = basePatientService.search(fields, filters, sorts);
        List<BasePatientDO> basePatients = patientService.search(fields, filters, sorts);
        return success(basePatients, BasePatientVO.class);
        return success(basePatients, BasePatientVO.class);
    }
    }
@ -122,7 +122,7 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        List<Map<String,Object>> basePatients = basePatientService.queryPatientBaseInfo(nameOrIdcard, page,size,sorts);
        List<Map<String,Object>> basePatients = patientService.queryPatientBaseInfo(nameOrIdcard, page,size,sorts);
        return success(basePatients);
        return success(basePatients);
    }
    }
}
}

+ 2 - 2
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/settings/FeedbackEndpoint.java

@ -1,7 +1,8 @@
package com.yihu.jw.patient.endpoint.settings;
package com.yihu.jw.patient.endpoint.settings;
import com.yihu.jw.entity.base.patient.FeedbackDO;
import com.yihu.jw.patient.service.settings.FeedbackService;
import com.yihu.jw.patient.service.settings.FeedbackService;
import com.yihu.jw.restmodel.base.dict.FeedbackVO;
import com.yihu.jw.restmodel.base.patient.FeedbackVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -15,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.List;
import com.yihu.jw.entity.base.FeedbackDO;
/**
/**
*
*

+ 2 - 2
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/settings/HelpCenterEndpoint.java

@ -1,7 +1,8 @@
package com.yihu.jw.patient.endpoint.settings;
package com.yihu.jw.patient.endpoint.settings;
import com.yihu.jw.entity.base.patient.HelpCenterDO;
import com.yihu.jw.patient.service.settings.HelpCenterService;
import com.yihu.jw.patient.service.settings.HelpCenterService;
import com.yihu.jw.restmodel.base.dict.HelpCenterVO;
import com.yihu.jw.restmodel.base.patient.HelpCenterVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -15,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.List;
import com.yihu.jw.entity.base.HelpCenterDO;
/**
/**
*
*

+ 0 - 158
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/BasePatientService.java

@ -1,158 +0,0 @@
package com.yihu.jw.patient.service.personal_Info;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.patient.dao.personal_info.BasePatientDao;
import com.yihu.jw.patient.util.ConstantUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
/**
 * 
 * 居民信息服务service
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * litaohong    1.0  2018年08月31日 Created
 *
 * </pre>
 * @since 1.
 */
@Service
public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatientDao> {
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private PatientMedicareCardService patientMedicardCardService;
    @Autowired
    private ObjectMapper objectMapper;
    /**
     * 居民id
     * @param patientId
     * @return
     */
    public String getPatientById(String patientId) throws Exception{
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(patientId)){
            result.put("result","parameter patientId is null");
            return result.toString();
        }
        List<BasePatientDO> patientDOList = this.findByField("id",patientId);
        if(CollectionUtils.isEmpty(patientDOList)){
            result.put("result","not exist patient for id:"+patientId);
            return result.toString();
        }
        result.put("patient",patientDOList.get(0));
        List<PatientMedicareCardDO> cards = patientMedicardCardService.findPatientCardByCode(patientId);
        result.put("medicareCard",cards);
        return result.toJSONString();
    }
    /**
     * 获取用户基础信息,参数为空查全部
     * @param nameOrIdcard
     * @param page
     * @param size
     * @param sorts
     * @return
     */
    public List<Map<String,Object>> queryPatientBaseInfo(String nameOrIdcard,int page,int size,String sorts)throws Exception{
        List<Map<String,Object>> result = new ArrayList<>();
        if(StringUtils.isEmpty(nameOrIdcard)){
            result = basePatientDao.findBaseInfo(createPage(page,size,sorts));
        }else{
            String pattern = "^\\d+";
            boolean isMatch = Pattern.matches(pattern, nameOrIdcard);
            if(isMatch){
                result = basePatientDao.findByIdcard("%"+nameOrIdcard+"%",createPage(page,size,sorts));
                return result;
            }else{
                result = basePatientDao.findByName("%"+nameOrIdcard+"%",createPage(page,size,sorts));
                return result;
            }
        }
        return result;
    }
    /**
     * 新增居民
     * @param jsonData
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public String createPatient(String jsonData) throws Exception {
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        JSONObject patient = jsonObject.getJSONObject("patient");
        JSONArray patientMedicareCards = jsonObject.getJSONArray("medicareCard");
        if(null == patient || CollectionUtils.isEmpty(patientMedicareCards)){
            return ConstantUtils.FAIL;
        }
        BasePatientDO basePatientDO = objectMapper.readValue(patient.toJSONString(),BasePatientDO.class);
        List<PatientMedicareCardDO> list = new ArrayList<>();
        patientMedicareCards.forEach((card)->{
            try {
                list.add(objectMapper.readValue(card.toString(),PatientMedicareCardDO.class));
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
        this.save(basePatientDO);
        patientMedicardCardService.batchInsert(list);
        return ConstantUtils.SUCCESS;
    }
    /**
     * 修改居民
     * @param jsonData
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public String updatePatient(String jsonData) throws Exception {
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        JSONObject patient = jsonObject.getJSONObject("patient");
        JSONArray patientMedicareCards = jsonObject.getJSONArray("medicareCard");
        if(null == patient || CollectionUtils.isEmpty(patientMedicareCards)){
            return ConstantUtils.FAIL;
        }
        BasePatientDO basePatientDO = objectMapper.readValue(patient.toJSONString(),BasePatientDO.class);
        if(StringUtils.isEmpty(basePatientDO.getId())){
            return ConstantUtils.FAIL;
        }
        // 保存修改的居民信息
        this.save(basePatientDO);
        Set<Object> cardIdList = patientMedicardCardService.findIdListByPatientCode(basePatientDO.getId());
        // 有些卡可能是新增或修改的,一条一条修改居民相关的卡的信息
        for (Object obj : patientMedicareCards) {
            PatientMedicareCardDO card = objectMapper.readValue(obj.toString(), PatientMedicareCardDO.class);
            card.setPatientCode(basePatientDO.getId());
            if(cardIdList.contains(card.getId())){
                cardIdList.remove(card.getId());
            }
            patientMedicardCardService.save(card);
        }
        // 有些卡可能是删除的
        if(cardIdList.size() > 0){
            patientMedicardCardService.delete(cardIdList.toArray());
        }
        return ConstantUtils.SUCCESS;
    }
}

+ 4 - 49
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/PatientMedicareCardService.java

@ -1,58 +1,13 @@
package com.yihu.jw.patient.service.personal_Info;
package com.yihu.jw.patient.service.personal_Info;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.patient.dao.personal_info.PatientMedicareCardDao;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.yihu.jw.patient.service.BasePatientMedicardCardService;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
/**
 * 
 * 居民卡包服务service
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * Administrator    1.0  2018年11月27日 Created
 *
 * </pre>
 * @since 1.
 * 居民卡包信息服务
 * @author litaohong on  2018年11月28日
 */
 */
@Service
@Service
public class PatientMedicareCardService extends BaseJpaService<PatientMedicareCardDO, PatientMedicareCardDao> {
    @Autowired
    private PatientMedicareCardDao patientMedicareCardDao;
    /**
     * 根据居民标识获取居民医疗相关卡列表
     * @param patientCode
     * @return
     */
    public List<PatientMedicareCardDO> findPatientCardByCode(String patientCode){
        List<PatientMedicareCardDO> result = new ArrayList<>();
        if(StringUtils.isEmpty(patientCode)){
            return result;
        }
        return patientMedicareCardDao.findByPatientCode(patientCode);
    }
    /**
     * 根据居民标识获取关联卡id列表
     * @param patientCode
     * @return
     */
    public Set<Object> findIdListByPatientCode(String patientCode){
        Set<Object> result = new HashSet<>();
        if(StringUtils.isEmpty(patientCode)){
            return result;
        }
        return patientMedicareCardDao.findIdListByPatientCode(patientCode);
    }
public class PatientMedicareCardService extends BasePatientMedicardCardService {
}
}

+ 12 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/PatientService.java

@ -0,0 +1,12 @@
package com.yihu.jw.patient.service.personal_Info;
import com.yihu.jw.patient.service.BasePatientService;
import org.springframework.stereotype.Service;
/**
 * 居民信息服务
 * @author litaohong on  2018年11月28日
 */
@Service
public class PatientService extends BasePatientService {
}

+ 1 - 0
wlyy-lib-parent-pom/pom.xml

@ -27,6 +27,7 @@
        <module>../common/common-web</module>
        <module>../common/common-web</module>
        <module>../common/common-tracer</module>
        <module>../common/common-tracer</module>
        <module>../business/base-service</module>
        <module>../business/base-service</module>
        <module>../business/sms-service</module>
    </modules>
    </modules>
</project>
</project>