From 946f257388c4d40c5ef1e0c6971f03820df13488 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <279049017@qq.com>
Date: Fri, 25 Sep 2020 10:41:06 +0800
Subject: [PATCH] 添加获取 验证码的功能

---
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java |  169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 2 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java
index c66c4ad..78da321 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java
@@ -1,17 +1,34 @@
 package com.kidgrow.oprationcenter.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
 import com.kidgrow.oprationcenter.mapper.SaasClientPayMapper;
+import com.kidgrow.oprationcenter.model.PayManager;
 import com.kidgrow.oprationcenter.model.SaasClientPay;
+import com.kidgrow.oprationcenter.service.AlipayService;
+import com.kidgrow.oprationcenter.service.IPayManagerService;
 import com.kidgrow.oprationcenter.service.ISaasClientPayService;
+import com.kidgrow.oprationcenter.service.WxService;
+import com.kidgrow.oprationcenter.vo.SaasClientPayExcel;
+import com.kidgrow.oprationcenter.vo.SaasClientPayVo;
+import com.kidgrow.usercenter.feign.SysDoctorService;
+import com.kidgrow.usercenter.model.SysDoctor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cglib.beans.BeanCopier;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
+
+//import com.kidgrow.recordcenter.feign.ChildService;
 
 
 /**
@@ -30,11 +47,43 @@
      * @param params
      * @return
      */
+    @Autowired
+    private SysDoctorService sysDoctorService;
+    @Autowired
+    WxService wxService;
+    @Autowired
+    AlipayService alipayService;
+    @Autowired
+    IPayManagerService payManagerService;
     @Override
