类似抖音的短视频管理系统+Java后端+vue前端(5)

小作业:完成订单信息的显示与修改

一、使用maven脚本命令generatorConfig.xml生成myorder的实体类和mapper文件

二、编写Mapper层

MyorderMapper.xml

<update id="update1" parameterType="java.lang.String">
    update myorder
    set
    <if test="field == 'address'">
    address = #{value,jdbcType=VARCHAR}
    </if>
    <if test="field == 'subject'">
    subject = #{value,jdbcType=VARCHAR}
    </if>
    <if test="field == 'message'">
    message = #{value,jdbcType=VARCHAR}
    </if>
    where order_id = #{id,jdbcType=VARCHAR}
</update>

MyorderMapper.java

int update1(@Param("field") String field, @Param("value") String value, @Param("id") String id);

三、编写Service层

MyorderService.java

public List<Myorder> selectAll();
public int update1(String field,String value,String id);

MyorderServiceImpl.java

@Autowired
MyorderMapper myorderMapper;
@Override
public List<Myorder> selectAll() {
    List<Myorder> myorders = myorderMapper.selectAll();
    return myorders;
}
@Override
public int update1(String field, String value, String id) {
    int value1 = myorderMapper.update1(field, value, id);
    return value1;
}

四、编写Controller层

@Autowired
MyorderService myorderService;
@RequestMapping("/showAll")
@ResponseBody
public Result showAll(){
    Result result = new Result();
    List<Myorder> myorders = myorderService.selectAll();
    result.setList(myorders);
    result.setMessage("ok");
    result.setStatus(0);
    result.setTotalNum(myorders.size());
    return result;
}
@RequestMapping("/myorder")
public String video(){
    return "MyorderTable";
}
@RequestMapping("/update1")
@ResponseBody
public Result update1(String field,String value,String id){
    Result result = new Result();
    System.out.println(field+"..."+value+"..."+id);
    int i = myorderService.update1(field,value,id);
    System.out.println(i);
    if (i > 0){
        result.setMessage("ok");
    }else result.setMessage("error");
    return result;
}

五、编写MyorderTable.html

<div class="like" style="margin-top:10px;margin-left:35%">
搜索userId
<div class="layui-inline">
    <input class="layui-input" name="orderId" id="orderLike" autocomplete="off"/>
</div>
<button class="layui-btn" data-type="reload" id="re">搜索</button>
</div>
<table id="demo" lay-filter="MyorderTable"></table>
<script type="text/html" id="bar">
<!-- layui监测三个按钮事件 lay-event里的内容,来确定点击的是哪个事件 -->
<a class="layui-btn layui-btn-xs" lay-event="add">上传订单</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">批量删除</a>
<a class="layui-btn layui-btn-xs" lay-event="daoru">导入订单</a>
</script>
<script th:src="@{/layui/layui.js}"></script>
<script th:src="@{/js/date.js}"></script>
<!--<script th:src="@{/js/jquery.min.js}"></script>-->
<script th:src="@{/js/myorder.js}"></script>

六、编写myorder.js

layui.use('table', function(){
    var table = layui.table;
    var $ = layui.jquery;
    //第一个实例
    table.render({
        elem: '#demo'
        ,height: 312
        ,url: '/myorders/showAll' //数据接口
        ,limit:3
        ,limits:[3,5,10]
        ,page: true //开启分页
        ,parseData: function(res){ //res 即为原始返回的数据
            // 判断是否有页数
            console.log(this)
            var  list1=[]
            if(this.page.curr){
                // (页数-1)每页多少条
                list1 = res.list.slice((this.page.curr-1)*this.limit,this.page.curr*this.limit)
            }else{
                //如果页数无定义,默认从第一条开始
                list1 = res.list.slice(0,this.limit)
            }
            return {
                "code": res.status, //解析接口状态
                "msg": res.message, //解析提示文本
                "count": res.totalNum, //解析数据长度
                "data": list1 //解析数据列表
            };
        }
        ,cols: [[ //表头
            {type: 'checkbox', fixed: 'left'}
            ,{field: 'orderId', title: 'ID', width: 80, sort: true, align: "center"}
            ,{field: 'orderUser', title: '订单用户', width: 100, align: "center"}
            ,{field: 'address', title: '快递信息', width: 500, edit: "text"}
            ,{field: 'mydate', title: '创建时间', sort: true, align: "center",
                templet:function (e) {
                    return showTime(e.mydate)
                }
            }
            ,{field: 'subject', title: '物品名称', width: 300, edit: "text"}
            ,{field: 'message', title: '备注', width: 200, edit: "text"}
        ]]
    });
    //单元格编辑
    table.on('edit(MyorderTable)',function (obj) {
            console.log("开始单元格编辑")
            console.log(obj.value); //得到修改后的值
            console.log(obj.field); //当前编辑字段名
            console.log(obj.data);  //所在行的所有数据
            $.ajax({
                type:"post",
                url: "/myorders/update1",
                data: {
                    field:obj.field,
                    value:obj.value,
                    id:obj.data.orderId
                },
                dataType:"json",
                success:function (res) {
                    if (res.message == "ok"){
                        var layer = layui.layer;
                        layer.msg("修改成功")
                    }
                }
            })
        }
    )
});



七、测试