Commit 1cfd31d4 by zhangxingmin

产品服务相关接口

parent d2637944
......@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
import com.yd.product.api.service.ApiExpectedCommissionRatioService;
import com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
......@@ -35,4 +36,14 @@ public class ApiExpectedCommissionRatioController implements ApiExpectedCommissi
return apiExpectedCommissionRatioService.page(request);
}
/**
* 保存-预计来佣比率信息
* @param request
* @return
*/
@Override
public Result save(ApiExpectedCommissionRatioSaveRequest request) {
return apiExpectedCommissionRatioService.save(request);
}
}
......@@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.api.service.ApiProductLaunchService;
import com.yd.product.feign.client.productlaunch.ApiProductLaunchFeignClient;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest;
import com.yd.product.feign.request.productlaunch.*;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse;
......@@ -69,5 +67,25 @@ public class ApiProductLaunchController implements ApiProductLaunchFeignClient {
return apiProductLaunchService.save(request);
}
/**
* 审核-产品上架信息
* @param request
* @return
*/
@Override
public Result approval(ApiProductLaunchApprovalRequest request) {
return apiProductLaunchService.approval(request);
}
/**
* 编辑-产品上架状态
* @param request
* @return
*/
@Override
public Result editStatus(ApiProductLaunchEditStatusRequest request) {
return apiProductLaunchService.editStatus(request);
}
}
......@@ -3,8 +3,11 @@ package com.yd.product.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
public interface ApiExpectedCommissionRatioService {
Result<IPage<ApiExpectedCommissionRatioPageResponse>> page(ApiExpectedCommissionRatioPageRequest request);
Result save(ApiExpectedCommissionRatioSaveRequest request);
}
......@@ -2,9 +2,7 @@ package com.yd.product.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest;
import com.yd.product.feign.request.productlaunch.*;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse;
......@@ -19,5 +17,9 @@ public interface ApiProductLaunchService {
Result save(ApiProductLaunchSaveRequest request);
Result<ProductLaunch> checkProductLaunchIsExist(String productBizId);
Result approval(ApiProductLaunchApprovalRequest request);
Result editStatus(ApiProductLaunchEditStatusRequest request);
Result<ProductLaunch> checkProductLaunchIsExist(String productLaunchBizId);
}
package com.yd.product.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.result.Result;
import com.yd.product.api.service.ApiExpectedCommissionRatioService;
import com.yd.product.api.service.ApiProductLaunchService;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.model.ExpectedCommissionRatio;
import com.yd.product.service.model.ProductLaunch;
import com.yd.product.service.service.IExpectedCommissionRatioService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
......@@ -18,6 +28,9 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
@Autowired
private IExpectedCommissionRatioService iExpectedCommissionRatioService;
@Autowired
private ApiProductLaunchService apiProductLaunchService;
/**
* 分页列表查询-预计来佣比率信息
* @param request
......@@ -30,4 +43,29 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
return Result.success(iPage);
}
/**
* 保存-预计来佣比率信息
* @param request
* @return
*/
@Override
public Result save(ApiExpectedCommissionRatioSaveRequest request) {
//校验产品上架信息是否存在
Result<ProductLaunch> result = apiProductLaunchService.checkProductLaunchIsExist(request.getProductLaunchBizId());
ProductLaunch productLaunch = result.getData();
//先删后新增
//删除
iExpectedCommissionRatioService.delByProductLaunchBizId(request.getProductLaunchBizId());
//新增
List<ExpectedCommissionRatio> expectedCommissionRatioList = request.getApiExpectedCommissionRatioDtoList()
.stream().map(dto -> {
ExpectedCommissionRatio ratio = new ExpectedCommissionRatio();
BeanUtils.copyProperties(dto,ratio);
ratio.setSpeciesJson(!CollectionUtils.isEmpty(dto.getApiSpeciesSettingDtoList()) ? JSON.toJSONString(dto.getApiSpeciesSettingDtoList()) : "");
return ratio;
}).collect(Collectors.toList());
iExpectedCommissionRatioService.saveBatch(expectedCommissionRatioList);
return Result.success();
}
}
......@@ -3,7 +3,9 @@ package com.yd.product.feign.client.expectedcommissionratio;
import com.yd.common.result.Result;
import com.yd.product.feign.fallback.expectedcommissionratio.ApiExpectedCommissionRatioFeignFallbackFactory;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -20,4 +22,12 @@ public interface ApiExpectedCommissionRatioFeignClient {
*/
@PostMapping("/page")
Result page(@RequestBody ApiExpectedCommissionRatioPageRequest request);
/**
* 保存-预计来佣比率信息
* @param request
* @return
*/
@PostMapping("/save")
Result save(@Validated @RequestBody ApiExpectedCommissionRatioSaveRequest request);
}
......@@ -2,17 +2,13 @@ package com.yd.product.feign.client.productlaunch;
import com.yd.common.result.Result;
import com.yd.product.feign.fallback.productlaunch.ApiProductLaunchFeignFallbackFactory;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest;
import com.yd.product.feign.request.productlaunch.*;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
/**
......@@ -52,4 +48,20 @@ public interface ApiProductLaunchFeignClient {
*/
@PostMapping("/save")
Result save(@Validated @RequestBody ApiProductLaunchSaveRequest request);
/**
* 审核-产品上架信息
* @param request
* @return
*/
@PutMapping("/approval")
Result approval(@Validated @RequestBody ApiProductLaunchApprovalRequest request);
/**
* 编辑-产品上架状态
* @param request
* @return
*/
@PutMapping("/edit/status")
Result editStatus(@Validated @RequestBody ApiProductLaunchEditStatusRequest request);
}
package com.yd.product.feign.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class ApiExpectedCommissionRatioDto {
/**
* 预计来佣比率表唯一业务ID
*/
private String expectedCommissionRatioBizId;
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 产品唯一业务ID
*/
private String productBizId;
/**
* 规格条件列表JSON串
*/
private String speciesJson;
/**
* 上架产品规格配置表信息JSON串对应转化的列表
*/
private List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList;
/**
* 保障年限(固定规格条件)
*/
private String warrantyPeriod;
/**
* 期数(固定规格条件)
*/
private String issueNumber;
/**
* 标保折算比例
*/
private BigDecimal discountRatio;
/**
* 计算基数(保费/保费*折算比例)
*/
private BigDecimal cardinalNumber;
/**
* 来佣类型
*/
private String commissionType;
/**
* 来佣比例
*/
private BigDecimal commissionRatio;
/**
* 出单渠道
*/
private String channel;
/**
* 有效开始时间
*/
private LocalDateTime effectiveStart;
/**
* 有效结束时间
*/
private LocalDateTime effectiveEnd;
/**
* 来佣日规则
*/
private String rules;
/**
* 通用备注
*/
private String remark;
}
......@@ -49,4 +49,9 @@ public class ApiProductLaunchDto {
* 状态:0-待审核 1-审核成功 2-审核失败 3-在售 4-停售 5-下架 6-预售
*/
private Integer status;
/**
* 上架到对应的项目列表
*/
private List<String> projectBizIdList;
}
package com.yd.product.feign.enums;
/**
* 产品服务公共枚举
*/
public enum ProductCommonEnum {
//产品上架状态枚举
PRODUCT_LAUNCH_STATUS_DSH("待审核","DSH"),
PRODUCT_LAUNCH_STATUS_CG("审核成功","CG"),
PRODUCT_LAUNCH_STATUS_SB("审核失败","SB"),
PRODUCT_LAUNCH_STATUS_ZS("在售","ZS"),
PRODUCT_LAUNCH_STATUS_TS("停售","TS"),
PRODUCT_LAUNCH_STATUS_XJ("下架","XJ"),
PRODUCT_LAUNCH_STATUS_YS("预售","YS"),
//审核操作状态
APPROVAL_STATUS_TG("通过","TG"),
APPROVAL_STATUS_WTG("未通过","WTG"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private String itemValue;
//构造函数
ProductCommonEnum(String itemLabel, String itemValue) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
}
public String getItemLabel() {
return itemLabel;
}
public String getItemValue() {
return itemValue;
}
}
......@@ -3,6 +3,7 @@ package com.yd.product.feign.fallback.expectedcommissionratio;
import com.yd.common.result.Result;
import com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
......@@ -20,6 +21,11 @@ public class ApiExpectedCommissionRatioFeignFallbackFactory implements FallbackF
public Result page(ApiExpectedCommissionRatioPageRequest request) {
return null;
}
@Override
public Result save(ApiExpectedCommissionRatioSaveRequest request) {
return null;
}
};
}
}
......@@ -2,9 +2,7 @@ package com.yd.product.feign.fallback.productlaunch;
import com.yd.common.result.Result;
import com.yd.product.feign.client.productlaunch.ApiProductLaunchFeignClient;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest;
import com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest;
import com.yd.product.feign.request.productlaunch.*;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse;
import lombok.extern.slf4j.Slf4j;
......@@ -39,6 +37,16 @@ public class ApiProductLaunchFeignFallbackFactory implements FallbackFactory<Api
public Result save(ApiProductLaunchSaveRequest request) {
return null;
}
@Override
public Result approval(ApiProductLaunchApprovalRequest request) {
return null;
}
@Override
public Result editStatus(ApiProductLaunchEditStatusRequest request) {
return null;
}
};
}
}
package com.yd.product.feign.request.expectedcommissionratio;
import com.yd.product.feign.dto.ApiExpectedCommissionRatioDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiExpectedCommissionRatioSaveRequest {
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId;
/**
* 预计来佣比率配置列表信息
*/
@NotEmpty(message = "预计来佣比率配置列表信息不能为空")
private List<ApiExpectedCommissionRatioDto> apiExpectedCommissionRatioDtoList;
}
package com.yd.product.feign.request.productlaunch;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiProductLaunchApprovalRequest {
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId;
/**
* 审核状态 TG-审核通过 WTG-审核未通过
*/
@NotBlank(message = "审核状态不能为空")
private String approvalStatus;
/**
* 审核备注
*/
private String approvalRemark;
}
package com.yd.product.feign.request.productlaunch;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiProductLaunchEditStatusRequest {
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId;
/**
* 上架状态(字典)
*/
@NotBlank(message = "上架状态不能为空")
private String status;
}
......@@ -49,7 +49,7 @@ public class Product implements Serializable {
private String productCode;
/**
* 状态:0=下架,1=在售 2=预售 3=停售
* 状态(0:禁用 1:启用)
*/
@TableField("status")
private Integer status;
......
......@@ -91,10 +91,22 @@ public class ProductLaunch implements Serializable {
private String projectBizId;
/**
* 状态:0-待审核 1-审核成功 2-审核失败 3-在售 4-停售 5-下架 6-预售
* 上架状态
*/
@TableField("status")
private Integer status;
private String status;
/**
* 审核备注
*/
@TableField("approval_remark")
private String approvalRemark;
/**
* 上架到对应的项目列表(多个项目id分号分隔)
*/
@TableField("project_biz_id_list")
private String projectBizIdList;
/**
* 通用备注
......
......@@ -19,4 +19,6 @@ public interface IExpectedCommissionRatioService extends IService<ExpectedCommis
IPage<ApiExpectedCommissionRatioPageResponse> page(Page<ApiExpectedCommissionRatioPageResponse> page,
ApiExpectedCommissionRatioPageRequest request);
Boolean delByProductLaunchBizId(String productLaunchBizId);
}
......@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IRelProjectProductLaunchService extends IService<RelProjectProductLaunch> {
Boolean delByProductLaunchBizId(String productLaunchBizId);
}
......@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IRelTenantProductLaunchService extends IService<RelTenantProductLaunch> {
Boolean delByProductLaunchBizId(String productLaunchBizId);
}
package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
......@@ -26,4 +27,9 @@ public class ExpectedCommissionRatioServiceImpl extends ServiceImpl<ExpectedComm
ApiExpectedCommissionRatioPageRequest request) {
return baseMapper.page(page,request);
}
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<ExpectedCommissionRatio>().eq(ExpectedCommissionRatio::getProductLaunchBizId,productLaunchBizId));
}
}
package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.product.service.model.RelProjectProductLaunch;
import com.yd.product.service.dao.RelProjectProductLaunchMapper;
import com.yd.product.service.service.IRelProjectProductLaunchService;
......@@ -17,4 +18,8 @@ import org.springframework.stereotype.Service;
@Service
public class RelProjectProductLaunchServiceImpl extends ServiceImpl<RelProjectProductLaunchMapper, RelProjectProductLaunch> implements IRelProjectProductLaunchService {
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<RelProjectProductLaunch>().eq(RelProjectProductLaunch::getProductLaunchBizId,productLaunchBizId));
}
}
package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.common.result.Result;
import com.yd.product.service.model.RelTenantProductLaunch;
import com.yd.product.service.dao.RelTenantProductLaunchMapper;
import com.yd.product.service.service.IRelTenantProductLaunchService;
......@@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
@Service
public class RelTenantProductLaunchServiceImpl extends ServiceImpl<RelTenantProductLaunchMapper, RelTenantProductLaunch> implements IRelTenantProductLaunchService {
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<RelTenantProductLaunch>().eq(RelTenantProductLaunch::getProductLaunchBizId,productLaunchBizId));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment