123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package com.diagbot.facade;
- import com.diagbot.dto.SaveInquiryDTO;
- import com.diagbot.entity.Client;
- import com.diagbot.entity.InquiryDetail;
- import com.diagbot.entity.InquiryInfo;
- import com.diagbot.entity.JSONResponseBean;
- import com.diagbot.entity.Request;
- import com.diagbot.entity.Response;
- import com.diagbot.exception.CommonErrorCode;
- import com.diagbot.exception.CommonException;
- import com.diagbot.service.impl.InquiryDetailServiceImpl;
- import com.diagbot.service.impl.InquiryInfoServiceImpl;
- import com.diagbot.util.BeanUtil;
- import com.diagbot.util.DateUtil;
- import com.diagbot.util.StringUtil;
- import com.diagbot.vo.SaveInquiryVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @Description:
- * @author: rengb
- * @time: 2020/2/1 23:33
- */
- @Component
- public class InquiryInfoFacade extends InquiryInfoServiceImpl {
- // @Autowired
- // private InquiryDetailFacade inquiryDetailFacade;
- @Autowired
- @Qualifier("inquiryDetailServiceImpl")
- private InquiryDetailServiceImpl inquiryDetailService;
- @Value("${nali.apiUrl}")
- private String apiUrl;
- @Value("${nali.appKey}")
- private String appKey;
- @Value("${nali.appSecret}")
- private String appSecret;
- public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO) {
- SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
- String retUrl = getUrl(saveInquiryVO);
- Date now = DateUtil.now();
- InquiryInfo inquiryInfo = new InquiryInfo();
- BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
- inquiryInfo.setGmtCreate(now);
- inquiryInfo.setGmtModified(now);
- inquiryInfo.setRetUrl(retUrl);
- save(inquiryInfo);
- List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
- inquiryDetailList.forEach(i -> {
- i.setInquiryId(inquiryInfo.getId());
- i.setGmtCreate(now);
- i.setGmtModified(now);
- });
- inquiryDetailService.saveBatch(inquiryDetailList);
- saveInquiryDTO.setBody(retUrl);
- return saveInquiryDTO;
- }
- private String getUrl(SaveInquiryVO saveInquiryVO) {
- String retUrl = null;
- try {
- String encodingAesKey = "";
- Client client = new Client(apiUrl, appKey, appSecret, encodingAesKey);
- Response response = client.execute(getltcs(saveInquiryVO));
- if (response.isSuccess()) {
- JSONResponseBean result = response.getJsonResponseBean();
- retUrl = result.getBody().toString();
- }
- } catch (Exception e) {
- }
- if (StringUtil.isBlank(retUrl)) {
- throw new CommonException(CommonErrorCode.RPC_ERROR, "提交失败");
- }
- return retUrl;
- }
- private Request getltcs(SaveInquiryVO saveInquiryVO) {
- List bodyList = new ArrayList<>();
- List<Map<String, Object>> details = new ArrayList<>();
- saveInquiryVO.getDetailList().forEach(i -> {
- Map<String, Object> detail = new HashMap<>();
- detail.put("question", i.getQuestion());
- detail.put("answer", i.getAnswer());
- detail.put("options", i.getOptions());
- details.add(detail);
- });
- Map<String, Object> body = new HashMap<>();
- body.put("details", details);
- body.put("doctorId", Integer.parseInt(saveInquiryVO.getDoctorId()));
- body.put("mpiId", saveInquiryVO.getMpiId());
- body.put("appId", saveInquiryVO.getAppId());
- body.put("fromId", saveInquiryVO.getFrom());
- body.put("sources", "langtong");
- if (saveInquiryVO.getDepartment().indexOf("全科") != -1) {
- body.put("diagnosis", saveInquiryVO.getDiagnosis());
- }
- bodyList.add(body);
- //X-Service-Id对应的值
- String serviceId = "consult.questionRecordService";
- //X-Service-Method对应的值
- String method = "saveQuestionRecord";
- return new Request(serviceId, method, bodyList);
- }
- }
|