123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package change
- import (
- "Wine-Server/utils"
- "Wine-Server/utils/tables"
- "github.com/gorilla/websocket"
- )
- func Query(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- var param queryParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryRes", utils.Fail("参数错误")))
- return
- }
- total, warns, err := tables.WarnQuery(manager.Id, param.Cond, param.Deal, param.Limit, param.Page)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryRes", utils.Fail("查询信息失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent(
- "adminWineChangeQueryRes",
- utils.Success(utils.JsonType{"total": total, "list": warns}),
- ))
- }
- func QueryWine(conn *websocket.Conn, data any) {
- cond, ok := data.(string)
- if !ok {
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWineRes", utils.Fail("参数错误")))
- return
- }
- wines, err := tables.WinesQueryByIdOrName(cond)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWineRes", utils.Fail("查询酒品失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent(
- "adminWineChangeQueryWineRes",
- utils.Success(wines),
- ))
- }
- func QueryWorker(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- cond, ok := data.(string)
- if !ok {
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWorkerRes", utils.Fail("参数错误")))
- return
- }
- workers, err := tables.WorkersQueryByPhoneOrName(manager.Id, cond)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWorkerRes", utils.Fail("查询酒品失败")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent(
- "adminWineChangeQueryWorkerRes",
- utils.Success(workers),
- ))
- }
- func Assign(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- var param assignParam
- err := utils.AnyTrans(data, ¶m)
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("参数错误")))
- return
- }
- if param.Worker == "" {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("请选择上酒工")))
- return
- }
- worker := tables.WorkerTable{Id: param.Worker}
- err = worker.Get()
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("上酒工不存在")))
- return
- }
- warn := tables.WarnTable{Id: param.Id}
- err = warn.Get()
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("报警不存在")))
- return
- }
- change := tables.ChangeTable{
- Wid: warn.Id, Device: warn.Device, Manager: warn.Manager,
- Worker: param.Worker, Code: utils.RandomString(6, utils.NumberPatten),
- }
- change.Old, change.New = param.Old, param.New
- err = change.Insert()
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("安排失败 01")))
- return
- }
- warn.Deal = true
- err = warn.UpdateSelf()
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("安排失败 02")))
- return
- }
- worker.Todo++
- err = worker.UpdateSelf()
- if err != nil {
- utils.Logger.Println(err)
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("安排失败 03")))
- return
- }
- _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Success(nil)))
- operate := tables.OperationTable{
- UserType: 0, UserId: manager.Id, OpType: 0, Level: 0,
- Describe: utils.Format("管理员[%s]安排上酒工[%s]为设备[%s]换酒", manager.Name, worker.Name, warn.Device),
- }
- _ = operate.Insert()
- }
- func DeviceFix(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
- did, ok := data.(string)
- if !ok {
- _ = conn.WriteJSON(utils.WsEvent("adminWineDeviceFixRes", utils.Fail("参数错误")))
- return
- }
- if device, din := utils.SellerDevices[did]; din && device.Online {
- key := utils.Format("Fix_%s_%s", did, manager.Id)
- code, err := utils.Redis.Get(utils.WxPayCli, key).Result()
- if err != nil {
- code = utils.RandomString(6, utils.NumberPatten)
- utils.Redis.Set(utils.WxPayCli, key, code, utils.Duration(300))
- } else {
- utils.Redis.Expire(utils.WxPayCli, key, utils.Duration(300))
- }
- _ = device.Conn.WriteJSON(utils.WsEvent("openGate", utils.JsonType{
- "type": "Fixing", "user_type": "manager", "user_id": manager.Id,
- }))
- _ = conn.WriteJSON(utils.WsEvent("adminWineDeviceFixRes", utils.Success(code)))
- operate := tables.OperationTable{
- UserType: 0, UserId: manager.Id, OpType: 0, Level: 1,
- Describe: utils.Format("管理员[%s]请求维修设备[%s]", manager.Name, did),
- }
- _ = operate.Insert()
- return
- }
- _ = conn.WriteJSON(utils.WsEvent("adminWineDeviceFixRes", utils.Fail("设备离线")))
- }
|