forked from kidgrow-microservices-platform

luliqiang
2020-12-28 f41b3b53dad6a8468fc1ae9babb85a0270124d01
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
@@ -13,8 +13,10 @@
import com.kidgrow.oprationcenter.model.ConsumptionRecord;
import com.kidgrow.oprationcenter.model.ProductOrder;
import com.kidgrow.oprationcenter.model.ProductOrderDetail;
import com.kidgrow.oprationcenter.model.SysProduct;
import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.service.IProductOrderService;
import com.kidgrow.oprationcenter.service.ISysProductService;
import com.kidgrow.oprationcenter.vo.*;
import com.kidgrow.redis.util.RedisUtils;
import com.kidgrow.usercenter.feign.SysDoctorService;
@@ -52,6 +54,8 @@
    @Autowired
    private IProductOrderService iProductOrderService;
    @Autowired
    private ISysProductService productService;
    @Autowired
    private RedisUtils redisUtils;
    /**
     * 列表
@@ -62,6 +66,15 @@
    public PageResult<ProductOrderDetail> findList(Map<String, Object> params){
        Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
        List<ProductOrderDetail> list  =  baseMapper.findList(page, params);
        for (ProductOrderDetail productOrderDetail : list) {
            if(productOrderDetail.getOrderAilightCount()==null){
                SysProduct byId = productService.getById(productOrderDetail.getProId());
                if(byId!=null){
                    productOrderDetail.setOrderAilightCount(byId.getAilightCount());
                    productOrderDetail.setOrderRecordCount(byId.getRecordCount());
                }
            }
        }
        return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build();
    }
    /**
@@ -201,17 +214,43 @@
    public List<OrderChartVo> proCountChart() {
        return baseMapper.proCountChart();
    }
   @Override
    public int getUserdProduct(Long hospitalId, Long departmentId) {
        return baseMapper.getUserdProduct(hospitalId,departmentId);
    }
    /**
     *获取该科室下的所有的套餐信息
     * @param params
     * @return
     */
    @Override
    public PageResult<ProductOrderDetail> departmentProductDetail(Map<String, Object> params) {
    public PageResult<ProductOrderDetailVo> departmentProductDetail(Map<String, Object> params) {
        Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
        Boolean enabled = MapUtils.getBoolean(params, "enabled");
        List<ProductOrderDetail> list  =
                baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString()));
        return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build();
                baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString()),enabled);
        List<ProductOrderDetailVo> listvo = new ArrayList<>();
        for (ProductOrderDetail productOrderDetail : list) {
            ProductOrderDetailVo productOrderDetailVo=new ProductOrderDetailVo();
            BeanCopier beanCopier = BeanCopier.create(ProductOrderDetail.class, ProductOrderDetailVo.class, false);
            beanCopier.copy(productOrderDetail,productOrderDetailVo,null);
            Date proBegintime = productOrderDetailVo.getProBegintime();
            Date proEndtime = productOrderDetailVo.getProEndtime();
            Date nowDate = new Date();
            if(productOrderDetailVo.getEnabled()){
                if(nowDate.getTime()<proBegintime.getTime()){
                    productOrderDetailVo.setUseType("未使用");
                }else if (proBegintime.getTime()<=nowDate.getTime()&&nowDate.getTime()<proEndtime.getTime()){
                    productOrderDetailVo.setUseType("使用中");
                }else if(nowDate.getTime()>=proEndtime.getTime()){
                    productOrderDetailVo.setUseType("已结束");
                }
            }else {
                productOrderDetailVo.setUseType("禁用");
            }
            listvo.add(productOrderDetailVo);
        }
        return PageResult.<ProductOrderDetailVo>builder().data(listvo).code(0).count(page.getTotal()).build();
    }
    @Override