jds kuaidi
This commit is contained in:
@@ -217,7 +217,7 @@ func GetJobDetail(ctx *jxcontext.Context, jobID int, lng, lat float64) (job *dao
|
||||
return job, err
|
||||
}
|
||||
|
||||
func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) {
|
||||
func AcceptJob(ctx *jxcontext.Context, jobID int) (jobOrderID int64, errCode string, err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
userID = ctx.GetUserID()
|
||||
@@ -229,15 +229,15 @@ func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) {
|
||||
job.ID = jobID
|
||||
err = dao.GetEntity(db, job)
|
||||
if job.UserID == "" || job.Status == model.JobStatusFailed || job.Status == model.JobStatusOverdue || job.FinishedAt.Sub(time.Now()) <= 0 || job.SurplusCount <= 0 || job.LimitCountType <= 0 {
|
||||
return errCode, fmt.Errorf("未找到该任务或该任务状态不正常,无法接单!")
|
||||
return 0, errCode, fmt.Errorf("未找到该任务或该任务状态不正常,无法接单!")
|
||||
}
|
||||
num, err = checkJobOrders(db, 0, "<= "+utils.Int2Str(model.JobOrderStatusAccept), userID, utils.ZeroTimeValue, utils.ZeroTimeValue)
|
||||
if num >= AcceptMaxCount {
|
||||
return errCode, fmt.Errorf("每人最多接取" + utils.Int2Str(AcceptMaxCount) + "个任务,请核实!")
|
||||
return 0, errCode, fmt.Errorf("每人最多接取" + utils.Int2Str(AcceptMaxCount) + "个任务,请核实!")
|
||||
}
|
||||
num, err = checkJobOrders(db, jobID, "<= "+utils.Int2Str(model.JobOrderStatusWaitAudit), userID, utils.ZeroTimeValue, utils.ZeroTimeValue)
|
||||
if num > 0 {
|
||||
return errCode, fmt.Errorf("您还有此任务未完成,请完成后再接取!")
|
||||
return 0, errCode, fmt.Errorf("您还有此任务未完成,请完成后再接取!")
|
||||
}
|
||||
// num, err = checkJobOrders(db, "= "+utils.Int2Str(model.JobOrderStatusAuditUnPass), userID, utils.ZeroTimeValue, utils.ZeroTimeValue)
|
||||
// if num > 0 {
|
||||
@@ -247,21 +247,21 @@ func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) {
|
||||
case model.JobLimitCountTypePO:
|
||||
num, err = checkJobOrders(db, jobID, "<> "+utils.Int2Str(model.JobOrderStatusCancel), userID, utils.ZeroTimeValue, utils.ZeroTimeValue)
|
||||
if num > 0 {
|
||||
return errCode, fmt.Errorf("此任务只支持每人做一次!")
|
||||
return 0, errCode, fmt.Errorf("此任务只支持每人做一次!")
|
||||
}
|
||||
case model.JobLimitCountTypePDO:
|
||||
num, err = checkJobOrders(db, jobID, "<> "+utils.Int2Str(model.JobOrderStatusCancel), userID, DayTimeBegin, DayTimeEnd)
|
||||
if num > 0 {
|
||||
return errCode, fmt.Errorf("此任务只支持每人每天做一次!")
|
||||
return 0, errCode, fmt.Errorf("此任务只支持每人每天做一次!")
|
||||
}
|
||||
case model.JobLimitCountTypePWO:
|
||||
num, err = checkJobOrders(db, jobID, "<> "+utils.Int2Str(model.JobOrderStatusCancel), userID, WeekTimeBegin, WeekTimeEnd)
|
||||
if num > 0 {
|
||||
return errCode, fmt.Errorf("此任务只支持每人每周做一次!")
|
||||
return 0, errCode, fmt.Errorf("此任务只支持每人每周做一次!")
|
||||
}
|
||||
case model.JobLimitCountTypeNoLimit:
|
||||
default:
|
||||
return errCode, fmt.Errorf("不支持的任务限次类型!%v", job.LimitCountType)
|
||||
return 0, errCode, fmt.Errorf("不支持的任务限次类型!%v", job.LimitCountType)
|
||||
}
|
||||
jobOrder := &model.JobOrder{
|
||||
JobID: jobID,
|
||||
@@ -297,7 +297,7 @@ func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) {
|
||||
timer := checkLimitJobOrders(db, job, jobOrder, model.JobTimerTypeAccept)
|
||||
JobTimerMap[jobOrder.JobOrderID] = timer
|
||||
dao.Commit(db)
|
||||
return errCode, err
|
||||
return jobOrder.JobOrderID, errCode, err
|
||||
}
|
||||
|
||||
func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err error) {
|
||||
@@ -656,7 +656,7 @@ func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err e
|
||||
dao.UpdateEntity(db, mtMember, "DeletedAt")
|
||||
if err == nil {
|
||||
job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
|
||||
errCode, err = AcceptJob(ctx, job.ID)
|
||||
_, errCode, err = AcceptJob(ctx, job.ID)
|
||||
if errCode != "" {
|
||||
return errCode, err
|
||||
}
|
||||
@@ -754,10 +754,6 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod
|
||||
panic(r)
|
||||
}
|
||||
}()
|
||||
if err = dao.CreateEntity(db, dOrder); err != nil {
|
||||
dao.Rollback(db)
|
||||
return
|
||||
}
|
||||
//账户支出明细
|
||||
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, dOrder.PayPrice); err != nil {
|
||||
dao.Rollback(db)
|
||||
@@ -765,7 +761,12 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod
|
||||
}
|
||||
dao.Commit(db)
|
||||
job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeJdDelivery}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
|
||||
errCode, err = AcceptJob(ctx, job.ID)
|
||||
jobOrderID, errCode, err := AcceptJob(ctx, job.ID)
|
||||
dOrder.JobOrderID = utils.Int64ToStr(jobOrderID)
|
||||
if err = dao.CreateEntity(db, dOrder); err != nil {
|
||||
dao.Rollback(db)
|
||||
return
|
||||
}
|
||||
if errCode != "" {
|
||||
return errCode, err
|
||||
}
|
||||
@@ -820,6 +821,10 @@ func CancelJdDelivery(ctx *jxcontext.Context, vendorWaybillID, reason string) (e
|
||||
}
|
||||
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeSpJob, dOrder.PayPrice); err != nil {
|
||||
dao.Rollback(db)
|
||||
return
|
||||
}
|
||||
if err = CancelAcceptJob(ctx, 2, utils.Str2Int64(dOrder.JobOrderID)); err != nil {
|
||||
dao.Rollback(db)
|
||||
}
|
||||
dao.Commit(db)
|
||||
return err
|
||||
|
||||
@@ -100,6 +100,7 @@ type DeliveryOrder struct {
|
||||
ActualWeight float64 `json:"actualWeight"` //实际重量
|
||||
IsWeight int `json:"isWeight"` //0代表未验重,1代表验重通过,2代表不通过
|
||||
Comment string `orm:"size(255)" json:"comment"` //备注
|
||||
JobOrderID string `orm:"column(job_order_id)" json:"jobOrderID"`
|
||||
}
|
||||
|
||||
func (v *DeliveryOrder) TableUnique() [][]string {
|
||||
|
||||
@@ -118,7 +118,7 @@ func (c *JobController) GetJobDetail() {
|
||||
// @router /AcceptJob [post]
|
||||
func (c *JobController) AcceptJob() {
|
||||
c.callAcceptJob(func(params *tJobAcceptJobParams) (retVal interface{}, errCode string, err error) {
|
||||
errCode, err = cms.AcceptJob(params.Ctx, params.JobID)
|
||||
_, errCode, err = cms.AcceptJob(params.Ctx, params.JobID)
|
||||
return retVal, errCode, err
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user