| | |
| | | package com.kidgrow.oprationcenter.controller; |
| | | |
| | | import com.kidgrow.common.annotation.LoginUser; |
| | | import com.kidgrow.common.constant.CommonConstant; |
| | | import com.kidgrow.common.controller.BaseController; |
| | | import com.kidgrow.common.model.PageResult; |
| | | import com.kidgrow.common.model.ResultBody; |
| | | import com.kidgrow.common.model.SysOrganization; |
| | | import com.kidgrow.common.model.SysUser; |
| | | import com.kidgrow.common.model.*; |
| | | import com.kidgrow.oprationcenter.model.HospitalInfo; |
| | | import com.kidgrow.oprationcenter.model.ProductOrder; |
| | | import com.kidgrow.oprationcenter.model.ProductOrderDetail; |
| | | import com.kidgrow.oprationcenter.model.ProductOrderRecord; |
| | | import com.kidgrow.oprationcenter.service.IBusinessRecordsService; |
| | |
| | | import com.kidgrow.oprationcenter.service.IProductOrderService; |
| | | import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail; |
| | | import com.kidgrow.oprationcenter.vo.UserProductData; |
| | | import com.kidgrow.usercenter.feign.SysUserService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | |
| | | private IBusinessRecordsService businessRecordsService; |
| | | @Autowired |
| | | private IProductOrderService productOrderService; |
| | | |
| | | @Autowired |
| | | private SysUserService sysUserServiceFeign; |
| | | /** |
| | | * 列表 |
| | | */ |
| | |
| | | } |
| | | return productOrderDetailService.findList(params); |
| | | } |
| | | |
| | | /** |
| | | * 列表 |
| | | */ |
| | |
| | | } |
| | | return productOrderDetailService.all(params); |
| | | } |
| | | |
| | | /** |
| | | * 列表 |
| | | */ |
| | |
| | | * 获取医院套餐是否到期和到期时间 |
| | | * data内 isend为true说明套餐到期 |
| | | * endtime上套餐的到期时间 |
| | | * |
| | | * @param hospitalId |
| | | * @param departmentId |
| | | * @return |
| | |
| | | * 获取医院套餐是否到期和到期时间 |
| | | * data内 isend为true说明套餐到期 |
| | | * endtime上套餐的到期时间 |
| | | * |
| | | * @return |
| | | */ |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 新增or更新 |
| | | * 新增or更新 套餐充值 |
| | | */ |
| | | @ApiOperation(value = "保存") |
| | | @PostMapping("/saveall") |
| | |
| | | } |
| | | return ResultBody.failed().msg(errMsg.toString()); |
| | | } else { |
| | | //先检查科室试用数量是否已经超 |
| | | ProductOrder productOrder = productOrderService.getById(list.get(0).getOrderId()); |
| | | if (productOrder != null) { |
| | | //是否管理人员 |
| | | boolean ismanager=false, |
| | | //是否有待审核套餐 |
| | | isenabled=false; |
| | | //如果是超管,高管,销售部门管理 则不受次数限制 |
| | | ResultBody<LoginAppUser> loginAppUserTemp=sysUserServiceFeign.getLoginAppUser(); |
| | | LoginAppUser loginAppUser=loginAppUserTemp.getData(); |
| | | if (loginAppUser != null) { |
| | | |
| | | List<SysRole> sysRoleList = loginAppUser.getRoles(); |
| | | if (sysRoleList != null && sysRoleList.size() > 0) { |
| | | for (int i = 0; i < sysRoleList.size(); i++) { |
| | | String roleName = sysRoleList.get(i).getCode(); |
| | | if (roleName.equals(CommonConstant.SYSTEM_ADMIN_ROLE_CODE) || |
| | | roleName.equals(CommonConstant.SALE_MANAGER_ROLE_CODE) || |
| | | roleName.equals(CommonConstant.PC_ADMIN_ROLE_CODE) || |
| | | roleName.equals(CommonConstant.OPRATIONMANAGER_ROLE_CODE)) { |
| | | ismanager=true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (!ismanager) { |
| | | int counts = productOrderDetailService.getEnabledCount(productOrder.getDepartmentId()); |
| | | if (counts >= CommonConstant.MAX_FREE_COUNT) { |
| | | //超过了限定次数 将试用套餐改为禁用 待审核 |
| | | for (int i = 0; i <list.size() ; i++) { |
| | | if (list.get(i).getProType()==0) { |
| | | //试用套餐 |
| | | list.get(i).setEnabled(false); |
| | | isenabled=true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //写充值套餐给用户 |
| | | Boolean v = productOrderDetailService.saveBatch(list); |
| | | //写充值记录 |
| | | //对象转换 |
| | | List<ProductOrderRecord> productOrderRecordList= new ArrayList<ProductOrderRecord>();; |
| | | List<ProductOrderRecord> productOrderRecordList = new ArrayList<ProductOrderRecord>(); |
| | | ; |
| | | list.forEach(item->{ |
| | | ProductOrderRecord productOrderRecord=new ProductOrderRecord(); |
| | | productOrderRecord.setAilightCount(item.getAilightCount()); |
| | |
| | | productOrderRecordList.add(productOrderRecord); |
| | | }); |
| | | Boolean r = productOrderRecordService.saveBatch(productOrderRecordList); |
| | | if (v&&r) { |
| | | return ResultBody.ok().data(list.size()).msg("产品充值成功"); |
| | | //更新合同 |
| | | Boolean p = false; |
| | | if (productOrder != null) { |
| | | productOrder.setIsDel(false); |
| | | p = productOrderService.saveOrUpdate(productOrder); |
| | | } |
| | | if (v && r && p) { |
| | | if (isenabled) { |
| | | return ResultBody.ok().data(list.size()).msg("充值成功,但是试用套餐需要管理审核才可使用!"); |
| | | } |
| | | else |
| | | { |
| | | return ResultBody.ok().data(list.size()).msg("产品充值成功..."); |
| | | } |
| | | } else { |
| | | //写入订单明细失败,则删除订单记录数据 |
| | | Boolean e = productOrderService.removeById(list.get(0).getOrderId()); |
| | |
| | | return ResultBody.failed().msg("充值数据保存失败,订单已撤回!"); |
| | | else |
| | | return ResultBody.failed().msg("充值数据保存失败,订单撤回失败!"); |
| | | } |
| | | } else { |
| | | return ResultBody.failed().msg("充值数据关联订单不存在!"); |
| | | } |
| | | } |
| | | } |
| | |
| | | boolean v = productOrderDetailService.removeById(id); |
| | | if (v) { |
| | | if (!businessRecordsService.recordBusinessData("删除订单明细:" + id, id.toString())) { |
| | | //log.error(String.format("删除订单明细id为:{1}",id)); |
| | | log.error(String.format("删除订单明细id为:{1}", id)); |
| | | } |
| | | return ResultBody.ok().msg("删除成功"); |
| | | } else { |
| | |
| | | if (resultBody.getCode() == 0) { |
| | | String enablad = (MapUtils.getBoolean(params, "enabled")) ? "启用" : "禁用"; |
| | | if (!businessRecordsService.recordBusinessData("修改订单明细状态为:" + enablad, enablad)) { |
| | | //log.error(String.format("修改合同状态为:{0},写入业务日志失败!合同管理id为:{1}",enablad,MapUtils.getString(params,"id"))); |
| | | log.error(String.format("修改合同状态为:{0},写入业务日志失败!合同管理id为:{1}", enablad, MapUtils.getString(params, "id"))); |
| | | } |
| | | } |
| | | return resultBody; |