From 0eb9482d1315c1da1e16bf00312093b5d66e1075 Mon Sep 17 00:00:00 2001
From: houruijun <411269194@kidgrow.com>
Date: Mon, 17 Aug 2020 09:08:31 +0800
Subject: [PATCH] 1.增加注册用户自动充入试用套餐功能 2.取消注册用户需要审核的参数值
---
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 40 ++++++-
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java | 13 ++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java | 19 +++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java | 28 +++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java | 115 +++++++++++++++++++++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java | 6 +
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java | 28 +++++
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/pom.xml | 4
8 files changed, 245 insertions(+), 8 deletions(-)
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java
new file mode 100644
index 0000000..aedf30b
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java
@@ -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);
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java
new file mode 100644
index 0000000..1355d0c
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java
@@ -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调用失败");
+ }
+ };
+ }
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java
index 46648b1..5500ca0 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java
+++ b/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);
}
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 44cae85..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
@@ -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;
+ }
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java
index 93e048a..ee1269e 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java
+++ b/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 = "删除")
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/pom.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/pom.xml
index e144b90..48c10b4 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/pom.xml
+++ b/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>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index 560a717..9f9d8ee 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/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;
@@ -58,14 +59,12 @@
private final static String LOCK_KEY_USERNAME = CommonConstant.LOCK_KEY_PREFIX + "username:";
@Autowired
private PasswordEncoder passwordEncoder;
-
@Resource
private ISysRoleUserService roleUserService;
@Resource
private ISysDictionariesService sysDictionariesService;
@Resource
private SysRoleMenuMapper roleMenuMapper;
-
@Autowired
private ISysOrganizationService organizationService;
@Autowired
@@ -82,13 +81,15 @@
private DistributedLock lock;
@Autowired
private SysDoctorMapper sysDoctorMapper;
-
@Autowired
private SysRoleMapper sysRoleMapper;
@Autowired
private SysUserRoleMapper sysUserRoleMapper;
@Autowired
private SysOrganizationMapper sysOrganizationMapper;
+ @Autowired
+ private ProductOrderService productOrderService;
+
@Override
public LoginAppUser findByUsername(String username) {
@@ -711,11 +712,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,7 +847,7 @@
sysDoctor.setServerUserId(isReg ? createUserId : sysUserd.getId());
sysDoctor.setServerUserName(isReg ? createUserName : sysUserd.getUsername());
sysDoctor.setIsAdminUser(false);
- sysDoctor.setEnabled(!isReg);
+ sysDoctor.setEnabled(true);
if (sysDoctorMapper.insert(sysDoctor) == 1) {
//非自主注册的 返回信息带密码
if (!isReg) {
@@ -884,6 +891,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端有效的医生
*
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
index 2c7e8dc..9e8ddbf 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
+++ b/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
*/
--
Gitblit v1.8.0