Przeglądaj źródła

课程管理编辑删除

dbcgit 5 lat temu
rodzic
commit
16414e27c5

+ 50 - 58
backend/src/dashoo.cn/modi_webapi/app/api/course/course.go

@@ -3,48 +3,18 @@ package course
 import (
 	"dashoo.cn/modi_webapi/app/model/course"
 	service "dashoo.cn/modi_webapi/app/service/course"
+	"github.com/gogf/gf/os/glog"
 
 	"dashoo.cn/modi_webapi/library/request"
 	"dashoo.cn/modi_webapi/library/response"
 	"fmt"
 	"github.com/gogf/gf/net/ghttp"
-	"github.com/gogf/gf/os/glog"
-	"github.com/gogf/gf/os/gtime"
-	"github.com/gogf/gf/util/gvalid"
 )
 
 // 课程管理API管理对象
 type Controller struct {
 }
 
-//  添加一条课程信息
-func (c *Controller) AddCourse(r *ghttp.Request){
-	Course := new(course.Entity)
-	if err := r.Parse(Course); err != nil {
-		// 数据验证错误
-		if v, ok := err.(*gvalid.Error); ok {
-			response.Json(r, 1, v.FirstString())
-			r.ExitAll()
-		}
-		// 其他错误
-		response.Json(r, 1, err.Error())
-		r.ExitAll()
-	}
-	realName := r.GetParamVar("realname").String()
-	currentTime := gtime.Now()
-	Course.CreatedTime = currentTime
-	Course.UpdatedBy = realName
-
-	if result,err := course.Insert(Course); err != nil {
-		response.Json(r, 1, err.Error())
-	} else {
-		var records response.PagedRecords
-		id, _ := result.LastInsertId()
-		Course.Id = int(id)
-		records.Records = Course
-		response.Json(r, 0, "", records)
-	}
-}
 
 //  获取课程管理列表
 func (c *Controller) GetAllCourse(r *ghttp.Request){
@@ -88,11 +58,24 @@ func (c *Controller) GetAllCourse(r *ghttp.Request){
 }
 
 // Delete 删除课程主表信息
-func (c *Controller) DeleteCourse(r *ghttp.Request) {
+func (c *Controller) DeleteCourse(r *ghttp.Request){
+	id := r.GetInt("id")
+	if _,err := course.Delete(fmt.Sprintf("Id=%v", id)); err != nil{
+		response.Json(r, 1, err.Error())
+		r.ExitAll()
+	} else {
+		response.Json(r, 0, "该记录已删除!")
+	}
+}
+// 修改课程信息
+func (c *Controller) AddCourse(r *ghttp.Request) {
 	// tenant 租户模式
 	tenant := r.Header.Get("Tenant")
-	id := r.GetInt("id")
-	glog.Info(id)
+	var addOrUpdateReq *course.Entity
+	// 赋值并// 校验参数
+	if err := r.Parse(&addOrUpdateReq); err != nil {
+		response.Json(r, -1, err.Error())
+	}
 
 	// 初始化学生service
 	servcie, err := service.NewCourseService(tenant)
@@ -100,31 +83,40 @@ func (c *Controller) DeleteCourse(r *ghttp.Request) {
 		response.Json(r, 1, err.Error())
 	}
 
-	if err := servcie.Delete(id); err != nil {
-		response.Json(r, 1, err.Error())
+	// 判断是新增还是删除,获取的id为空新增,不为空则更新
+	if addOrUpdateReq.Id > 0 {
+		if newStudent, err := servcie.Update(addOrUpdateReq); err != nil {
+			response.Json(r, 1, err.Error())
+		} else {
+			response.Json(r, 0, "更新成功", newStudent)
+		}
 	} else {
-		response.Json(r, 0, "删除成功")
+		addOrUpdateReq.Id = 0
+		if newId, err := servcie.Add(addOrUpdateReq); err != nil {
+			response.Json(r, 1, err.Error())
+		} else {
+			response.Json(r, 0, "新建成功", newId)
+		}
 	}
+
 }
+// GetDetailById 根据id信息详情
+func (c *Controller) GetDetailById(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 学生id
+	id := r.GetInt("id")
+	glog.Info(id)
+	// 初始化学生service
+	servcie, err := service.NewCourseService(tenant)
+	if err != nil {
+		response.Json(r, 1, err.Error())
+	}
+	// 调用service方法
+	if information, err := servcie.GetByID(id); err != nil {
+		response.Json(r, 1, err.Error())
+	} else {
+		response.Json(r, 0, "ok", information)
+	}
 
-//// GetDetailById 根据id信息详情
-//func (c *Controller) GetDetailById(r *ghttp.Request) {
-//	// tenant 租户模式
-//	tenant := r.Header.Get("Tenant")
-//	// 学生id
-//	id := r.GetInt("id")
-//	glog.Info(id)
-//	// 初始化学生service
-//	servcie, err := service.NewInformationService(tenant)
-//	if err != nil {
-//		response.Json(r, 1, err.Error())
-//	}
-//	// 调用service方法
-//	if information, err := servcie.GetByID(id); err != nil {
-//		response.Json(r, 1, err.Error())
-//	} else {
-//		response.Json(r, 0, "ok", information)
-//	}
-//
-//}
-//
+}

+ 2 - 1
backend/src/dashoo.cn/modi_webapi/app/model/course/course_entity.go

@@ -20,7 +20,8 @@ type Entity struct {
 	Title           string                       // 标题
 	Status          string                       // 状态
 	CreatedBy       string                       // 创建人
-	CreatedTime      *gtime.Time                  // 创建时间
+	CreatedTime     *gtime.Time                  // 创建时间
+	UpdatedTime     *gtime.Time
 	UpdatedBy               string                                // 更新人
 }
 type SubEntity struct {

+ 1 - 13
backend/src/dashoo.cn/modi_webapi/app/model/course/course_model.go

@@ -23,19 +23,7 @@ var (
 	// Model is the model object of information.
 	Model = &arModel{g.DB("default").Table(Table).Safe()}
 	// Columns defines and stores column names for table information.
-	Columns = struct {
-		Id         string //
-		Name       string // 班级名称
-		IsDel      string // 是否删除:1删除0未删除
-		CreateTime string // 创建时间
-		UpdateTime string // 更新时间
-	}{
-		Id:         "id",
-		Name:       "name",
-		IsDel:      "is_del",
-		CreateTime: "create_time",
-		UpdateTime: "update_time",
-	}
+
 )
 
 // FindOne is a convenience method for Model.FindOne.

+ 33 - 6
backend/src/dashoo.cn/modi_webapi/app/service/course/course.go

@@ -4,6 +4,7 @@ import (
 	"dashoo.cn/micro_libary/db"
 	"dashoo.cn/modi_webapi/app/common"
 	"dashoo.cn/modi_webapi/app/model/course"
+	"github.com/gogf/gf/os/gtime"
 )
 
 // 课程定义
@@ -17,12 +18,38 @@ func NewCourseService(tenant string) (CourseService, error) {
 	err := servcie.Init(tenant, course.Table)
 	return servcie, err
 }
+// Update 更新信息
+func (s CourseService) Update(param *course.Entity) (*course.Entity, error) {
+	course, err := s.GetByID(param.Id)
+	if err != nil {
+		return nil, err
+	}
 
-// 删除信息
-func (s CourseService) Delete(id int) error {
-	//设置更新时间
-	if _, err := s.SafeModel.WherePri(id).Update(common.WhereString.Invalid); err != nil {
-		return err
+	// 设置更新时间
+	param.UpdatedTime = gtime.Now()
+	param.CreatedTime = course.CreatedTime
+	if _, err = s.SafeModel.WherePri(param.Id).Update(param); err != nil {
+		return nil, err
 	}
-	return nil
+	return course, nil
+}
+
+// GetByID 通过id获取信息
+func (s CourseService) GetByID(id int) (res *course.Entity, err error) {
+	// 关联查询
+	where := common.WhereString.ValidWhere
+	model := s.SafeModel.Where("id", id).Where(where)
+	var result *course.Entity
+	err = model.Struct(&result)
+	return result, nil
 }
+// Add 新增信息
+func (s CourseService) Add(param *course.Entity) (id int64, err error) {
+	param.CreatedTime = gtime.Now()
+	if result, err := s.SafeModel.Insert(param); err != nil {
+		return 0, err
+	} else {
+		id, _ = result.LastInsertId()
+	}
+	return id, nil
+}

+ 5 - 5
frontend_web/src/api/class.js

@@ -4,7 +4,7 @@ export default {
    // 获取班级列表
    getAllClass(params) {
     return request({
-      url: process.env.VUE_APP_API02 + 'class/getallclass',
+      url: process.env.VUE_APP_API + 'class/getallclass',
       method: 'get', 
       params: params
     })
@@ -13,7 +13,7 @@ export default {
   // 删除班级信息
    deleteClass(params) {
     return request({
-      url: process.env.VUE_APP_API02 + 'class/deleteclass',
+      url: process.env.VUE_APP_API + 'class/deleteclass',
       method: 'delete',
       params: params
     })
@@ -22,7 +22,7 @@ export default {
    // 保存班级信息
   addClass (data) {
     return request({
-      url: process.env.VUE_APP_API02 + 'class/addclass',
+      url: process.env.VUE_APP_API + 'class/addclass',
       method: 'post',
       data: data
     })
@@ -30,7 +30,7 @@ export default {
   // 修改保存编辑信息
   updateClass (data) {
     return request({
-      url: process.env.VUE_APP_API02 + 'class/updateclass',
+      url: process.env.VUE_APP_API + 'class/updateclass',
       method: 'post',
       data: data
     })
@@ -38,7 +38,7 @@ export default {
   // 获取一条班级信息
   getOneClass(params) {
     return request({
-      url: process.env.VUE_APP_API02 + 'class/getoneclass',
+      url: process.env.VUE_APP_API + 'class/getoneclass',
       method: 'get', 
       params: params
     })

+ 9 - 1
frontend_web/src/api/course.js

@@ -21,10 +21,18 @@ export default {
    // 删除主表课程信息
    deleteCourse(params) {
     return request({
-      url: process.env.VUE_APP_API02 + 'course/deletecourse',
+      url: process.env.VUE_APP_API + 'course/deletecourse',
       method: 'delete',
       params: params
     })
+  },
+  // 根据id查询当前课程信息
+  getById(params) {
+    return request({
+      url: process.env.VUE_APP_API + 'course/getdetailbyid',
+      method: 'get', 
+      params: params
+    })
   }
   
 }

+ 19 - 9
frontend_web/src/views/course/components/courseInfoDialog.vue

@@ -84,26 +84,23 @@ export default {
       checkAll: false,
       dialogvisible: false,
       fileList: [],
-      course: {
-        Year: '',
-        Term: '',
-        CourseWeek: '',
-        Title: '',
-        Status: 1,
-        CreatedTime: ''
-      },
-
+      courseId: Number,
+      course: {}
     }
   },
   created () {
+    this.getData()
   },
   methods: {
     dialogOpen () {
       this.course = {}
+      console.log("courseId:" + this.courseId)
       this.$refs.courseForm.resetFields()
+      this.getData()
     },
     dialogClose () {
       this.course = {}
+      console.log("courseId:" + this.courseId)
       this.$refs.courseForm.resetFields()
       this.$emit('handleClose')
       this.dialogVisible = false
@@ -126,7 +123,20 @@ export default {
         }
       });
 
+    },
+    // 编辑修改
+    getData () {
+      if (this.courseId > 0) {
+        var id = {
+          id: this.courseId
+        }
+        CourseApi.getById(id)
+          .then(res => {
+            this.course = res
+          })
+      }
     }
+
   }
 }
 

+ 17 - 18
frontend_web/src/views/course/index.vue

@@ -58,7 +58,7 @@
           <el-button size="mini"
                      title="编辑"
                      type="primary"
-                     @click="informationedit(scope.row.id)"
+                     @click="courseEdit(scope.row.id)"
                      icon="el-icon-edit"
                      circle></el-button>
           <el-button size="mini"
@@ -66,12 +66,12 @@
                      title="发布"
                      @click="publish(scope.row)"
                      style="margin-left:5px;"
-                     icon="el-icon-s-promotion"
+                     icon="el-icon-circle-plus"
                      circle></el-button>
           <el-button size="mini"
                      type="danger"
                      title="删除"
-                     @click="delete(scope.row)"
+                     @click="deleteCourse(scope.row)"
                      style="margin-left:5px;"
                      icon="el-icon-delete"
                      circle></el-button>
@@ -117,9 +117,9 @@
                        show-overflow-tooltip></el-table-column>
     </el-table>
     <!-- </el-card> -->
-    <courseInfoDialog ref="informationDialog"
+    <courseInfoDialog ref="courseDialog"
                       @handleClose="handleClose"
-                      :informationId="informationId"
+                      :courseId="courseId"
                       width="75"></courseInfoDialog>
     <!-- </div> -->
     <template slot="footer">
@@ -150,7 +150,7 @@ export default {
       dialogvisible: false,
       details: false,
       activities: [],
-      informationId: -1,
+      courseId: -1,
       search: {
         Term: '',
         Year: '',
@@ -212,23 +212,23 @@ export default {
     },
     // 打开 添加弹窗
     openinformationadd () {
-      this.$refs.informationDialog.dialogvisible = true
+      this.$refs.courseDialog.dialogvisible = true
     },
     // 打开 编辑弹窗
-    informationedit (informationId) {
-      this.informationId = informationId
-      this.$refs.informationDialog.dialogvisible = true
+    courseEdit (courseId) {
+      this.courseId = courseId
+      this.$refs.courseDialog.dialogvisible = true
     },
     // 新增修改弹窗关闭 返回页面
     handleClose () {
-      this.informationId = -1
-      this.$refs.informationDialog.dialogvisible = false
+      this.courseId = -1
+      this.$refs.courseDialog.dialogvisible = false
       this.initPageInfo()
       this.initDatas()
     },
-    publish (information) {
-      information.status = 1
-      InformationApi.save(information)
+    publish (course) {
+      course.status = 1
+      CourseApi.save(course)
     },
     // 初始化列表数据
     initDatas () {
@@ -249,17 +249,16 @@ export default {
     },
 
     //  删除课程
-    delete (val) {
+    deleteCourse (val) {
       let _this = this
       let params = {
-        id: val.id
+        id: val.Id
       }
       _this.$confirm('此操作将永久删除该信息, 是否继续?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '关闭',
         type: 'warning'
       }).then(() => {
-        console.log(JSON.stringify(params))
         CourseApi.deleteCourse(params)
           .then(data => {
             _this.initDatas()