|
@@ -3,9 +3,7 @@ package services
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"errors"
|
|
|
- "fmt"
|
|
|
"log"
|
|
|
- "reflect"
|
|
|
"strconv"
|
|
|
|
|
|
"go.mod/web/utils"
|
|
@@ -19,7 +17,7 @@ import (
|
|
|
type RuleService interface {
|
|
|
Get(pid int, id int) viewmodels.ViewRule
|
|
|
Post(pid int, id int, key string, value string) error
|
|
|
- AutoCode(bid int, pid int, codeType string) (string, error)
|
|
|
+ AutoCode(bid int, pid int, codeType string) (string, string, error)
|
|
|
ValidRule(ctx iris.Context) (viewmodels.ValidField, error)
|
|
|
}
|
|
|
|
|
@@ -56,161 +54,75 @@ func (s *ruleService) Post(pid int, id int, key string, value string) error {
|
|
|
}
|
|
|
|
|
|
// 生成code
|
|
|
-func (s *ruleService) AutoCode(bid int, pid int, codeType string) (string, error) {
|
|
|
+func (s *ruleService) AutoCode(bid int, pid int, codeType string) (string, string, error) {
|
|
|
// 获取该标段的规则
|
|
|
rule := s.daoRule.FindByPidWithBid(pid, bid)
|
|
|
if codeType == "safeRule" {
|
|
|
if rule.SafeRule == "" {
|
|
|
- return "", errors.New("该标段未设置编号规则!")
|
|
|
+ return "", "", errors.New("该标段未设置编号规则!")
|
|
|
}
|
|
|
var code viewmodels.RuleCode
|
|
|
err := json.Unmarshal([]byte(rule.SafeRule), &code)
|
|
|
- if err == nil {
|
|
|
- total, err := s.daoSafe.CountRuleCode(bid)
|
|
|
- value := reflect.ValueOf(code)
|
|
|
- for i := 0; i < value.NumField(); i++ {
|
|
|
- b := fmt.Sprint(value.Field(i))
|
|
|
- if b == code.Code {
|
|
|
- k, _ := strconv.Atoi(b)
|
|
|
- code.Code = utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- e, err := json.Marshal(code)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(e), err
|
|
|
- }
|
|
|
+ total, err := s.daoSafe.CountRuleCode(bid)
|
|
|
+ k, _ := strconv.Atoi(code.Code)
|
|
|
+ newCode := utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
+ return rule.SafeRule, newCode, err
|
|
|
+
|
|
|
} else if codeType == "contractReturnRule" {
|
|
|
if rule.ContractReturnRule == "" {
|
|
|
- return "", errors.New("该标段未设置编号规则!")
|
|
|
+ return "", "", errors.New("该标段未设置编号规则!")
|
|
|
}
|
|
|
var code viewmodels.RuleCode
|
|
|
err := json.Unmarshal([]byte(rule.ContractReturnRule), &code)
|
|
|
- if err == nil {
|
|
|
- total, err := s.daoContract.CountRuleCode(bid, 0)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- value := reflect.ValueOf(code)
|
|
|
- for i := 0; i < value.NumField(); i++ {
|
|
|
- b := fmt.Sprint(value.Field(i))
|
|
|
- if b == code.Code {
|
|
|
- k, _ := strconv.Atoi(b)
|
|
|
- code.Code = utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- e, err := json.Marshal(code)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(e), err
|
|
|
- }
|
|
|
+ total, err := s.daoContract.CountRuleCode(bid, 0)
|
|
|
+ k, _ := strconv.Atoi(code.Code)
|
|
|
+ newCode := utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
+ return rule.ContractReturnRule, newCode, err
|
|
|
+
|
|
|
} else if codeType == "contractPaidRule" {
|
|
|
if rule.ContractPaidRule == "" {
|
|
|
- return "", errors.New("该标段未设置编号规则!")
|
|
|
+ return "", "", errors.New("该标段未设置编号规则!")
|
|
|
}
|
|
|
var code viewmodels.RuleCode
|
|
|
err := json.Unmarshal([]byte(rule.ContractPaidRule), &code)
|
|
|
- if err == nil {
|
|
|
- total, err := s.daoContract.CountRuleCode(bid, 1)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- value := reflect.ValueOf(code)
|
|
|
- for i := 0; i < value.NumField(); i++ {
|
|
|
- b := fmt.Sprint(value.Field(i))
|
|
|
- if b == code.Code {
|
|
|
- k, _ := strconv.Atoi(b)
|
|
|
- code.Code = utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- e, err := json.Marshal(code)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(e), err
|
|
|
- }
|
|
|
+ total, err := s.daoContract.CountRuleCode(bid, 1)
|
|
|
+ k, _ := strconv.Atoi(code.Code)
|
|
|
+ newCode := utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
+ return rule.ContractPaidRule, newCode, err
|
|
|
+
|
|
|
} else if codeType == "contractPaidRule" {
|
|
|
if rule.ContractPaidRule == "" {
|
|
|
- return "", errors.New("该标段未设置编号规则!")
|
|
|
+ return "", "", errors.New("该标段未设置编号规则!")
|
|
|
}
|
|
|
var code viewmodels.RuleCode
|
|
|
err := json.Unmarshal([]byte(rule.ContractPaidRule), &code)
|
|
|
- if err == nil {
|
|
|
- total, err := s.daoContractPaid.CountPaidRuleCode(bid)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- value := reflect.ValueOf(code)
|
|
|
- for i := 0; i < value.NumField(); i++ {
|
|
|
- b := fmt.Sprint(value.Field(i))
|
|
|
- if b == code.Code {
|
|
|
- k, _ := strconv.Atoi(b)
|
|
|
- code.Code = utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- e, err := json.Marshal(code)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(e), err
|
|
|
- }
|
|
|
+ total, err := s.daoContractPaid.CountPaidRuleCode(bid)
|
|
|
+ k, _ := strconv.Atoi(code.Code)
|
|
|
+ newCode := utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
+ return rule.ContractPaidRule, newCode, err
|
|
|
+
|
|
|
} else if codeType == "contractPaidRule" {
|
|
|
if rule.ContractPaidRule == "" {
|
|
|
- return "", errors.New("该标段未设置编号规则!")
|
|
|
+ return "", "", errors.New("该标段未设置编号规则!")
|
|
|
}
|
|
|
var code viewmodels.RuleCode
|
|
|
err := json.Unmarshal([]byte(rule.ContractPaidRule), &code)
|
|
|
- if err == nil {
|
|
|
- total, err := s.daoContractPaid.CountPaidRuleCode(bid)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- value := reflect.ValueOf(code)
|
|
|
- for i := 0; i < value.NumField(); i++ {
|
|
|
- b := fmt.Sprint(value.Field(i))
|
|
|
- if b == code.Code {
|
|
|
- k, _ := strconv.Atoi(b)
|
|
|
- code.Code = utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- e, err := json.Marshal(code)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(e), err
|
|
|
- }
|
|
|
+ total, err := s.daoContractPaid.CountPaidRuleCode(bid)
|
|
|
+ k, _ := strconv.Atoi(code.Code)
|
|
|
+ newCode := utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
+ return rule.ContractPaidRule, newCode, err
|
|
|
} else {
|
|
|
if rule.QualityRule == "" {
|
|
|
- return "", errors.New("该标段未设置编号规则!")
|
|
|
+ return "", "", errors.New("该标段未设置编号规则!")
|
|
|
}
|
|
|
var code viewmodels.RuleCode
|
|
|
err := json.Unmarshal([]byte(rule.QualityRule), &code)
|
|
|
- if err == nil {
|
|
|
- total, err := s.daoQuality.CountRuleCode(bid)
|
|
|
- value := reflect.ValueOf(code)
|
|
|
- for i := 0; i < value.NumField(); i++ {
|
|
|
- b := fmt.Sprint(value.Field(i))
|
|
|
- if b == code.Code {
|
|
|
- k, _ := strconv.Atoi(b)
|
|
|
- code.Code = utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- e, err := json.Marshal(code)
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
- }
|
|
|
- return string(e), err
|
|
|
- }
|
|
|
+ total, err := s.daoQuality.CountRuleCode(bid)
|
|
|
+ k, _ := strconv.Atoi(code.Code)
|
|
|
+ newCode := utils.CreateRuleCode(int64(k), total, len(code.Code))
|
|
|
+ return rule.QualityRule, newCode, err
|
|
|
}
|
|
|
- return "", errors.New("生成code失败")
|
|
|
+ return "", "", errors.New("生成code失败")
|
|
|
}
|
|
|
|
|
|
func (s *ruleService) ValidRule(ctx iris.Context) (viewmodels.ValidField, error) {
|