From 243198f8515365fbd83d1a42fba3cba5b2203927 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Mon, 22 Sep 2025 14:29:31 +0800 Subject: [PATCH] 1 --- app/custom/svc/svc_order.go | 17 +++++- app/custom/svc/svc_project.go | 4 ++ app/store/svc/svc_index.go | 99 ++++++++++++++++++++++++--------- app/store/svc/svc_task.go | 2 +- app/store/svc/svc_task_order.go | 8 +++ 5 files changed, 101 insertions(+), 29 deletions(-) diff --git a/app/custom/svc/svc_order.go b/app/custom/svc/svc_order.go index 3b875c6..1e11a21 100644 --- a/app/custom/svc/svc_order.go +++ b/app/custom/svc/svc_order.go @@ -171,7 +171,8 @@ func TaskQrcodeSubmit(c *gin.Context) { return } campTask.Num-- - update, err := sess.Where("id=?", campTask.Id).Cols("num").Update(&campTask) + campTask.SuccessNum++ + update, err := sess.Where("id=?", campTask.Id).Cols("num,success_num").Update(&campTask) if update == 0 || err != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "任务提交失败")) @@ -289,7 +290,7 @@ func TaskQrcodeList(c *gin.Context) { for _, v := range data { var task models.CampTaskList svc.MasterDb(c).Where("id=?", v.TaskId).Get(&task) - QrCode := qrcode.GetPNGBase64(h5Domain + "/#/zy-base-widget-sub/pages/jcy-task-page/order-detail-page?qr_id=" + utils.IntToStr(v.Id)) + QrCode := qrcode.GetPNGBase64(h5Domain + "/#/zy-base-widget-sub/pages/jcy-task-page/task-upload-page?qr_id=" + utils.IntToStr(v.Id)) QrCode = strings.ReplaceAll(QrCode, "\u0000", "") tmp := map[string]string{ "name": v.Name, @@ -323,6 +324,18 @@ func TaskQrcodeApply(c *gin.Context) { e.OutErr(c, 400, e.NewErr(400, "任务不存在")) return } + var CampTaskTask models.CampTaskList + svc.MasterDb(c).Where("id=?", CampTaskOperatorTask.TaskId).Get(&CampTaskTask) + if CampTaskTask.UpDownState != 1 { + e.OutErr(c, 400, e.NewErr(400, "任务已下架")) + return + } + if CampTaskTask.Num-1 < 0 { + e.OutErr(c, 400, e.NewErr(400, "任务已领完")) + return + } + CampTaskTask.ExtendNum++ + svc.MasterDb(c).Where("id=?", CampTaskTask.Id).Cols("extend_num").Update(&CampTaskTask) count, _ := svc.MasterDb(c).Where("uid=? and task_id=? and phone=?", user.Info.Uid, CampTaskOperatorTask.TaskId, args["phone"]).Count(&models.CampTaskUserPromotionQrcode{}) if count > 0 { e.OutErr(c, 400, e.NewErr(400, "当前号码重复,请重新输入")) diff --git a/app/custom/svc/svc_project.go b/app/custom/svc/svc_project.go index 55a4e41..a94fd95 100644 --- a/app/custom/svc/svc_project.go +++ b/app/custom/svc/svc_project.go @@ -73,6 +73,10 @@ func ProjectLike(c *gin.Context) { CreateTime: time.Now(), } svc.MasterDb(c).Insert(&data) + var CampTaskProject models.CampTaskProject + svc.MasterDb(c).Where("id=?", args.Id).Get(&CampTaskProject) + CampTaskProject.SuccessNum++ + svc.MasterDb(c).Where("id=?", CampTaskProject.Id).Cols("success_num").Update(&CampTaskProject) e.OutSuc(c, "success", nil) return diff --git a/app/store/svc/svc_index.go b/app/store/svc/svc_index.go index e45c290..4aeb22d 100644 --- a/app/store/svc/svc_index.go +++ b/app/store/svc/svc_index.go @@ -32,28 +32,54 @@ func UserInfo(c *gin.Context) { func Index(c *gin.Context) { storeId := svc.GetCampStoreId(c) //TODO 要根据账号 - allTaskCount, _ := svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId).Count(&models.CampTaskList{}) - orderCount, _ := svc.MasterDb(c).Where("store_id=? and state=1", storeId).Count(&models.CampTaskUserPromotionOrder{}) - settleCount, _ := svc.MasterDb(c).Where("store_id=? and settle_time is not null", storeId).Sum(&models.CampTaskUserPromotionOrder{}, "payment") + store := svc.GetCampStore(c) + taskIds := make([]int, 0) + contact := 0 + if store.Pid > 0 { + var task = make([]models.CampTaskList, 0) + svc.MasterDb(c).Where("store_id=? and is_delete=0 and contact=?", storeId, store.Id).Find(&task) + for _, v := range task { + taskIds = append(taskIds, v.Id) + } + contact = store.Id + } + taskSee := svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId) + if contact > 0 { + taskSee.And("contact=?", contact) + } + allTaskCount, _ := taskSee.Count(&models.CampTaskList{}) + orderSee := svc.MasterDb(c).Where("store_id=? and state=1", storeId) + if store.Pid > 0 { + orderSee.In("task_id", taskIds) + } + orderCount, _ := orderSee.Count(&models.CampTaskUserPromotionOrder{}) + settleSee := svc.MasterDb(c).Where("store_id=? and settle_time is not null", storeId) + if store.Pid > 0 { + settleSee.In("task_id", taskIds) + } + settleCount, _ := settleSee.Sum(&models.CampTaskUserPromotionOrder{}, "payment") totalList := []map[string]string{ {"name": "发布总的任务数", "value": utils.Int64ToStr(allTaskCount), "unit": "(个)"}, {"name": "已完成的订单总数", "value": utils.Int64ToStr(orderCount), "unit": "(单)"}, {"name": "已结算的总金额", "value": utils.Float64ToStr(settleCount), "unit": "(元)"}, } myTask := make([]map[string]string, 0) - NewCampTaskListDb := implement.NewCampTaskListDb(svc.MasterDb(c)) - myTaskList, _ := NewCampTaskListDb.FindCampTaskList(utils.IntToStr(storeId), "", "", 1, 5, "apply_time desc") - if myTaskList != nil { - for _, v := range *myTaskList { - tmp := map[string]string{ - "id": utils.IntToStr(v.Id), - "name": v.Name, - "icon": svc.ImageFormat(c, v.Logo), - } - myTask = append(myTask, tmp) + var myTaskList []models.CampTaskList + sess := svc.MasterDb(c).Where("store_id=?", storeId) + if contact > 0 { + sess.And("contact=?", contact) + } + sess.Limit(5).OrderBy("apply_time desc,id desc").Find(&myTaskList) + for _, v := range myTaskList { + tmp := map[string]string{ + "id": utils.IntToStr(v.Id), + "name": v.Name, + "icon": svc.ImageFormat(c, v.Logo), } + myTask = append(myTask, tmp) } hotTask := make([]map[string]string, 0) + NewCampTaskListDb := implement.NewCampTaskListDb(svc.MasterDb(c)) hotTaskList, _ := NewCampTaskListDb.FindCampTaskList(utils.IntToStr(storeId), "", "1", 1, 5, "success_num desc,id desc") if hotTaskList != nil { for _, v := range *hotTaskList { @@ -79,9 +105,28 @@ func Index(c *gin.Context) { } func StoreIndex(c *gin.Context) { storeId := svc.GetCampStoreId(c) - allTaskCount, _ := svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId).Count(&models.CampTaskList{}) - orderCount, _ := svc.MasterDb(c).Where("store_id=? and settle_time is null", storeId).Count(&models.CampTaskUserPromotionOrder{}) - orderMoney, _ := svc.MasterDb(c).Where("store_id=? and settle_time is null", storeId).Sum(&models.CampTaskUserPromotionOrder{}, "payment") + store := svc.GetCampStore(c) + taskIds := make([]int, 0) + contact := 0 + if store.Pid > 0 { + var task = make([]models.CampTaskList, 0) + svc.MasterDb(c).Where("store_id=? and is_delete=0 and contact=?", storeId, store.Id).Find(&task) + for _, v := range task { + taskIds = append(taskIds, v.Id) + } + contact = store.Id + } + taskSee := svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId) + if contact > 0 { + taskSee.And("contact=?", contact) + } + allTaskCount, _ := taskSee.Count(&models.CampTaskList{}) + orderSee := svc.MasterDb(c).Where("store_id=? and settle_time is null", storeId) + if store.Pid > 0 { + orderSee.In("task_id", taskIds) + } + orderCount, _ := orderSee.Count(&models.CampTaskUserPromotionOrder{}) + orderMoney, _ := orderSee.Sum(&models.CampTaskUserPromotionOrder{}, "payment") settleCount, _ := svc.MasterDb(c).Where("store_id=?", storeId).Sum(&models.CampTaskStoreUserAmount{}, "amount") totalList := []map[string]string{ {"name": "当前待结算订单", "value": utils.Int64ToStr(orderCount)}, @@ -89,17 +134,19 @@ func StoreIndex(c *gin.Context) { {"name": "当前剩余预存金额", "value": "¥" + utils.Float64ToStr(settleCount)}, } myTask := make([]map[string]string, 0) - NewCampTaskListDb := implement.NewCampTaskListDb(svc.MasterDb(c)) - myTaskList, _ := NewCampTaskListDb.FindCampTaskList(utils.IntToStr(storeId), "", "", 1, 5, "apply_time desc") - if myTaskList != nil { - for _, v := range *myTaskList { - tmp := map[string]string{ - "id": utils.IntToStr(v.Id), - "name": v.Name, - "icon": svc.ImageFormat(c, v.Logo), - } - myTask = append(myTask, tmp) + var myTaskList []models.CampTaskList + sess := svc.MasterDb(c).Where("store_id=?", storeId) + if contact > 0 { + sess.And("contact=?", contact) + } + sess.Limit(5).OrderBy("apply_time desc,id desc").Find(&myTaskList) + for _, v := range myTaskList { + tmp := map[string]string{ + "id": utils.IntToStr(v.Id), + "name": v.Name, + "icon": svc.ImageFormat(c, v.Logo), } + myTask = append(myTask, tmp) } res := map[string]interface{}{ "total_list": totalList, diff --git a/app/store/svc/svc_task.go b/app/store/svc/svc_task.go index bd34f68..0224b93 100644 --- a/app/store/svc/svc_task.go +++ b/app/store/svc/svc_task.go @@ -47,7 +47,7 @@ func TaskList(c *gin.Context) { sess.And("apply_time<=?", args.EndTime) } count, _ := sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("apply_time desc,id desc").FindAndCount(&data) - applyType := []string{"", "下架申请", "上架申请"} + applyType := []string{"", "下架申请", "上架申请", "数量调整"} stateType := []string{"审核中", "审核通过", "审核拒绝"} taskCate := make([]map[string]string, 0) taskCateList := make([]models.CampTaskCate, 0) diff --git a/app/store/svc/svc_task_order.go b/app/store/svc/svc_task_order.go index e8bbd7a..1d0afc7 100644 --- a/app/store/svc/svc_task_order.go +++ b/app/store/svc/svc_task_order.go @@ -21,6 +21,7 @@ func TaskWaitAuditOrder(c *gin.Context) { return } storeId := svc.GetCampStoreId(c) + store := svc.GetCampStore(c) list := make([]map[string]interface{}, 0) var data = make([]md.TaskWaitAuditOrderRes, 0) sess := svc.MasterDb(c).Table("camp_task_user_promotion_order").Where("camp_task_user_promotion_order.store_id=?", storeId) @@ -42,6 +43,9 @@ func TaskWaitAuditOrder(c *gin.Context) { if args.EndTime != "" { sess.And("camp_task_user_promotion_order.create_time<=?", args.EndTime) } + if store.Pid > 0 { + sess.And("camp_task_list.contact=?", store.Id) + } sess.Join("LEFT", "camp_task_user_promotion_qrcode", "camp_task_user_promotion_qrcode.id = camp_task_user_promotion_order.qrcode_id") sess.Join("LEFT", "camp_task_list", "camp_task_list.id = camp_task_user_promotion_order.task_id") sess.Join("LEFT", "camp_task_cate", "camp_task_cate.id = camp_task_list.first_cid") @@ -122,6 +126,7 @@ func TaskWaitSettleOrder(c *gin.Context) { return } storeId := svc.GetCampStoreId(c) + store := svc.GetCampStore(c) list := make([]map[string]interface{}, 0) var data = make([]md.TaskWaitAuditOrderRes, 0) sess := svc.MasterDb(c).Table("camp_task_user_promotion_order").Where("camp_task_user_promotion_order.store_id=?", storeId) @@ -144,6 +149,9 @@ func TaskWaitSettleOrder(c *gin.Context) { if args.EndTime != "" { sess.And("camp_task_user_promotion_order.create_time<=?", args.EndTime) } + if store.Pid > 0 { + sess.And("camp_task_list.contact=?", store.Id) + } sess.Join("LEFT", "camp_task_user_promotion_qrcode", "camp_task_user_promotion_qrcode.id = camp_task_user_promotion_order.qrcode_id") sess.Join("LEFT", "camp_task_list", "camp_task_list.id = camp_task_user_promotion_order.task_id") sess.Join("LEFT", "camp_task_cate", "camp_task_cate.id = camp_task_list.first_cid")