Browse Source

修复代码

master
主管理员 2 months ago
parent
commit
e124269bb3
24 changed files with 544 additions and 145 deletions
  1. +3
    -3
      CatmDogd-Mall-Front-test/.env.development
  2. +1
    -1
      CatmDogd-Mall-Front-test/.env.production
  3. +1
    -1
      CatmDogd-Mall-Front-test/.env.staging
  4. +1
    -1
      CatmDogd-Mall-Front-test/package.json
  5. +2
    -2
      CatmDogd-Mall-Front-test/public/index.html
  6. +1
    -1
      CatmDogd-Mall-Front-test/src/layout/components/Sidebar/Logo.vue
  7. +2
    -2
      CatmDogd-Mall-Front-test/src/views/login.vue
  8. +160
    -107
      CatmDogd-Mall-Front-test/src/views/model/AppletOrder/index.vue
  9. +1
    -0
      CatmDogd-Mall-Front-test/src/views/oms/order/index.vue
  10. +1
    -1
      CatmDogd-Mall-Front-test/src/views/register.vue
  11. +1
    -1
      CatmDogd-Mall-Front-test/vue.config.js
  12. +1
    -1
      ruoyi-admin/src/main/resources/application.yml
  13. +5
    -0
      ruoyi-catdog/pom.xml
  14. +47
    -11
      ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java
  15. +26
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/applet/service/IMallOrderService.java
  16. +145
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IMallOrderServiceImpl.java
  17. +32
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/controller/AppletOrderController.java
  18. +28
    -9
      ruoyi-catdog/src/main/java/com/ruoyi/model/domain/AppletOrder.java
  19. +2
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletOrderMapper.java
  20. +2
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletOrderService.java
  21. +11
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletOrderServiceImpl.java
  22. +62
    -1
      ruoyi-catdog/src/main/resources/mapper/model/AppletOrderMapper.xml
  23. +8
    -2
      ruoyi-mall/src/main/java/com/cyl/tencent/TaskConsumer.java
  24. +1
    -0
      ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml

+ 3
- 3
CatmDogd-Mall-Front-test/.env.development View File

@ -1,12 +1,12 @@
# 页面标题
VUE_APP_TITLE = 猫妈狗爸商城管理平台
VUE_APP_TITLE = 下单伴宠师综合管理平台
# 开发环境配置
ENV = 'development'
# 若依管理系统/开发环境 https://pet-admin.hhlm1688.com/api
VUE_APP_BASE_API = 'https://pet-admin.hhlm1688.com/api/prod-api'
#VUE_APP_BASE_API = 'http://localhost:8081/prod-api'
# VUE_APP_BASE_API = 'https://pet-admin.hhlm1688.com/api/prod-api'
VUE_APP_BASE_API = 'http://localhost:8001/prod-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true


+ 1
- 1
CatmDogd-Mall-Front-test/.env.production View File

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 猫妈狗爸商城管理平台测试环境
VUE_APP_TITLE = 下单伴宠师综合管理平台
# 生产环境配置
ENV = 'production'


+ 1
- 1
CatmDogd-Mall-Front-test/.env.staging View File

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 猫妈狗爸商城管理平台测试环境
VUE_APP_TITLE = 下单伴宠师综合管理平台
NODE_ENV = production


+ 1
- 1
CatmDogd-Mall-Front-test/package.json View File

