订单管理功能实现A


服务端异常,请联系管理员<br/>Could not find result map 'com.java1234.mapper.OrderMapper.Long' referenced from 'com.java1234.mapper.OrderMapper.getTotal'

服务端异常,请联系管理员<br/>Could not find parameter map com.java1234.mapper.WxUserInfoMapper.String
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.java1234.mapper.WxUserInfoMapper">

    <resultMap id="wxUserInfoResult" type="com.java1234.entity.WxUserInfo">

    </resultMap>

    <select id="findByOpenId" parameterType="String" resultMap="wxUserInfoResult">
        select * from t_wxuserinfo where openid=#{openId}
    </select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.java1234.mapper.OrderMapper">

    <resultMap id="orderResult" type="com.java1234.entity.Order">
        <association property="wxUserInfo" column="userId" select="com.java1234.mapper.WxUserInfoMapper.findByOpenId">

        </association>
    </resultMap>

    <select id="list" parameterType="Map" resultMap="orderResult">
        select * from t_order
        <where>
            <if test="orderNo!=null and orderNo!='' ">
                and orderNo like concat('%',#{orderNo},'%')
            </if>
        </where>
        order by createDate desc
        <if test="start!=null and pageSize!=null">
            limit #{start},#{pageSize}
        </if>
    </select>

    <select id="getTotal" parameterType="Map" resultType="Long">
        select count(*) from t_order
        <where>
            <if test="orderNo!=null and orderNo!=''">
                and orderNo like concat('%',#{orderNo},'%')
            </if>
        </where>
    </select>
</mapper>
<template>
  <el-card>
    <el-row :gutter="20" class="header">
      <el-col :span="7">
        <el-input placeholder="请输入订单号..." v-model="queryForm.query" clearable></el-input>
      </el-col>
      <el-button type="primary" :icon="Search" @click="initOrderList">搜索</el-button>
    </el-row>
    <el-table :data="tableData" stripe style="width: 100%">
      <el-table-column prop="orderNo" label="订单号" width="250" fixed/>
      <el-table-column prop="wxUserInfo" label="用户昵称" width="200" :formatter="wxUserInfoNickNameFormatter"/>
      <el-table-column prop="totalPrice" label="订单总价" width="100"/>
      <el-table-column prop="status" label="订单状态" width="100" :formatter="statusFormatter"/>
      <el-table-column prop="createDate" label="订单创建日期" width="200"/>
      <el-table-column prop="payDate" label="订单支付日期" width="200"/>
      <el-table-column prop="consignee" label="收货人" width="80"/>
      <el-table-column prop="telNumber" label="联系电话" width="150"/>
      <el-table-column prop="address" label="收货地址" width="400"/>

      <el-table-column prop="action" label="操作" width="300" fixed="right">
        <template v-slot="scope">
          <el-button type="success">详情</el-button>
          <el-button type="primary">发货</el-button>
          <el-button type="primary">退货</el-button>
          <el-button type="danger" :icon="Delete"></el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
        v-model:currentPage="queryForm.pageNum"
        v-model:page-size="queryForm.pageSize"
        :page-size="[10,20,30,40,50]"
        layout="total,sizes,prev,pager,next,jumper"
        :total="total"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
    />
  </el-card>
</template>

<script setup>
import { Search,Delete } from '@element-plus/icons-vue'

import { ref } from  'vue'

import axios from '@/util/axios'

const queryForm=ref({
  query:'',
  pageNum:1,
  pageSize:10
})

const total=ref(0)

const tableData=ref([])

const initOrderList=async()=>{
  const res=await axios.post("admin/order/list",queryForm.value)
  tableData.value=res.data.orderList;
  total.value=res.data.total;
}

initOrderList();

const handleSizeChange=(pageSize)=>{
  queryForm.value.pageNum=1;
  queryForm.value.pageSize=pageSize;
  initOrderList();
}

const handleCurrentChange=(pageNum)=>{
  queryForm.value.pageNum=pageNum;
  initOrderList();
}

const wxUserInfoNickNameFormatter=(row)=>{
  return row.wxUserInfo.nickName;
}


const statusFormatter=(row)=>{
  switch (row.status){
    case 1:
      return "待支付"
    case 2:
      return "待发货"
    case 3:
      return "退款/退货"
  }
}

</script>

<style lang="scss" scoped>

.header{
  padding-bottom: 16px;
  box-sizing: border-box;
}

.el-pagination{
  padding-top: 15px;
  box-sizing: border-box;
}
</style>
import { createRouter, createWebHashHistory } from 'vue-router'

const routes = [
  {
    path: '/',
    name: '首页',
    component: () => import( '../views/layout'),
    redirect:'/home',
    children:[
      {
        path: '/home',
        name: '首页',
        component: () => import( '../views/home/index')
      },
      {
        path: '/bigType',
        name: '商品大类',
        component: () => import( '../views/bigType/index')
      },
      {
        path: '/user',
        name: '用户管理',
        component: () => import( '../views/user/index')
      },
      {
        path: '/modifyPassword',
        name: '修改密码',
        component: () => import( '../views/modifyPassword/index')
      },
      {
        path: '/order',
        name: '订单管理',
        component: () => import( '../views/order/index')
      }
    ]
  },
  {
    path: '/login',
    name: 'login',

    component: () => import( '../views/login')
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值