forked from kidgrow-microservices-platform

zhaoxiaohao
2020-08-17 73d5561cbf2bea50acc22f91050fcc3557d49de4
Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev

 Conflicts:
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
6 files modified
2 files added
250 ■■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java 28 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java 19 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java 6 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java 115 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java 28 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/pom.xml 4 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java 37 ●●●● patch | view | raw | blame | history
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java 13 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java
New file
@@ -0,0 +1,28 @@
package com.kidgrow.oprationcenter.feign;
import com.kidgrow.common.constant.ServiceNameConstants;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.oprationcenter.feign.fallback.ProductOrderFallbackFactory;
import com.kidgrow.ribbon.config.FeignHttpInterceptorConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.Map;
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
 * @Description: 扣费业务相关内部调用
 * @Project: 运营中心
 * @CreateDate: Created in 2020-06-27 15:26:33 <br>
 * @Author: <a href="411269194@kidgrow.com">houruijun</a>
 * @version: 1.0
 */
@FeignClient(value = ServiceNameConstants.OPRATION_SERVER,configuration= FeignHttpInterceptorConfig.class,
        fallbackFactory = ProductOrderFallbackFactory.class, decode404 = true)
public interface ProductOrderService {
    /**
     * 冲试用套餐  用于注册医生自动充值
     */
    @PostMapping(value = "contract/saveTemp")
    ResultBody saveProductDetail(Map<String,Object> params);
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java
New file
@@ -0,0 +1,19 @@
package com.kidgrow.oprationcenter.feign.fallback;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.oprationcenter.feign.ProductOrderService;
import feign.hystrix.FallbackFactory;
import java.util.Map;
public class ProductOrderFallbackFactory implements FallbackFactory<ProductOrderService> {
    @Override
    public ProductOrderService create(Throwable throwable) {
        return new ProductOrderService() {
            @Override
            public ResultBody saveProductDetail(Map<String, Object> params) {
                return ResultBody.failed().msg("saveProductDetail的FeignClient调用失败");
            }
        };
    }
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java
@@ -45,5 +45,11 @@
     * @return
     */
    int delProductDetail(Long orderId);
    /**
     * 用户充值(创建订单,增加充值记录,冲套餐)
     * @param params
     * @return
     */
    boolean saveProductDetail(Map<String,Object> params);
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java
@@ -2,18 +2,28 @@
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;
@@ -32,6 +42,12 @@
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
@@ -80,4 +96,103 @@
    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;
    }
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java
@@ -6,6 +6,7 @@
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.model.SysOrganization;
import com.kidgrow.common.model.SysUser;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.oprationcenter.model.ProductOrder;
import com.kidgrow.oprationcenter.service.IBusinessRecordsService;
import com.kidgrow.oprationcenter.service.IProductOrderService;
@@ -112,6 +113,33 @@
    }
    /**
     * 冲试用套餐  用于注册医生自动充值
     * @param params
     * @return
     */
    @ApiOperation(value = "套餐充值")
    @PostMapping("/saveTemp")
    public ResultBody saveProductDetail(Map<String,Object> params)
    {
        if (StringUtils.isNotBlank(params.get("hospitalId").toString()) &&
                StringUtils.isNotBlank(params.get("departmentId").toString())&&
                        StringUtils.isNotBlank(params.get("hospitalName").toString())&&
                                StringUtils.isNotBlank(params.get("departmentName").toString())) {
            boolean isResult= productOrderService.saveProductDetail(params);
            if (isResult) {
                return ResultBody.ok().data(isResult).msg("试用套餐充值成功");
            }
            else
            {
                return ResultBody.failed().data(isResult).msg("试用套餐充值失败");
            }
        }
        else
        {
            return ResultBody.failed().data(false).msg("充值参数有误");
        }
    }
    /**
     * 删除
     */
    @ApiOperation(value = "删除")
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/pom.xml
@@ -30,5 +30,9 @@
            <groupId>com.kidgrow</groupId>
            <artifactId>kidgrow-plugin-sms-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.kidgrow</groupId>
            <artifactId>kidgrow-opration-center-api</artifactId>
        </dependency>
    </dependencies>
