Эх сурвалжийг харах

feat:A24118新华三规则数据导出权限调整

fuwencai 1 жил өмнө
parent
commit
87b52d65ee

+ 6 - 0
CMPlatform/client/client.go

@@ -75,6 +75,12 @@ func (c *Client) CuserRule() {
 	} else {
 		c.T["did"] = ids[0] //部门id
 		c.T["cid"] = ids[1] //客户id
+		users, ok := util.Mgo.FindOne("cuser", map[string]interface{}{"_id": mongodb.StringTOBsonId(ids[1]), "b_delete": false})
+		downloadRule := 0
+		if users != nil && ok {
+			downloadRule = common.IntAll((*users)["i_downloadRule"])
+		}
+		c.T["i_downloadRule"] = downloadRule // 导出规则开关
 		c.T["preview_href"] = util.PreviewHref
 		c.Render("client/cuser_rule_list.html", &c.T)
 	}

+ 39 - 0
CMPlatform/client/customerRule.go

@@ -14,6 +14,7 @@ import (
 	"go.mongodb.org/mongo-driver/bson"
 	"go.uber.org/zap"
 	"io"
+	"os"
 	"regexp"
 	"strings"
 	"time"
@@ -26,6 +27,7 @@ type CustomerRule struct {
 	productData     xweb.Mapper `xweb:"/customerRule/cuser/produce"`      //生成预览数据
 	demoData        xweb.Mapper `xweb:"/customerRule/rule/preview"`       //预览数据
 	dataTest        xweb.Mapper `xweb:"/customerRule/rule/dataTest/(.*)"` //规则测试
+	downloadRule    xweb.Mapper `xweb:"/customerRule/rule/downloadrule"`  //下载规则
 }
 
 var (
@@ -580,3 +582,40 @@ func exactMatch(rule string, data []map[string]interface{}, nameArr []string) bo
 	}
 	return output.(bool)
 }
+
+func (this *CustomerRule) DownloadRule() {
+	defer common.Catch()
+	id := this.GetString("id")
+	// 验证一下规则
+	user, ok := this.GetSession("user").(map[string]interface{})
+	if !ok {
+		this.ServeJson("身份异常")
+		return
+	}
+	uID := ""
+	users, ok := util.Mgo.FindOne("cuser", map[string]interface{}{"s_name": user["name"], "b_delete": false})
+	if users != nil && ok {
+		uID = mongodb.BsonIdToSId((*users)["_id"])
+	}
+	if uID == "" {
+		this.ServeJson("身份异常")
+		return
+	}
+	count := util.Mgo.Count("cuserdepartrule", map[string]interface{}{"_id": mongodb.StringTOBsonId(id), "s_userid": uID, "b_delete": false})
+	if count <= 0 {
+		this.ServeJson("规则异常")
+		return
+	}
+	path := util.ResponseXlsx_Rule(id)
+	if path == "" {
+		this.ServeJson("没有数据")
+	} else {
+		arr := strings.Split(path, "/")
+		this.ResponseWriter.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", arr[len(arr)-1]))
+		this.ServeFile(path)
+		go func(path string) {
+			time.Sleep(time.Minute * 3)
+			os.Remove(path)
+		}(path)
+	}
+}

+ 12 - 10
CMPlatform/web/templates/client/cuser_rule_list.html

@@ -28,7 +28,9 @@
                                 <th>修改时间</th>
                                 <th>状态</th>
                                 <th>操作</th>
-                                <!--                                <th>功能</th>-->
+{{ if eq .T.i_downloadRule 1}}
+                                                                <th>功能</th>
+  {{ end }}
                                 <th>查看</th>
                             </tr>
                             </thead>
@@ -69,6 +71,8 @@
     // menuActive("/customer/list");
     var departName = GetQueryString("departName")
     $("#departName").html(departName + "规则")
+    var downloadRuleShow = {{.T.i_downloadRule}}==1?true:false
+    debugger
     var ids = {{.T.did}} +"," + {{.T.cid}}
         $('#addTag').attr("href", "/customerRule/cuser/rule/create?ids=" + ids + "&departName=" + departName)
     $(function () {
@@ -131,15 +135,13 @@
                         return tmp
                     }
                 },
-                <!--                {"data": "_id", width:"26%",render: function (val, a, row, pos) {-->
-                <!--                    var s = [val, row.s_dataid];-->
-                <!--                      tmp = '<div>' +-->
-                /*<!--                          '<a class="btn btn-sm btn-primary" href="/service/cuser/rule/downloadrule?id='+val+'">导出标签</a>&nbsp;&nbsp;'+-->
-                <!--                          '<a class="btn btn-sm btn-info" href="/service/cuser/rule/downloadata?s_dataid='+val+'">导出数据</a>&nbsp;&nbsp;'+-->
-                <!--                          '<a class="btn btn-sm btn-warning" onclick="archive(\'' + val + '\')">存档</a>&nbsp;&nbsp;'+-->
-                <!--                          '</div>';-->
-                <!--                      return tmp-->
-                <!--                }},-->*/
+                {"data": "_id", width:"26%","visible": downloadRuleShow,render: function (val, a, row, pos) {
+                 var s = [val, row.s_dataid];
+                 tmp = '<div>' +
+                       '<a class="btn btn-sm btn-primary" href="/customerRule/rule/downloadrule?id='+val+'">导出规则</a>&nbsp;&nbsp;'+
+                       '</div>';
+                 return tmp
+                 }},
                 {
                     "data": "_id", width: "15%", render: function (val, a, row, pos) {
                         tmp = '<div xmlns="http://www.w3.org/1999/html">' +

+ 24 - 0
CMPlatform/web/templates/private/customer_edit.html

@@ -109,6 +109,21 @@
                                                     })
                                                 </script>
                                             </div>
+                                            <div class="form-group">
+                                                <label class="col-sm-2 control-label">导出规则</label>
+                                                <div class="col-sm-3">
+                                                    <input id="downloadRuleSwitch" type="checkbox" checked/>
+                                                </div>
+                                                <script>
+                                                    $('#downloadRuleSwitch').on('switchChange.bootstrapSwitch', function (event, state) {
+                                                        if (state) {
+                                                            dataMap["i_downloadRule"] = 1
+                                                        } else {
+                                                            dataMap["i_downloadRule"] = 0
+                                                        }
+                                                    })
+                                                </script>
+                                            </div>
                                             <div class="form-group">
                                                 <label class="col-sm-2 control-label"><span style="color:red;">* </span>推送模式</label>
                                                 <div class="col-sm-3">
@@ -376,6 +391,10 @@
                 onText: "开启",
                 offText: "关闭",
             })
+            $('#downloadRuleSwitch').bootstrapSwitch({
+                onText: "开启",
+                offText: "关闭",
+            })
             if (dataMap.i_push && dataMap.i_push == 1) {
                 $('#pushSwitch').bootstrapSwitch('state', true);
             } else {
@@ -386,6 +405,11 @@
             } else {
                 $('#exactSwitch').bootstrapSwitch('state', false);
             }
+            if (dataMap.i_downloadRule && dataMap.i_downloadRule == 1) {
+                $('#downloadRuleSwitch').bootstrapSwitch('state', true);
+            } else {
+                $('#downloadRuleSwitch').bootstrapSwitch('state', false);
+            }
             $("#pushModelSelect option").each(function () {
                 if ($(this).val() == dataMap.i_pushmodel) {
                     $(this).attr("selected", 'selected');