|
@@ -1,11 +1,13 @@
|
|
|
package controller
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"lims-extend/common"
|
|
|
"lims-extend/model"
|
|
|
"lims-extend/response"
|
|
|
"lims-extend/util"
|
|
|
+ "lims-extend/vo"
|
|
|
)
|
|
|
|
|
|
func ShowPlans(c *gin.Context) {
|
|
@@ -105,3 +107,72 @@ func TakePlan(c *gin.Context) {
|
|
|
|
|
|
response.Success(c, gin.H{"task": task}, "success")
|
|
|
}
|
|
|
+
|
|
|
+func AssignPlan(c *gin.Context) {
|
|
|
+
|
|
|
+ var groupVo vo.GroupVo
|
|
|
+ c.ShouldBind(&groupVo)
|
|
|
+
|
|
|
+ db := common.GetDB()
|
|
|
+
|
|
|
+ var plan model.Plan
|
|
|
+ if err := db.Model(&model.Plan{}).Where("id = ?", groupVo.PlanId).First(&plan).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "计划不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if plan.Delete == 1 {
|
|
|
+ response.Fail(c, nil, "当前计划已经被删除")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, groupId := range groupVo.GroupIdList {
|
|
|
+ var group model.Group
|
|
|
+ if err := db.Model(&model.Group{}).Where("id = ?", groupId).First(&group).Error; err != nil {
|
|
|
+ response.Fail(c, nil, fmt.Sprintf("团队ID[%s]不存在", groupId))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if group.Delete == 1 {
|
|
|
+ response.Fail(c, nil, fmt.Sprintf("团队ID[%s]已被删除", groupId))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ for _, groupId := range groupVo.GroupIdList {
|
|
|
+ plan2group := model.Plan2Group{
|
|
|
+ PlanId: groupVo.PlanId,
|
|
|
+ GroupId: groupId,
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if err := db.Model(&model.Plan2Group{}).Where("group_id = ?", groupId).
|
|
|
+ First(&model.Plan2Group{}).Error; err == nil {
|
|
|
+ response.Fail(c, nil, "分配失败,小组已被该计划分配")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := db.Model(&model.Plan2Group{}).Create(&plan2group).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "分配失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ response.Success(c, gin.H{"groupIdList": groupVo}, "分配成功")
|
|
|
+}
|
|
|
+
|
|
|
+func GetPlanAssignedGroups(c *gin.Context) {
|
|
|
+ db := common.GetDB()
|
|
|
+ planId := c.Params.ByName("planId")
|
|
|
+ var plan2groups []model.Plan2Group
|
|
|
+ db.Model(&model.Plan2Group{}).Where("plan_id = ?", planId).Find(&plan2groups)
|
|
|
+
|
|
|
+ var groupList []model.Group
|
|
|
+ for _, group := range plan2groups {
|
|
|
+ var singleGroup model.Group
|
|
|
+ db.Model(&model.Group{}).Where("id = ?", group.GroupId).First(&singleGroup)
|
|
|
+ groupList = append(groupList, singleGroup)
|
|
|
+ }
|
|
|
+
|
|
|
+ response.Success(c, gin.H{"groupList": groupList}, "success")
|
|
|
+
|
|
|
+}
|