1. 讲师管理[后台]

1)提供建表sql
2)spring-boot+mybatis-plus+shiro后端代码,不需要前端

  1. 讲师入驻(校验是否存在,校验手机验证码,格式校验,推荐码)
  2. 讲师带条件的分页查询(姓名,状态[是否审核])
  3. 审核通过/不通过(校验状态,审核理由,重复申请)
  4. 开除(在带的课,未结的资金,删除数据)

image.png

image.png

id回填

xml: selectKey

  1. <insert id="insert" parameterType="com.woniuxy.cq.mb.entity.User">
  2. insert into user(username, balance) VALUES (#{username},#{balance})
  3. <selectKey resultType="int" keyColumn="user_id" keyProperty="userId">
  4. select last_insert_id()
  5. </selectKey>
  6. </insert>

注解:

  1. @Insert({"insert into `db_user`(username, password, nickname, phone, email) values (#{username}, #{password}, #{nickname}, #{phone}, #{email})"})
  2. @Options(useGeneratedKeys = true, keyProperty = "id")
  3. int insertUser(User user);

QueryWrapper

  1. Page<Student> page = new Page<>(pageIdx,10L);
  2. //构建where条件
  3. QueryWrapper<Student> wrapper = new QueryWrapper<>();
  4. wrapper.like(studentName!=null&&studentName.length()>0,"student_name",studentName);
  5. wrapper.eq(gender!=null&&gender.length()>0,"gender",gender);
  6. IPage<Student> page1 = studentService.page(page, wrapper);
  7. /*
  8. *
  9. *
  10. * update student
  11. * set student_name="zhangsan" , gender="女"
  12. * where student_id=1;
  13. *
  14. *
  15. * */
  16. //where条件
  17. UpdateWrapper updateWrapper = new UpdateWrapper<>();
  18. updateWrapper.eq("student_id",1);
  19. //set
  20. Student entity = new Student();
  21. entity.setStudentName("zhangsan");
  22. entity.setGender("F");
  23. studentService.update(entity,wrapper);

Vue

前端技术:html、css、js、jquery、ajax、bootstrap
全栈程序员:牛、累 ==> 前后端都熟悉 | 野生程序员
后端程序员:只写后端
又好看又简单的页面===> UI框架(Boostrap、LayUI、EasyUI、jQueryUI)

Vue + ElementUI ++>现代、高效、美观、易扩展的UI

https://cn.vuejs.org/

渐进式 JavaScript 框架,是一套用于构建用户界面渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

MVVM:Model-View-ViewModel 模式
image.png

开发环境:

  1. 安装HBuilderX / vscode(默认) / webstorm
    1. https://code.visualstudio.com/
  2. 安装 插件 vetur、front-end extenstion pack、Tabnine、中文语言包

案例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Vue入门案例</title>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <h2>hello,{{message}}</h2>
  12. </div>
  13. <!-- 引入vue -->
  14. <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  15. <script>
  16. //创建VUE对象
  17. //{}表示构造器参数
  18. let app = new Vue({
  19. el:"#app", //挂载点,与页面的某个dom节点关联
  20. data:{ //数据
  21. message:'vue的世界'
  22. }
  23. });
  24. </script>
  25. </body>
  26. </html>

作为前端模板使用

v-xxx指令

  • v-bind
  • v-if v-else v-else-if
  • v-for
  • v-on

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Vue入门案例</title>
    8. </head>
    9. <body>
    10. <!-- 视图 -->
    11. <div id="container">
    12. <!-- 插值语法 -->
    13. <h2>hello,{{msg}}</h2>
    14. <!-- 属性动态绑定 -->
    15. <img v-bind:src="myImage" alt="">
    16. <a v-bind:href="woniuOnline">蜗牛在线学堂</a>
    17. <!-- 判断 -->
    18. <div v-if='balance>10000000'>
    19. 杜罗乐请大家吃饭?
    20. </div>
    21. <div v-else>
    22. 大家请杜罗乐吃饭?
    23. </div>
    24. <!-- 循环 -->
    25. <ul >
    26. <li v-for="d in dishes">{{d.name}} {{d.price}}</li>
    27. </ul>
    28. <!-- 事件处理 -->
    29. <!-- v-on:事件名="处理函数" -->
    30. <button v-on:click="destoryEarth">毁灭地球</button>
    31. </div>
    32. <!-- 引入vue -->
    33. <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    34. <script>
    35. //创建VUE对象
    36. //{}表示构造器参数
    37. let app = new Vue({//ViewModel
    38. el:"#container", //挂载点,与页面的某个dom节点关联
    39. data:{ //数据 Model
    40. msg:'vue的世界',
    41. myImage:'https://pics6.baidu.com/feed/2fdda3cc7cd98d109e9659e3ea3708067aec90b7.jpeg?token=b0681d8da3edc3a471c0ca9e44225a76',
    42. woniuOnline:'https://woniuxy.com',
    43. balance:10000000000,
    44. dishes:[
    45. {price:10.2,name:'盘龙茄子'},
    46. {price:200,name:'仰望星空'},
    47. {price:150,name:'皮蛋炒肉'},
    48. {price:20,name:'凉拌折耳根'}
    49. ]
    50. },
    51. methods:{
    52. destoryEarth:function(){
    53. alert("毁灭完成!")
    54. }
    55. }
    56. });
    57. </script>
    58. </body>
    59. </html>

作业

  1. 将以下数据展现到表格页面中

[{
“teacher_id”:1,
“teacher_name”:”zhangsan”,
“state”:”wait”,
“email”:”abc@cyx.com”
},
{
“teacher_id”:2
“teacher_name”:”zhangsan2”,
“state”:”wait”,
“email”:”abc@cyx.com”
},
….
]

  1. 点击审核通过、审核不通过、开除,按钮则修改对应的对象的状态

image.png

  1. 设计教育网站的订单及相关表,提供sql