diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java index a1532ee392..3ffb1a6106 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java @@ -67,8 +67,8 @@ public class BaseDiscountpackageService extends MybatisBaseService voList = baseMapper.getAppPackage(qw); if (voList.isEmpty()) { - return rb.setData(new ArrayList<>()); + voList = new ArrayList<>(); } for (int i = 0; i < voList.size(); i++) { if (StringUtils.isNotBlank(voList.get(i).getDiscountExplain())) { diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeign.java index f1df0b4a21..a68cbb2573 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeign.java @@ -25,11 +25,11 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.bussalesorderdiscount; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountDto; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo; +import com.yxt.common.core.result.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import com.yxt.common.core.query.PagerQuery; -import com.yxt.common.core.result.ResultBean; -import com.yxt.common.core.vo.PagerVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -56,5 +56,18 @@ import java.util.List; fallback = BusSalesOrderDiscountFeignFallback.class) public interface BusSalesOrderDiscountFeign { + @ApiOperation("查看主车优惠情况") + @GetMapping("/getAppDiscountListVoByOrderSid/{sid}") + @ResponseBody + ResultBean> getDiscountList(@PathVariable(value = "sid") String sid); + + @ApiOperation("保存主车优惠") + @PostMapping("/save") + @ResponseBody + ResultBean save(@RequestBody AppBusSalesOrderDiscountDto dto); + @ApiOperation("删除主车优惠") + @PostMapping("/delete") + @ResponseBody + ResultBean delete(@RequestParam(value = "saleOrderSid") String orderSid, @RequestParam(value = "sid") String sid); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeignFallback.java index 081c917f3d..cdef35de33 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/BusSalesOrderDiscountFeignFallback.java @@ -25,6 +25,8 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.bussalesorderdiscount; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountDto; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -48,4 +50,18 @@ import java.util.List; @Component public class BusSalesOrderDiscountFeignFallback implements BusSalesOrderDiscountFeign { + @Override + public ResultBean> getDiscountList(String sid) { + return null; + } + + @Override + public ResultBean save(AppBusSalesOrderDiscountDto dto) { + return null; + } + + @Override + public ResultBean delete(String orderSid, String sid) { + return null; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppBusSalesOrderDiscountDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppBusSalesOrderDiscountDto.java new file mode 100644 index 0000000000..08e211eda9 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppBusSalesOrderDiscountDto.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.buscenter.api.bussalesorderdiscount.app; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 13:31 + * @Description + */ +@Data +public class AppBusSalesOrderDiscountDto implements Dto { + private static final long serialVersionUID = -6647913733717178890L; + + @ApiModelProperty(value = "销售订单sid") + private String saleOrderSid; + + private AppDiscountInfoDto info; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppBusSalesOrderDiscountListVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppBusSalesOrderDiscountListVo.java new file mode 100644 index 0000000000..36e3a3d04d --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppBusSalesOrderDiscountListVo.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.buscenter.api.bussalesorderdiscount.app; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 11:07 + * @Description + */ +@Data +public class AppBusSalesOrderDiscountListVo implements Vo { + private static final long serialVersionUID = 7529080786475382916L; + + @ApiModelProperty(value = "主车优惠sid") + private String discountSid; + @ApiModelProperty(value = "数量") + private String number; + @ApiModelProperty(value = "说明") + private String explain; + @ApiModelProperty(value = "discountExplain") + private String discountExplain; + @ApiModelProperty(value = "价格") + private String price; + @ApiModelProperty(value = "名称") + private String discountName; + @ApiModelProperty(value = "总价") + private String totalPrice; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppDiscountInfoDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppDiscountInfoDto.java new file mode 100644 index 0000000000..2049fd1e5f --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdiscount/app/AppDiscountInfoDto.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.buscenter.api.bussalesorderdiscount.app; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 13:32 + * @Description + */ +@Data +public class AppDiscountInfoDto implements Dto { + private static final long serialVersionUID = -5616343567153286991L; + + @ApiModelProperty(value = "优惠数量") + private String num; + @ApiModelProperty(value = "优惠说明") + private String discountExplain; + @ApiModelProperty(value = "价格") + private String price; + @ApiModelProperty(value = "优惠包sid") + private String salesPolicySid; + @ApiModelProperty(value = "优惠包名称") + private String name; +} diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.java index c21258cf63..5a9749b984 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.java @@ -25,16 +25,12 @@ *********************************************************/ package com.yxt.anrui.buscenter.biz.bussalesorderdiscount; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount; import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; -import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount; -import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountVo; import java.util.List; @@ -53,8 +49,13 @@ import java.util.List; */ @Mapper public interface BusSalesOrderDiscountMapper extends BaseMapper { - + /** + * 根据销售订单sid删除主车优惠信息 + * + * @param sid 销售订单sid + * @return + */ int deleteList(String sid); /** @@ -72,4 +73,31 @@ public interface BusSalesOrderDiscountMapper extends BaseMapper getDiscountList(String sid); + + /** + * 根据销售订单sid和销售政策sid查询主车优惠 + * + * @param salesOrderSid 销售订单sid + * @param salesPolicySid 销售政策sid + * @return + */ + BusSalesOrderDiscount getNum(@Param("sid") String salesOrderSid, @Param("policySid") String salesPolicySid); + + /** + * 根据销售政策sid和销售订单sid更新数量 + * + * @param salesOrderSid 销售订单sid + * @param salesPolicySid 销售政策sid + * @param numAll 数量 + * @return + */ + int updateNum(@Param("sid") String salesOrderSid, @Param("policySid") String salesPolicySid, @Param("num") int numAll); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.xml index 49a707dcb4..75a9abcd37 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.xml @@ -27,4 +27,25 @@ from bus_sales_order_discount where salesOrderSid = #{sid} + + + + + + + update bus_sales_order_discount + set num = #{num} + where salesPolicySid = #{policySid} + and salesOrderSid = #{sid} + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountRest.java index 501e634336..34d8706d6a 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountRest.java @@ -25,14 +25,16 @@ *********************************************************/ package com.yxt.anrui.buscenter.biz.bussalesorderdiscount; -import com.yxt.anrui.buscenter.api.bussalesorderdiscount.*; -import com.yxt.common.core.query.PagerQuery; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountFeign; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountDto; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo; import com.yxt.common.core.result.ResultBean; -import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; /** * Project: anrui-buscenter(业务管理)
@@ -52,5 +54,21 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("v1/bussalesorderdiscount") public class BusSalesOrderDiscountRest implements BusSalesOrderDiscountFeign { - + @Autowired + private BusSalesOrderDiscountService busSalesOrderDiscountService; + + @Override + public ResultBean> getDiscountList(String sid) { + return busSalesOrderDiscountService.getDiscountList(sid); + } + + @Override + public ResultBean save(AppBusSalesOrderDiscountDto dto) { + return busSalesOrderDiscountService.saveDiscountInfo(dto); + } + + @Override + public ResultBean delete(String orderSid, String sid) { + return busSalesOrderDiscountService.deleteDiscount(orderSid, sid); + } } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountService.java index 312e12db56..80dac60e34 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountService.java @@ -26,16 +26,25 @@ package com.yxt.anrui.buscenter.biz.bussalesorderdiscount; import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.yxt.anrui.buscenter.api.bussalesorderdiscount.*; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountDto; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountDto; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppDiscountInfoDto; +import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService; import com.yxt.common.base.service.MybatisBaseService; -import com.yxt.common.base.utils.PagerUtil; -import com.yxt.common.core.query.PagerQuery; -import com.yxt.common.core.vo.PagerVo; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * Project: anrui-buscenter(业务管理)
@@ -52,7 +61,10 @@ import java.util.List; */ @Service public class BusSalesOrderDiscountService extends MybatisBaseService { - + + @Autowired + private BusSalesOrderService busSalesOrderService; + public void saveDiscount(List busSalesOrderDiscountList, String sid) { //删除原有的 baseMapper.deleteList(sid); @@ -83,4 +95,69 @@ public class BusSalesOrderDiscountService extends MybatisBaseService> getDiscountList(String sid) { + ResultBean> rb = ResultBean.fireFail(); + List list = baseMapper.getDiscountList(sid); + list.parallelStream().filter(Objects::nonNull).collect(Collectors.toList()); + if (!list.isEmpty()) { + for (AppBusSalesOrderDiscountListVo discountListVo : list) { + if (StringUtils.isNotBlank(discountListVo.getDiscountExplain())) { + discountListVo.setExplain(discountListVo.getDiscountExplain()); + } + } + } else { + list = new ArrayList<>(); + } + return rb.success().setData(list); + } + + public ResultBean saveDiscountInfo(AppBusSalesOrderDiscountDto dto) { + ResultBean rb = ResultBean.fireFail(); + String salesOrderSid = dto.getSaleOrderSid(); + BusSalesOrder busSalesOrder = busSalesOrderService.fetchBySid(salesOrderSid); + if (busSalesOrder == null) { + return rb.setMsg("该销售订单不存在"); + } + AppDiscountInfoDto appDiscountInfoDto = dto.getInfo(); + String salesPolicySid = appDiscountInfoDto.getSalesPolicySid(); + BusSalesOrderDiscount busSalesOrderDiscount1 = baseMapper.getNum(salesOrderSid, salesPolicySid); + if (busSalesOrderDiscount1 == null) { + BusSalesOrderDiscount busSalesOrderDiscount = new BusSalesOrderDiscount(); + BeanUtil.copyProperties(appDiscountInfoDto, busSalesOrderDiscount, "sid"); + busSalesOrderDiscount.setSalesOrderSid(salesOrderSid); + if (StringUtils.isNotBlank(appDiscountInfoDto.getPrice())) { + busSalesOrderDiscount.setTotalValue(new BigDecimal(appDiscountInfoDto.getPrice()).multiply(new BigDecimal(appDiscountInfoDto.getNum().toString())).toString()); + } + save(busSalesOrderDiscount); + } else { + int numAll = busSalesOrderDiscount1.getNum() + Integer.parseInt(appDiscountInfoDto.getNum()); + baseMapper.updateNum(salesOrderSid, salesPolicySid, numAll); + } + + return rb.success().setMsg("成功"); + } + + public ResultBean deleteDiscount(String orderSid, String sid) { + ResultBean rb = ResultBean.fireFail(); + BusSalesOrder busSalesOrder = busSalesOrderService.fetchBySid(orderSid); + if (busSalesOrder == null) { + return rb.setMsg("该销售订单单据不存在"); + } + BusSalesOrderDiscount busSalesOrderDiscount = fetchBySid(sid); + if (busSalesOrderDiscount == null) { + return rb.setMsg("销售订单该主车优惠信息不存在"); + } + if (!busSalesOrderDiscount.getSalesOrderSid().equals(orderSid)) { + return rb.setMsg("该主车优惠信息不属于该销售订单"); + } + deleteBySid(sid); + return rb.success().setMsg("成功"); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java index 5ebc1e34d5..7bbaab7c6e 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java @@ -29,6 +29,8 @@ import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeignFallback; import com.yxt.anrui.buscenter.api.bussalesorder.app.*; import com.yxt.anrui.crm.api.crmvehicledemand.AppCrmOrderVehicleDemandQuery; import com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.model.ModelDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopVo; @@ -120,4 +122,19 @@ public interface AppBusSalesOrderFeign { @GetMapping("/init/topInfo/{saleOrderSid}") @ResponseBody ResultBean getTopInfo(@PathVariable(value = "saleOrderSid") String sid); + + @ApiOperation("查看主车优惠情况") + @GetMapping("/getAppDiscountListVoByOrderSid/{orderSid}") + @ResponseBody + ResultBean getDiscountList(@PathVariable(value = "orderSid") String sid); + + @ApiOperation("保存主车优惠") + @PostMapping("/saveOrUpdateAppOrderDiscount") + @ResponseBody + ResultBean saveDiscount(@RequestBody DiscountDto dto); + + @ApiOperation("删除主车优惠") + @DeleteMapping("/delAppOrderDiscountBySid") + @ResponseBody + ResultBean deleteDiscount(@RequestParam(value = "saleOrderSid") String orderSid, @RequestParam(value = "sid") String sid); } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java index 27e6a4b67b..08d4926492 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java @@ -28,6 +28,8 @@ package com.yxt.anrui.terminal.api.autoservice.saleOrders; import com.yxt.anrui.buscenter.api.bussalesorder.app.*; import com.yxt.anrui.crm.api.crmvehicledemand.AppCrmOrderVehicleDemandQuery; import com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.model.ModelDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopVo; @@ -106,4 +108,19 @@ public class AppBusSalesOrderFeignFallback implements AppBusSalesOrderFeign { public ResultBean getTopInfo(String sid) { return null; } + + @Override + public ResultBean getDiscountList(String sid) { + return null; + } + + @Override + public ResultBean saveDiscount(DiscountDto dto) { + return null; + } + + @Override + public ResultBean deleteDiscount(String orderSid, String sid) { + return null; + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/deposit/DepositVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/deposit/DepositVo.java new file mode 100644 index 0000000000..78f1343404 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/deposit/DepositVo.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.deposit; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/6/2 9:53 + * @Description 虚拟订单订车列表返回数据 + */ +@Data +public class DepositVo implements Vo { + private static final long serialVersionUID = 5043114761578714398L; + + @ApiModelProperty(value = "虚拟订单sid") + private String virtualSid; + + @ApiModelProperty(value = "虚拟订单编号") + private String virtualId; + + @ApiModelProperty(value = "客户名称") + private String customerName; + + @ApiModelProperty(value = "联系电话") + private String mobile; + + @ApiModelProperty(value = "车型相关") + private List modelList; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/deposit/ModelListVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/deposit/ModelListVo.java new file mode 100644 index 0000000000..5c577bca58 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/deposit/ModelListVo.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.deposit; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 10:01 + * @Description + */ +@Data +public class ModelListVo implements Vo { + private static final long serialVersionUID = 5383064919415950152L; + + @ApiModelProperty(value = "车型图片") + private String modelImage; + + @ApiModelProperty(value = "车型名称") + private String modelName; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountDto.java new file mode 100644 index 0000000000..2bf38c044f --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountDto.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.discount; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 11:53 + * @Description + */ +@Data +public class DiscountDto implements Dto { + private static final long serialVersionUID = 7231033634684892987L; + + @ApiModelProperty(value = "销售订单sid") + private String saleOrderSid; + + private DiscountInfo info; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountInfo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountInfo.java new file mode 100644 index 0000000000..b77045890f --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountInfo.java @@ -0,0 +1,33 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.discount; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 11:54 + * @Description + */ +@Data +public class DiscountInfo implements Dto { + private static final long serialVersionUID = -8859476280086407156L; + @ApiModelProperty(value = "优惠数量") + @JsonProperty(value = "number") + private String num; + + @ApiModelProperty(value = "优惠说明") + @JsonProperty(value = "explain") + private String discountExplain; + + @ApiModelProperty(value = "优惠价格") + private String price; + @ApiModelProperty(value = "销售政策sid") + @JsonProperty(value = "discountType") + private String salesPolicySid; + + @ApiModelProperty(value = "优惠名称") + @JsonProperty(value = "discountValue") + private String name; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountListVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountListVo.java new file mode 100644 index 0000000000..74fd01a0dd --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountListVo.java @@ -0,0 +1,27 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.discount; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/2 10:51 + * @Description + */ +@Data +public class DiscountListVo implements Vo { + private static final long serialVersionUID = 1973331967490606940L; + @ApiModelProperty(value = "本条优惠包的sid") + private String discountSid; + @ApiModelProperty(value = "数量") + private String number; + @ApiModelProperty(value = "说明") + private String explain; + @ApiModelProperty(value = "价格") + private String price; + @ApiModelProperty(value = "名称") + private String discountName; + @ApiModelProperty(value = "总价") + private String totalPrice; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountVo.java new file mode 100644 index 0000000000..c5b80d0e06 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/discount/DiscountVo.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.discount; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/6/2 13:55 + * @Description + */ +@Data +public class DiscountVo implements Vo { + private static final long serialVersionUID = -1835469698115349175L; + + private String total; + private List records; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/topinfo/TopDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/topinfo/TopDto.java index fa30917afa..af8962f827 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/topinfo/TopDto.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/topinfo/TopDto.java @@ -49,6 +49,7 @@ public class TopDto implements Dto { @ApiModelProperty(value = "有无上装信息") private Boolean topInfoState; @ApiModelProperty(value = "销售订单sid") - private String saleOrderSid; + @JsonProperty(value = "saleOrderSid") + private String salesOrderSid; } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java index 03aa8f9ea7..f24c45637a 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java @@ -29,6 +29,8 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.*; import com.yxt.anrui.crm.api.crmvehicledemand.AppCrmOrderVehicleDemandQuery; import com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.AppBusSalesOrderFeign; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.model.ModelDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopVo; @@ -127,4 +129,19 @@ public class AppBusSalesOrderRest implements AppBusSalesOrderFeign { return appBusSalesOrderService.getTopInfo(sid); } + @Override + public ResultBean getDiscountList(String sid) { + return appBusSalesOrderService.getDiscountList(sid); + } + + @Override + public ResultBean saveDiscount(DiscountDto dto) { + return appBusSalesOrderService.saveDiscount(dto); + } + + @Override + public ResultBean deleteDiscount(String orderSid, String sid) { + return appBusSalesOrderService.deleteDiscount(orderSid, sid); + } + } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java index c4f5e777ba..5f9cd2e6bd 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java @@ -28,6 +28,9 @@ package com.yxt.anrui.terminal.biz.autoservice.saleOrders; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; import com.yxt.anrui.buscenter.api.bussalesorder.app.*; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountFeign; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountDto; +import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo; import com.yxt.anrui.buscenter.api.bussalesordermakeup.BusSalesOrderMakeupFeign; import com.yxt.anrui.buscenter.api.bussalesordermakeup.app.AppBusSalesOrderMakeUpDto; import com.yxt.anrui.buscenter.api.bussalesordermakeup.app.AppBusSalesOrderMakeUpVo; @@ -36,9 +39,13 @@ import com.yxt.anrui.buscenter.api.bussalesordermodel.app.AppBusSalesOrderModelD import com.yxt.anrui.crm.api.crmvehicledemand.AppCrmOrderVehicleDemandQuery; import com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo; import com.yxt.anrui.crm.api.crmvehicledemand.CrmVehicledemandFeign; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountListVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.model.ModelDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.topinfo.TopVo; +import com.yxt.anrui.terminal.config.CoverUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -46,6 +53,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.List; + /** * Project: anrui-buscenter(业务管理)
@@ -71,6 +81,8 @@ public class AppBusSalesOrderService { private BusSalesOrderModelFeign busSalesOrderModelFeign; @Autowired private BusSalesOrderMakeupFeign busSalesOrderMakeupFeign; + @Autowired + private BusSalesOrderDiscountFeign busSalesOrderDiscountFeign; /************************************* 销售订单接口 *********************************************/ @@ -172,6 +184,12 @@ public class AppBusSalesOrderService { return resultBean; } + /** + * 保存更新上装信息 + * + * @param dto 数据传输对象 + * @return + */ public ResultBean saveTopInfo(TopDto dto) { AppBusSalesOrderMakeUpDto appBusSalesOrderMakeUpDto = new AppBusSalesOrderMakeUpDto(); BeanUtil.copyProperties(dto, appBusSalesOrderMakeUpDto); @@ -179,6 +197,12 @@ public class AppBusSalesOrderService { return resultBean; } + /** + * 初始化上装信息 + * + * @param sid 销售订单sid + * @return + */ public ResultBean getTopInfo(String sid) { ResultBean rb = ResultBean.fireFail(); ResultBean resultBean = busSalesOrderMakeupFeign.getTopInfo(sid); @@ -187,4 +211,32 @@ public class AppBusSalesOrderService { BeanUtil.copyProperties(appBusSalesOrderMakeUpVo, topVo); return rb.success().setData(topVo); } + + public ResultBean getDiscountList(String sid) { + ResultBean rb = ResultBean.fireFail(); + DiscountVo vo = new DiscountVo(); + ResultBean> resultBean = busSalesOrderDiscountFeign.getDiscountList(sid); + List list = resultBean.getData(); + List discountListVoList = CoverUtils.collectionCopy(list, DiscountListVo.class); + vo.setRecords(discountListVoList); + BigDecimal price = new BigDecimal("0"); + for (DiscountListVo discountListVo : discountListVoList) { + String totalPrice = discountListVo.getTotalPrice(); + price = price.add(new BigDecimal(totalPrice)); + } + vo.setTotal(price.toString()); + return rb.success().setData(vo); + } + + public ResultBean saveDiscount(DiscountDto dto) { + AppBusSalesOrderDiscountDto appBusSalesOrderDiscountDto = new AppBusSalesOrderDiscountDto(); + BeanUtil.copyProperties(dto, appBusSalesOrderDiscountDto); + ResultBean resultBean = busSalesOrderDiscountFeign.save(appBusSalesOrderDiscountDto); + return resultBean; + } + + public ResultBean deleteDiscount(String orderSid, String sid) { + ResultBean resultBean = busSalesOrderDiscountFeign.delete(orderSid, sid); + return resultBean; + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/config/CoverUtils.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/config/CoverUtils.java index 7538fd3e33..2400ad2950 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/config/CoverUtils.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/config/CoverUtils.java @@ -3,6 +3,12 @@ package com.yxt.anrui.terminal.config; import cn.hutool.core.bean.BeanUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.vo.PagerVo; +import org.springframework.beans.BeanUtils; +import org.springframework.util.CollectionUtils; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.*; /** * @Author dimengzhe @@ -10,7 +16,7 @@ import com.yxt.common.core.vo.PagerVo; * @Description */ -public class CoverUtils { +public class CoverUtils extends BeanUtils { public static PagerQuery getPagerQuery(PagerQuery pagerQuery) { PagerQuery pagerQuery1 = new PagerQuery(); @@ -23,4 +29,116 @@ public class CoverUtils { BeanUtil.copyProperties(pagerVo, pagerVo1); return pagerVo1; } + + public CoverUtils() { + } + + public static T propertiesCopy(Object source, Class clazz) { + if (null == source) { + return null; + } else { + try { + T obj = clazz.newInstance(); + BeanUtils.copyProperties(source, obj); + return obj; + } catch (IllegalAccessException | InstantiationException var3) { + throw new RuntimeException(var3); + } + } + } + + /** + * list中对象的copy + * + * @param source + * @param clazz + * @param + * @return + */ + public static List collectionCopy(Collection source, Class clazz) { + if (null == source) { + return new ArrayList(); + } else { + List list = new ArrayList(); + Iterator var3 = source.iterator(); + + while (var3.hasNext()) { + Object o = var3.next(); + list.add(propertiesCopy(o, clazz)); + } + + return list; + } + } + + /** + * 将对象转换为map + * + * @param obj + * @return + */ + public static Map object2Map(Object obj) { + Map map = new HashMap(); + if (obj == null) { + return map; + } else { + Class clazz = obj.getClass(); + Field[] fields = clazz.getDeclaredFields(); + + try { + Field[] var4 = fields; + int var5 = fields.length; + + for (int var6 = 0; var6 < var5; ++var6) { + Field field = var4[var6]; + field.setAccessible(true); + map.put(field.getName(), field.get(obj)); + } + + return map; + } catch (Exception var8) { + throw new RuntimeException(var8); + } + } + } + + + /** + * 将map转换为对象,必须保证属性名称相同 + * + * @return + */ + public static Object map2Object(Map map, Class clzz) { + try { + Object target = clzz.newInstance(); + if (CollectionUtils.isEmpty(map)) { + return target; + } + Field[] fields = clzz.getDeclaredFields(); + if (!CollectionUtils.isEmpty(Arrays.asList(fields))) { + Arrays.stream(fields).filter((Field field) -> map.containsKey(field.getName())).forEach(var -> { + //获取属性的修饰符 + int modifiers = var.getModifiers(); + if (Modifier.isStatic(modifiers) || Modifier.isFinal(modifiers)) { + //在lambada中结束本次循环是用return,它不支持continue和break + return; + } + //设置权限 + var.setAccessible(true); + try { + var.set(target, map.get(var.getName())); + } catch (IllegalAccessException e) { + //属性类型不对,非法操作,跳过本次循环,直接进入下一次循环 + throw new RuntimeException(e); + } + }); + } + return target; + } catch (InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } + return null; + } + + }