|
@@ -699,7 +699,7 @@ func (this *EtaBusinessController) Signing() {
|
|
|
cond := fmt.Sprintf(` AND %s = ?`, eta_business.EtaBusinessContractColumns.EtaBusinessId)
|
|
|
pars := make([]interface{}, 0)
|
|
|
pars = append(pars, req.EtaBusinessId)
|
|
|
- contracts, e := contract.GetItemsByCondition(cond, pars, []string{}, "")
|
|
|
+ contracts, e := contract.GetItemsByCondition(cond, pars, []string{}, "signing_time ASC")
|
|
|
if e != nil {
|
|
|
br.Msg = "操作失败"
|
|
|
br.ErrMsg = "获取商家签约列表失败, Err: " + e.Error()
|
|
@@ -707,10 +707,11 @@ func (this *EtaBusinessController) Signing() {
|
|
|
}
|
|
|
|
|
|
// 校验签约时间是否重叠
|
|
|
- isFirst := true // 是否为首次签约
|
|
|
+ isFirst := true // 是否为首次签约
|
|
|
+ changeFirst := false // 是否需要更新首次签约合同
|
|
|
if len(contracts) > 0 {
|
|
|
isFirst = false
|
|
|
- for _, c := range contracts {
|
|
|
+ for k, c := range contracts {
|
|
|
pass := false
|
|
|
if expiredTime.Before(c.SigningTime) {
|
|
|
pass = true
|
|
@@ -722,6 +723,11 @@ func (this *EtaBusinessController) Signing() {
|
|
|
br.Msg = "签约时间在存续期内, 请检查"
|
|
|
return
|
|
|
}
|
|
|
+ // 若该合同签约时间早于第一份合同(业务上未限制所以可能会出现这种情况, contracts已排序), 则更新为首次签约合同
|
|
|
+ if k == 0 && signTime.Before(c.SigningTime) {
|
|
|
+ changeFirst = true
|
|
|
+ isFirst = true
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -734,7 +740,7 @@ func (this *EtaBusinessController) Signing() {
|
|
|
if isFirst {
|
|
|
contract.IsFirst = 1
|
|
|
}
|
|
|
- if e = contract.Create(); e != nil {
|
|
|
+ if e = contract.CreateMaybeUpdateFirst(contract, changeFirst); e != nil {
|
|
|
br.Msg = "操作失败"
|
|
|
br.ErrMsg = "新增签约失败, Err: " + e.Error()
|
|
|
return
|