From 73d5561cbf2bea50acc22f91050fcc3557d49de4 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Mon, 17 Aug 2020 09:58:10 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev

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

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java
index 56657e2..0b93508 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java
@@ -1,18 +1,33 @@
 package com.kidgrow.oprationcenter.service.impl;
 
-import org.springframework.stereotype.Service;
-import com.kidgrow.common.model.PageResult;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.annotation.LoginUser;
+import com.kidgrow.common.constant.CommonConstant;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUser;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.common.utils.DateUtil;
+import com.kidgrow.common.utils.RandomValueUtils;
+import com.kidgrow.oprationcenter.feign.RoleOrganizationService;
+import com.kidgrow.oprationcenter.mapper.ProductOrderDetailMapper;
+import com.kidgrow.oprationcenter.mapper.ProductOrderMapper;
+import com.kidgrow.oprationcenter.mapper.ProductOrderRecordMapper;
+import com.kidgrow.oprationcenter.model.ProductOrder;
+import com.kidgrow.oprationcenter.model.ProductOrderDetail;
+import com.kidgrow.oprationcenter.model.ProductOrderRecord;
+import com.kidgrow.oprationcenter.model.SysProduct;
+import com.kidgrow.oprationcenter.service.IProductOrderService;
+import com.kidgrow.oprationcenter.service.ISysProductService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import org.apache.commons.collections4.MapUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.oprationcenter.model.ProductOrder;
-import com.kidgrow.oprationcenter.mapper.ProductOrderMapper;
-import com.kidgrow.oprationcenter.service.IProductOrderService;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -25,14 +40,24 @@
 @Slf4j
 @Service
 public class ProductOrderServiceImpl extends SuperServiceImpl<ProductOrderMapper, ProductOrder> implements IProductOrderService {
+    @Autowired
+    private RoleOrganizationService roleOrganizationService;
+    @Autowired
+    private ISysProductService sysProductService;
+    @Autowired
+    private ProductOrderDetailMapper productOrderDetailMapper;
+    @Autowired
+    private ProductOrderRecordMapper productOrderRecordMapper;
     /**
      * 列表
      * @param params
      * @return
      */
     @Override
-    public PageResult<ProductOrder> findList(Map<String, Object> params){
+    public PageResult<ProductOrder> findList(Map<String, Object> params,@LoginUser SysUser sysUser){
         Page<ProductOrder> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
+        Map<String, Object> roleOrgMap = roleOrganizationService.getRoleOrgMap(sysUser.getRoles());
+        params.putAll(roleOrgMap);
         List<ProductOrder> list  =  baseMapper.findList(page, params);
         return PageResult.<ProductOrder>builder().data(list).code(0).count(page.getTotal()).build();
     }
@@ -46,4 +71,128 @@
     public ProductOrder findByObject(ProductOrder productOrder){
         return baseMapper.findByObject(productOrder);
     }
+
+    /**
+     * 修改数据状态 启用 禁用
+     * @param params
+     * @return
+     */
+    @Override
+    public ResultBody updateEnabled(Map<String, Object> params) {
+        Long id = MapUtils.getLong(params, "id");
+        Boolean enabled = MapUtils.getBoolean(params, "enabled");
+
+        ProductOrder productOrder = baseMapper.selectById(id);
+        if (productOrder == null) {
+            return ResultBody.failed("该数据不存在!");
+        }
+        productOrder.setEnabled(enabled);
+        productOrder.setUpdateTime(new Date());
+        int i = baseMapper.updateById(productOrder);
+        return i > 0 ? ResultBody.ok().data(productOrder).msg("更新成功") : ResultBody.failed("更新失败");
+    }
+
+    @Override
+    public int delProductDetail(Long orderId) {
+        return baseMapper.delProductDetail(orderId);
+    }
+
+    /**
+     * 用户充值(创建订单,增加充值记录,冲套餐)
+     * @param params
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
+    public boolean saveProductDetail(Map<String,Object> params)
+    {
+        //指定套餐数据
+        SysProduct sysProduct=sysProductService.getById(CommonConstant.REG_USER_PRODUCT_ID);
+        if (sysProduct != null) {
+            //订单合同数据
+            ProductOrder productOrder=new ProductOrder();
+            productOrder.setIsDel(false);
+            productOrder.setEnabled(true);
+            productOrder.setContractBeginTime(new Date());
+            productOrder.setContractEndTime(DateUtil.addDays(new Date(), CommonConstant.REG_USER_CONTRACT_DAY));
+            productOrder.setContractTime(new Date());
+            productOrder.setContractNo(RandomValueUtils.getRandom(10));
+            productOrder.setContractTitle(CommonConstant.REG_USER_CONTRACT_NAME);
+            productOrder.setHospitalId(Long.valueOf(params.get("departmentId").toString()));
+            productOrder.setHospitalName(params.get("hospitalName").toString());
+            productOrder.setDepartmentId(Long.valueOf(params.get("hospitalId").toString()));
+            productOrder.setDepartmentName(params.get("departmentName").toString());
+            productOrder.setCreateUserId(CommonConstant.CREATE_USER_ID);
+            productOrder.setCreateUserName(CommonConstant.CREATE_USER_NAME);
+            if (baseMapper.insert(productOrder)==1) {
+                //套餐数据
+                ProductOrderDetail productOrderDetail=new ProductOrderDetail();
+                productOrderDetail.setEnabled(true);
+                productOrderDetail.setIsDel(false);
+                productOrderDetail.setAilightCount(sysProduct.getAilightCount());
+                productOrderDetail.setRecordCount(sysProduct.getRecordCount());
+                productOrderDetail.setProBegintime(new Date());
+                //0 天 1 月 2 年
+                switch(sysProduct.getProTimeUnit())
+                {
+                    case 0:
+                    default:
+                        productOrderDetail.setProEndtime(DateUtil.addDays(new Date(),sysProduct.getProTime()));
+                        break;
+                    case 1:
+                        productOrderDetail.setProEndtime(DateUtil.addMonths(new Date(),sysProduct.getProTime()));
+                        break;
+                    case 2:
+                        productOrderDetail.setProEndtime(DateUtil.addYears(new Date(),sysProduct.getProTime()));
+                        break;
+                }
+                productOrderDetail.setProId(sysProduct.getId());
+                productOrderDetail.setProName(sysProduct.getProName());
+                productOrderDetail.setOrderId(productOrder.getId());
+                productOrderDetail.setProType(sysProduct.getProType());
+                if(productOrderDetailMapper.insert(productOrderDetail)==1)
+                {
+                    //充值记录
+                    ProductOrderRecord productOrderRecord=new ProductOrderRecord();
+                    productOrderRecord.setEnabled(true);
+                    productOrderRecord.setIsDel(false);
+                    productOrderRecord.setAilightCount(sysProduct.getAilightCount());
+                    productOrderRecord.setRecordCount(sysProduct.getRecordCount());
+                    productOrderRecord.setProBegintime(new Date());
+                    //0 天 1 月 2 年
+                    switch(sysProduct.getProTimeUnit())
+                    {
+                        case 0:
+                        default:
+                            productOrderRecord.setProEndtime(DateUtil.addDays(new Date(),sysProduct.getProTime()));
+                            break;
+                        case 1:
+                            productOrderRecord.setProEndtime(DateUtil.addMonths(new Date(),sysProduct.getProTime()));
+                            break;
+                        case 2:
+                            productOrderRecord.setProEndtime(DateUtil.addYears(new Date(),sysProduct.getProTime()));
+                            break;
+                    }
+                    productOrderRecord.setProId(sysProduct.getId());
+                    productOrderRecord.setProName(sysProduct.getProName());
+                    productOrderRecord.setOrderId(productOrder.getId());
+                    productOrderRecord.setProType(sysProduct.getProType());
+                    if(productOrderRecordMapper.insert(productOrderRecord)<1)
+                    {
+                        baseMapper.deleteById(productOrder.getId());
+                        productOrderDetailMapper.deleteById(productOrderDetail.getId());
+                    }
+                    else
+                    {
+                        return true;
+                    }
+                }
+                else
+                {
+                    baseMapper.deleteById(productOrder.getId());
+                }
+            }
+        }
+        return false;
+    }
 }

--
Gitblit v1.8.0