</project>
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -18,6 +18,7 @@
import com.kidgrow.common.utils.AesUtils;
import com.kidgrow.common.utils.DateUtils;
import com.kidgrow.common.utils.Pinyin4jUtil;
import com.kidgrow.oprationcenter.feign.ProductOrderService;
import com.kidgrow.redis.util.RedisUtils;
import com.kidgrow.sms.feign.SmsChuangLanService;
import com.kidgrow.sms.model.ConstantSMS;
@@ -89,6 +90,9 @@
    private SysUserRoleMapper sysUserRoleMapper;
    @Autowired
    private SysOrganizationMapper sysOrganizationMapper;
    @Autowired
    private ProductOrderService productOrderService;
    @Override
    public LoginAppUser findByUsername(String username) {
@@ -711,11 +715,17 @@
                    sysDepartment.setServerUserTel("0");
                    sysDepartment.setServerUserName(createUserName);
                    boolean d = departmentService.save(sysDepartment);
                    if (!d) {
                    if (d) {
                        userRegVo.setDepartmentId(sysDepartment.getId());
                        //自动充入系统指定的试用套餐
                        if(!saveProductDetail(sysHospital.getId(),sysDepartment.getId(),sysHospital.getHospitalName(),sysDepartment.getDepartmentName()))
                        {
                            isSuccess = false;
                            expMsg = "套餐充值失败";
                        }
                    } else {
                        isSuccess = false;
                        expMsg = "科室数据写入失败";
                    } else {
                        userRegVo.setDepartmentId(sysDepartment.getId());
                    }
                } else {
                    isSuccess = false;
@@ -840,8 +850,8 @@
                                sysDoctor.setServerUserId(isReg ? createUserId : sysUserd.getId());
                                sysDoctor.setServerUserName(isReg ? createUserName : sysUserd.getUsername());
                                sysDoctor.setIsAdminUser(false);
                                sysDoctor.setEnabled(!isReg);
                                sysDoctor.setDoctorCcie(userRegVo.getDoctorCcie());
                                sysDoctor.setEnabled(true);
                                if (sysDoctorMapper.insert(sysDoctor) == 1) {
                                    //非自主注册的 返回信息带密码
                                    if (!isReg) {
@@ -885,6 +895,25 @@
            return ResultBody.ok().data(sysUser);
        }
    }
    /**
     * feign客户端调用写入试用套餐
     * @param hospitalId
     * @param departmentId
     * @param hospitalName
     * @param departmentName
     * @return
     */
    private boolean saveProductDetail(Long hospitalId,Long departmentId,String hospitalName,String departmentName)
    {
        Map<String,Object> params=new HashMap<String,Object>();
        params.put("hospitalId",hospitalId);
        params.put("departmentId",departmentId);
        params.put("hospitalName",hospitalName);
        params.put("departmentName",departmentName);
        ResultBody resultBody= productOrderService.saveProductDetail(params);
        return (boolean)resultBody.getData();
    }
    /**
     * 获取医院科室下的所有H端有效的医生
     *
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
@@ -282,7 +282,18 @@
     * 自主注册的科室组织id
     */
    public static final Long DEPARTMENT_ORG_ID=15321234571L;
    /**
     * 自主注册的用户默认给的产品id
     */
    public static final Long REG_USER_PRODUCT_ID=1000000000000000001L;
    /**
     * 自主注册的用户合同时长 天
     */
    public static final Integer REG_USER_CONTRACT_DAY=15;
    /**
     * 自主注册的用户合同名
     */
    public static final String REG_USER_CONTRACT_NAME="注册用户免费合同";
    /**
     * 自主注册的创建人id
     */