@ -1,7 +1,7 @@
{
"name": "ruoyi-ui-merge",
"version": "3.8.3",
"description": "猫妈狗爸商城管理测试环境",
"description": "下单伴宠师综合管理平台",
"author": "若依",
"license": "MIT",
"scripts": {


+ 2
- 2
CatmDogd-Mall-Front-test/public/index.html View File

@ -2,8 +2,8 @@
<html>
<head>
<meta charset="utf-8">
<meta name="keywords" content="猫妈狗爸商场管理平台">
<meta name="description" content="猫妈狗爸商场管理平台">
<meta name="keywords" content="下单伴宠师综合管理平台">
<meta name="description" content="下单伴宠师综合管理平台">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">


+ 1
- 1
CatmDogd-Mall-Front-test/src/layout/components/Sidebar/Logo.vue View File

@ -33,7 +33,7 @@ export default {
},
data() {
return {
title: '猫妈狗爸商城管理测试环境',
title: '下单伴宠师综合管理平台',
logo: logoImg
}
}


+ 2
- 2
CatmDogd-Mall-Front-test/src/views/login.vue View File

@ -1,7 +1,7 @@
<template>
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">猫妈狗爸商城管理平台测试环境</h3>
<h3 class="title">下单伴宠师综合管理平台</h3>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
@ -56,7 +56,7 @@
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2023-2024 猫妈狗爸宠物服务平台</span>
<span>Copyright © 2023-2024 下单伴宠师综合管理平台</span>
</div>
</div>
</template>


+ 160
- 107
CatmDogd-Mall-Front-test/src/views/model/AppletOrder/index.vue View File

@ -1,57 +1,78 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
<el-form-item label="支付时间" prop="payTime">
<el-date-picker
clearable
size="small"
v-model="queryParams.payTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择支付时间">
</el-date-picker>
</el-form-item>
<el-form-item label="本单酬劳" prop="price">
<el-input
v-model="queryParams.price"
placeholder="请输入本单酬劳"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input
v-model="queryParams.address"
placeholder="请输入地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择订单类型" clearable size="small">
<!-- <el-form-item label="支付时间" prop="payTime">-->
<!-- <el-date-picker-->
<!-- clearable-->
<!-- size="small"-->
<!-- v-model="queryParams.payTime"-->
<!-- type="datetime"-->
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
<!-- placeholder="选择支付时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="本单酬劳" prop="price">-->
<!-- <el-input-->
<!-- v-model="queryParams.price"-->
<!-- placeholder="请输入本单酬劳"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="地址" prop="address">-->
<!-- <el-input-->
<!-- v-model="queryParams.address"-->
<!-- placeholder="请输入地址"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="派单类型" prop="type">
<!-- <el-select v-model="queryParams.type" placeholder="请选择派单类型" clearable size="small">-->
<!-- </el-select>-->
<el-select v-model="queryParams.type" placeholder="请选择派单类型" clearable size="small">
<el-option
v-for="dict in dict.type.applet_order_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="关联服务者ID" prop="userId">
<el-input
v-model="queryParams.userId"
placeholder="请输入关联服务者ID"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="订单状态" prop="type">
<!-- <el-select v-model="queryParams.status" placeholder="请选择订单状态" clearable size="small">-->
<!-- </el-select>-->
<el-select v-model="queryParams.status" placeholder="请选择订单状态" clearable size="small">
<el-option
v-for="dict in dict.type.applet_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="关联宠物ID" prop="petId">
<el-form-item label="请输入订单编号" label-width="300" prop="orderSn">
<el-input
v-model="queryParams.petId"
placeholder="请输入关联宠物ID"
v-model="queryParams.orderSn"
placeholder="请输入订单编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="关联宠物ID" prop="petId">-->
<!-- <el-input-->
<!-- v-model="queryParams.petId"-->
<!-- placeholder="请输入关联宠物ID"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -67,19 +88,19 @@
size="mini"
@click="handleAdd"
v-hasPermi="['model:AppletOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['model:AppletOrder:edit']"
>修改</el-button>
>新增派单信息</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['model:AppletOrder:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="danger"
@ -91,40 +112,63 @@
v-hasPermi="['model:AppletOrder:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['model:AppletOrder:export']"
>导出</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- :loading="exportLoading"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['model:AppletOrder:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="AppletOrderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="唯一标识" align="center" prop="id" />
<el-table-column label="支付时间" align="center" prop="payTime" width="180" v-if="columns[0].visible">
<el-table-column label="客户支付时间" align="center" prop="payTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.payTime, '')}}</span>
</template>
</el-table-column>
<el-table-column label="开始派单时间" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '')}}</span>
</template>
</el-table-column>
<el-table-column label="派单类型" align="center" prop="type">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.payTime, '')}}</span>
<dict-tag :options="dict.type.applet_order_type" :value="scope.row.type"/>
</template>
</el-table-column>
<el-table-column label="关联伴宠师" align="center" prop="userId" />
<el-table-column label="订单状态" align="center" prop="status" v-if="columns[2].visible">
<el-table-column label="派单伴宠师" align="center" prop="userIdJson" />
<el-table-column label="派单次数" align="center" prop="num" />
<el-table-column label="订单状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.applet_order_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="本单酬劳" align="center" prop="price" v-if="columns[1].visible"/>
<el-table-column label="地址" align="center" prop="address" v-if="columns[2].visible"/>
<!-- <el-table-column label="唯一标识" align="center" prop="id" />-->
<el-table-column label="接单伴宠师" align="center" prop="userId">
<template slot-scope="scope">
<span style="color: #409eff;" v-if="scope.row.userId">指定接单 {{ scope.row.userId }}</span>
<span style="color: #909399;font-style: italic;" v-else>系统派单未指定</span>
</template>
</el-table-column>
<el-table-column label="订单支付金额" align="center" prop="price" />
<el-table-column label="接单详细地址" align="center" prop="address" />
<el-table-column label="订单编号" align="center" prop="orderSn" />
<!-- <el-table-column label="订单类型" align="center" prop="type" v-if="columns[3].visible"/>-->
<el-table-column label="无法接单原因" align="center" prop="reason"/>
<!-- <el-table-column label="无法接单原因" align="center" prop="reason"/>-->
<el-table-column label="关联宠物ID" align="center" prop="petId" v-if="columns[6].visible"/>
<!-- <el-table-column label="关联宠物ID" align="center" prop="petId" v-if="columns[6].visible"/>-->
<!-- <el-table-column label="订单说明" align="center" prop="describeNo" v-if="columns[9].visible"/>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
@ -156,39 +200,42 @@
<!-- 添加或修改订单信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
<el-form-item label="支付时间" prop="payTime">
<el-date-picker clearable size="small"
v-model="form.payTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择支付时间">
</el-date-picker>
</el-form-item>
<el-form-item label="订单状态" prop="status">
<el-select v-model="form.status" placeholder="请选择订单状态">
<el-form ref="form" :model="form" :rules="rules" label-width="108px" >
<!-- <el-form-item label="支付时间" prop="payTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.payTime"-->
<!-- type="datetime"-->
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
<!-- placeholder="选择支付时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="派单类型" prop="type">
<el-select v-model="form.type" placeholder="请选择派单类型">
<el-option
v-for="dict in dict.type.applet_order_status"
v-for="dict in dict.type.applet_order_type"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)" ></el-option>
:value="dict.value" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="本单酬劳" prop="price">
<el-input v-model="form.price" placeholder="请输入本单酬劳" />
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="无法接单原因" prop="reason">
<el-input v-model="form.reason" type="textarea" placeholder="请输入内容" />
<!-- <el-form-item label="本单酬劳" prop="price">-->
<!-- <el-input v-model="form.price" placeholder="请输入本单酬劳" />-->
<!-- </el-form-item>-->
<el-form-item label="订单标识" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入订单标识" />
</el-form-item>
<el-form-item label="订单标识" prop="userId">
<el-input v-model="form.userId" placeholder="请输入订单标识" />
</el-form-item>
<el-form-item label="关联宠物ID" prop="petId">
<el-input v-model="form.petId" placeholder="请输入关联宠物ID" />
<el-form-item label="指定伴宠师" prop="userIdJson">
<el-input v-model="form.userIdJson" placeholder="请输入指定伴宠师标识:如果是指定伴宠师必填,如果是系统派单,则不填" />
</el-form-item>
<!-- <el-form-item label="无法接单原因" prop="reason">-->
<!-- <el-input v-model="form.reason" type="textarea" placeholder="请输入内容" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="订单标识" prop="userId">-->
<!-- <el-input v-model="form.userId" placeholder="请输入订单标识" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="关联宠物ID" prop="petId">-->
<!-- <el-input v-model="form.petId" placeholder="请输入关联宠物ID" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
@ -204,7 +251,7 @@ import { listAppletOrder, getAppletOrder, delAppletOrder, addAppletOrder, update
export default {
name: "AppletOrder",
dicts: ['applet_order_status'],
dicts: ['applet_order_status','applet_order_type'],
data() {
return {
//
@ -224,7 +271,7 @@ export default {
//
AppletOrderList: [],
//
title: "",
title: "新增派单信息",
//
open: false,
//
@ -244,7 +291,10 @@ export default {
userId: null,
petId: null,
num:null,
userIdJson: null,
orderSn:null,
orderId: null,
},
//
form: {},
@ -258,12 +308,12 @@ export default {
{ required: true, message: "本单酬劳不能为空", trigger: "blur" }
],
address: [
{ required: true, message: "地址不能为空", trigger: "blur" }
orderId: [
{ required: true, message: "客户下单订单标识不能为空", trigger: "blur" }
],
type: [
{ required: true, message: "单类型不能为空", trigger: "change" }
{ required: true, message: "单类型不能为空", trigger: "change" }
],
userId: [
@ -330,7 +380,10 @@ export default {
userId: null,
petId: null,
num:null,
userIdJson: null,
orderSn:null,
orderId: null,
};
this.resetForm("form");
},


+ 1
- 0
CatmDogd-Mall-Front-test/src/views/oms/order/index.vue View File

@ -74,6 +74,7 @@
<el-table v-loading="loading" :data="omsOrderList" border @selection-change="handleSelectionChange"
cell-class-name="my-cell">
<!-- <el-table-column type="selection" width="55" align="center"/> -->
<el-table-column label="订单标识" align="center" prop="id" />
<el-table-column label="客户手机号" prop="receiverPhone" width="110" align="center">
<template v-slot="scope">
<p>{{ scope.row.receiverPhone }}</p>


+ 1
- 1
CatmDogd-Mall-Front-test/src/views/register.vue View File

@ -1,7 +1,7 @@
<template>
<div class="register">
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
<h3 class="title">猫妈狗爸商城管理测试环境</h3>
<h3 class="title">下单伴宠师综合管理平台</h3>
<el-form-item prop="username">
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />


+ 1
- 1
CatmDogd-Mall-Front-test/vue.config.js View File

@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '猫妈狗爸商城管理' // 网页标题
const name = process.env.VUE_APP_TITLE || '下单伴宠师综合管理平台' // 网页标题
const port = process.env.port || process.env.npm_config_port || 8099 // 端口


+ 1
- 1
ruoyi-admin/src/main/resources/application.yml View File

@ -20,7 +20,7 @@ ruoyi:
# 开发环境配置.0
server:
# 服务器的HTTP端口,默认为8080
port: 8081
port: 8001
servlet:
# 应用的访问路径
context-path: /prod-api


+ 5
- 0
ruoyi-catdog/pom.xml View File

@ -12,6 +12,11 @@
<artifactId>ruoyi-catdog</artifactId>
<dependencies>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>


+ 47
- 11
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java View File

@ -1,7 +1,11 @@
package com.ruoyi.applet.contoller;
import com.cyl.h5.service.H5OrderService;
import com.cyl.manager.oms.service.OrderService;
import com.ruoyi.applet.pojo.vo.PetDate;
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.AppletOrder;
@ -12,6 +16,7 @@ import com.ruoyi.model.service.IAppletPetService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@ -23,28 +28,47 @@ import static cn.hutool.poi.excel.sax.ElementName.v;
@Api(description = "订单模块 - 接单大厅流程")
@RestController
@RequestMapping("/applet/order")
public class ApiAppletOrderController {
public class ApiAppletOrderController extends BaseController {
@Autowired
private IAppletOrderService appletOrderService;
@Autowired
private IAppletPetService appletPetService;
@Autowired
private IMallOrderService mallOrderService;
//下单小程序那边来的订单信息
@Autowired
private H5OrderService h5OrderService;
@Autowired
private OrderService service;
//接单大厅流程
@ApiOperation("小程序-接单大厅流程")
@GetMapping("/list")
public AjaxResult outDateList(AppletOrder appletOrder){
if(appletOrder.getStatus()==null){
return AjaxResult.error("status状态不能为空");
if(appletOrder.getType()==null){
return AjaxResult.error("type状态不能为空");
}
if(appletOrder.getUserId() == null){
return AjaxResult.error("userId用户信息标识不能为空");
if(appletOrder.getUserIdJson() == null){
return AjaxResult.error("userIdJson用户信息标识不能为空");
}
startPage();
List<AppletOrder> list = appletOrderService.selectAppletOrderList(appletOrder);
for(AppletOrder order:list){
order.setAppletPetList(appletPetService.selectAppletPetListByOrderId(order.getId()));
if(appletOrder.getType().equals("0")){
list = appletOrderService.selectAppletOrderListLikeUserIdJson(appletOrder);
}else{
list = appletOrderService.selectAppletOrderList(appletOrder);
}
for (AppletOrder order:list){
order.setH5OrderVO(h5OrderService.orderDetail(order.getOrderId()));
order.setManagerOrderDetailVO(service.selectById(order.getOrderId()));
}
return AjaxResult.success("接单大厅数据列表",list);
TableDataInfo dataTable = getDataTable(list);
return AjaxResult.success(dataTable);
}
@ -125,9 +149,7 @@ public class ApiAppletOrderController {
return AjaxResult.error("userId用户信息标识不能为空");
}
List<AppletOrder> list = appletOrderService.selectAppletOrderList(appletOrder);
for(AppletOrder order:list){
order.setAppletPetList(appletPetService.selectAppletPetListByOrderId(order.getId()));
}
return AjaxResult.success("我的订单数据列表",list);
}
@ -137,6 +159,20 @@ public class ApiAppletOrderController {
//测试派单
@ApiOperation("派单")
@GetMapping("/dispatch/{orderId}")
public AjaxResult dispatch(@PathVariable("orderId")Long orderId){
mallOrderService.dispatch(orderId);
return AjaxResult.success("派单成功");
}


+ 26
- 0
ruoyi-catdog/src/main/java/com/ruoyi/applet/service/IMallOrderService.java View File

@ -0,0 +1,26 @@
package com.ruoyi.applet.service;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.ruoyi.common.core.domain.AjaxResult;
/**
* 下单小程序 -点击派单 - 派单逻辑
*/
public interface IMallOrderService {
//点击派单进入派单逻辑
public void dispatch(Long orderId);
//接单进入接单逻辑 -> 1.根据规则查询可接单的伴宠师
// 有id传入则指定人员如果没有则随机派单
public AjaxResult acceptDispatch(Long appletUserId, H5OrderVO h5OrderVO);
//接单没有找到对应人员进入接单大厅接单逻辑
public AjaxResult acceptDispatchAll(H5OrderVO h5OrderVO);
}

+ 145
- 0
ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IMallOrderServiceImpl.java View File

@ -0,0 +1,145 @@
package com.ruoyi.applet.service.impl;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.service.H5OrderService;
import com.ruoyi.applet.service.IMallOrderService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.model.domain.AppUsers;
import com.ruoyi.model.domain.AppletOrder;
import com.ruoyi.model.service.IAppUsersService;
import com.ruoyi.model.service.IAppletOrderService;
import com.ruoyi.model.service.IAppletUsersTeacherService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Service
@Slf4j
public class IMallOrderServiceImpl implements IMallOrderService {
//下单小程序那边来的订单信息
@Autowired
private H5OrderService h5OrderService;
//伴宠师小程序获取已经认证好的伴宠师微信信息以及认证信息
@Autowired
private IAppUsersService appUsersService;
//伴宠师小程序派单信息的接收写入
@Autowired
private IAppletOrderService appletOrderService;
//点击派单进入派单逻辑
@Override
@Transactional(rollbackFor = Throwable.class)
public void dispatch(Long orderId){
//获取下单小程序的所有订单信息
H5OrderVO h5OrderVO = h5OrderService.orderDetail(orderId);
log.info("得到的伴宠师标识:userId:{}",h5OrderVO.getStaffId());
//获取当前规则内的可接单的伴宠师
//测试目前随机给一个 ----需要再次优化lzx:对接下单小程序
Long appletUserId = h5OrderVO.getStaffId();
appletUserId = 1743362133542L; //指定测试
//测试目前给所有能接单的伴宠师
//appletUserId = null;
acceptDispatch(appletUserId, h5OrderVO);
}
//接单进入接单逻辑 -> 1.根据规则查询可接单的伴宠师
// 有id传入则指定人员如果没有则进入接单大厅接单逻辑
@Override
public AjaxResult acceptDispatch(Long appletUserId, H5OrderVO h5OrderVO){
//查询该订单是否已存在
AppletOrder order = appletOrderService.selectAppletOrderByOrderId(h5OrderVO.getOrderId());
if(order != null){
log.error("该订单已存在,无需重复派单,order:{}",order);
return AjaxResult.error("该订单已存在,无需重复派单");
}
AppletOrder appletOrder = new AppletOrder();
if(appletUserId != null){
//指定人员接单
AppUsers appUsers = appUsersService.selectAppUsersByUserId(appletUserId);
if (appUsers == null) {
log.error("未找到伴宠师或伴宠师状态异常,流转进入接单大厅接单逻辑,appletUserId:{}",appletUserId);
acceptDispatchAll(h5OrderVO);
AjaxResult.error();;
}
appletOrder.setPayTime(LocalDateTime.now());
appletOrder.setCreateTime(LocalDateTime.now());
appletOrder.setType("1"); //指定人接单
//appletUserId 用json形式储存
appletOrder.setUserIdJson(""+appletUserId);
appletOrder.setNum(1);
appletOrder.setStatus(0); //派单中
appletOrder.setPrice(h5OrderVO.getPayAmount());//订单支付金额这个地方用来计算订单的佣金
//详细地址通过拼接得到
String address = h5OrderVO.getReceiverProvince() + h5OrderVO.getReceiverCity() + h5OrderVO.getReceiverDistrict() + h5OrderVO.getReceiverDetailAddress();
appletOrder.setAddress(address);//订单详细地址
appletOrder.setOrderSn(h5OrderVO.getOrderSn());
appletOrder.setOrderId(h5OrderVO.getOrderId());
appletOrderService.insertAppletOrder(appletOrder);
}else {
//接单大厅接单
acceptDispatchAll(h5OrderVO);
}
return AjaxResult.success();
}
//接单没有找到对应人员进入接单大厅接单逻辑
@Override
public AjaxResult acceptDispatchAll(H5OrderVO h5OrderVO){
//查询该订单是否已存在
AppletOrder order = appletOrderService.selectAppletOrderByOrderId(h5OrderVO.getOrderId());
if(order != null){
log.error("该订单已存在,无需重复派单,order:{}",order);
return AjaxResult.error("该订单已存在,无需重复派单");
}
AppletOrder appletOrder = new AppletOrder();
appletOrder.setPayTime(LocalDateTime.now());
appletOrder.setCreateTime(LocalDateTime.now());
appletOrder.setType("0"); //系统派单
//appletUserId 用json形式储存 == 这个地方还需要调优
List<AppUsers> appUsers = appUsersService.selectAppUsersList(null);
//得到所有的伴宠师id
String appletUserId = "";
for (AppUsers users : appUsers) {
appletUserId += users.getUserId()+",";
}
appletOrder.setUserIdJson(appletUserId);
appletOrder.setNum(1);
appletOrder.setStatus(0); //派单中
appletOrder.setPrice(h5OrderVO.getPayAmount());//订单支付金额这个地方用来计算订单的佣金
//详细地址通过拼接得到
String address = h5OrderVO.getReceiverProvince() + h5OrderVO.getReceiverCity() + h5OrderVO.getReceiverDistrict() + h5OrderVO.getReceiverDetailAddress();
appletOrder.setAddress(address);//订单详细地址
appletOrder.setOrderSn(h5OrderVO.getOrderSn());
appletOrder.setOrderId(h5OrderVO.getOrderId());
appletOrderService.insertAppletOrder(appletOrder);
return AjaxResult.success();
}
}

+ 32
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/controller/AppletOrderController.java View File

@ -3,6 +3,12 @@ package com.ruoyi.model.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.service.H5OrderService;
import com.cyl.manager.oms.service.OrderService;
import com.ruoyi.applet.service.IMallOrderService;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -34,6 +40,13 @@ public class AppletOrderController extends BaseController
{
@Autowired
private IAppletOrderService appletOrderService;
@Autowired
private IMallOrderService mallOrderService;
//下单小程序那边来的订单信息
@Autowired
private H5OrderService h5OrderService;
@Autowired
private OrderService service;
/**
* 查询订单信息列表
@ -77,7 +90,25 @@ public class AppletOrderController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody AppletOrder appletOrder)
{
return toAjax(appletOrderService.insertAppletOrder(appletOrder));
H5OrderVO h5OrderVO = h5OrderService.orderDetail(appletOrder.getOrderId());
if(h5OrderVO == null){
return AjaxResult.error("订单不存在");
}
if(appletOrder.getType().equals("0")){
//系统派单
AjaxResult ajaxResult = mallOrderService.acceptDispatchAll(h5OrderVO);
return ajaxResult;
}else if(appletOrder.getType().equals("1")){
if(StringUtils.isEmpty(appletOrder.getUserIdJson())){
return AjaxResult.error("userIdJson不能为空");
}
//指定用户派单
Long appletUserId =Long.getLong(appletOrder.getUserIdJson());
AjaxResult ajaxResult = mallOrderService.acceptDispatch(appletUserId, h5OrderVO);
return ajaxResult;
}else{
return AjaxResult.error("type状态不能为空");
}
}
/**


+ 28
- 9
ruoyi-catdog/src/main/java/com/ruoyi/model/domain/AppletOrder.java View File

@ -2,16 +2,14 @@ package com.ruoyi.model.domain;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.manager.oms.pojo.vo.ManagerOrderDetailVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 订单信息对象 applet_order
@ -27,14 +25,16 @@ public class AppletOrder {
private Long id;
/** 创建时间 */
@Excel(name = "创建时间")
private String createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 创建者 */
private Integer createBy;
/** 修改时间 */
private String updateTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 修改者 */
private Integer updateBy;
@ -48,6 +48,10 @@ public class AppletOrder {
@Excel(name = "订单状态")
private Integer status;
/** 派单次数 */
@Excel(name = "派单次数")
private Integer num;
/** 本单酬劳 */
@Excel(name = "本单酬劳")
private BigDecimal price;
@ -68,12 +72,27 @@ public class AppletOrder {
@Excel(name = "关联服务者ID")
private Long userId;
/** 派单给的用户集合 */
@Excel(name = "派单给的用户集合")
private String userIdJson;
/** 关联宠物ID */
@Excel(name = "关联宠物ID")
private Integer petId;
private Long orderId;
private String orderSn;
@TableField(exist = false)
private H5OrderVO h5OrderVO;
@TableField(exist = false)
private List<AppletPet> appletPetList;
private ManagerOrderDetailVO managerOrderDetailVO;
}

+ 2
- 0
ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletOrderMapper.java View File

@ -18,6 +18,7 @@ public interface AppletOrderMapper
* @return 订单信息
*/
public AppletOrder selectAppletOrderById(Long id);
public AppletOrder selectAppletOrderByOrderId(Long orderId);
/**
* 查询订单信息列表
@ -26,6 +27,7 @@ public interface AppletOrderMapper
* @return 订单信息集合
*/
public List<AppletOrder> selectAppletOrderList(AppletOrder appletOrder);
public List<AppletOrder> selectAppletOrderListLikeUserIdJson(AppletOrder appletOrder);
/**
* 新增订单信息


+ 2
- 0
ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletOrderService.java View File

@ -18,6 +18,7 @@ public interface IAppletOrderService
* @return 订单信息
*/
public AppletOrder selectAppletOrderById(Long id);
public AppletOrder selectAppletOrderByOrderId(Long orderId);
/**
* 查询订单信息列表
@ -26,6 +27,7 @@ public interface IAppletOrderService
* @return 订单信息集合
*/
public List<AppletOrder> selectAppletOrderList(AppletOrder appletOrder);
public List<AppletOrder> selectAppletOrderListLikeUserIdJson(AppletOrder appletOrder);
/**
* 新增订单信息


+ 11
- 0
ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletOrderServiceImpl.java View File

@ -33,6 +33,12 @@ public class AppletOrderServiceImpl implements IAppletOrderService
return appletOrderMapper.selectAppletOrderById(id);
}
@Override
public AppletOrder selectAppletOrderByOrderId(Long orderId){
return appletOrderMapper.selectAppletOrderByOrderId(orderId);
}
/**
* 查询订单信息列表
*
@ -45,6 +51,11 @@ public class AppletOrderServiceImpl implements IAppletOrderService
return appletOrderMapper.selectAppletOrderList(appletOrder);
}
@Override
public List<AppletOrder> selectAppletOrderListLikeUserIdJson(AppletOrder appletOrder){
return appletOrderMapper.selectAppletOrderListLikeUserIdJson(appletOrder);
}
/**
* 新增订单信息
*


+ 62
- 1
ruoyi-catdog/src/main/resources/mapper/model/AppletOrderMapper.xml View File

@ -18,11 +18,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="reason" column="reason"/>
<result property="userId" column="user_id"/>
<result property="petId" column="pet_id"/>
<result property="num" column="num"/>
<result property="userIdJson" column="user_id_json"/>
<result property="orderSn" column="order_sn"/>
<result property="orderId" column="order_id"/>
</resultMap>
<sql id="selectAppletOrderVo">
select id, create_time, create_by, update_time, update_by, pay_time, status, price, address, type, reason, user_id, pet_id from applet_order
select id, create_time, create_by, update_time, update_by, pay_time, status, price, address, type, reason, user_id, pet_id,num,user_id_json,order_id,order_sn from applet_order
</sql>
<select id="selectAppletOrderList" parameterType="AppletOrder" resultMap="AppletOrderResult">
@ -36,15 +40,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reason != null and reason != ''"> and reason = #{reason}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="petId != null "> and pet_id = #{petId}</if>
<if test="num != null "> and num = #{num}</if>
<if test="userIdJson != null "> and user_id_json = #{userIdJson}</if>
<if test="orderSn != null "> and order_sn = #{orderSn}</if>
<if test="orderId != null "> and order_id = #{orderId}</if>
</where>
order by create_time desc
</select>
<select id="selectAppletOrderListLikeUserIdJson" parameterType="AppletOrder" resultMap="AppletOrderResult">
<include refid="selectAppletOrderVo"/>
<where>
<!-- 根据具体需求选择方案 -->
<!-- 方案1:自动添加通配符 -->
type = #{type} and user_id_json like concat('%', #{userIdJson}, '%')
<!-- 方案2:使用JSON函数查询(MySQL示例) -->
<!-- JSON_CONTAINS(user_id_json, #{userIdJson}) -->
</where>
order by create_time desc
</select>
<select id="selectAppletOrderById" parameterType="AppletOrder" resultMap="AppletOrderResult">
<include refid="selectAppletOrderVo"/>
where id = #{id}
</select>
<select id="selectAppletOrderByOrderId" parameterType="AppletOrder" resultMap="AppletOrderResult">
<include refid="selectAppletOrderVo"/>
where order_id = #{orderId}
</select>
<insert id="insertAppletOrder" parameterType="AppletOrder" useGeneratedKeys="true" keyProperty="id">
insert into applet_order
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -61,6 +105,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reason != null">reason,</if>
<if test="userId != null">user_id,</if>
<if test="petId != null">pet_id,</if>
<if test="num != null">num,</if>
<if test="userIdJson != null">user_id_json,</if>
<if test="orderSn != null">order_sn,</if>
<if test="orderId != null">order_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -77,6 +126,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reason != null">#{reason},</if>
<if test="userId != null">#{userId},</if>
<if test="petId != null">#{petId},</if>
<if test="num != null">#{num},</if>
<if test="userIdJson != null">#{userIdJson},</if>
<if test="orderSn != null">#{orderSn},</if>
<if test="orderId != null">#{orderId},</if>
</trim>
</insert>
@ -96,6 +152,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reason != null">reason = #{reason},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="petId != null">pet_id = #{petId},</if>
<if test="userIdJson != null">user_id_json = #{userIdJson},</if>
<if test="orderSn != null">order_sn = #{orderSn},</if>
<if test="orderId != null">order_id = #{orderId},</if>
</trim>
where id = #{id}


+ 8
- 2
ruoyi-mall/src/main/java/com/cyl/tencent/TaskConsumer.java View File

@ -88,10 +88,16 @@ public class TaskConsumer implements QueueConsumer {
//处理积分集点等级
pointHandler(model.getOrder());
//推送订单逻辑处理--------lzx
//派单订单逻辑处理方法--------lzx
//进行派单操作
// dispatchedOrdersService.dispatch(model.getOrder().getId());
dispatchedOrdersService.dispatch(model.getOrder().getId());
//TODO 等待订单逻辑完成
smsHandler(model.getOrder());
} catch (Exception e) {


+ 1
- 0
ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml View File

@ -42,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="needPreFamiliarize" column="need_pre_familiarize"/>
<result property="wechatMemberCouponId" column="wechat_member_coupon_id"/>
<result property="servicerId" column="servicer_id"/>
<result property="orderServiceId" column="order_service_id"/>
<result property="orderMethod" column="order_method"/>


Loading…
Cancel
Save