123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- package dispatch
- import (
- "errors"
- "fmt"
- "zhiyuan/pkg/db"
- "github.com/gin-gonic/gin"
- )
- type DispatchOrder struct {
- ID int64 `json:"id" prop:"add:false"`
- TableId int64 `json:"table_id" label:"表" type:"int" prop:"add" search:"="`
- WorkerId int64 `json:"worker_id" label:"工人" type:"int" prop:"add" search:"="`
- State int64 `json:"state" label:"状态" type:"int" prop:"add:false edit" default:"0" search:"="`
- CreatedId int64 `json:"created_id" label:"创建人员" type:"int" prop:"add:false" search:"="`
- DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"`
- CreatedAt int64 `json:"created_at" prop:"add:false"`
- UpdatedAt int64 `json:"updated_at" prop:"add:false"`
- WorkerName string `json:"worker_name" label:"工人姓名" prop:"add:false select:worker.name"`
- WorkerPhone string `json:"worker_phone" label:"工人电话" prop:"add:false select:worker.phone"`
- Username string `json:"username" label:"业主姓名" prop:"select:dispatchsite.username" search:"like"`
- Phone string `json:"phone" label:"手机号码" prop:"select:dispatchsite.phone" search:"like"`
- Village string `json:"village" label:"小区名称" prop:"select:dispatchsite.village" search:"like"`
- Address string `json:"address" label:"房屋地址" prop:"select:dispatchsite.address" search:"like"`
- RoomNo string `json:"room_no" label:"楼栋房号" prop:"select:dispatchsite.room_no" search:"like"`
- Area string `json:"area" label:"面积" prop:"select:dispatchsite.area"`
- ManagerId int64 `json:"manager_id" label:"项目经理" prop:"select:dispatchsite.manager_id"`
- ManagerName string `json:"manager_name" prop:"select:manager.username"`
- ManagerPhone string `json:"manager_phone" prop:"select:manager.phone"`
- ManagerHeadImgUrl string `json:"manager_headimgurl" prop:"select:manager.headimgurl"`
- Name string `json:"name" label:"类别名称" prop:"select:dispatchtype.name"`
- Budget float64 `json:"budget" label:"工价" prop:"select:table.budget"`
- Image string `json:"image" label:"图片" prop:"select:table.image""`
- TableWorkerId int64 `json:"table_worker_id" label:"图片" prop:"select:table.worker_id""`
- db.BaseModel
- }
- func (DispatchOrder) TableName() string {
- return "zy_dispatch_order"
- }
- func (model DispatchOrder) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
- if search, ok := data["search"]; ok {
- search = s.Param(fmt.Sprintf("%%%s%%", search))
- s.Where = append(s.Where, fmt.Sprintf("`dispatchsite`.`username` LIKE %s OR `dispatchsite`.`phone` LIKE %s OR `dispatchsite`.`village` LIKE %s OR `dispatchsite`.`address` LIKE %s", search, search, search, search))
- }
- return true
- }
- func (DispatchOrder) OnePrivilege(c *gin.Context, id int64) bool {
- return true
- }
- func (DispatchOrder) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error {
- data["created_id"] = c.GetInt("adminID")
- tableID, _ := db.ToInt64(data["table_id"])
- var model DispatchSiteTable
- db.GetModel(map[string]interface{}{
- "id": tableID,
- }, &model)
- if model.ID == 0 || model.WorkerId != 0 {
- return errors.New("项目已分配工人")
- }
- orders, _ := db.GetModelMap(db.Type(DispatchOrder{}), map[string]interface{}{"table_id": tableID, "state": 0}, nil)
- if len(orders) != 0 {
- return errors.New("项目已派单")
- }
- return nil
- }
- func (DispatchOrder) EditPrivilege(c *gin.Context, id int64, data map[string]interface{}, post map[string]interface{}) error {
- state, _ := db.ToInt64(data["state"])
- if state == 1 {
- var model DispatchOrder
- db.GetModel(map[string]interface{}{
- "id": id,
- }, &model)
- if model.ID == 0 || model.State != 0 {
- return errors.New("没有权限")
- }
- var table DispatchSiteTable
- db.GetModel(map[string]interface{}{
- "id": model.TableId,
- }, &table)
- if table.ID == 0 || table.WorkerId != 0 {
- return errors.New("没有权限")
- }
- err := db.UpdateModel(db.Type(table), model.TableId, map[string]interface{}{
- "worker_id": model.WorkerId,
- })
- if err != nil {
- return errors.New("没有权限")
- }
- err = db.UpdateModels(db.Type(model), map[string]interface{}{
- "id !=": id,
- "table_id": model.TableId,
- "state": 0,
- }, map[string]interface{}{
- "state": 3,
- })
- if err != nil {
- return errors.New("没有权限")
- }
- }
- return nil
- }
- func (DispatchOrder) DelPrivilege(c *gin.Context, id int64) error {
- return nil
- }
- func (DispatchOrder) Page() bool {
- return false
- }
- func (DispatchOrder) Count() bool {
- return true
- }
- func (model DispatchOrder) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
- return []db.JoinModel{{
- Model: JoinWorker{},
- As: "worker",
- On: []string{"`worker`.`id` = " + model.TableName() + ".`worker_id`"},
- }, {
- Model: DispatchSiteTable{},
- As: "table",
- On: []string{"`table`.`id` = " + model.TableName() + ".`table_id`"},
- }, {
- Model: DispatchType{},
- As: "dispatchtype",
- On: []string{"`dispatchtype`.`id` = `table`.`type_id`"},
- }, {
- Model: DispatchSite{},
- As: "dispatchsite",
- On: []string{"`dispatchsite`.`id` = `table`.`site_id`"},
- }, {
- Model: JoinAdmin{},
- As: "manager",
- On: []string{"`manager`.`id` = `dispatchsite`.`manager_id`"},
- }}
- }
|