Jelajahi Sumber

中标金额限制es修改

jiaojiao7 4 tahun lalu
induk
melakukan
c510490df9

+ 1 - 0
src/models/tag.go

@@ -38,6 +38,7 @@ type Tag struct {
 	Screateuser          string        `json:"s_createuser" bson:"s_createuser"`
 	Supdateuser          string        `json:"s_updateuser" bson:"s_updateuser"`
 	SbudgetFieldExist    int           `json:"i_budgetfieldexist" bson:"i_budgetfieldexist"`
+	SbidamountFieldExist int           `json:"i_bidamountfieldexist" bson:"i_bidamountfieldexist"`
 }
 type ORules struct {
 	Smatchkey      string `json:"s_matchkey"  bson:"s_matchkey"`

+ 53 - 5
src/util/utiltag.go

@@ -295,7 +295,7 @@ func Utiltags(tag map[string]interface{}) string {
 			ffBoolObject.Must = append(ffBoolObject.Must, sql.BudgetMust{BudgetObj: &sql.BudgetObj{Budget: limit}})
 		}
 	}*/
-	if tab.Sbidamount != "" {
+	/*if tab.Sbidamount != "" {
 		if strings.Contains(tab.Sbidamount, "大于") && strings.Contains(tab.Sbidamount, "小于") {
 			arr := strings.Split(tab.Sbidamount, ",")
 			limit := &sql.BudgetOrBidamount{
@@ -314,7 +314,7 @@ func Utiltags(tag map[string]interface{}) string {
 			}
 			ffBoolObject.Must = append(ffBoolObject.Must, sql.BidamountMust{BidamountObj: &sql.BidamountObj{Bidamount: limit}})
 		}
-	}
+	}*/
 	if tab.Sglobalbuyerclass != "" {
 		if len(tab.Sglobalbuyerclass) > 0 {
 			buyerclass := sql.BuyerclassObject{
@@ -424,6 +424,43 @@ func Utiltags(tag map[string]interface{}) string {
 		}
 		torules.Should = append(torules.Should, tmpses)
 	}
+
+	bidamountSql := sql.NewEsObject{}
+	if tab.Sbidamount != "" {
+		if strings.Contains(tab.Sbidamount, "大于") && strings.Contains(tab.Sbidamount, "小于") {
+			arr := strings.Split(tab.Sbidamount, ",")
+			limit := &sql.BudgetOrBidamount{
+				Gte: util.Float64All(strings.Replace(arr[0], "大于", "", -1)),
+				Lt:  util.Float64All(strings.Replace(arr[1], "小于", "", -1)),
+			}
+			bidamountSql.Bool.Should = append(bidamountSql.Bool.Should, sql.BidamountMust{BidamountObj: &sql.BidamountObj{Bidamount: limit}})
+		} else if strings.Contains(tab.Sbidamount, "大于") {
+			limit := &sql.BudgetOrBidamount{
+				Gte: util.Float64All(strings.Replace(tab.Sbidamount, "大于", "", -1)),
+			}
+			bidamountSql.Bool.Should = append(bidamountSql.Bool.Should, sql.BidamountMust{BidamountObj: &sql.BidamountObj{Bidamount: limit}})
+		} else if strings.Contains(tab.Sbidamount, "小于") {
+			limit := &sql.BudgetOrBidamount{
+				Lt: util.Float64All(strings.Replace(tab.Sbidamount, "小于", "", -1)),
+			}
+			bidamountSql.Bool.Should = append(bidamountSql.Bool.Should, sql.BidamountMust{BidamountObj: &sql.BidamountObj{Bidamount: limit}})
+		}
+		if tab.SbidamountFieldExist == 1 {
+			bidamountSql.Bool.Should = append(bidamountSql.Bool.Should, sql.ExistfieldsObjectMust{
+				ExistfieldsObject: &sql.ExistfieldsObject{Filter: struct {
+					Missing struct {
+						Field string `json:"field,omitempty"`
+					} `json:"missing,omitempty"`
+				}{
+					Missing: struct {
+						Field string `json:"field,omitempty"`
+					}{Field: "bidamount"},
+				},
+				},
+			})
+		}
+	}
+
 	budgetSql := sql.NewEsObject{}
 	if tab.Sbudget != "" {
 		if strings.Contains(tab.Sbudget, "大于") && strings.Contains(tab.Sbudget, "小于") {
@@ -481,12 +518,23 @@ func Utiltags(tag map[string]interface{}) string {
 			"bool": torules,
 		})
 	}
-	if len(budgetSql.Bool.Should) > 0 && (len(fqBoolObject.Must) > 0 || len(fqBoolObject.MustNot) > 0 || len(fqBoolObject.Should) > 0) {
-		QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, budgetSql)
+	if (len(budgetSql.Bool.Should) > 0 || len(bidamountSql.Bool.Should) > 0) && (len(fqBoolObject.Must) > 0 || len(fqBoolObject.MustNot) > 0 || len(fqBoolObject.Should) > 0) {
+		if len(budgetSql.Bool.Should) > 0 {
+			QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, budgetSql)
+		}
+		if len(bidamountSql.Bool.Should) > 0 {
+			QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, bidamountSql)
+		}
 	} else {
 		QueryObjecct.Filtered.Query = &sql.Query{}
 		QueryObjecct.Filtered.Query.Bool = &fqBoolObject
-		QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, budgetSql)
+		if len(budgetSql.Bool.Should) > 0 {
+			QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, budgetSql)
+		}
+		if len(bidamountSql.Bool.Should) > 0 {
+			QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, bidamountSql)
+		}
+		//QueryObjecct.Filtered.Query.Bool.Must = append(QueryObjecct.Filtered.Query.Bool.Must, budgetSql)
 	}
 	rdata := make(map[string]interface{})
 	rdata["query"] = QueryObjecct

