package com.kidgrow.oprationcenter.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.constant.CommonConstant;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.model.SysUser;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.oprationcenter.mapper.PayManagerMapper;
import com.kidgrow.oprationcenter.model.PayManager;
import com.kidgrow.oprationcenter.model.ProductOrder;
import com.kidgrow.oprationcenter.model.ProductOrderDetail;
import com.kidgrow.oprationcenter.service.IPayManagerService;
import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.service.IProductOrderService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* @Description:
* @Project: 运营中心
* @CreateDate: Created in 2020-09-21 14:16:18
* @Author: houruijun
* @version 1.0
*/
@Slf4j
@Service
public class PayManagerServiceImpl extends SuperServiceImpl implements IPayManagerService {
@Autowired
private IProductOrderService productOrderService;
@Autowired
private IProductOrderDetailService productOrderDetailService;
/**
* 列表
* @param params
* @return
*/
@Override
public PageResult findList(Map params){
Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
List list = baseMapper.findList(page, params);
return PageResult.builder().data(list).code(0).count(page.getTotal()).build();
}
/**
* 根据PayManager对象当做查询条件进行查询
* @param payManager
* @return PayManager
*/
@Override
public PayManager findByObject(PayManager payManager){
return baseMapper.findByObject(payManager);
}
/**
* 查看科室的单次支付功能 如果返回空 则视为未开通
* @param hospitalId
* @param departmentId
* @return PayManager
*/
@Override
public PayManager findByObject(Long hospitalId,Long departmentId){
PayManager payManager = new PayManager();
ProductOrderDetail productOrderDetail= getProductDetail(hospitalId,departmentId);
if (productOrderDetail != null) {
payManager.setDepartmentId(departmentId);
payManager.setHospitalId(hospitalId);
payManager.setIsDel(false);
payManager.setEnabled(true);
PayManager payManagerModel = baseMapper.findByObject(payManager);
return payManagerModel;
}
else
{
return payManager;
}
}
/**
* 获取科室下的一个业务的套餐数据
* @param hospitalId
* @param departmentId
* @return
*/
@Override
public ProductOrderDetail getProductDetail(Long hospitalId, Long departmentId)
{
ProductOrder productOrder=new ProductOrder();
productOrder.setHospitalId(hospitalId);
productOrder.setDepartmentId(departmentId);
productOrder.setEnabled(true);
productOrder.setIsDel(false);
ProductOrder productOrderModel=productOrderService.findByObject(productOrder);
if (productOrderModel != null) {
ProductOrderDetail productOrderDetail =new ProductOrderDetail();
productOrderDetail.setProId(CommonConstant.PAY_USER_PRODUCT_ID);
productOrderDetail.setOrderId(productOrderModel.getId());
productOrderDetail.setEnabled(true);
productOrderDetail.setIsDel(false);
ProductOrderDetail modelDetail=productOrderDetailService.findByObject(productOrderDetail);
return modelDetail;
}
return null;
}
/**
* 保存单次支付功能数据
* @param payManager
* @param sysUser
* @return
*/
@Override
public Boolean saveproductOrder(PayManager payManager, SysUser sysUser)
{
Map params = new HashMap<>();
params.put("hospitalId", payManager.getHospitalId());
params.put("departmentId", payManager.getDepartmentId());
params.put("hospitalName", payManager.getHospitalName());
params.put("departmentName", payManager.getDepartmentName());
params.put("proId", CommonConstant.PAY_USER_PRODUCT_ID);
boolean isResult = productOrderService.saveProductDetail(params, sysUser);
return isResult;
}
}