package com.ruoyi.applet.contoller; 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.service.OrderService; import com.cyl.manager.ums.domain.PetCare; import com.cyl.manager.ums.pojo.vo.PetVO; 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.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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; @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 H5OrderService h5OrderService; @Autowired private OrderService service; @Autowired private AppletOrderItemServiceImpl appletOrderItemServiceImpl; @Autowired private H5PetService h5PetService; @Autowired private H5PetCareService petCareService; @ApiOperation("接单大厅列表-带分页") @GetMapping("/list") public AjaxResult outDateList(AppletOrder appletOrder){ if(appletOrder.getType()==null){ return AjaxResult.error("type状态不能为空"); } if(appletOrder.getUserIdJson() == null){ return AjaxResult.error("userIdJson用户信息标识不能为空"); } startPage(); List list = null; List itemList = null; if(appletOrder.getType().equals("0")){ list = appletOrderService.selectAppletOrderListLikeUserIdJson(appletOrder); // for (AppletOrder order:list){ // H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId()); // //得到服务信息 // List service = h5OrderVO.getOrderServiceList(); // List 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); // } for (AppletOrder order : list) { H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId()); // 得到服务信息 List service = h5OrderVO.getOrderServiceList(); // 使用一个 Set 来跟踪已经添加的 PetVO 的 id Set addedPetIds = new HashSet<>(); List 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); order.setH5OrderVO(h5OrderVO); } TableDataInfo dataTable = getDataTable(list); return AjaxResult.success(dataTable); } if (appletOrder.getType().equals("1")){ list = appletOrderService.selectAppletOrderList(appletOrder); // for (AppletOrder order:list){ // H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId()); // //得到服务信息 // List service = h5OrderVO.getOrderServiceList(); // List 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); // } for (AppletOrder order : list) { H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId()); // 得到服务信息 List service = h5OrderVO.getOrderServiceList(); // 使用一个 Set 来跟踪已经添加的 PetVO 的 id Set addedPetIds = new HashSet<>(); List 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); 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 service = h5OrderVO.getOrderServiceList(); // List 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); // orderItem.setH5OrderVO(h5OrderVO); // } for (AppletOrderItem orderItem:itemList){ H5OrderVO h5OrderVO = h5OrderService.orderDetail(orderItem.getOrderId()); // 得到服务信息 List service = h5OrderVO.getOrderServiceList(); // 使用一个 Set 来跟踪已经添加的 PetVO 的 id Set addedPetIds = new HashSet<>(); List 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); 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("用户标识不能为空"); // } AppletOrder order = appletOrderService.selectAppletOrderById(appletOrder.getId()); order.setH5OrderVO(h5OrderService.orderDetail(order.getOrderId())); order.setManagerOrderDetailVO(service.selectById(order.getOrderId())); Map map = new HashMap(); map.put("order",order); AppletConfig config = new AppletConfig(); config.setParamClass("pet_payment_bcs"); List 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); 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 appUsersList = appUsersService.selectAppUsersList(usersGo); //得到所有的伴宠师id String appletUserId = ""; for (AppUsers users : appUsersList) { appletUserId += users.getUserId()+","; } appletOrder.setUserIdJson(appletUserId); //清空接单人字段 appletOrder.setUserIdJson(""); appletOrderService.updateAppletOrder(appletOrder); return AjaxResult.success("拒单成功",appletOrder); } //接单大厅 - 立即接单 @ApiOperation("接单大厅 - 立即接单") @PostMapping("/startByOrderId") 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()); //生成我的订单信息 AppletOrderItem appletOrderItem = new AppletOrderItem(); 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); return AjaxResult.success("接单成功",appletOrder); } //我的订单流程 @ApiOperation("小程序-我的订单流程-总订单") @GetMapping("/myList") public AjaxResult myList(AppletOrderItem orderItem){ if(orderItem.getType()==null){ return AjaxResult.error("type状态不能为空"); } if(orderItem.getUserId() == null){ return AjaxResult.error("userId用户信息标识不能为空"); } List itemList = appletOrderItemService.selectAppletOrderItemList(orderItem); // for (AppletOrderItem item:itemList){ // H5OrderVO h5OrderVO = h5OrderService.orderDetail(item.getOrderId()); // //得到服务信息 // List service = h5OrderVO.getOrderServiceList(); // List 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 service = h5OrderVO.getOrderServiceList(); // 使用一个 Set 来跟踪已经添加的 PetVO 的 id Set addedPetIds = new HashSet<>(); List 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("/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 service = h5OrderVO.getOrderServiceList(); List 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 map = new HashMap(); map.put("order",order); AppletConfig config = new AppletConfig(); config.setParamClass("pet_payment_bcs"); List 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 service = h5OrderVO.getOrderServiceList(); List petVOList = new ArrayList<>(); Set addedPetIds = new HashSet<>(); // 用于跟踪已经添加的 PetVO 的 id 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(Long.valueOf(petVO.getId())); // 标记该 id 已添加 } } } return AjaxResult.success("订单里面的宠物档案里面数据",petVOList); } //根据宠物标识查询重新宠物信息 @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 list = petCareService.selectPetCareList(petCare); return getDataTable(list); } // //测试派单 // @ApiOperation("派单") // @GetMapping("/dispatch/{orderId}") // public AjaxResult dispatch(@PathVariable("orderId")Long orderId){ // mallOrderService.dispatch(orderId); // return AjaxResult.success("派单成功"); // } }