+ 19 - 1
src/web/templates/client/cuser_rule_create.html

@@ -309,6 +309,10 @@
                                             <input class="form-control" type="text" id="s_bidamount_max"
                                                    placeholder="单位:元/小于">
                                         </div>
+                                        <label class="col-sm-2 control-label">中标金额不存在</label>
+                                        <div class="col-sm-1">
+                                            <input style="margin-top: 10px;" type="checkbox" id="bidamountExist">
+                                        </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局附加词</label>
@@ -1120,7 +1124,21 @@
                 bidamount = bidamount + ",小于" + $('#s_bidamount_max').val()
             }
         }
-        dataMap["s_bidamountlimit"] = bidamount
+        dataMap["s_bidamountlimit"] = bidamount;
+        if (bidamount !== "") {
+            if ($('#bidamountExist').prop('checked')) {
+                dataMap["i_bidamountfieldexist"] = 1
+            } else {
+                dataMap["i_bidamountfieldexist"] = 0
+            }
+        } else {
+            dataMap["i_bidamountfieldexist"] = 0
+        }
+        //预算限制跟中标金额限制不能同时存在
+        if (bidamount !== "" && budget !== "") {
+            showMsg("保存失败,预算金额限制和中标金额限制不能同时使用,请修改!")
+            return;
+        }
         if ($('#maxnum').val() !== "") {
             dataMap["i_maxnum"] = $('#maxnum').val();
         }

+ 16 - 0
src/web/templates/client/cuser_rule_edit.html

@@ -312,6 +312,10 @@
                                             <input class="form-control" type="text" id="s_bidamount_max"
                                                    placeholder="单位:元/小于" onkeyup="limitNum(this)">
                                         </div>
+                                        <label class="col-sm-2 control-label">中标金额不存在</label>
+                                        <div class="col-sm-1">
+                                            <input style="margin-top: 10px;" type="checkbox" id="bidamountExist">
+                                        </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局附加词</label>
@@ -611,6 +615,9 @@
         if (dataMap.i_budgetfieldexist === 1) {
             $("#budgetExist").attr("checked", true)
         }
+        if (dataMap.i_bidamountfieldexist === 1) {
+            $("#bidamountExist").attr("checked", true)
+        }
 
         //匹配方式
         var btnMatchHtml1 = "";
@@ -1656,6 +1663,15 @@
             }
         }
         dataMap["s_bidamountlimit"] = bidamount;
+        if (bidamount !== "") {
+            if ($('#bidamountExist').prop('checked')) {
+                dataMap["i_bidamountfieldexist"] = 1
+            } else {
+                dataMap["i_bidamountfieldexist"] = 0
+            }
+        } else {
+            dataMap["i_bidamountfieldexist"] = 0
+        }
         if ($('#maxnum').val() !== "") {
             dataMap["i_maxnum"] = $('#maxnum').val();
         }

+ 38 - 19
src/web/templates/private/cuser_rule_create.html

@@ -16,7 +16,8 @@
                 <a class="btn btn-sm btn-instagram" onclick="produceData()"><i class="fa fa-fw fa-database fa-lg"></i>生成数据</a>
                 <button class="btn btn-warning btn-sm" onclick="previewData()"><i class="fa fa-fw fa-eye fa-lg"></i>预览
                 </button>
-                <button class="btn tn-info btn-sm" onclick="dataTest()"  style="background-color:#AA77AF;color: white "><i class="fa fa-fw fa-save fa-lg"></i>数据匹配验证
+                <button class="btn tn-info btn-sm" onclick="dataTest()" style="background-color:#AA77AF;color: white ">
+                    <i class="fa fa-fw fa-save fa-lg"></i>数据匹配验证
                 </button>
                 <button class="btn btn-warning btn-sm" onclick="importcomrule()"><i
                             class="fa fa-fw fa-upload fa-lg"></i>导入通用标签
@@ -279,6 +280,10 @@
                                             <input class="form-control" type="text" id="s_bidamount_max"
                                                    placeholder="单位:元/小于">
                                         </div>
