123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package order
- import (
- "fmt"
- "zhiyuan/models"
- "zhiyuan/pkg/db"
- orderParam "zhiyuan/pkg/param/order"
- "zhiyuan/services/admin"
- "zhiyuan/services/user"
- )
- var ASOrderEvent models.ASOrderEvent
- type EventForm struct {
- EventID int
- OrderID int
- OrderState int
- Servicer int
- Leader int
- Repairer int
- Title string
- Content string
- Type int
- Pics string
- Date string
- }
- func GetEventList(where map[string]interface{}, fields []string, retVal interface{}) ([]*models.ASOrderEvent, error) {
- return ASOrderEvent.GetMulti(where, fields, retVal)
- }
- func GetListJoinOrder(where map[string]string, param map[string]interface{}, retVal interface{}) error {
- sql := "SELECT o.*, e.order_state, e.title FROM zy_as_order_event e LEFT JOIN zy_as_order o ON e.order_id=o.id"
- return db.GetMultiRaw(sql, where, param, retVal)
- }
- func GetCountJoinOrder(where string, param map[string]interface{}) (int64, error) {
- sql := "zy_as_order_event e LEFT JOIN zy_as_order o ON e.order_id=o.id WHERE " + where
- return db.CountRaw(sql, param)
- }
- func AddEvent(form EventForm) error {
- // get order Info
- orderInfo, err := GetInfoByID(form.OrderID, nil, nil)
- if err != nil {
- return err
- }
- // user info
- userInfo, err := user.GetInfoByID(orderInfo.UserID, nil, nil)
- if err != nil {
- return err
- }
- if userInfo.Name == "" {
- userInfo.Name = userInfo.NickName
- }
- switch form.OrderState {
- case orderParam.State.Revoked.ID:
- if form.Servicer > 0 {
- form.Title = fmt.Sprintf("客服【%s】撤销工单", admin.GetNameByID(form.Servicer))
- } else {
- form.Title = fmt.Sprintf("用户【%s】撤销工单", userInfo.Name)
- }
- case orderParam.State.Created.ID:
- form.Title = fmt.Sprintf("用户【%s】已提交报修订单", userInfo.Name)
- case orderParam.State.Checked.ID:
- form.Title = fmt.Sprintf("客服【%s】已审核工单,业主维修时间:%s", admin.GetNameByID(form.Servicer), form.Content)
- case orderParam.State.Allotted.ID:
- form.Title = fmt.Sprintf("客服【%s】已分配维修人员【%s】", admin.GetNameByID(form.Servicer), admin.GetNameByID(form.Leader))
- case orderParam.State.SupConfirmed.ID:
- form.Title = fmt.Sprintf("维修人员【%s】已确认工单", admin.GetNameByID(form.Leader))
- case orderParam.State.Repairing.ID:
- form.Title = fmt.Sprintf("维修人员【%s】上门服务处理中,预计上门时间:%s", admin.GetNameByID(form.Leader), form.Date)
- case orderParam.State.Suspending.ID:
- form.Title = fmt.Sprintf("客服【%s】修改订单状态为维修待定", admin.GetNameByID(form.Servicer))
- case orderParam.State.Repaired.ID:
- form.Title = fmt.Sprintf("已完成维修")
- repairInfo, err := GetRepairInfoByID(orderInfo.RepairID, nil, nil)
- if err != nil {
- return err
- }
- form.Content = repairInfo.Content
- form.Pics = repairInfo.Pics
- case orderParam.State.Confirmed.ID:
- form.Title = fmt.Sprintf("用户【%s】已确认完成并评价", userInfo.Name)
- case orderParam.State.Completed.ID:
- form.Title = fmt.Sprintf("客服【%s】修改订单状态为已完结", admin.GetNameByID(form.Servicer))
- }
- if form.Type == 0 {
- form.Type = 1
- }
- eventMap := map[string]interface{}{
- "order_id": form.OrderID,
- "order_state": form.OrderState,
- "servicer": form.Servicer,
- "leader": form.Leader,
- "repairer": form.Repairer,
- "Title": form.Title,
- "content": form.Content,
- "pics": form.Pics,
- }
- if form.EventID > 0 {
- db.Update(ASOrderEvent.TableName(), map[string]interface{}{"id": form.EventID}, eventMap)
- } else {
- _, err = db.InsertOne(ASOrderEvent.TableName(), eventMap)
- }
- return err
- }
- func EventCount(where map[string]interface{}) (int64, error) {
- return db.Count(ASOrderEvent.TableName(), where)
- }
- func GetEventInfo(where map[string]interface{}, fields []string, retVal interface{}) (*models.ASOrderEvent, error) {
- return ASOrderEvent.GetOne(where, fields, retVal)
- }
|