-    public PageResult<SaasClientPay> findList(Map<String, Object> params){
+    public PageResult<SaasClientPayVo> findList(Map<String, Object> params){
+        Long doctorId = MapUtils.getLong(params, "doctorId");
+        if (doctorId!=null) {
+            ResultBody byId = sysDoctorService.findById(doctorId);
+            if (byId.getCode()==0) {
+                Object data = byId.getData();
+                SysDoctor sysDoctor = JSON.parseObject(JSON.toJSONString(data), SysDoctor.class);
+                if (sysDoctor!=null) {
+                    params.put("createUserId",sysDoctor.getUserId());
+                }
+            }
+            params.remove("doctorId");
+        }
         Page<SaasClientPay> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
         List<SaasClientPay> list  =  baseMapper.findList(page, params);
-        return PageResult.<SaasClientPay>builder().data(list).code(0).count(page.getTotal()).build();
+        List<SaasClientPayVo> listVo=null;
+        if (!list.isEmpty()) {
+            listVo=new ArrayList<>();
+            for (SaasClientPay saasClientPay : list) {
+                SaasClientPayVo vo=new SaasClientPayVo();
+                BeanCopier beanCopier = BeanCopier.create(SaasClientPay.class, SaasClientPayVo.class, false);
+                beanCopier.copy(saasClientPay,vo,null);
+                double v = Double.parseDouble(vo.getPayPrice().toString())/100;
+                vo.setPrice(v+"");
+                listVo.add(vo);
+            }
+        }
+        return PageResult.<SaasClientPayVo>builder().data(listVo).code(0).count(page.getTotal()).build();
     }
 
     /**
@@ -46,4 +95,120 @@
     public SaasClientPay findByObject(SaasClientPay saasClientPay){
         return baseMapper.findByObject(saasClientPay);
     }
+
+    /**
+     * 查看一个科室的某个诊断的支付状态
+     * @param hospitalId
+     * @param departmentId
+     * @param diaId
+     * @return
+     */
+    @Override
+    public SaasClientPay findModelByObject(Long hospitalId,Long departmentId,String diaId) {
+        SaasClientPay saasClientPay = new SaasClientPay();
+        saasClientPay.setCreateHospitalDepartid(departmentId.toString());
+        saasClientPay.setCreateHospitalId(hospitalId);
+        saasClientPay.setDiaId(diaId);
+        return baseMapper.findByObject(saasClientPay);
+    }
+
+    @Override
+    public void updateTypeList(List<String> list) {
+        for (String s : list) {
+            SaasClientPay saasClientPay = this.baseMapper.selectById(s);
+            if(saasClientPay!=null){
+                saasClientPay.setType(true);
+                this.saveOrUpdate(saasClientPay);
+            }
+        }
+    }
+
+    @Override
+    public  List<SaasClientPayExcel> export(Map<String, Object> params) {
+        List<SaasClientPay> list  =  baseMapper.findList(new Page<>(1, -1), params);
+        List<SaasClientPayExcel> listVo=null;
+        if (!list.isEmpty()) {
+            listVo=new ArrayList<>();
+            for (SaasClientPay saasClientPay : list) {
+                SaasClientPayExcel vo=new SaasClientPayExcel();
+                BeanCopier beanCopier = BeanCopier.create(SaasClientPay.class, SaasClientPayExcel.class, false);
+                beanCopier.copy(saasClientPay,vo,null);
+                Double v = Double.parseDouble(saasClientPay.getPayPrice().toString())/100;
+                vo.setPayPrice(v);
+                Double vc = Double.parseDouble(saasClientPay.getPayCustom().toString())/100;
+                vo.setPayCustom(vc);
+                Double vk = Double.parseDouble(saasClientPay.getPayKidgrow().toString())/100;
+                vo.setPayKidgrow(vk);
+                listVo.add(vo);
+            }
+        }
+        return listVo;
+    }
+
+    /**
+     * 获取微信和支付宝的二维码
+     * @param saasClientPay
+     * @return
+     */
+    @Override
+    public ResultBody getCode(SaasClientPay saasClientPay,HttpServletRequest request) throws Exception {
+        SaasClientPay modelByObject = findByObject(saasClientPay);
+        if(modelByObject!=null){
+            String str="";
+            Map<String, String> wxCode = this.getWxCode(modelByObject, request);
+            if(wxCode!=null){
+                saasClientPay.setPrepayId(wxCode.get("prepay_id"));
+                str=wxCode.get("code_url");
+            }
+            String aliCode = this.getaliPayCode(modelByObject);
+            List<String> list=new ArrayList<>();
+            list.add(str);
+            list.add(aliCode);
+            return ResultBody.ok().data(list);
+        }
+        saasClientPay.setId(UUID.randomUUID().toString().replace("-",""));
+        saasClientPay.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
+        PayManager payManager = new PayManager();
+        payManager.setDepartmentId(Long.valueOf(saasClientPay.getCreateHospitalDepartid()));
+        payManager.setHospitalId(saasClientPay.getCreateHospitalId());
+        payManager.setIsDel(false);
+        payManager.setEnabled(true);
+        PayManager byObject = payManagerService.findByObject(payManager);
+        if(byObject==null){
+            return ResultBody.failed().msg("该部门或医院没有开通单次支付");
+        }
+        saasClientPay.setPayPrice(byObject.getPayPrice()*100);
+        saasClientPay.setPayKidgrow(byObject.getPayKidgrow()*100);
+        saasClientPay.setPayCustom(byObject.getPayCustom()*100);
+        saasClientPay.setPayStatus(0);
+        String str="";
+        Map<String, String> wxCode = this.getWxCode(saasClientPay, request);
+        if(wxCode!=null){
+            saasClientPay.setPrepayId(wxCode.get("prepay_id"));
+            str=wxCode.get("code_url");
+        }
+        boolean b = this.saveOrUpdate(saasClientPay);
+        String aliCode = this.getaliPayCode(saasClientPay);
+        List<String> list=new ArrayList<>();
+        list.add(str);
+        list.add(aliCode);
+        return ResultBody.ok().data(list);
+    }
+    /**
+     * 获取微信的二维码
+     * @param saasClientPay
+     * @return
+     */
+    public  Map<String,String> getWxCode(SaasClientPay saasClientPay, HttpServletRequest request) throws Exception{
+        return wxService.getCode(saasClientPay,request);
+
+    }
+    /**
+     * 获取支付宝的二维码
+     * @param saasClientPay
+     * @return
+     */
+    public String getaliPayCode(SaasClientPay saasClientPay) throws Exception{
+        return alipayService.getCode(saasClientPay);
+    }
 }

--
Gitblit v1.8.0