+                                        <label class="col-sm-2 control-label">中标金额不存在</label>
+                                        <div class="col-sm-1">
+                                            <input style="margin-top: 10px;" type="checkbox" id="bidamountExist">
+                                        </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局附加词</label>
@@ -518,9 +523,9 @@
         //                      value="${buyerClass[i]}">`;
         // }
         // $("#btnGroupBuyer").append(btnBuyerHtml);
-        for (let key in buyerClassMap){
+        for (let key in buyerClassMap) {
             btnBuyerHtml += `<div class="row"><b style="font-size: 16px;" class="col-sm-1">${key}</b><div style="margin-top: -15px;margin-left: -40px;" class="col-sm-11">`
-            for (let j in buyerClassMap[key]){
+            for (let j in buyerClassMap[key]) {
                 btnBuyerHtml += `<input type="button" class="btn btn-default col-md-2" style="margin-left: 10px;margin-top: 10px" onclick="clickBuyerBtn(this)"
                              value="${buyerClassMap[key][j]}">`;
             }
@@ -1494,6 +1499,20 @@
             }
         }
         dataMap["s_bidamountlimit"] = bidamount
+        if (bidamount !== "") {
+            if ($('#bidamountExist').prop('checked')) {
+                dataMap["i_bidamountfieldexist"] = 1
+            } else {
+                dataMap["i_bidamountfieldexist"] = 0
+            }
+        } else {
+            dataMap["i_bidamountfieldexist"] = 0
+        }
+        //预算限制跟中标金额限制不能同时存在
+        if (bidamount !== "" && budget !== "") {
+            showMsg("保存失败,预算金额限制和中标金额限制不能同时使用,请修改!")
+            return;
+        }
         if ($('#maxnum').val() !== "") {
             dataMap["i_maxnum"] = $('#maxnum').val();
         }
@@ -1588,12 +1607,12 @@
             data: {"id": dataMap.id},
             success: function (r) {
                 com.maskHide();
-                if (r.rep===true) {
+                if (r.rep === true) {
                     dataMap.i_estotal = r.count;
                     showTip("数据生成成功", 1000);
-                } else if (r.rep===false){
+                } else if (r.rep === false) {
                     showTip(r.msg, 30000);
-                }else {
+                } else {
                     showTip("数据生成失败", 12000);
                 }
 
@@ -2175,45 +2194,46 @@
 
         ]
     });
+
     function dataTest() {
         $("#dataTest-title").val("")
         $("#dataTest-detail").val("")
         $("#testResult").hide()
         $("#modal-dataTest").modal('show');
     }
