123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package order
- import (
- "errors"
- "strings"
- "zhiyuan/models"
- "zhiyuan/pkg/db"
- orderParam "zhiyuan/pkg/param/order"
- "zhiyuan/pkg/utils"
- "zhiyuan/services/form"
- )
- var ASOrderComment models.ASOrderComment
- func GetComment(where map[string]interface{}, fields []string, retVal interface{}) (*models.ASOrderComment, error) {
- return ASOrderComment.GetOne(where, fields, retVal)
- }
- func Comment(form form.OrderComment, id int) error {
- orderInfo, err := GetInfoByID(id, nil, nil)
- if err != nil {
- return err
- }
- if form.UserID > 0 && orderInfo.UserID != form.UserID {
- return errors.New("只能操作自己的订单")
- }
- if !utils.IsContain(orderParam.Allow.Confirm, orderInfo.State) || orderInfo.CommentID > 0 {
- return errors.New("该工单不允许确认完成")
- }
- commentMap := map[string]interface{}{
- "user_id": orderInfo.UserID,
- "order_id": orderInfo.ID,
- "leader": orderInfo.Leader,
- "content": form.Content,
- "tags": strings.Join(form.Tags, ","),
- "star": form.Star,
- }
- commentID, err := db.InsertOne(ASOrderComment.TableName(), commentMap)
- if err != nil {
- return errors.New("订单评价失败")
- }
- data := map[string]interface{}{
- "state": orderParam.State.Confirmed.ID,
- "comment_id": commentID,
- }
- if orderInfo.IsForce != 0 {
- data["state"] = orderParam.State.Completed.ID
- }
- _, err = db.Update(ASOrder.TableName(), map[string]interface{}{"id": id}, data)
- if err != nil {
- return err
- }
- // 添加订单 event
- return AddEvent(EventForm{
- OrderID: id,
- OrderState: orderParam.State.Confirmed.ID,
- })
- }
- func CommentCount(where map[string]interface{}) (int64, error) {
- return db.Count(ASOrderComment.TableName(), where)
- }
|