|
|
- package com.ruoyi.applet.contoller;
-
-
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.cyl.h5.pojo.vo.H5OrderVO;
- import com.cyl.h5.service.H5OrderService;
- import com.cyl.h5.service.H5PetCareService;
- import com.cyl.h5.service.H5PetService;
- import com.cyl.manager.oms.domain.OmsOrderService;
- import com.cyl.manager.oms.domain.OrderItem;
- import com.cyl.manager.oms.mapper.OmsOrderServiceMapper;
- import com.cyl.manager.oms.mapper.OrderItemMapper;
- import com.cyl.manager.oms.mapper.OrderMapper;
- import com.cyl.manager.oms.service.OrderService;
- import com.cyl.manager.ums.domain.Pet;
- import com.cyl.manager.ums.domain.PetCare;
- import com.cyl.manager.ums.mapper.PetMapper;
- import com.cyl.manager.ums.pojo.vo.PetVO;
- import com.ruoyi.applet.pojo.dto.AppletOrderDateVo;
- import com.ruoyi.applet.pojo.vo.AppletOrderDateAddressReturn;
- import com.ruoyi.applet.pojo.vo.AppletOrderDateVoReturn;
- import com.ruoyi.applet.service.IMallOrderService;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.page.TableDataInfo;
- import com.ruoyi.common.utils.uuid.IdUtils;
- import com.ruoyi.model.domain.*;
- import com.ruoyi.model.service.*;
- import com.ruoyi.model.service.impl.AppletOrderItemServiceImpl;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.Synchronized;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.*;
-
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.time.LocalDateTime;
- import java.util.*;
- import java.util.stream.Collectors;
-
- @Api(description = "订单模块 - 接单大厅流程")
- @RestController
- @RequestMapping("/applet/order")
- public class ApiAppletOrderController extends BaseController {
-
- @Autowired
- private IAppletOrderService appletOrderService;
- @Autowired
- private IAppletOrderItemService appletOrderItemService;
- @Autowired
- private IAppUsersService appUsersService;
- @Autowired
- private IAppletUsersTeacherService appletUsersTeacherService;
- @Autowired
- private IAppletConfigService configService;
- @Autowired
- private IMallOrderService mallOrderService;
- @Autowired
- private IAppletOrderItemDateService appletOrderItemDateService;
- //下单小程序:那边来的订单信息
- @Autowired
- private H5OrderService h5OrderService;
- @Autowired
- private OrderService service;
- @Autowired
- private AppletOrderItemServiceImpl appletOrderItemServiceImpl;
-
- @Autowired
- private H5PetService h5PetService;
- @Autowired
- private H5PetCareService petCareService;
- @Autowired
- private PetMapper petMapper;
-
- @Autowired
- private OrderMapper orderMapper;
-
- @Autowired
- private OrderItemMapper orderItemMapper;
-
- @Autowired
- private OmsOrderServiceMapper omsOrderServiceMapper;
-
-
- @Autowired
- private IAppletOrderDateFrequencyService appletOrderDateFrequencyService;
-
- @ApiOperation("接单大厅列表-带分页")
- @GetMapping("/list")
- public AjaxResult outDateList(AppletOrder appletOrder){
- if(appletOrder.getType()==null){
- return AjaxResult.error("type状态不能为空");
- }
- if(appletOrder.getUserIdJson() == null){
- return AjaxResult.error("userIdJson用户信息标识不能为空");
- }
- //根据用户标识得到用户信息
- AppUsers appUsers = appUsersService.selectAppUsersByUserId(appletOrder.getUserId());
- BigDecimal petPayment = new BigDecimal(0);
- //得到当前用户角色
- if(appUsers.getUserBcs()!=0){
- //根据当前等级得到当前的返点比例
- AppletConfig petPaymentBcs = configService.selectAppletConfigByClassAndNum("pet_payment_bcs", appUsers.getUserBcs());
- petPayment = petPaymentBcs.getParamValueNo();
- }
-
- startPage();
- List<AppletOrder> list = null;
- List<AppletOrderItem> itemList = null;
- if(appletOrder.getType().equals("0")){
-
- // TODO 这里需要加上伴宠师等级的筛选
-
- list = appletOrderService.selectAppletOrderListLikeUserIdJson(appletOrder);
- for (AppletOrder order : list) {
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId());
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
-
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<PetVO> petVOList = new ArrayList<>();
-
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
-
- // 检查 petVO 的 id 是否已经添加过
- if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- }
- }
- }
- //得到当前用户角色
- if(appUsers.getUserBcs()!=0){
- //保留两位小数点
- BigDecimal multiply = order.getPrice().multiply(petPayment).setScale(2, RoundingMode.HALF_UP);
- order.setOrderGive(multiply);
- }else{
- order.setOrderGive(new BigDecimal(0));
- }
- h5OrderVO.setPetVOList(petVOList);
- order.setH5OrderVO(h5OrderVO);
- }
- TableDataInfo dataTable = getDataTable(list);
- return AjaxResult.success(dataTable);
- }
- if (appletOrder.getType().equals("1")){
- AppletOrder orderQ = new AppletOrder();
- orderQ.setUserIdJson(appletOrder.getUserIdJson());
- orderQ.setType("1");
- orderQ.setStatus(0);
- list = appletOrderService.selectAppletOrderList(orderQ);
-
- for (AppletOrder order : list) {
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId());
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<PetVO> petVOList = new ArrayList<>();
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- // 检查 petVO 的 id 是否已经添加过
- if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- }
- }
- }
- //得到当前用户角色
- if(appUsers.getUserBcs()!=0){
- //保留两位小数点
- BigDecimal multiply = order.getPrice().multiply(petPayment).setScale(2, RoundingMode.HALF_UP);
- order.setOrderGive(multiply);
- }else{
- order.setOrderGive(new BigDecimal(0));
- }
- h5OrderVO.setPetVOList(petVOList);
- order.setH5OrderVO(h5OrderVO);
-
-
-
-
- }
- TableDataInfo dataTable = getDataTable(list);
- return AjaxResult.success(dataTable);
- }
- if (appletOrder.getType().equals("2")){
- AppletOrderItem appletOrderItem = new AppletOrderItem();
- appletOrderItem.setStatus(2);
- appletOrderItem.setUserId(appletOrder.getUserId());
- itemList = appletOrderItemService.selectAppletOrderItemList(appletOrderItem);
- for (AppletOrderItem orderItem:itemList){
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(orderItem.getOrderId());
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<PetVO> petVOList = new ArrayList<>();
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- // 检查 petVO 的 id 是否已经添加过
- if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- }
- }
- }
-
- orderItem.setOrderGive(orderItem.getOrderGivePrice());
- h5OrderVO.setPetVOList(petVOList);
- orderItem.setH5OrderVO(h5OrderVO);
- }
- TableDataInfo dataTable = getDataTable(itemList);
- return AjaxResult.success(dataTable);
- }
- return AjaxResult.success();
- }
-
-
-
-
- //接单大厅 - 根据订单标识查询订单详情的接口
- @ApiOperation("接单大厅 - 根据订单标识查询订单详情的接口")
- @GetMapping("/getByOrderId")
- public AjaxResult getByOrderId(AppletOrder appletOrder){
- if(appletOrder.getId() == null){
- return AjaxResult.error("订单标识不能为空");
- }
- if(appletOrder.getUserId() == null){
- return AjaxResult.error("用户标识不能为空");
- }
-
- //根据用户标识得到用户信息
- AppUsers appUsers = appUsersService.selectAppUsersByUserId(appletOrder.getUserId());
- BigDecimal petPayment = new BigDecimal(0);
- //得到当前用户角色
- if(appUsers.getUserBcs()!=0){
- //根据当前等级得到当前的返点比例
- AppletConfig petPaymentBcs = configService.selectAppletConfigByClassAndNum("pet_payment_bcs", appUsers.getUserBcs());
- petPayment = petPaymentBcs.getParamValueNo();
- }
- AppletOrder order = appletOrderService.selectAppletOrderById(appletOrder.getId());
- //如果是流失订单
- if (order==null){
- // AppletOrderItem orderQ = new AppletOrderItem();
- // orderQ.setUserId(appletOrder.getUserId());
- // orderQ.setOrderId(appletOrder.getOrderId());
- AppletOrderItem orderItem = appletOrderItemService.selectAppletOrderItemById(appletOrder.getId());
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(orderItem.getOrderId());
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<PetVO> petVOList = new ArrayList<>();
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- // 检查 petVO 的 id 是否已经添加过
- if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- }
- }
-
- }
-
- //得到当前用户角色
- if(appUsers.getUserBcs()!=0){
- //保留两位小数点
- BigDecimal multiply = orderItem.getPrice().multiply(petPayment).setScale(2, RoundingMode.HALF_UP);
- orderItem.setOrderGive(multiply);
- }else{
- orderItem.setOrderGive(new BigDecimal(0));
- }
- h5OrderVO.setPetVOList(petVOList);
- orderItem.setH5OrderVO(h5OrderVO);
- // order.setManagerOrderDetailVO(service.selectById(order.getOrderId()));
- Map<String, Object> map = new HashMap();
- map.put("order",orderItem);
- AppletConfig config = new AppletConfig();
- config.setParamClass("pet_payment_bcs");
- List<AppletConfig> appletConfigs = configService.selectAppletConfigList(config);
- map.put("pet_payment_bcs",appletConfigs);
- return AjaxResult.success("接单大厅查看详情",map);
- }
-
-
-
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId());
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<PetVO> petVOList = new ArrayList<>();
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- // 检查 petVO 的 id 是否已经添加过
- if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- }
- }
-
- }
-
- //得到当前用户角色
- if(appUsers.getUserBcs()!=0){
- //保留两位小数点
- BigDecimal multiply = order.getPrice().multiply(petPayment).setScale(2, RoundingMode.HALF_UP);
- order.setOrderGive(multiply);
- }else{
- order.setOrderGive(new BigDecimal(0));
- }
- h5OrderVO.setPetVOList(petVOList);
- order.setH5OrderVO(h5OrderVO);
- // order.setManagerOrderDetailVO(service.selectById(order.getOrderId()));
- Map<String, Object> map = new HashMap();
- map.put("order",order);
- AppletConfig config = new AppletConfig();
- config.setParamClass("pet_payment_bcs");
- List<AppletConfig> appletConfigs = configService.selectAppletConfigList(config);
- map.put("pet_payment_bcs",appletConfigs);
- return AjaxResult.success("接单大厅查看详情",map);
- }
-
-
- //接单大厅 - 拒绝、无法接单
- @ApiOperation("接单大厅 - 拒绝、无法接单")
- @PostMapping("/endByOrderId")
- public AjaxResult endByOrderId(@RequestBody AppletOrder appletOrder){
- if(appletOrder.getId() == null){
- return AjaxResult.error("订单标识不能为空");
- }
- if(appletOrder.getUserId() == null){
- return AjaxResult.error("userId用户信息标识不能为空");
- }
- if(appletOrder.getReason() == null){
- return AjaxResult.error("无法接单原因不能为空");
- }
- AppletOrder order = appletOrderService.selectAppletOrderById(appletOrder.getId());
- //生成我的订单信息
- AppletOrderItem appletOrderItem = new AppletOrderItem();
- appletOrderItem.setCreateTime(order.getCreateTime());
- appletOrderItem.setType(order.getType());
- appletOrderItem.setStatus(2);
- appletOrderItem.setReason(appletOrder.getReason());
- // appletOrderItem.setStartTime(LocalDateTime.now());
- appletOrderItem.setUserId(appletOrder.getUserId());
- //根据用户标识查询用户认证信息
- AppUsers appUsers = appUsersService.selectAppUsersByUserId(appletOrder.getUserId());
- AppletUsersTeacher appletUsersTeacher = appletUsersTeacherService.selectAppletUsersTeacherByUserId(appletOrder.getUserId());
- appletOrderItem.setName(appletUsersTeacher.getName());
- appletOrderItem.setPhone(appletUsersTeacher.getPhone());
- appletOrderItem.setOrderStatus(3); //相当于已经取消
-
- //得到当前用户的伴宠师等级
- Integer userBcs = appUsers.getUserBcs();
- //查询用户的当前分配比例
- AppletConfig petPaymentBcs = configService.selectAppletConfigByClassAndNum("pet_payment_bcs", userBcs);
- //得到配置百分比
- BigDecimal percent = petPaymentBcs.getParamValueNo();
- //得到订单支付金额
- BigDecimal orderPrice = order.getPrice();
- //计算订单佣金 = 支付金额 * 百分比
- BigDecimal orderGivePrice = orderPrice.multiply(percent);
- appletOrderItem.setPrice(orderPrice);
- appletOrderItem.setOrderGiveProportion(percent);
- appletOrderItem.setOrderGivePrice(orderGivePrice);
- appletOrderItem.setAddress(order.getAddress());
- appletOrderItem.setOrderSn(order.getOrderSn());
- appletOrderItem.setOrderId(order.getOrderId());
- appletOrderItem.setIsPet(0);
- appletOrderItem.setIsDate(0);
- appletOrderItem.setIsAddress(0);
- appletOrderItem.setPayTime(order.getPayTime());
-
-
- appletOrderItemService.insertAppletOrderItem(appletOrderItem);
-
-
-
- appletOrder.setType("0");//派单归为派单中
- appletOrder.setStatus(0);
- appletOrder.setNum(order.getNum()+1);
- appletOrder.setUpdateTime(LocalDateTime.now());
- //根据系统派单规则给到所有的接单者 、、还需要修改现在给所有人
-
- //appletUserId 用json形式储存 == 》这个地方还需要调优
- AppUsers usersGo = new AppUsers();
- usersGo.setUserBcs(1);
- List<AppUsers> appUsersList = appUsersService.selectAppUsersList(usersGo);
- //得到所有的伴宠师id
- String appletUserId = "";
- for (AppUsers users : appUsersList) {
- if(!appletOrder.getUserId().equals(users.getUserId())){
- appletUserId += users.getUserId()+",";
- }
- }
- appletOrder.setUserIdJson(appletUserId);
-
- //清空接单人字段
- appletOrder.setUserIdJson("");
-
- appletOrderService.updateAppletOrder(appletOrder);
- return AjaxResult.success("拒单成功",appletOrder);
- }
-
-
-
- //接单大厅 - 立即接单
- @ApiOperation("接单大厅 - 立即接单")
- @PostMapping("/startByOrderId")
- @Synchronized
- @Transactional
- public AjaxResult startByOrderId(@RequestBody AppletOrder appletOrder){
- if(appletOrder.getId() == null){
- return AjaxResult.error("订单标识不能为空");
- }
- if(appletOrder.getUserId() == null){
- return AjaxResult.error("userId用户信息标识不能为空");
- }
-
- AppletOrder order = appletOrderService.selectAppletOrderById(appletOrder.getId());
- if(order.getStatus() == 1){
- return AjaxResult.error("该订单已被接单");
- }
- //生成我的订单信息
- AppletOrderItem appletOrderItem = new AppletOrderItem();
- long id = System.currentTimeMillis();
- appletOrderItem.setId(id);
- appletOrderItem.setCreateTime(order.getCreateTime());
- appletOrderItem.setType(order.getType());
- appletOrderItem.setStatus(1);
- // appletOrderItem.setReason(appletOrder.getReason());
- appletOrderItem.setStartTime(LocalDateTime.now());
- appletOrderItem.setUserId(appletOrder.getUserId());
- //根据用户标识查询用户认证信息
- AppUsers appUsers = appUsersService.selectAppUsersByUserId(appletOrder.getUserId());
- AppletUsersTeacher appletUsersTeacher = appletUsersTeacherService.selectAppletUsersTeacherByUserId(appletOrder.getUserId());
- appletOrderItem.setName(appletUsersTeacher.getName());
- appletOrderItem.setPhone(appletUsersTeacher.getPhone());
- appletOrderItem.setOrderStatus(0);
-
- //得到当前用户的伴宠师等级
- Integer userBcs = appUsers.getUserBcs();
- //查询用户的当前分配比例
- AppletConfig petPaymentBcs = configService.selectAppletConfigByClassAndNum("pet_payment_bcs", userBcs);
- //得到配置百分比
- BigDecimal percent = petPaymentBcs.getParamValueNo();
- //得到订单支付金额
- BigDecimal orderPrice = order.getPrice();
- //计算订单佣金 = 支付金额 * 百分比
- BigDecimal orderGivePrice = orderPrice.multiply(percent);
- appletOrderItem.setPrice(orderPrice);
- appletOrderItem.setOrderGiveProportion(percent);
- appletOrderItem.setOrderGivePrice(orderGivePrice);
- appletOrderItem.setAddress(order.getAddress());
- appletOrderItem.setOrderSn(order.getOrderSn());
- appletOrderItem.setOrderId(order.getOrderId());
- appletOrderItem.setIsPet(1);
- appletOrderItem.setIsDate(1);
- appletOrderItem.setIsAddress(1);
-
-
- appletOrderItemService.insertAppletOrderItem(appletOrderItem);
-
- appletOrder.setStatus(1);
- appletOrderService.updateAppletOrder(appletOrder);
-
-
-
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId());
- //根据服务频率 服务日期 生成日订单
- for (OmsOrderService service : h5OrderVO.getOrderServiceList()) {
- AppletOrderItemDate appletOrderItemDate = new AppletOrderItemDate();
-
- appletOrderItemDate.setUserId(appletOrder.getUserId());
- appletOrderItemDate.setOrderId(id);
- appletOrderItemDate.setStatus(0);
- appletOrderItemDate.setOrderServiceId(service.getId());
- appletOrderItemDate.setServiceDate(service.getServiceDate());
- appletOrderItemDate.setCityAddress(h5OrderVO.getReceiverProvince() + h5OrderVO.getReceiverCity() + h5OrderVO.getReceiverDistrict());
- appletOrderItemDate.setAddress(h5OrderVO.getReceiverDetailAddress());
- appletOrderItemDateService.insertAppletOrderItemDate(appletOrderItemDate);
-
- }
-
-
- //生成其他人的流失订单
- String[] split = order.getUserIdJson().split(",");
- for (String s : split) {
-
- if (Long.parseLong(s) != appletOrder.getUserId()) {
- AppletOrderItem appletOrderItemOther = new AppletOrderItem();
- appletOrderItemOther.setCreateTime(order.getCreateTime());
- appletOrderItemOther.setType(order.getType());
- appletOrderItemOther.setStatus(2);
- appletOrderItemOther.setReason("被其他伴宠师接单");
- appletOrderItemOther.setUserId(Long.valueOf(s));
- //根据用户标识查询用户认证信息
- AppUsers appUsersOther = appUsersService.selectAppUsersByUserId(Long.valueOf(s));
- AppletUsersTeacher appletUsersTeacherOther = appletUsersTeacherService.selectAppletUsersTeacherByUserId(Long.valueOf(s));
- appletOrderItemOther.setName(appletUsersTeacherOther.getName());
- appletOrderItemOther.setPhone(appletUsersTeacherOther.getPhone());
- appletOrderItemOther.setOrderStatus(3); //相当于已经取消
-
- //得到当前用户的伴宠师等级
- Integer userBcsOther = appUsersOther.getUserBcs();
- //查询用户的当前分配比例
- AppletConfig petPaymentBcsOther = configService.selectAppletConfigByClassAndNum("pet_payment_bcs", userBcsOther);
- //得到配置百分比
- BigDecimal percentOther = petPaymentBcsOther.getParamValueNo();
- //得到订单支付金额
- BigDecimal orderPriceOther = order.getPrice();
- //计算订单佣金 = 支付金额 * 百分比
- BigDecimal orderGivePriceOther = orderPriceOther.multiply(percentOther);
- appletOrderItemOther.setPrice(orderPrice);
- appletOrderItemOther.setOrderGiveProportion(percent);
- appletOrderItemOther.setOrderGivePrice(orderGivePriceOther);
- appletOrderItemOther.setAddress(order.getAddress());
- appletOrderItemOther.setOrderSn(order.getOrderSn());
- appletOrderItemOther.setOrderId(order.getOrderId());
- appletOrderItemOther.setIsPet(0);
- appletOrderItemOther.setIsDate(0);
- appletOrderItemOther.setIsAddress(0);
- appletOrderItemOther.setPayTime(order.getPayTime());
-
-
- appletOrderItemService.insertAppletOrderItem(appletOrderItemOther);
- }
-
- }
-
-
-
-
-
- appletOrderDateFrequencyService.aceptOrdersGenerateDayOrdersByOrderVO(h5OrderVO, appletOrder.getUserId());
-
-
-
-
- return AjaxResult.success("接单成功",appletOrder);
- }
-
-
-
- //我的订单流程
- @ApiOperation("小程序-我的订单流程-总订单")
- @GetMapping("/myList")
- public AjaxResult myList(AppletOrderItem orderItem){
- if(orderItem.getOrderStatus()==null){
- return AjaxResult.error("orderStatus状态不能为空");
- }
- if(orderItem.getUserId() == null){
- return AjaxResult.error("userId用户信息标识不能为空");
- }
- List<AppletOrderItem> itemList = appletOrderItemService.selectAppletOrderItemList(orderItem);
- // for (AppletOrderItem item:itemList){
- // H5OrderVO h5OrderVO = h5OrderService.orderDetail(item.getOrderId());
- // //得到服务信息
- // List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- // List<PetVO> petVOList = new ArrayList<>();
- // for (OmsOrderService service1:service){
- // //宠物标识不为空的时候查询数据
- // if(service1.getPetId()!=null){
- // PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- // service1.setPetVo(petVO);
- // petVOList.add(petVO);
- // }
- // }
- // h5OrderVO.setPetVOList(petVOList);
- // item.setH5OrderVO(h5OrderVO);
- // }
- for (AppletOrderItem item:itemList){
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(item.getOrderId());
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
-
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<PetVO> petVOList = new ArrayList<>();
-
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
-
- // 检查 petVO 的 id 是否已经添加过
- if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- }
- }
- }
-
-
-
-
- h5OrderVO.setPetVOList(petVOList);
- item.setH5OrderVO(h5OrderVO);
- }
- TableDataInfo dataTable = getDataTable(itemList);
- return AjaxResult.success("我的订单数据列表",dataTable);
- }
-
-
-
- //
- // //我的订单流程
- // @ApiOperation("小程序-我的订单流程-日订单")
- // @GetMapping("/myDateList")
- // public AjaxResult myDateList(AppletOrderDateVo dateVo){
- // if(dateVo.getUserId() == null){
- // return AjaxResult.error("userId用户标识不能为空");
- // }
- // if(dateVo.getStatus() == null){
- // return AjaxResult.error("status当前状态不能为空");
- // }
- //
- // //查询我所有的日订单数据
- // AppletOrderItemDate date = new AppletOrderItemDate();
- // date.setUserId(dateVo.getUserId());
- // date.setStatus(dateVo.getStatus());
- // List<AppletOrderItemDate> addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date);
- //
- // Set<String> uniqueDates = new HashSet<>();
- // List<AppletOrderDateVoReturn> dateVoReturnList = new ArrayList<>();
- //
- // for (AppletOrderItemDate date1 : addressList) {
- // if (uniqueDates.add(date1.getServiceDate())) {
- // AppletOrderDateVoReturn dateVoReturn = new AppletOrderDateVoReturn();
- // dateVoReturn.setServiceDate(date1.getServiceDate());
- //
- // if(dateVo.getStatus() == 1){
- // AppletOrderItem orders = appletOrderItemService.selectAppletOrderItemById(date1.getOrderId());
- // if(orders.getOrderStatus()==2){
- // dateVoReturnList.add(dateVoReturn);
- // }
- // }else{
- // dateVoReturnList.add(dateVoReturn);
- // }
- //
- // }
- // }
- //
- //
- // //得到日订单集合
- // for (AppletOrderDateVoReturn dateVoReturn : dateVoReturnList) {
- // //得到日订单日期
- // String serviceDate = dateVoReturn.getServiceDate();
- //
- // //订单下订单集合
- // AppletOrderItemDate service = new AppletOrderItemDate();
- // service.setServiceDate(serviceDate);
- //
- // List<AppletOrderItemDate> serviceList = appletOrderItemDateService.selectAppletOrderItemDateList(service);
- // List<AppletOrderDateAddressReturn> uniqueOrderDetails = serviceList.stream()
- // .collect(Collectors.toMap(
- // AppletOrderItemDate::getOrderId, // 使用orderId作为键
- // item -> new AppletOrderDateAddressReturn(item.getOrderId(), item.getCityAddress(), item.getAddress()), // 创建OrderDetails对象作为值
- // (existing, replacement) -> existing // 如果有重复的orderId,保留现有的(可以根据需要修改合并逻辑)
- // ))
- // .values()
- // .stream()
- // .collect(Collectors.toList());
- // // 假设dateVoReturn有一个setOrderList方法
- //
- // dateVoReturn.setOrderList(uniqueOrderDetails);
- // dateVoReturn.setNum(uniqueOrderDetails.size());
- //
- // for (AppletOrderDateAddressReturn uniqueOrderDetail : uniqueOrderDetails) {
- // AppletOrderItemDate appletOrderItemDate = new AppletOrderItemDate();
- // appletOrderItemDate.setOrderId(uniqueOrderDetail.getOrderId());
- // appletOrderItemDate.setServiceDate(serviceDate);
- //
- //
- // List<AppletOrderItemDate> appletOrderItemDates = appletOrderItemDateService.selectAppletOrderItemDateList(appletOrderItemDate);
- // for (AppletOrderItemDate appletOrderItemDate1 : appletOrderItemDates) {
- // // 组装item
- // QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>();
- // orderItemQw.eq("order_service_id", appletOrderItemDate1.getOrderServiceId());
- // List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw);
- // appletOrderItemDate1.setOrderItemList(orderItemList);
- //
- //
- // OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(appletOrderItemDate1.getOrderServiceId());
- // omsOrderService.setPetVo(h5PetService.selectPetById(omsOrderService.getPetId()));
- // appletOrderItemDate1.setOrderServiceList(omsOrderService);
- // }
- //
- // uniqueOrderDetail.setAppletOrderItemDate(appletOrderItemDates);
- //
- //
- //
- // }
- //
- //
- // }
- //
- //
- //
- //
- //
- //
- //
- // return AjaxResult.success("日订单数据",dateVoReturnList);
- // }
-
-
-
- @ApiOperation("小程序-我的订单流程-日订单")
- @GetMapping("/myDateList")
- public AjaxResult myDateList(AppletOrderDateVo dateVo) {
- if (dateVo.getUserId() == null) {
- return AjaxResult.error("userId用户标识不能为空");
- }
- if (dateVo.getStatus() == null) {
- return AjaxResult.error("status当前状态不能为空");
- }
-
- // 查询我所有的日订单数据
- AppletOrderItemDate date = new AppletOrderItemDate();
- date.setUserId(dateVo.getUserId());
- date.setStatus(dateVo.getStatus());
- List<AppletOrderItemDate> addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date);
-
- // 用于存储按日期分组的订单
- Map<String, List<AppletOrderItemDate>> dateToOrdersMap = new HashMap<>();
-
- for (AppletOrderItemDate dateItem : addressList) {
- String serviceDate = dateItem.getServiceDate();
- dateToOrdersMap.computeIfAbsent(serviceDate, k -> new ArrayList<>()).add(dateItem);
- }
-
- List<AppletOrderDateVoReturn> dateVoReturnList = new ArrayList<>();
-
- // 遍历每个日期
- for (Map.Entry<String, List<AppletOrderItemDate>> entry : dateToOrdersMap.entrySet()) {
- String serviceDate = entry.getKey();
- List<AppletOrderItemDate> ordersForDate = entry.getValue();
-
- // 遍历该日期的所有订单
- for (AppletOrderItemDate orderItemDate : ordersForDate) {
- AppletOrderDateVoReturn dateVoReturn = new AppletOrderDateVoReturn();
- dateVoReturn.setServiceDate(serviceDate);
-
- if (dateVo.getStatus() == 1) {
- AppletOrderItem orders = appletOrderItemService.selectAppletOrderItemById(orderItemDate.getOrderId());
- if (orders.getOrderStatus() == 2) {
- // 直接添加,不进行过滤
- dateVoReturnList.add(dateVoReturn);
- }
- } else {
- dateVoReturnList.add(dateVoReturn);
- }
-
- // 设置订单详情
- List<AppletOrderDateAddressReturn> orderDetailsList = new ArrayList<>();
- AppletOrderDateAddressReturn orderDetails = new AppletOrderDateAddressReturn(
- orderItemDate.getOrderId(),
- orderItemDate.getCityAddress(),
- orderItemDate.getAddress()
- );
- orderDetailsList.add(orderDetails);
-
- dateVoReturn.setOrderList(orderDetailsList);
- dateVoReturn.setNum(orderDetailsList.size());
-
- // 设置订单项
- AppletOrderItemDate appletOrderItemDate = new AppletOrderItemDate();
- appletOrderItemDate.setOrderId(orderItemDate.getOrderId());
- appletOrderItemDate.setServiceDate(serviceDate);
-
- List<AppletOrderItemDate> appletOrderItemDates = appletOrderItemDateService.selectAppletOrderItemDateList(appletOrderItemDate);
- for (AppletOrderItemDate itemDate : appletOrderItemDates) {
- QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>();
- orderItemQw.eq("order_service_id", itemDate.getOrderServiceId());
- List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw);
- itemDate.setOrderItemList(orderItemList);
-
- OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(itemDate.getOrderServiceId());
- omsOrderService.setPetVo(h5PetService.selectPetById(omsOrderService.getPetId()));
- itemDate.setOrderServiceList(omsOrderService);
- }
-
- orderDetails.setAppletOrderItemDate(appletOrderItemDates);
- }
- }
-
- return AjaxResult.success("日订单数据", dateVoReturnList);
- }
-
- //
- // @ApiOperation("小程序-我的订单流程-日订单")
- // @GetMapping("/myDateList")
- // public AjaxResult myDateList(AppletOrderDateVo dateVo) {
- // if (dateVo.getUserId() == null) {
- // return AjaxResult.error("userId用户标识不能为空");
- // }
- // if (dateVo.getStatus() == null) {
- // return AjaxResult.error("status当前状态不能为空");
- // }
- //
- // // 查询我所有的日订单数据
- // AppletOrderItemDate date = new AppletOrderItemDate();
- // date.setUserId(dateVo.getUserId());
- // date.setStatus(dateVo.getStatus());
- // List<AppletOrderItemDate> addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date);
- //
- // // 用于存储按日期分组的订单
- // Map<String, List<AppletOrderItemDate>> dateToOrdersMap = new HashMap<>();
- //
- // for (AppletOrderItemDate dateItem : addressList) {
- // String serviceDate = dateItem.getServiceDate();
- // dateToOrdersMap.computeIfAbsent(serviceDate, k -> new ArrayList<>()).add(dateItem);
- // }
- //
- // List<AppletOrderDateVoReturn> dateVoReturnList = new ArrayList<>();
- //
- // // 遍历每个日期
- // for (Map.Entry<String, List<AppletOrderItemDate>> entry : dateToOrdersMap.entrySet()) {
- // String serviceDate = entry.getKey();
- // List<AppletOrderItemDate> ordersForDate = entry.getValue();
- //
- // // 创建一个合并的订单对象
- // AppletOrderDateVoReturn dateVoReturn = new AppletOrderDateVoReturn();
- // dateVoReturn.setServiceDate(serviceDate);
- //
- // // 合并订单的地址信息(假设所有订单地址相同,或者选择第一个订单的地址)
- // if (!ordersForDate.isEmpty()) {
- // AppletOrderItemDate firstOrder = ordersForDate.get(0);
- // AppletOrderDateAddressReturn orderDetails = new AppletOrderDateAddressReturn(
- // firstOrder.getOrderId(),
- // firstOrder.getCityAddress(),
- // firstOrder.getAddress()
- // );
- //
- // List<AppletOrderDateAddressReturn> orderDetailsList = new ArrayList<>();
- // orderDetailsList.add(orderDetails);
- //
- // dateVoReturn.setOrderList(orderDetailsList);
- // dateVoReturn.setNum(ordersForDate.size()); // 设置订单数量
- //
- // // 设置订单项
- // List<AppletOrderItemDate> appletOrderItemDates = new ArrayList<>();
- // for (AppletOrderItemDate orderItemDate : ordersForDate) {
- // AppletOrderItemDate itemDate = new AppletOrderItemDate();
- // itemDate.setOrderId(orderItemDate.getOrderId());
- // itemDate.setServiceDate(serviceDate);
- //
- // // 查询订单项信息
- // QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>();
- // orderItemQw.eq("order_service_id", itemDate.getOrderServiceId());
- // List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw);
- // itemDate.setOrderItemList(orderItemList);
- //
- // OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(itemDate.getOrderServiceId());
- // omsOrderService.setPetVo(h5PetService.selectPetById(omsOrderService.getPetId()));
- // itemDate.setOrderServiceList(omsOrderService);
- //
- // appletOrderItemDates.add(itemDate);
- // }
- //
- // orderDetails.setAppletOrderItemDate(appletOrderItemDates);
- // }
- //
- // // 添加合并后的订单到结果列表
- // dateVoReturnList.add(dateVoReturn);
- // }
- //
- // return AjaxResult.success("日订单数据", dateVoReturnList);
- // }
-
-
-
-
- //我的订单流程
- @ApiOperation("小程序-我的订单流程订单详情")
- @GetMapping("/getOrderItemById")
- public AjaxResult getOrderItemById(AppletOrderItem orderItem){
- if(orderItem.getId() == null){
- return AjaxResult.error("订单标识不能为空");
- }
- if(orderItem.getUserId() == null){
- return AjaxResult.error("用户标识不能为空");
- }
- AppletOrderItem order = appletOrderItemService.selectAppletOrderItemById(orderItem.getId());
- // H5OrderVO h5OrderVO1 = h5OrderService.orderDetail(order.getOrderId());
-
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId());
- //得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- List<PetVO> petVOList = new ArrayList<>();
- for (OmsOrderService service1:service){
- //宠物标识不为空的时候查询数据
- if(service1.getPetId()!=null){
- PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- service1.setPetVo(petVO);
- petVOList.add(petVO);
- }
- h5OrderVO.setPetVOList(petVOList);
- }
- order.setH5OrderVO(h5OrderVO);
- // order.setManagerOrderDetailVO(service.selectById(order.getOrderId()));
- Map<String, Object> map = new HashMap();
- map.put("order",order);
- AppletConfig config = new AppletConfig();
- config.setParamClass("pet_payment_bcs");
- List<AppletConfig> appletConfigs = configService.selectAppletConfigList(config);
- map.put("pet_payment_bcs",appletConfigs);
- return AjaxResult.success("我的订单流程订单详情",map);
- }
-
-
-
-
- //订单里面的宠物档案里面数据
- @ApiOperation("订单里面的宠物档案里面数据")
- @GetMapping("/getOrderPetById/{orderId}")
- public AjaxResult getOrderPetById(@PathVariable("orderId") Long orderId){
- H5OrderVO h5OrderVO = h5OrderService.orderDetail(orderId);
- // 得到服务信息
- List<OmsOrderService> service = h5OrderVO.getOrderServiceList();
- // 使用一个 Set 来跟踪已经添加的 PetVO 的 id
- Set<Integer> addedPetIds = new HashSet<>();
- List<Pet> petList = new ArrayList<>();
-
- for (OmsOrderService service1 : service) {
- // 宠物标识不为空的时候查询数据
- if (service1.getPetId() != null) {
- Pet pet = petMapper.selectById(service1.getPetId());
- // 检查 petVO 的 id 是否已经添加过
- if (pet != null && !addedPetIds.contains(pet.getId())) {
- service1.setPets(pet);
- petList.add(pet);
- addedPetIds.add(pet.getId()); // 标记该 id 已添加
- }
- }
-
- }
-
- // List<PetVO> pets = new ArrayList<>();
- // for (OmsOrderService service1 : service) {
- // // 宠物标识不为空的时候查询数据
- // if (service1.getPetId() != null) {
- // PetVO petVO = h5PetService.selectPetById(service1.getPetId());
- // // 检查 petVO 的 id 是否已经添加过
- // if (petVO != null && !addedPetIds.contains(petVO.getId())) {
- // service1.setPetVo(petVO);
- // pets.add(petVO);
- // addedPetIds.add(petVO.getId()); // 标记该 id 已添加
- // }
- // }
- //
- // }
-
-
-
-
-
-
- return AjaxResult.success("订单里面的宠物档案里面数据",petList);
- }
-
-
- //根据宠物标识查询重新宠物信息
- @ApiOperation("根据宠物标识查询重新宠物信息")
- @GetMapping("/getPetById/{petId}")
- public AjaxResult getPetById(@PathVariable("petId") Integer petId){
- PetVO petVO = h5PetService.selectPetById(petId);
- return AjaxResult.success("根据宠物标识查询重新宠物信息",petVO);
- }
-
-
-
- //根据宠物信息标识查询宠物档案信息列表带分页
- @ApiOperation("根据宠物信息标识查询宠物档案信息列表带分页")
- @GetMapping("/petList")
- public TableDataInfo petList(PetCare petCare) {
- startPage();
- List<PetCare> list = petCareService.selectPetCareList(petCare);
- return getDataTable(list);
- }
-
-
-
- //根据宠物信息查询宠物档案信息
- @ApiOperation("根据宠物信息标识查询宠物档案信息列表带分页")
- @GetMapping("/getPetCareByPetId/{petId}")
- public AjaxResult petCareList(@PathVariable("petId") Integer petId) {
- PetCare petCare1 = petCareService.selectPetCareByPetId(petId);
- return AjaxResult.success("服务档案信息查询成功",petCare1);
- }
-
-
-
-
-
-
-
-
- //测试派单
- @ApiOperation("派单")
- @GetMapping("/dispatch/{orderId}")
- public AjaxResult dispatch(@PathVariable("orderId")Long orderId){
- mallOrderService.dispatch(orderId);
- return AjaxResult.success("派单成功");
- }
-
-
-
-
-
-
-
-
-
-
- }
|