+
     function dataTests() {
         // var val = $("#dataTest-txt").val()
         var title = ""
         var detail = ""
-        if ($("#dataTest-title").val()){
+        if ($("#dataTest-title").val()) {
             title = $("#dataTest-title").val()
         }
-        if ($("#dataTest-detail").val()){
+        if ($("#dataTest-detail").val()) {
             detail = $("#dataTest-detail").val()
         }
         $.ajax({
-            url: "/service/dataTest/"+ dataMap["id"],
+            url: "/service/dataTest/" + dataMap["id"],
             type: "post",
-            data: {"title": title,"detail":detail},
+            data: {"title": title, "detail": detail},
             success: function (r) {
 
 
-                if (r.status){
+                if (r.status) {
 
                     //全局附加词未匹配成功或者 排除词排除
-                    if(r.data.result === false){
+                    if (r.data.result === false) {
                         // $("#result_status").html("匹配失败")
-                        $("#result_message").html("匹配失败 "+r.data.info+"["+r.data.data+"]")
+                        $("#result_message").html("匹配失败 " + r.data.info + "[" + r.data.data + "]")
                         $("#testGlobal").show()
                         $("#testKeyDiv").hide()
-                    }else if (r.data.result === true && r.data.data===""){
+                    } else if (r.data.result === true && r.data.data === "") {
                         //没有关键词时 全局附加词匹配成功时
-                        $("#result_message").html("匹配成功 "+r.data.info)
+                        $("#result_message").html("匹配成功 " + r.data.info)
 
                         $("#testKeyDiv").hide()
                         $("#testGlobal").show()
-                    }
-                    else {
+                    } else {
 
                         $("#result_message").html("")
                         $('#testKey').dataTable().fnClearTable();
@@ -2221,12 +2241,11 @@
                         $("#testKeyDiv").show()
 
 
-
                     }
                     $("#testResult").show()
 
 
-                }else {
+                } else {
 
                     showTip(r.message, 500);
 

+ 22 - 0
src/web/templates/private/cuser_rule_edit.html

@@ -285,6 +285,10 @@
                                             <input class="form-control" type="text" id="s_bidamount_max"
                                                    placeholder="单位:元/小于" onkeyup="limitNum(this)">
                                         </div>
+                                        <label class="col-sm-2 control-label">中标金额不存在</label>
+                                        <div class="col-sm-1">
+                                            <input style="margin-top: 10px;" type="checkbox" id="bidamountExist">
+                                        </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局附加词</label>
@@ -580,6 +584,10 @@
         if (dataMap.i_budgetfieldexist === 1) {
             $("#budgetExist").attr("checked", true)
         }
+
+        if (dataMap.i_bidamountfieldexist === 1) {
+            $("#bidamountExist").attr("checked", true)
+        }
         //匹配方式
         var btnMatchHtml1 = "";
         var btnMatchHtml2 = "";
@@ -1606,6 +1614,20 @@
             }
         }
         dataMap["s_bidamountlimit"] = bidamount;
+        if (bidamount !== "") {
+            if ($('#bidamountExist').prop('checked')) {
+                dataMap["i_bidamountfieldexist"] = 1
+            } else {
+                dataMap["i_bidamountfieldexist"] = 0
+            }
+        } else {
+            dataMap["i_bidamountfieldexist"] = 0
+        }
+        //预算限制跟中标金额限制不能同时存在
+        if (bidamount !== "" && budget !== "") {
+            showMsg("保存失败,预算金额限制和中标金额限制不能同时使用,请修改!")
+            return;
+        }
         if ($('#maxnum').val() !== "") {
             dataMap["i_maxnum"] = $('#maxnum').val();
         }

+ 160 - 91
src/web/templates/private/euser_rule_edit.html

@@ -31,8 +31,10 @@
         <div class="tab-content">
             <div class="nav-tabs-custom">
                 <ul class="nav nav-tabs edit-step">
-                    <li class="active" data-mode="guide"><a href="#tab_1" data-toggle="tab" aria-expanded="true">通用规则</a></li>
-                    <li data-mode="guide" class=""><a href="#tab_2" data-toggle="tab" aria-expanded="false">关键词规则</a></li>
+                    <li class="active" data-mode="guide"><a href="#tab_1" data-toggle="tab"
+                                                            aria-expanded="true">通用规则</a></li>
+                    <li data-mode="guide" class=""><a href="#tab_2" data-toggle="tab" aria-expanded="false">关键词规则</a>
+                    </li>
                 </ul>
                 <div class="tab-content">
                     <div class="tab-pane active" id="tab_1">
@@ -44,7 +46,8 @@
                                 </div>
                                 <div class="box-body">
                                     <div class="form-group">
-                                        <label class="col-sm-2 control-label"><span style="color:red;">* </span>规则名称</label>
+                                        <label class="col-sm-2 control-label"><span
+                                                    style="color:red;">* </span>规则名称</label>
                                         <div class="col-sm-3">
                                             <input type="text" class="form-control" id="tagname" placeholder="规则名称"
                                                    value="{{.T.data.s_name}}" disabled>
@@ -81,7 +84,8 @@
                                         </div>
                                         <label class="col-sm-2 control-label">公告类别选择</label>
                                         <div class="col-sm-3">
-                                            <select class="form-control selectpicker" multiple id="typeSelectVal" disabled></select>
+                                            <select class="form-control selectpicker" multiple id="typeSelectVal"
+                                                    disabled></select>
                                         </div>
                                     </div>
                                     <div class="form-group">
@@ -117,80 +121,97 @@
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">非空字段</label>
                                         <div class="col-sm-3">
-                                            <input class="form-control " multiple id="existFieldSelect" disabled></input>
+                                            <input class="form-control " multiple id="existFieldSelect"
+                                                   disabled></input>
                                         </div>
                                     </div>
                                     <hr>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">预算限制</label>
                                         <div class="col-sm-2">
-                                            <input class="form-control" type="text" id="s_budget_min" placeholder="单位:元/大于" onkeyup="limitNum(this)" disabled />
+                                            <input class="form-control" type="text" id="s_budget_min"
+                                                   placeholder="单位:元/大于" onkeyup="limitNum(this)" disabled/>
                                         </div>
                                         <label class="col-sm-1" style="text-align: center">___ ___</label>
                                         <div class="col-sm-2">
-                                            <input class="form-control" type="text" id="s_budget_max" placeholder="单位:元/小于" onkeyup="limitNum(this)"disabled />
+                                            <input class="form-control" type="text" id="s_budget_max"
+                                                   placeholder="单位:元/小于" onkeyup="limitNum(this)" disabled/>
                                         </div>
                                         <label class="col-sm-2 control-label">预算不存在</label>
                                         <div class="col-sm-1">
-                                            <input style="margin-top: 10px;" type="checkbox" id="budgetExist" onclick="return false;">
+                                            <input style="margin-top: 10px;" type="checkbox" id="budgetExist"
+                                                   onclick="return false;">
                                         </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">中标金额限制</label>
                                         <div class="col-sm-2" id="bidamountDiv">
-                                            <input class="form-control" type="text" id="s_bidamount_min" placeholder="单位:元/大于" onkeyup="limitNum(this)" disabled />
+                                            <input class="form-control" type="text" id="s_bidamount_min"
+                                                   placeholder="单位:元/大于" onkeyup="limitNum(this)" disabled/>
                                         </div>
                                         <label class="col-sm-1" style="text-align: center">___ ___</label>
                                         <div class="col-sm-2">
-                                            <input class="form-control" type="text" id="s_bidamount_max" placeholder="单位:元/小于" onkeyup="limitNum(this)" disabled />
+                                            <input class="form-control" type="text" id="s_bidamount_max"
+                                                   placeholder="单位:元/小于" onkeyup="limitNum(this)" disabled/>
+                                        </div>
+                                        <label class="col-sm-2 control-label">中标金额不存在</label>
+                                        <div class="col-sm-1">
+                                            <input style="margin-top: 10px;" type="checkbox" id="bidamountExist" onclick="return false;">
                                         </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局附加词</label>
                                         <div class="col-sm-3">
                                             <input type="text" class="form-control" id="g_addkey"
-                                                   value="{{.T.data.s_globaladdkey}}" disabled />
+                                                   value="{{.T.data.s_globaladdkey}}" disabled/>
                                         </div>
                                         <label class="col-sm-2 control-label">匹配方式</label>
                                         <div class="col-sm-3">
-                                            <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
-                                                   type="button" id="s_addkeymatch" disabled />
+                                            <input class="form-control"
+                                                   style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
+                                                   type="button" id="s_addkeymatch" disabled/>
                                         </div>
                                     </div>
                                     <div class="form-group">
                                         <label for="spiderChannel" class="col-sm-2 control-label">全局排除词</label>
                                         <div class="col-sm-3">
                                             <input type="text" class="form-control" id="g_notkey"
-                                                   value="{{.T.data.s_globalnotkey}}" disabled />
+                                                   value="{{.T.data.s_globalnotkey}}" disabled/>
                                         </div>
                                         <label class="col-sm-2 control-label">匹配方式</label>
                                         <div class="col-sm-3">
-                                            <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
+                                            <input class="form-control"
+                                                   style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
                                                    type="button" id="s_notkeymatch">
                                         </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局清理词</label>
                                         <div class="col-sm-3">
-                                            <input type="text" class="form-control" id="s_globalclearkey" placeholder="***"
+                                            <input type="text" class="form-control" id="s_globalclearkey"
+                                                   placeholder="***"
                                                    value="{{.T.data.s_globalclearkey}}" disabled>
                                         </div>
                                         <label class="col-sm-2 control-label">匹配方式</label>
-                                         <div class="col-sm-3">
-                                            <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
-                                                   type="button" id="s_globalclearkeymatch" disabled />
+                                        <div class="col-sm-3">
+                                            <input class="form-control"
+                                                   style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
+                                                   type="button" id="s_globalclearkeymatch" disabled/>
                                         </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">采购单位类型</label>
                                         <div class="col-sm-3">
-                                            <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
-                                                   type="button" id="s_buyerclass" value="{{.T.data.s_globalbuyerclass}}" disabled />
+                                            <input class="form-control"
+                                                   style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
+                                                   type="button" id="s_buyerclass"
+                                                   value="{{.T.data.s_globalbuyerclass}}" disabled/>
                                         </div>
                                         <label class="col-sm-2 control-label">公告行业</label>
                                         <div class="col-sm-3">
-                                            <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
-                                                   type="button" id="s_scopeclass" disabled />
+                                            <input class="form-control"
+                                                   style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
+                                                   type="button" id="s_scopeclass" disabled/>
                                         </div>
                                     </div>
                                     <hr>
@@ -198,11 +219,12 @@
                                         <label class="col-sm-2 control-label">预览数据量</label>
                                         <div class="col-sm-3">
                                             <input type="text" class="form-control" id="maxnum"
-                                                   value="{{.T.data.i_maxnum}}" disabled />
+                                                   value="{{.T.data.i_maxnum}}" disabled/>
                                         </div>
                                         <label class="col-sm-2 control-label ">高级字段包</label>
                                         <div class="col-sm-3">
-                                            <select class="form-control" id="extfiledselect" style="border-radius:3px" disabled>
+                                            <select class="form-control" id="extfiledselect" style="border-radius:3px"
+                                                    disabled>
                                                 <option value="1">否</option>
                                                 <option value="2">是</option>
                                             </select>
@@ -311,7 +333,7 @@
 {{include "com/footer.html"}}
 <script>
     menuActive("/entCustomer/list");
-    var clearkeyMatchArr = ["detail","title"];
+    var clearkeyMatchArr = ["detail", "title"];
     var dataMap = {{.T.data}};
     var o_rules = {{.T.data.o_rules}};
     var app = angular.module('app', ["wui.date"]);       //时间插件
@@ -351,9 +373,9 @@
                 var arr = dataMap.s_budgetlimit.split(",");
                 $('#s_budget_min').val(arr[0].replace("大于", ""));
                 $('#s_budget_max').val(arr[1].replace("小于", ""))
-            }else if (dataMap.s_budgetlimit.indexOf("大于") != -1) {
+            } else if (dataMap.s_budgetlimit.indexOf("大于") != -1) {
                 $('#s_budget_min').val(dataMap.s_budgetlimit.replace("大于", ""))
-            }else if (dataMap.s_budgetlimit.indexOf("小于") != -1) {
+            } else if (dataMap.s_budgetlimit.indexOf("小于") != -1) {
                 $('#s_budget_max').val(dataMap.s_budgetlimit.replace("小于", ""))
             }
         }
@@ -363,9 +385,9 @@
                 var arr = dataMap.s_bidamountlimit.split(",");
                 $('#s_bidamount_min').val(arr[0].replace("大于", ""));
                 $('#s_bidamount_max').val(arr[1].replace("小于", ""))
-            }else if (dataMap.s_bidamountlimit.indexOf("大于") != -1) {
+            } else if (dataMap.s_bidamountlimit.indexOf("大于") != -1) {
                 $('#s_bidamount_min').val(dataMap.s_bidamountlimit.replace("大于", ""))
-            }else if (dataMap.s_bidamountlimit.indexOf("小于") != -1) {
+            } else if (dataMap.s_bidamountlimit.indexOf("小于") != -1) {
                 $('#s_bidamount_max').val(dataMap.s_bidamountlimit.replace("小于", ""))
             }
         }
@@ -384,10 +406,10 @@
         //公告行业
         $('#s_scopeclass').val(dataMap.s_globalsubscopeclass)
         if (dataMap.s_globaltopscopeclass && dataMap.s_globalsubscopeclass && dataMap.s_globaltopscopeclass != "" && dataMap.s_globalsubscopeclass != "") {
-            $('#s_scopeclass').val(dataMap.s_globaltopscopeclass+","+dataMap.s_globalsubscopeclass)
-        }else if (dataMap.s_globaltopscopeclass && dataMap.s_globaltopscopeclass != "") {
+            $('#s_scopeclass').val(dataMap.s_globaltopscopeclass + "," + dataMap.s_globalsubscopeclass)
+        } else if (dataMap.s_globaltopscopeclass && dataMap.s_globaltopscopeclass != "") {
             $('#s_scopeclass').val(dataMap.s_globaltopscopeclass)
-        }else if (dataMap.s_globalsubscopeclass && dataMap.s_globalsubscopeclass != "") {
+        } else if (dataMap.s_globalsubscopeclass && dataMap.s_globalsubscopeclass != "") {
             $('#s_scopeclass').val(dataMap.s_globalsubscopeclass)
         }
         //省
@@ -456,12 +478,16 @@
         }
 
         //非空字段
-        $('#existFieldSelect').attr("value",existField)
+        $('#existFieldSelect').attr("value", existField)
         $("#infoType").selectpicker("refresh");
         // $("#existFieldSelect").selectpicker("refresh");
         if (dataMap.i_budgetfieldexist === 1) {
             $("#budgetExist").attr("checked", true)
         }
+        console.log(dataMap.i_bidamountfieldexist,"----------")
+        if (dataMap.i_bidamountfieldexist === 1) {
+            $("#bidamountExist").attr("checked", true)
+        }
 
         //匹配方式
         var btnMatchHtml1 = "";
@@ -473,21 +499,21 @@
             if (i < 5) {
                 btnMatchHtml1 += `<input type="button" class="btn btn-default col-md-pull-2" style="margin-left: 10px;margin-top: 10px" onclick="clickMatchBtn(this)"
                             code="${matchTypeMap[i]["code"]}" value="${matchTypeMap[i]["name"]}">`;
-            }else {
+            } else {
                 btnMatchHtml2 += `<input type="button" class="btn btn-default col-md-pull-2" style="margin-left: 10px;margin-top: 10px" onclick="clickMatchBtn2(this)"
                             code="${matchTypeMap[i]["code"]}" value="${matchTypeMap[i]["name"]}">`;
             }
             if (dataMap.s_globaladdkeymatch.indexOf(matchTypeMap[i]["code"]) > -1) {
                 if (addMatchName == "") {
                     addMatchName = matchTypeMap[i]["name"]
-                }else {
+                } else {
                     addMatchName = addMatchName + "," + matchTypeMap[i]["name"]
                 }
             }
             if (dataMap.s_globalnotkeymatch.indexOf(matchTypeMap[i]["code"]) > -1) {
                 if (notMatchName == "") {
                     notMatchName = matchTypeMap[i]["name"]
-                }else {
+                } else {
                     notMatchName = notMatchName + "," + matchTypeMap[i]["name"]
                 }
             }
@@ -495,7 +521,7 @@
             if (dataMap.s_globalclearkeymatch && dataMap.s_globalclearkeymatch.indexOf(matchTypeMap[i]["code"]) > -1) {
                 if (clearMatchName == "") {
                     clearMatchName = matchTypeMap[i]["name"]
-                }else {
+                } else {
                     clearMatchName = clearMatchName + "," + matchTypeMap[i]["name"]
                 }
             }
@@ -547,7 +573,8 @@
             "columns": [
                 {"data": null, width: "2%"},
                 {"data": "s_matchkey", width: "10%"},
-                {"data": function (row) {
+                {
+                    "data": function (row) {
                         var str = row.s_keymatch;
                         if (str && str != "") {
                             var s = "";
@@ -563,14 +590,18 @@
                             return s
                         }
                         return ""
-                    }, width: "5%"},
-                {"data": "s_addkey", width: "10%", render: function (val) {
+                    }, width: "5%"
+                },
+                {
+                    "data": "s_addkey", width: "10%", render: function (val) {
                         if (val == undefined) {
                             val = ""
                         }
                         return val
-                    }},
-                {"data": function (row) {
+                    }
+                },
+                {
+                    "data": function (row) {
                         var str = row.s_addkeymatch;
                         if (str && str != "") {
                             var s = "";
@@ -586,14 +617,18 @@
                             return s
                         }
                         return ""
-                    }, width: "5%"},
-                {"data": "s_notkey", width: "10%", render: function (val) {
+                    }, width: "5%"
+                },
+                {
+                    "data": "s_notkey", width: "10%", render: function (val) {
                         if (val == undefined) {
                             val = ""
                         }
                         return val
-                    }},
-                {"data": function (row) {
+                    }
+                },
+                {
+                    "data": function (row) {
                         var str = row.s_notkeymatch;
                         if (str && str != "") {
                             var s = "";
@@ -609,14 +644,18 @@
                             return s
                         }
                         return ""
-                    }, width: "5%"},
-                {"data": "s_buyerclass", width: "7%", render: function (val) {
+                    }, width: "5%"
+                },
+                {
+                    "data": "s_buyerclass", width: "7%", render: function (val) {
                         if (val == undefined) {
                             val = ""
                         }
                         return val
-                    }},
-                {"data": function (row) {
+                    }
+                },
+                {
+                    "data": function (row) {
                         var str = "";
                         if (row.s_topscopeclass) {
                             str = row.s_topscopeclass
@@ -624,21 +663,22 @@
                         if (row.s_subscopeclass) {
                             if (str != "") {
                                 str = str + "," + row.s_subscopeclass
-                            }else {
+                            } else {
                                 str = row.s_subscopeclass
                             }
                         }
                         return str
-                    }, width: "5%"},
+                    }, width: "5%"
+                },
             ],
             "columnDefs": [{
                 "targets": [2],
                 "render": function (data, type, full, meta) {
                     if (data && data.length > 24) {
                         return "<a title='" + data + "' href='#' style='text-decoration: none;'>" + data.trim().substr(0, 24) + "..." + "</a>";
-                    }else if (data == undefined) {
+                    } else if (data == undefined) {
                         return ""
-                    }else {
+                    } else {
                         return data
                     }
                 }
@@ -647,9 +687,9 @@
                 "render": function (data, type, full, meta) {
                     if (data && data.length > 24) {
                         return "<a title='" + data + "' href='#' style='text-decoration: none;'>" + data.trim().substr(0, 24) + "..." + "</a>";
-                    }else if (data == undefined) {
+                    } else if (data == undefined) {
                         return ""
-                    }else {
+                    } else {
                         return data
                     }
                 }
@@ -658,9 +698,9 @@
                 "render": function (data, type, full, meta) {
                     if (data && data.length > 24) {
                         return "<a title='" + data + "' href='#' style='text-decoration: none;'>" + data.trim().substr(0, 24) + "..." + "</a>";
-                    }else if (data == undefined) {
+                    } else if (data == undefined) {
                         return ""
-                    }else {
+                    } else {
                         return data
                     }
                 }
@@ -687,18 +727,19 @@
             data: {"id": dataMap.id},
             success: function (r) {
                 com.maskHide();
-                if (r.rep===true) {
+                if (r.rep === true) {
                     dataMap.i_estotal = r.count;
                     showTip("数据生成成功", 1000);
-                } else if (r.rep===false){
+                } else if (r.rep === false) {
                     showTip(r.msg, 30000);
-                }else {
+                } else {
                     showTip("数据生成失败", 12000);
                 }
 
             }
         })
     }
+
     //预览数据
     function previewData() {
         myDataTable = $('#previewData').DataTable({
@@ -733,28 +774,35 @@
             },
             "columns": [
                 {"data": null, width: "2%"},
-                {"data": function (row) {
+                {
+                    "data": function (row) {
                         if (row.s_matchkey) {
                             return row.s_matchkey
                         } else {
                             return ""
                         }
-                    }, width: "8%"},
-                {"data": function (row) {
+                    }, width: "8%"
+                },
+                {
+                    "data": function (row) {
                         if (row.area) {
                             return row.area
                         } else {
                             return ""
                         }
-                    }, width: "4%"},
-                {"data": function (row) {
+                    }, width: "4%"
+                },
+                {
+                    "data": function (row) {
                         if (row.city) {
                             return row.city
                         } else {
                             return ""
                         }
-                    }, width: "4%"},
-                {"data": function (row) {
+                    }, width: "4%"
+                },
+                {
+                    "data": function (row) {
                         if (row.s_jyhref) {
                             if (row.title.length > 36) {
                                 var str = row.title.substring(0, 36) + "..."
@@ -766,28 +814,36 @@
                         } else {
                             return row.title
                         }
-                    }, width: "5%"},
-                {"data": function (row) {
+                    }, width: "5%"
+                },
+                {
+                    "data": function (row) {
                         if (row.subtype) {
                             return row.subtype
                         } else {
                             return ""
                         }
-                    }, width: "4%"},
-                {"data": function (row) {
+                    }, width: "4%"
+                },
+                {
+                    "data": function (row) {
                         var str = com.trimStr(row.detail);
                         if (str.length > 14) {
                             return str.substring(0, 14) + "..."
                         } else {
                             return str
                         }
-                    }, width: "5%"},
-                {"data": function (row) {
+                    }, width: "5%"
+                },
+                {
+                    "data": function (row) {
                         var dt = new Date();
                         dt.setTime(parseInt(row.publishtime) * 1000);
                         return dt.format("yyyy-MM-dd")
-                    }, width: "4%"},
-                {"data": function (row) {
+                    }, width: "4%"
+                },
+                {
+                    "data": function (row) {
                         if (row.href) {
                             var shref = row.href;
                             tmp = '<a class="" target="_blank" href=' + shref + '>公告地址</a>';
@@ -795,16 +851,20 @@
                         } else {
                             return ""
                         }
-                    }, width: "5%"},
-                {"data": function (row) {
+                    }, width: "5%"
+                },
+                {
+                    "data": function (row) {
                         if (row.projectcode) {
                             return row.projectcode
-                        }else {
+                        } else {
                             return ""
                         }
-                    }, width: "5%"},
+                    }, width: "5%"
+                },
                 {"data": "projectname", width: "5%"},
-                {"data": function (row) {
+                {
+                    "data": function (row) {
                         if (row.projectscope) {
                             if (row.projectscope.length > 14) {
                                 return row.projectscope.substring(0, 14) + "..."
@@ -813,22 +873,28 @@
                             }
                         }
                         return ""
-                    }, width: "3%"},
-                {"data": function (row) {
+                    }, width: "3%"
+                },
+                {
+                    "data": function (row) {
                         if (row.budget == undefined) {
                             return ""
                         } else {
                             return row.budget
                         }
-                    }, width: "3%"},
-                {"data": function (row) {
+                    }, width: "3%"
+                },
+                {
+                    "data": function (row) {
                         if (row.bidamount == undefined) {
                             return ""
                         } else {
                             return row.bidamount
                         }
-                    }, width: "3%"},
-                {"data": "bidopentime", width: "3%", render: function (val) {
+                    }, width: "3%"
+                },
+                {
+                    "data": "bidopentime", width: "3%", render: function (val) {
                         if (val) {
                             var dt = new Date();
                             dt.setTime(parseInt(val) * 1000);
@@ -836,13 +902,16 @@
                         } else {
                             return ""
                         }
-                    }},
-                {"data": "buyer", width: "3%", render: function (val) {
+                    }
+                },
+                {
+                    "data": "buyer", width: "3%", render: function (val) {
                         if (val == undefined) {
                             val = ""
                         }
                         return val
-                    }},
+                    }
+                },
                 {
                     "data": function (row) {
                         if (row.buyerperson) {

+ 21 - 0
src/web/templates/private/history_rule_edit.html

@@ -267,6 +267,10 @@
                                         <div class="col-sm-2">
                                             <input class="form-control" type="text" id="s_bidamount_max" placeholder="单位:元/小于" onkeyup="limitNum(this)">
                                         </div>
+                                        <label class="col-sm-2 control-label">中标金额不存在</label>
+                                        <div class="col-sm-1">
+                                            <input style="margin-top: 10px;" type="checkbox" id="bidamountExist">
+                                        </div>
                                     </div>
                                     <div class="form-group">
                                         <label class="col-sm-2 control-label">全局附加词</label>
@@ -557,6 +561,9 @@
         if (dataMap.i_budgetfieldexist === 1) {
             $("#budgetExist").attr("checked", true)
         }
+        if (dataMap.i_bidamountfieldexist === 1) {
+            $("#bidamountExist").attr("checked", true)
+        }
 
         //匹配方式
         var btnMatchHtml1 = "";
@@ -1556,6 +1563,20 @@
             }
         }
         dataMap["s_bidamountlimit"] = bidamount;
+        if (bidamount !== "") {
+            if ($('#bidamountExist').prop('checked')) {
+                dataMap["i_bidamountfieldexist"] = 1
+            } else {
+                dataMap["i_bidamountfieldexist"] = 0
+            }
+        } else {
+            dataMap["i_bidamountfieldexist"] = 0
+        }
+        //预算限制跟中标金额限制不能同时存在
+        if (bidamount !== "" && budget !== "") {
+            showMsg("保存失败,预算金额限制和中标金额限制不能同时使用,请修改!")
+            return;
+        }
         if ($('#maxnum').val() !== "") {
             dataMap["i_maxnum"] = $('#maxnum').val();
         }