猫妈狗爸伴宠师小程序后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

558 lines
23 KiB

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<AppletOrder> list = null;
List<AppletOrderItem> itemList = null;
if(appletOrder.getType().equals("0")){
list = appletOrderService.selectAppletOrderListLikeUserIdJson(appletOrder);
// for (AppletOrder order:list){
// 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);
// }
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 已添加
}
}
}
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<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);
// }
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 已添加
}
}
}
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();
// 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);
// orderItem.setH5OrderVO(h5OrderVO);
// }
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 已添加
}
}
}
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<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);
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) {
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<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("/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();
List<PetVO> petVOList = new ArrayList<>();
Set<Long> 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<PetCare> list = petCareService.selectPetCareList(petCare);
return getDataTable(list);
}
// //测试派单
// @ApiOperation("派单")
// @GetMapping("/dispatch/{orderId}")
// public AjaxResult dispatch(@PathVariable("orderId")Long orderId){
// mallOrderService.dispatch(orderId);
// return AjaxResult.success("派单成功");
// }
}