Bläddra i källkod

Merge branch 'feature/v4.9.98' of https://jygit.jydev.jianyu360.cn/qmx/jy into dev/v4.9.98_wmh

wenmenghao321 5 månader sedan
förälder
incheckning
f3276669d3

+ 16 - 0
src/jfw/front/dataMarket.go

@@ -30,6 +30,22 @@ func (this *DataMarket) Index() {
 
 
 // CustomExport 数据定制导出
 // CustomExport 数据定制导出
 func (this *DataMarket) CustomExport() {
 func (this *DataMarket) CustomExport() {
+	sessVal := this.Session().GetMultiple()
+	if entUserId := common.Int64All(sessVal["entUserId"]); entUserId > 0 {
+		if resp := config.Middleground.ResourceCenter.Haspowers(common.Int64All(sessVal["accountId"]), common.Int64All(sessVal["entAccountId"]), common.Int64All(sessVal["entId"]), entUserId); resp != nil {
+			for _, v := range resp.Powers {
+				if v != "qysjllb" {
+					continue
+				}
+				if common.IntAll(sessVal["entRole"]) == 1 {
+					this.Redirect("/seplatform/admin/index")
+				} else {
+					this.Redirect("/seplatform/personnel/index")
+				}
+				return
+			}
+		}
+	}
 	showA := false
 	showA := false
 	if uA := this.Header("User-Agent"); uA != "" {
 	if uA := this.Header("User-Agent"); uA != "" {
 		fmt.Println(int(uA[len(uA)-1])/10, "<", common.IntAll(config.Sysconfig["dataMarketShowAB"]), int(uA[len(uA)-1])/10 < common.IntAll(config.Sysconfig["dataMarketShowAB"]))
 		fmt.Println(int(uA[len(uA)-1])/10, "<", common.IntAll(config.Sysconfig["dataMarketShowAB"]), int(uA[len(uA)-1])/10 < common.IntAll(config.Sysconfig["dataMarketShowAB"]))

+ 10 - 3
src/jfw/front/dataPackRouter.go

@@ -23,7 +23,12 @@ func init() {
 
 
 // pc端
 // pc端
 func (this *DataPackRouter) PcIndex() {
 func (this *DataPackRouter) PcIndex() {
-	this.Render("/pc/dataPack/index.html")
+	//this.Render("/pc/dataPack/index.html")
+	if this.GetString("type") == "history" {
+		this.Redirect("/page_workDesktop/work-bench/app/big/data_pack/history")
+	} else {
+		this.Redirect("/page_workDesktop/work-bench/app/big/data_pack/index")
+	}
 }
 }
 
 
 func (this *DataPackRouter) PcCreateOrder() {
 func (this *DataPackRouter) PcCreateOrder() {
@@ -40,7 +45,8 @@ func (this *DataPackRouter) PcPackDetail() {
 
 
 // wx端
 // wx端
 func (this *DataPackRouter) WxIndex() {
 func (this *DataPackRouter) WxIndex() {
-	this.Render("/weixin/dataPack/index.html")
+	//this.Render("/weixin/dataPack/index.html")
+	this.Redirect("/jy_mobile/packs/data-pack/index")
 }
 }
 
 
 func (this *DataPackRouter) WxCreateOrder() {
 func (this *DataPackRouter) WxCreateOrder() {
@@ -48,7 +54,8 @@ func (this *DataPackRouter) WxCreateOrder() {
 }
 }
 
 
 func (this *DataPackRouter) WxRecordList() {
 func (this *DataPackRouter) WxRecordList() {
-	this.Render("/weixin/dataPack/recordList.html")
+	//this.Render("/weixin/dataPack/recordList.html")
+	this.Redirect("/jy_mobile/packs/data-pack/record")
 }
 }
 
 
 func (this *DataPackRouter) PcDownloadPack() {
 func (this *DataPackRouter) PcDownloadPack() {

+ 4 - 2
src/jfw/modules/app/src/app/front/dataPackRouter.go

@@ -15,7 +15,8 @@ func init() {
 }
 }
 
 
 func (this *DataPackRouter) PackIndex() {
 func (this *DataPackRouter) PackIndex() {
-	this.Render("/dataPack/index.html")
+	//this.Render("/dataPack/index.html")
+	this.Redirect("/jy_mobile/packs/data-pack/index")
 }
 }
 
 
 func (this *DataPackRouter) CreateOrder() {
 func (this *DataPackRouter) CreateOrder() {
@@ -23,5 +24,6 @@ func (this *DataPackRouter) CreateOrder() {
 }
 }
 
 
 func (this *DataPackRouter) RecordList() {
 func (this *DataPackRouter) RecordList() {
-	this.Render("/dataPack/recordList.html")
+	//this.Render("/dataPack/recordList.html")
+	this.Redirect("/jy_mobile/packs/data-pack/record")
 }
 }

BIN
src/jfw/modules/followent/src/web.tar.gz


+ 7 - 6
src/jfw/modules/publicapply/src/dataexport/service/action.go

@@ -31,7 +31,8 @@ type DataExportStruct struct {
 }
 }
 
 
 func (des *DataExportStruct) PayPageParams() {
 func (des *DataExportStruct) PayPageParams() {
-	userId, _ := des.GetSession("mgoUserId").(string)
+	sessVal := des.Session().GetMultiple()
+	userId, _ := sessVal["mgoUserId"].(string)
 	rData, errMsg := func() (interface{}, error) {
 	rData, errMsg := func() (interface{}, error) {
 		defer util.Catch()
 		defer util.Catch()
 		if userId == "" {
 		if userId == "" {
@@ -50,10 +51,10 @@ func (des *DataExportStruct) PayPageParams() {
 		res["msgCount"] = msgCount
 		res["msgCount"] = msgCount
 		//邮箱
 		//邮箱
 
 
-		resEmail, _ := des.GetSession("DataExportVerifyEmail_val").(string)
-		resPhone, _ := des.GetSession("DataExportVerifyPhone_val").(string)
+		resEmail, _ := sessVal["DataExportVerifyEmail_val"].(string)
+		resPhone, _ := sessVal["DataExportVerifyPhone_val"].(string)
 		if resEmail != "" {
 		if resEmail != "" {
-			lastSendDEVerify := util.Int64All(des.GetSession("CreatEVerifyTime"))
+			lastSendDEVerify := util.Int64All(sessVal["CreatEVerifyTime"])
 			res["timeSpaceing"] = lastSendDEVerify - time.Now().Unix() + 60*5
 			res["timeSpaceing"] = lastSendDEVerify - time.Now().Unix() + 60*5
 			res["resEmail"] = resEmail
 			res["resEmail"] = resEmail
 		}
 		}
@@ -63,7 +64,7 @@ func (des *DataExportStruct) PayPageParams() {
 
 
 		if resEmail == "" || resPhone == "" {
 		if resEmail == "" || resPhone == "" {
 			lastEmail, lastPhone := "", ""
 			lastEmail, lastPhone := "", ""
-			if lastPhone, lastEmail = dataexport.GetLastExportPhoneAndMail(db.Mysql, userId, util.ObjToString(des.GetSession("entUserId"))); lastPhone == "" || lastEmail == "" {
+			if lastPhone, lastEmail = dataexport.GetLastExportPhoneAndMail(db.Mysql, util.ObjToString(sessVal["userId"])); lastPhone == "" || lastEmail == "" {
 				userData := config.Compatible.Select(userId, `{"s_myemail":1,"s_phone":1,"s_m_phone":1}`)
 				userData := config.Compatible.Select(userId, `{"s_myemail":1,"s_phone":1,"s_m_phone":1}`)
 				if userData != nil && len(*userData) > 0 {
 				if userData != nil && len(*userData) > 0 {
 					if lastEmail == "" {
 					if lastEmail == "" {
@@ -85,7 +86,7 @@ func (des *DataExportStruct) PayPageParams() {
 				res["resPhone"] = lastPhone
 				res["resPhone"] = lastPhone
 			}
 			}
 		}
 		}
-		incurKey := fmt.Sprintf("PreviewData_%s_%d", des.GetSession("userId"), time.Now().Day()) //每日限制预览次数
+		incurKey := fmt.Sprintf("PreviewData_%s_%d", sessVal["userId"], time.Now().Day()) //每日限制预览次数
 		res["previewData"] = util.IntAll(redis.Get("other", incurKey))
 		res["previewData"] = util.IntAll(redis.Get("other", incurKey))
 		return res, nil
 		return res, nil
 	}()
 	}()

+ 0 - 9
src/jfw/modules/publicapply/src/detail/dao/baseInfo.go

@@ -213,15 +213,6 @@ func (b *BaseInfo) BidBaseInfo() (bi *BidInfo, err error) {
 					go jyCoin(b.FromUserId, key)
 					go jyCoin(b.FromUserId, key)
 				}
 				}
 			}
 			}
-			//pdf预览
-			//4.以上调整仅针对PC端登录用户标讯详情页,以下页面保持现状,暂不考虑调整:
-			//(1)匿名用户标讯详情页;
-			//(3)PC及移动端大客户标讯详情页;
-			//(4)PC及移动端阳光直采采购信息详情页。
-			if b.PageType != "content" || bi.Purchase {
-				log.Println("pdf附件 内容重置,", b.PageType, bi.Purchase)
-				bi.Detail.PdfUrl = ""
-			}
 		} else {
 		} else {
 			bi.BiddingDataFormatNoPower(obj, b.Id)
 			bi.BiddingDataFormatNoPower(obj, b.Id)
 		}
 		}

+ 9 - 0
src/jfw/modules/publicapply/src/detail/dao/bidding.go

@@ -418,6 +418,15 @@ func (bi *BidInfo) BiddingDataFormat(obj map[string]interface{}, b *BaseInfo) {
 				}
 				}
 			}
 			}
 		}
 		}
+		//pdf预览
+		//4.以上调整仅针对PC端登录用户标讯详情页,以下页面保持现状,暂不考虑调整:
+		//(1)匿名用户标讯详情页;
+		//(3)PC及移动端大客户标讯详情页;
+		//(4)PC及移动端阳光直采采购信息详情页。
+		if b.PageType != "content" || isPurchase {
+			log.Println("pdf附件 内容重置,", b.Id, b.PageType, isPurchase)
+			bi.Detail.PdfUrl = ""
+		}
 	}
 	}
 	//详情
 	//详情
 	bi.Detail.Detail = DetailFormat(strings.Trim(common.ObjToString(obj["detail"]), " "))
 	bi.Detail.Detail = DetailFormat(strings.Trim(common.ObjToString(obj["detail"]), " "))

+ 4 - 4
src/jfw/modules/publicapply/src/go.mod

@@ -3,9 +3,9 @@ module jy/src/jfw/modules/publicapply/src
 go 1.20
 go 1.20
 
 
 require (
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20250218064808-f3105db833dd
+	app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.31.8
+	app.yhyue.com/moapp/jypkg v1.32.3
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20241213060113-ac41966a58ec
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20241213060113-ac41966a58ec
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.21
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.21
 	github.com/ClickHouse/clickhouse-go/v2 v2.2.0
 	github.com/ClickHouse/clickhouse-go/v2 v2.2.0
@@ -139,10 +139,10 @@ require (
 	golang.org/x/crypto v0.22.0 // indirect
 	golang.org/x/crypto v0.22.0 // indirect
 	golang.org/x/net v0.24.0 // indirect
 	golang.org/x/net v0.24.0 // indirect
 	golang.org/x/oauth2 v0.17.0 // indirect
 	golang.org/x/oauth2 v0.17.0 // indirect
-	golang.org/x/sync v0.6.0 // indirect
+	golang.org/x/sync v0.11.0 // indirect
 	golang.org/x/sys v0.19.0 // indirect
 	golang.org/x/sys v0.19.0 // indirect
 	golang.org/x/term v0.19.0 // indirect
 	golang.org/x/term v0.19.0 // indirect
-	golang.org/x/text v0.14.0 // indirect
+	golang.org/x/text v0.22.0 // indirect
 	golang.org/x/time v0.5.0 // indirect
 	golang.org/x/time v0.5.0 // indirect
 	google.golang.org/appengine v1.6.8 // indirect
 	google.golang.org/appengine v1.6.8 // indirect
 	google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
 	google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect

+ 9 - 8
src/jfw/modules/publicapply/src/go.sum

@@ -15,13 +15,13 @@ app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJ
 app.yhyue.com/moapp/jybase v0.0.0-20230419121327-bedf77840ba6/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230419121327-bedf77840ba6/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20231025021840-2f91c944ecdd/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20231025021840-2f91c944ecdd/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
-app.yhyue.com/moapp/jybase v0.0.0-20250218064808-f3105db833dd h1:KlNtol66E3XSVSTCc6lqqfixj3trS9XwSYZInXDxkL0=
-app.yhyue.com/moapp/jybase v0.0.0-20250218064808-f3105db833dd/go.mod h1:XHNATN6tsJKHdCB0DbUtFdPPHXexTUFyB3RlO+lUUoM=
+app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b h1:P63V6J6w7zFcmW27GWVYgJS0+xa29WKSdNSFqLiIbK4=
+app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b/go.mod h1:7M8adhCw7V/wEK+eIcL/gQJ0moslTZbk42DdkEBgmzg=
 app.yhyue.com/moapp/jyfs v0.0.0-20231024061508-480c270480d4/go.mod h1:61hzZ3dZHXL28BNl8BOgZsvM2S5UVY5YFzOkEUPrSu4=
 app.yhyue.com/moapp/jyfs v0.0.0-20231024061508-480c270480d4/go.mod h1:61hzZ3dZHXL28BNl8BOgZsvM2S5UVY5YFzOkEUPrSu4=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
-app.yhyue.com/moapp/jypkg v1.31.8 h1:nbdjgRCvtVLA/27lM9WqoNqhU1sIb7qcOO5WnxX3MGg=
-app.yhyue.com/moapp/jypkg v1.31.8/go.mod h1:bdHYv0sag7HhH89ft9nbOXHk21cNKes4xu1Ocpc021Y=
+app.yhyue.com/moapp/jypkg v1.32.3 h1:84pjfCkhTfQ3fKeZyNOCpagp3M9hLDDBnoKsoNcef+E=
+app.yhyue.com/moapp/jypkg v1.32.3/go.mod h1:m/OMjugcf4XK5c/2mErxnXEyAZ+WNya8HP0x8jFGw4U=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 h1:WGi4OEIoqw6NpNFGioUEBZnjK9aBa+xJqf/5WY+QyhM=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 h1:WGi4OEIoqw6NpNFGioUEBZnjK9aBa+xJqf/5WY+QyhM=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161/go.mod h1:0Oj8SB4pVjdCLD28sy2zyM3hS0WHGpNuVcakLW43GmI=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161/go.mod h1:0Oj8SB4pVjdCLD28sy2zyM3hS0WHGpNuVcakLW43GmI=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
@@ -2176,8 +2176,8 @@ golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
+golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -2347,8 +2347,9 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
 golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
+golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -2446,7 +2447,7 @@ golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
 golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
 golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
 golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
 golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
-golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

+ 3 - 1
src/jfw/modules/subscribepay/src/config.yaml

@@ -6,6 +6,7 @@ powerCheckCenterKey: "powercheck.rpc" #权益校验中台
 activityKey: "activity.rpc" #营销平台rpc
 activityKey: "activity.rpc" #营销平台rpc
 bxbaseKey: "bxbase.rpc" #微服务基础信息rpc
 bxbaseKey: "bxbase.rpc" #微服务基础信息rpc
 resourceCenterKey: "resource.rpc" #资源中台
 resourceCenterKey: "resource.rpc" #资源中台
+jyResourcesCenterKey: "resourcescenter.rpc" #数据包使用中台
 clickhouse:
 clickhouse:
   Addr: 192.168.3.207:19000
   Addr: 192.168.3.207:19000
   UserName: jytop
   UserName: jytop
@@ -50,4 +51,5 @@ miniprogram:
 consultingVipMemberH5: /jyapp/view/672352bb6b45456266a57127
 consultingVipMemberH5: /jyapp/view/672352bb6b45456266a57127
 consultingVipMemberApp: /jyapp/view/672352bb6b45456266a57127
 consultingVipMemberApp: /jyapp/view/672352bb6b45456266a57127
 consultingVipMemberWX: https://h5-editor.jydev.jianyu360.cn/view/67247f741d749c1b910c61d3
 consultingVipMemberWX: https://h5-editor.jydev.jianyu360.cn/view/67247f741d749c1b910c61d3
-consultingVipMemberMini: https://h5-editor.jydev.jianyu360.cn/view/67247f741d749c1b910c61d3
+consultingVipMemberMini: https://h5-editor.jydev.jianyu360.cn/view/67247f741d749c1b910c61d3
+dataPkgRemoveRepeatAddr: 192.168.3.149:226

+ 20 - 3
src/jfw/modules/subscribepay/src/config/config.go

@@ -1,6 +1,10 @@
 package config
 package config
 
 
 import (
 import (
+	"log"
+	"sort"
+	"time"
+
 	qutil "app.yhyue.com/moapp/jybase/common"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/mail"
 	"app.yhyue.com/moapp/jybase/mail"
@@ -11,8 +15,8 @@ import (
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/os/gcfg"
 	"github.com/gogf/gf/v2/os/gcfg"
 	"github.com/gogf/gf/v2/os/gctx"
 	"github.com/gogf/gf/v2/os/gctx"
-	"sort"
-	"time"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
 )
 )
 
 
 type config struct {
 type config struct {
@@ -414,6 +418,7 @@ var WxPayConf map[string]interface{}
 var Wxoauth, Wxoauthinfo string
 var Wxoauth, Wxoauthinfo string
 var AutoMergeTimeStamp int64
 var AutoMergeTimeStamp int64
 var Middleground *middleground.Middleground
 var Middleground *middleground.Middleground
+var JyResourcesCenterClient zrpc.Client
 
 
 func init() {
 func init() {
 	//程序配置文件
 	//程序配置文件
@@ -431,12 +436,24 @@ func init() {
 	qutil.ReadConfig("./baseApi.json", &middleGround.JyApiConfig) //初始化中台请求接口
 	qutil.ReadConfig("./baseApi.json", &middleGround.JyApiConfig) //初始化中台请求接口
 	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
 	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
 	var ctx = gctx.New()
 	var ctx = gctx.New()
-	Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings()).
+	etcdHosts := g.Cfg().MustGet(ctx, "etcd.hosts").Strings()
+	Middleground = middleground.NewMiddleground(etcdHosts).
 		RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String()).
 		RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String()).
 		RegPowerCheckCenter(g.Cfg().MustGet(ctx, "powerCheckCenterKey").String()).
 		RegPowerCheckCenter(g.Cfg().MustGet(ctx, "powerCheckCenterKey").String()).
 		RegActivity(g.Cfg().MustGet(ctx, "activityKey").String()).
 		RegActivity(g.Cfg().MustGet(ctx, "activityKey").String()).
 		RegJyBase(g.Cfg().MustGet(ctx, "bxbaseKey").String()).
 		RegJyBase(g.Cfg().MustGet(ctx, "bxbaseKey").String()).
 		RegResourceCenter(g.Cfg().MustGet(ctx, "resourceCenterKey").String())
 		RegResourceCenter(g.Cfg().MustGet(ctx, "resourceCenterKey").String())
+	var jrccErr error
+	JyResourcesCenterClient, jrccErr = zrpc.NewClient(zrpc.RpcClientConf{
+		Etcd: discov.EtcdConf{
+			Hosts: etcdHosts,
+			Key:   g.Cfg().MustGet(ctx, "jyResourcesCenterKey").String(),
+		},
+	})
+	if jrccErr != nil {
+		log.Println(jrccErr)
+	}
+
 	for _, v := range Config.Mail {
 	for _, v := range Config.Mail {
 		mail := &mail.GmailAuth{
 		mail := &mail.GmailAuth{
 			SmtpHost: v.Addr,
 			SmtpHost: v.Addr,

+ 14 - 1
src/jfw/modules/subscribepay/src/entity/dataExportPackApi.go

@@ -3,11 +3,13 @@ package entity
 import (
 import (
 	"encoding/json"
 	"encoding/json"
 	"fmt"
 	"fmt"
+	"jy/src/jfw/modules/subscribepay/src/config"
 	"net/url"
 	"net/url"
 	"strings"
 	"strings"
 	"time"
 	"time"
 
 
 	qutil "app.yhyue.com/moapp/jybase/common"
 	qutil "app.yhyue.com/moapp/jybase/common"
+	. "app.yhyue.com/moapp/jybase/mongodb"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/middleGround"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/middleGround"
 )
 )
 
 
@@ -48,6 +50,13 @@ func perRechargePack(userId string, endTime string, detail *PackDetail) (bool, e
 	if err != nil {
 	if err != nil {
 		return false, fmt.Errorf("remark pase error")
 		return false, fmt.Errorf("remark pase error")
 	}
 	}
+	var entId, entUserId int64
+	if !IsObjectIdHex(userId) {
+		if ity := config.Middleground.UserCenter.IdentityByPositionId(qutil.Int64All(userId)); ity != nil {
+			entId = ity.EntId
+			entUserId = ity.EntUserId
+		}
+	}
 	_, err = middleGround.CommonPost(middleGround.JyApiConfig.ApiList.BuyBalance, url.Values{
 	_, err = middleGround.CommonPost(middleGround.JyApiConfig.ApiList.BuyBalance, url.Values{
 		"accountId":    []string{userId},                                                  //账户标识*
 		"accountId":    []string{userId},                                                  //账户标识*
 		"name":         []string{PACKNAME},                                                //资源名称*
 		"name":         []string{PACKNAME},                                                //资源名称*
@@ -56,6 +65,8 @@ func perRechargePack(userId string, endTime string, detail *PackDetail) (bool, e
 		"spec":         []string{"条"},                                                     //规格*
 		"spec":         []string{"条"},                                                     //规格*
 		"endTime":      []string{endTime},                                                 //截止时间
 		"endTime":      []string{endTime},                                                 //截止时间
 		"remarks":      []string{string(remarkBytes)},                                     //备注
 		"remarks":      []string{string(remarkBytes)},                                     //备注
+		"entId":        []string{fmt.Sprint(entId)},
+		"entUserId":    []string{fmt.Sprint(entUserId)},
 	})
 	})
 	if err != nil {
 	if err != nil {
 		return false, err
 		return false, err
@@ -74,7 +85,7 @@ type PersonalUsePackRemark struct {
 }
 }
 
 
 //usePerPack 使用扣除个人数据包
 //usePerPack 使用扣除个人数据包
-func usePerPack(userId string, deduct int, isSenior bool, remark *PersonalUsePackRemark, ids []string) (int, error) {
+func usePerPack(userId string, deduct int, isSenior bool, remark *PersonalUsePackRemark, ids []string, entId, entUserId int64) (int, error) {
 	remarkBytes, err := json.Marshal(remark)
 	remarkBytes, err := json.Marshal(remark)
 	if err != nil {
 	if err != nil {
 		return -1, fmt.Errorf("remark pase error")
 		return -1, fmt.Errorf("remark pase error")
@@ -89,6 +100,8 @@ func usePerPack(userId string, deduct int, isSenior bool, remark *PersonalUsePac
 		"remarks":          []string{string(remarkBytes)},                         //备注 查询条件、下载地址、导出时间、导出条数
 		"remarks":          []string{string(remarkBytes)},                         //备注 查询条件、下载地址、导出时间、导出条数
 		"infoId":           []string{strings.Join(ids, ",")},                      //数据Id,多个以逗号隔开
 		"infoId":           []string{strings.Join(ids, ",")},                      //数据Id,多个以逗号隔开
 		"duplicateRemoval": []string{fmt.Sprintf("%d", 1)},                        //是否去重0不去1去重
 		"duplicateRemoval": []string{fmt.Sprintf("%d", 1)},                        //是否去重0不去1去重
+		"entId":            []string{fmt.Sprint(entId)},
+		"entUserId":        []string{fmt.Sprint(entUserId)},
 	})
 	})
 	if err != nil {
 	if err != nil {
 		return -1, err
 		return -1, err

+ 366 - 203
src/jfw/modules/subscribepay/src/entity/dataExportPackStruct.go

@@ -1,7 +1,9 @@
 package entity
 package entity
 
 
 import (
 import (
+	"context"
 	"encoding/json"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"fmt"
 	"jy/src/jfw/modules/subscribepay/src/config"
 	"jy/src/jfw/modules/subscribepay/src/config"
 	"jy/src/jfw/modules/subscribepay/src/pay"
 	"jy/src/jfw/modules/subscribepay/src/pay"
@@ -11,16 +13,17 @@ import (
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
+	"app.yhyue.com/moapp/jyResourcesCenter/rpc/resourcesCenter"
+	"app.yhyue.com/moapp/jyResourcesCenter/rpc/resourcesCenterclient"
 	"app.yhyue.com/moapp/jybase/api"
 	"app.yhyue.com/moapp/jybase/api"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	. "app.yhyue.com/moapp/jybase/date"
 	. "app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/encrypt"
+	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/redis"
 	"app.yhyue.com/moapp/jybase/redis"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/dataexport"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/dataexport"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/middleGround"
-
-	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
+	"github.com/gogf/gf/v2/frame/g"
 )
 )
 
 
 // 剑鱼数据流量包
 // 剑鱼数据流量包
@@ -158,6 +161,7 @@ func (this *dataExportPackStruct) GetPackDetailById(packId string) (PackDetail,
 
 
 // GetAccountMsg 查询账户和企业数据包情况
 // GetAccountMsg 查询账户和企业数据包情况
 func (this *dataExportPackStruct) GetAccountMsg(sess *httpsession.Session, userId string) (map[string]interface{}, error) {
 func (this *dataExportPackStruct) GetAccountMsg(sess *httpsession.Session, userId string) (map[string]interface{}, error) {
+	sessVal := sess.GetMultiple()
 	//每日限量包
 	//每日限量包
 	packDetail := map[string]interface{}{}
 	packDetail := map[string]interface{}{}
 	vipStatus := jy.GetBigVipUserBaseMsg(sess, *config.Middleground)
 	vipStatus := jy.GetBigVipUserBaseMsg(sess, *config.Middleground)
@@ -179,33 +183,43 @@ func (this *dataExportPackStruct) GetAccountMsg(sess *httpsession.Session, userI
 	}
 	}
 
 
 	//企业数据导出
 	//企业数据导出
-	if phone := getAndCacheUserPhone(sess, userId); phone != "" {
-		if entId := qutil.IntAll(sess.Get("entId")); entId != 0 {
-			var entPack []map[string]interface{}
-			var entAllCount int
-			res := util.Mysql.FindOne("entniche_info", map[string]interface{}{"id": entId}, "id,phone,name", "")
-			if res != nil && len(*res) != 0 {
-				entUserId := qutil.IntAll(sess.Get("entUserId"))
-				entName, _ := (*res)["name"].(string)
-				entPhone, _ := (*res)["phone"].(string)
-				if entUserId > 0 && entName != "" && entPhone != "" {
-					entAllCount = getCurrEntCount(entName, entPhone) //查询所属企业及账户余额
-					limit := util.Mysql.FindOne("entniche_export_limit", map[string]interface{}{"ent_id": entId, "user_id": entUserId}, "data_limit,remain_nums,export_nums", "")
-					if limit != nil && len(*limit) > 0 {
-						entPack = append(entPack, map[string]interface{}{
-							"entId":        entId,                                 //企业id
-							"entName":      entName,                               //企业名字
-							"entAllCount":  entAllCount,                           //企业总条数
-							"limitToday":   qutil.IntAll((*limit)["data_limit"]),  //个人今日限额
-							"surplusToday": qutil.IntAll((*limit)["remain_nums"]), //今日剩余
-							"usedToday":    qutil.IntAll((*limit)["export_nums"]), //今日使用
-						})
-					}
+	if entId := qutil.Int64All(sessVal["entId"]); entId != 0 {
+		var entPack []map[string]interface{}
+		limit := util.Mysql.SelectBySql(`select a.data_limit,a.export_nums,a.max_nums,a.all_export_nums from jianyu.entniche_export_limit a
+			inner join jianyu.entniche_user aa on (a.user_id=? and a.user_id=aa.id and aa.export_power=1)
+			where exists (select 1 from jianyu.entniche_info b where a.ent_id=b.id and b.status>0) or exists (select 1 from jianyu.entniche_wait_empower c where a.ent_id=c.ent_id and c.product_key='qysjllb' and c.end_time>?)`, qutil.IntAll(sessVal["entUserId"]), NowFormat(Date_Full_Layout))
+		if limit != nil && len(*limit) > 0 {
+			mp := map[string]interface{}{
+				"entId":       entId,                                 //企业id
+				"entName":     qutil.ObjToString(sessVal["entName"]), //企业名字
+				"entAllCount": getCurrEntCount(entId),                //企业总条数
+			}
+			if (*limit)[0]["data_limit"] != nil {
+				data_limit := qutil.IntAll((*limit)[0]["data_limit"]) //个人今日限额
+				export_nums := qutil.IntAll((*limit)[0]["export_nums"])
+				surplusToday := data_limit - export_nums
+				if surplusToday < 0 {
+					surplusToday = 0
 				}
 				}
+				mp["limitToday"] = data_limit
+				mp["surplusToday"] = surplusToday //今日剩余
+				mp["usedToday"] = export_nums     //今日使用
 			}
 			}
-			if entPack != nil {
-				packDetail["entPack"] = entPack
+			if (*limit)[0]["max_nums"] != nil {
+				max_nums := qutil.IntAll((*limit)[0]["max_nums"])
+				all_export_nums := qutil.IntAll((*limit)[0]["all_export_nums"])
+				surplusNums := max_nums - all_export_nums
+				if surplusNums < 0 {
+					surplusNums = 0
+				}
+				mp["maxNums"] = max_nums
+				mp["surplusNums"] = surplusNums
+				mp["usedNums"] = all_export_nums
 			}
 			}
+			entPack = append(entPack, mp)
+		}
+		if entPack != nil {
+			packDetail["entPack"] = entPack
 		}
 		}
 	}
 	}
 	return packDetail, nil
 	return packDetail, nil
@@ -223,144 +237,166 @@ func (this *dataExportPackStruct) GetPersonalAccount(userId string) (senior, nor
 }
 }
 
 
 // GetDataExportRecordList 数据导出记录(包含商机管理导出、每日流量包导出、数据包导出及用户付费直接导出)
 // GetDataExportRecordList 数据导出记录(包含商机管理导出、每日流量包导出、数据包导出及用户付费直接导出)
-func (this *dataExportPackStruct) GetDataExportRecordList(userId, memberPid string, entId, entUserId, pageNum, pageSize int) (list []map[string]interface{}, total int, err error) {
-	if pageSize == 0 {
+func (this *dataExportPackStruct) GetDataExportRecordList(userId, memberPid, userIds string, starttime, endtime, entRole, entId, entDeptId, pageNum, pageSize, payWay int) (list []map[string]interface{}, total int64, err error) {
+	if pageSize <= 0 {
 		pageSize = 10
 		pageSize = 10
 	}
 	}
-
-	var searchSql []string
-	var searchValue []interface{}
-
-	//个人直接支付数据导出
-	if userId != "" {
-		searchSql = append(searchSql, `(SELECT '' AS queryObj,filter_id AS queryId,user_id AS user_id,'' AS user_name,UNIX_TIMESTAMP( create_time ) AS exportDate,
-		2 AS data_from,data_count AS export_num,-1 AS deduct_num,download_url AS down_url FROM dataexport_order WHERE user_id =? AND order_status =1 AND product_type ='历史数据')`)
-		searchValue = append(searchValue, userId)
+	if pageNum <= 0 {
+		pageNum = 1
 	}
 	}
-
-	//数据包导出及每日限量包导出
-	if userId != "" || memberPid != "" {
-		if memberPid == "" { //主账号查询
-			searchSql = append(searchSql, `(SELECT '' AS queryObj,query_id AS queryId,useid AS user_id,'' AS user_name,date AS exportDate,2 AS data_from,export_num AS
-			export_num,deduct_num AS deduct_num,path AS down_url FROM datapacket_record WHERE master_id = ? )`)
-			searchValue = append(searchValue, userId)
-		} else { //子账号查询
-			searchSql = append(searchSql, `(SELECT '' AS queryObj,query_id AS queryId,useid AS user_id,'' AS user_name,date AS exportDate,2 AS data_from,export_num AS
-			export_num,deduct_num AS deduct_num,path AS down_url FROM datapacket_record WHERE useid = ? )`)
-			searchValue = append(searchValue, userId)
+	comSql := ``
+	args := []interface{}{}
+	if entRole == 2 {
+		comSql = `from entniche_department_parent b
+			inner join entniche_department_user c on ((b.pid=? or c.dept_id=?) and b.id=c.dept_id)
+			inner join datapacket_record a on (c.user_id=a.ent_user_id) where 1=1`
+		args = append(args, entDeptId, entDeptId)
+	} else {
+		comSql = `from datapacket_record a where `
+		if entId == 0 {
+			if memberPid == "" {
+				comSql += `a.master_id=?`
+			} else {
+				comSql += `a.useid=?`
+			}
+			args = append(args, userId)
+		} else {
+			if entRole == 1 {
+				comSql += `a.ent_id=?`
+				args = append(args, entId)
+			} else {
+				comSql += `a.useid=?`
+				args = append(args, userId)
+			}
 		}
 		}
 	}
 	}
-
-	//企业数据导出
-	if entId > 0 && entUserId != 0 {
-		if util.Mysql.Count("entniche_user_role", map[string]interface{}{"user_id": entUserId, "role_id": 1}) > 0 {
-			//管理员查询
-			searchSql = append(searchSql, `(SELECT filter AS queryObj,'' AS queryId,'' AS user_id,user_name AS user_name,UNIX_TIMESTAMP( export_time ) AS exportDate,
-			data_source AS data_from,export_num AS export_num,deduct_num AS deduct_num,download_url AS down_url FROM entniche_export_log WHERE ent_id = ? )`)
-			searchValue = append(searchValue, entId)
+	if userIds != "" {
+		wh, thisArgs := qutil.WhArgs(strings.Split(userIds, ","))
+		comSql += ` and a.ent_user_id in (` + wh + `)`
+		args = append(args, thisArgs...)
+	}
+	if payWay > 0 {
+		comSql += ` and a.type=?`
+		if payWay == 1 || payWay == 2 {
+			args = append(args, payWay-1)
+		} else if payWay == 3 || payWay == 4 {
+			comSql += ` and a.isSenior=?`
+			args = append(args, 2)
+			if payWay == 3 {
+				args = append(args, 2)
+			} else {
+				args = append(args, 1)
+			}
 		} else {
 		} else {
-			//子账号查询
-			searchSql = append(searchSql, `(SELECT filter AS queryObj,'' AS queryId,'' AS user_id,user_name AS user_name,UNIX_TIMESTAMP( export_time ) AS exportDate,
-			data_source AS data_from,export_num AS export_num,deduct_num AS deduct_num,download_url AS down_url FROM entniche_export_log WHERE user_id = ? )`)
-			searchValue = append(searchValue, entUserId)
+			args = append(args, payWay-2)
 		}
 		}
 	}
 	}
-
-	finalSearch := strings.Join(searchSql, ` UNION ALL `)
-
-	//log.Printf("sql xxx %s\n", fmt.Sprintf(`SELECT * FROM ( %s ) AS allData ORDER BY exportDate DESC limit ?,? `, finalSearch))
-	//log.Printf("values xxx :")
-	//for k, v := range append(searchValue, pageNum*pageSize, pageSize) {
-	//	log.Printf(" [%d]=%v ", k, v)
-	//}
-	//log.Println()
-
+	if starttime > 0 {
+		comSql += ` and a.date>=?`
+		args = append(args, starttime)
+	}
+	if endtime > 0 {
+		comSql += ` and a.date<=?`
+		args = append(args, endtime)
+	}
+	countSql := `select count(1) as count ` + comSql
+	listSql := `select a.source,a.filter,a.query_id,a.date,a.export_num,a.deduct_num,a.path,a.isSenior,a.type,a.operator ` + comSql + ` order by a.date desc limit ?,?`
 	//第一页返回总条数
 	//第一页返回总条数
-	if pageNum == 0 {
-		//log.Printf(`SELECT COUNT(*) FROM ( %s ) AS allData`, finalSearch)
-		if total = util.Mysql.QueryCount(fmt.Sprintf(`SELECT COUNT(*) FROM ( %s ) AS allData`, finalSearch), searchValue...); total == 0 {
+	if pageNum == 1 {
+		if total = util.Mysql.CountBySql(countSql, args...); total == 0 {
 			return
 			return
 		}
 		}
 	} else {
 	} else {
 		total = -1
 		total = -1
 	}
 	}
-
+	args = append(args, (pageNum-1)*pageSize, pageSize)
 	//查询列表
 	//查询列表
-	searchList := util.Mysql.Query(fmt.Sprintf(`SELECT * FROM ( %s ) AS allData ORDER BY exportDate DESC limit ?,? `, finalSearch), append(searchValue, pageNum*pageSize, pageSize)...)
+	searchList := util.Mysql.SelectBySql(listSql, args...)
 	if searchList == nil || len(*searchList) == 0 {
 	if searchList == nil || len(*searchList) == 0 {
 		return
 		return
 	}
 	}
 
 
 	//格式化返回内容
 	//格式化返回内容
 	list = make([]map[string]interface{}, 0, pageSize)
 	list = make([]map[string]interface{}, 0, pageSize)
-	cacheName := map[string]string{}
 	for _, row := range *searchList {
 	for _, row := range *searchList {
 		//筛选内容
 		//筛选内容
 		returnRow := make(map[string]interface{})
 		returnRow := make(map[string]interface{})
-		if queryId, _ := row["queryId"].(string); queryId != "" {
-			returnRow["search"] = getSearchValueById(queryId)
-		} else if queryStr, _ := row["queryObj"].(string); queryStr != "" {
-			filterMap := map[string]interface{}{}
-			if err := json.Unmarshal([]byte(queryStr), &filterMap); err == nil {
-				if filterId, _ := filterMap["FilterId"].(string); filterId != "" {
-					returnRow["search"] = getSearchValueById(filterId)
+		filterMap := map[string]interface{}{}
+		filter := qutil.ObjToString(row["filter"])
+		if filter != "" {
+			if err := json.Unmarshal([]byte(filter), &filterMap); err == nil {
+				t, _ := filterMap["Time"].(string)
+				if strings.Contains(t, "_") {
+					t1 := strings.Split(t, "_")[0]
+					t2 := strings.Split(t, "_")[1]
+					if len([]rune(t1)) > 10 {
+						t1 = string([]rune(t)[:10])
+					}
+					if len([]rune(t2)) > 10 {
+						t2 = string([]rune(t2)[:10])
+					}
+					t = t1 + "_" + t2
 				} else {
 				} else {
-					filterMap["area"] = filterMap["Area"]
-					t, _ := filterMap["Time"].(string)
-					if strings.Contains(t, "_") {
-						t1 := strings.Split(t, "_")[0]
-						t2 := strings.Split(t, "_")[1]
-						if len([]rune(t1)) > 10 {
-							t1 = string([]rune(t)[:10])
-						}
-						if len([]rune(t2)) > 10 {
-							t2 = string([]rune(t2)[:10])
-						}
-						t = t1 + "_" + t2
-					} else {
-						if len([]rune(t)) > 10 {
-							t = string([]rune(t)[:10])
-						}
+					if len([]rune(t)) > 10 {
+						t = string([]rune(t)[:10])
 					}
 					}
-					filterMap["publishtime"] = t
-					filterMap["buyerclass"] = filterMap["Buyerclass"]
-					delete(filterMap, "Area")
-					delete(filterMap, "Time")
-					delete(filterMap, "Buyerclass")
-					returnRow["search"] = filterMap
 				}
 				}
+				filterMap["area"] = filterMap["Area"]
+				filterMap["publishtime"] = t
+				filterMap["buyerclass"] = filterMap["Buyerclass"]
+				filterMap["id"] = filterMap["Id"]
+				filterMap["comeinfrom"] = filterMap["comeinfrom"]
+				delete(filterMap, "Area")
+				delete(filterMap, "Time")
+				delete(filterMap, "Buyerclass")
+				delete(filterMap, "Id")
+				delete(filterMap, "Comeinfrom")
+				returnRow["search"] = filterMap
 			}
 			}
 		}
 		}
-		//查询用户
-		if personalName, _ := row["user_name"].(string); personalName != "" {
-			returnRow["personal_name"] = personalName
-		} else if searchUserId, _ := row["user_id"].(string); searchUserId != "" {
-			if _, exists := cacheName[searchUserId]; !exists {
-				cacheName[searchUserId] = getUserName(searchUserId)
+		if len(filterMap) == 0 {
+			if queryId, _ := row["query_id"].(string); queryId != "" {
+				returnRow["search"] = getSearchValueById(queryId)
 			}
 			}
-			returnRow["personal_name"] = cacheName[searchUserId]
 		}
 		}
+		operator, _ := row["operator"].(string)
+		operator = strings.ReplaceAll(operator, "(", " ")
+		operator = strings.ReplaceAll(operator, ")", "")
+		returnRow["personal_name"] = operator
 		//导出时间
 		//导出时间
-		returnRow["export_timestamp"] = row["exportDate"]
+		returnRow["export_timestamp"] = row["date"]
 		//数据来源
 		//数据来源
-		if qutil.IntAll(row["data_from"]) == 1 {
-			returnRow["data_from"] = "统一订阅"
+		if qutil.IntAll(row["source"]) == 1 {
+			returnRow["data_from"] = "数据定制导出"
 		} else {
 		} else {
-			returnRow["data_from"] = "用户搜索"
+			returnRow["data_from"] = "数据自助导出"
 		}
 		}
 		//导出条数
 		//导出条数
 		returnRow["export_num"] = qutil.Int64All(row["export_num"])
 		returnRow["export_num"] = qutil.Int64All(row["export_num"])
 		returnRow["deduct_num"] = qutil.Int64All(row["deduct_num"])
 		returnRow["deduct_num"] = qutil.Int64All(row["deduct_num"])
 		//下载地址
 		//下载地址
-		returnRow["down_url"] = config.Config.WebDomain + qutil.ObjToString(row["down_url"])
-
+		returnRow["down_url"] = config.Config.WebDomain + qutil.ObjToString(row["path"])
+		switch qutil.IntAll(row["type"]) {
+		case 0:
+			returnRow["pay_way"] = "个人支付"
+		case 1:
+			returnRow["pay_way"] = "单日限量数据包"
+		case 2:
+			if qutil.IntAll(row["isSenior"]) == 1 {
+				returnRow["pay_way"] = "个人数据流量包(标准字段包)"
+			} else {
+				returnRow["pay_way"] = "个人数据流量包(高级字段包)"
+			}
+		case 3:
+			returnRow["pay_way"] = "企业数据流量包"
+		}
 		list = append(list, returnRow)
 		list = append(list, returnRow)
 	}
 	}
 	return
 	return
 }
 }
 
 
 // DoEntPackRepeatCheck 查询企业去重(旧企业导出逻辑)
 // DoEntPackRepeatCheck 查询企业去重(旧企业导出逻辑)
-func (this *dataExportPackStruct) DoEntPackRepeatCheck(sess *httpsession.Session, userId, entId, selectId string, selectCount int) (deduct int, err error) {
+func (this *dataExportPackStruct) DoEntPackRepeatCheck(sess *httpsession.Session, userId, selectId string, entId, selectCount int) (deduct int, err error) {
 	//校验当前用户是否所属此企业
 	//校验当前用户是否所属此企业
 	if phone := getAndCacheUserPhone(sess, userId); phone != "" {
 	if phone := getAndCacheUserPhone(sess, userId); phone != "" {
 		res := util.Mysql.FindOne("entniche_user", map[string]interface{}{"phone": phone, "ent_id": entId}, "id,ent_id", "")
 		res := util.Mysql.FindOne("entniche_user", map[string]interface{}{"phone": phone, "ent_id": entId}, "id,ent_id", "")
@@ -370,16 +406,9 @@ func (this *dataExportPackStruct) DoEntPackRepeatCheck(sess *httpsession.Session
 
 
 		entUserId := qutil.IntAll((*res)["id"])
 		entUserId := qutil.IntAll((*res)["id"])
 		entIdInt := qutil.IntAll((*res)["ent_id"])
 		entIdInt := qutil.IntAll((*res)["ent_id"])
-
-		exportLock.Lock()
-		exportLockMap[entIdInt] = &sync.Mutex{}
-		entLock := exportLockMap[entIdInt]
-		exportLock.Unlock()
-		entLock.Lock()
 		//开始去重
 		//开始去重
 		_, newCount, err := dataexport.GetEntDataExportCountIdArr(util.MQFW, util.Mgo_bidding, config.Config.Mongobidding.DbName, config.Config.Elasticsearch,
 		_, newCount, err := dataexport.GetEntDataExportCountIdArr(util.MQFW, util.Mgo_bidding, config.Config.Mongobidding.DbName, config.Config.Elasticsearch,
-			selectId, entIdInt, entUserId, middleGround.JyApiConfig.ApiList.EntDedupUrl, config.ExConf.MsgMaxCount)
-		entLock.Unlock()
+			selectId, entIdInt, entUserId, g.Cfg().MustGet(context.Background(), "dataPkgRemoveRepeatAddr").String(), config.ExConf.MsgMaxCount)
 		return newCount, err
 		return newCount, err
 	}
 	}
 	return -1, fmt.Errorf("未查询所属企业")
 	return -1, fmt.Errorf("未查询所属企业")
@@ -418,69 +447,81 @@ var (
 )
 )
 
 
 // UseEntPack 企业数据包扣除
 // UseEntPack 企业数据包扣除
-func (this *dataExportPackStruct) UseEntPack(sess *httpsession.Session, userId, entId string, selectId string, exportPhone, exportEmail string) error {
-	if phone := getAndCacheUserPhone(sess, userId); phone != "" {
-		res := util.Mysql.FindOne("entniche_user", map[string]interface{}{"phone": phone, "ent_id": entId}, "id,ent_id", "")
-		if res == nil || len(*res) == 0 {
-			return fmt.Errorf("企业校验异常")
-		}
-		entUserId := qutil.IntAll((*res)["id"])
-		entIdInt := qutil.IntAll((*res)["ent_id"])
-
-		exportLock.Lock()
-		exportLockMap[entIdInt] = &sync.Mutex{}
-		entLock := exportLockMap[entIdInt]
-		exportLock.Unlock()
-		entLock.Lock()
-
-		query := map[string]interface{}{"ent_id": entId, "user_id": entUserId}
-		remain_nums, export_nums := 0, 0
-		limit := util.Mysql.FindOne("entniche_export_limit", query, "data_limit,remain_nums,export_nums", "")
-		if limit != nil {
-			remain_nums = qutil.IntAll((*limit)["remain_nums"])
-			export_nums = qutil.IntAll((*limit)["export_nums"])
+func (this *dataExportPackStruct) UseEntPack(sess *httpsession.Session, selectId string, exportPhone, exportEmail string) error {
+	sessVal := sess.GetMultiple()
+	entId := qutil.IntAll(sessVal["entId"])
+	entUserId := qutil.IntAll(sessVal["entUserId"])
+	userId := qutil.ObjToString(sessVal["userId"])
+	current := dataexport.GetCurrentCount(util.Mysql, util.Mgo_Qyfw, entId)
+	log.Println("企业总条数", current)
+	//开始去重
+	count, newCount, data := dataexport.GetEntDataExportCount(util.MQFW, util.Mgo_bidding, config.Config.Mongobidding.DbName, config.Config.Elasticsearch,
+		selectId, entId, entUserId, false, g.Cfg().MustGet(context.Background(), "dataPkgRemoveRepeatAddr").String(), config.ExConf.MsgMaxCount)
+	if count <= 0 {
+		log.Println(entId, "没有可导出的数据")
+		return errors.New("没有可导出的数据")
+	}
+	data = dataexport.FormatExportDatas(util.MQFWENT, data, config.Config.WebDomain, "2", entId)
+	xlsxUrl := dataexport.GetXlsx(*data, entId, entUserId, config.ExConf.ExcelEntPath)
+	if xlsxUrl == "" {
+		log.Println(entId, "生成xlsx文件失败")
+		return errors.New("生成xlsx文件失败")
+	}
+	if newCount > 0 {
+		resp, err := resourcesCenterclient.NewResourcesCenter(config.JyResourcesCenterClient).JyExportCharge(context.Background(), &resourcesCenter.ChargeReq{
+			EntId:      int64(entId),
+			UserId:     userId,
+			EntUserId:  int64(entUserId),
+			ExportNum:  int64(count),
+			DeductNum:  int64(newCount),
+			ChargeType: 0, //扣费方式,0: 企业,1: 个人
+			Remark:     fmt.Sprintf(`{"queryId":"%s","excelUrl":"%s","exportNum":%d,"exportTimeStamp":%d,"email":"%s","phone":"%s"}`, selectId, xlsxUrl, count, time.Now().Unix(), exportEmail, exportPhone),
+		})
+		if err != nil {
+			log.Println(entId, "企业数据流量包扣费失败", err)
+			return err
 		}
 		}
-
-		count := 0
-		newCount := 0
-		data := &[]map[string]interface{}{}
-
-		current := dataexport.GetCurrentCount(util.Mysql, util.Mgo_Qyfw, entIdInt)
-		log.Println("企业总条数", current)
-		//开始去重
-		count, newCount, data = dataexport.GetEntDataExportCount(util.MQFW, util.Mgo_bidding, config.Config.Mongobidding.DbName, config.Config.Elasticsearch,
-			selectId, entIdInt, entUserId, false, middleGround.JyApiConfig.ApiList.EntDedupUrl, config.ExConf.MsgMaxCount)
-
-		if newCount > current {
-			return fmt.Errorf("企业账户余额不足")
+		if resp.Data != nil && resp.Data.ChargeResult != 1 {
+			log.Println(entId, "企业数据流量包扣费失败", resp.Data.FailMsg)
+			return errors.New(resp.Data.FailMsg)
+		} else if resp.Code != 1 {
+			if resp.Message != "" {
+				log.Println(entId, "企业数据流量包扣费失败", resp.Message)
+				return errors.New(resp.Message)
+			} else {
+				log.Println(entId, "企业数据流量包扣费失败")
+				return errors.New("企业数据流量包扣费失败")
+			}
 		}
 		}
-		if newCount > remain_nums {
-			return fmt.Errorf("已超出进入导出上限")
+	}
+	//filter := dataexport.Filters{
+	//	FilterId: selectId,
+	//}
+	//filterStr, _ := json.Marshal(filter)
+	//dataexport.SaveExportLog(util.Mysql, entIdInt, entUserId, count, newCount, remain_nums, export_nums, xlsxUrl, "2", string(filterStr), exportPhone, exportEmail)
+	//dataexport.DeductNum(util.Mysql, util.Mgo_Qyfw, entIdInt, newCount)
+	util.Mysql.InsertBatch("jianyu.datapacket_record", []string{"infoids", "type", "master_id", "useid", "query_id", "date", "deduct_num", "export_num", "path", "phone", "mail", "isSenior", "ent_id", "ent_user_id", "operator"}, []interface{}{"", 3, userId, userId, selectId, time.Now().Unix(), newCount, count, xlsxUrl, exportPhone, exportEmail, 2, entId, entUserId, fmt.Sprintf("%s(%s)", qutil.ObjToString(sessVal["entUserName"]), qutil.ObjToString(sessVal["phone"]))})
+	cacheResult(nil, xlsxUrl, fmt.Sprintf("entPackResult_%s_%s", userId, selectId))
+	sendPackExportMail(userId, selectId, exportEmail, xlsxUrl)
+	saveArray := []map[string]interface{}{}
+	for _, v := range *data {
+		saveArray = append(saveArray, v)
+		if len(saveArray) == 200 {
+			util.MQFW.SaveBulk("entdataexport", saveArray...)
+			saveArray = []map[string]interface{}{}
 		}
 		}
-		go func() {
-			data = dataexport.FormatExportDatas(util.MQFWENT, data, config.Config.WebDomain, "2", entIdInt)
-			xlsxUrl := dataexport.GetXlsx(*data, entIdInt, entUserId, config.ExConf.ExcelEntPath)
-			if xlsxUrl != "" {
-				filter := dataexport.Filters{
-					FilterId: selectId,
-				}
-				filterStr, _ := json.Marshal(filter)
-				dataexport.SaveExportLog(util.Mysql, entIdInt, entUserId, count, newCount, remain_nums, export_nums, xlsxUrl, "2", string(filterStr), exportPhone, exportEmail)
-				dataexport.DeductNum(util.Mysql, util.Mgo_Qyfw, entIdInt, newCount)
-				cacheResult(nil, xlsxUrl, fmt.Sprintf("entPackResult_%s_%s", userId, selectId))
-				sendPackExportMail(userId, selectId, exportEmail, xlsxUrl)
-				for _, v := range *data {
-					util.MQFW.Save("entdataexport", v)
-				}
-			}
-		}()
-		entLock.Unlock()
+	}
+	if len(saveArray) > 0 {
+		util.MQFW.SaveBulk("entdataexport", saveArray...)
 	}
 	}
 	return nil
 	return nil
 }
 }
 
 
 // UsePersonalPack 个人数据包扣除
 // UsePersonalPack 个人数据包扣除
-func (this *dataExportPackStruct) UsePersonalPack(userId, selectId, phone, email string, isSenior bool, checkCount int) error {
+func (this *dataExportPackStruct) UsePersonalPack(sess *httpsession.Session, userId, selectId, phone, email string, isSenior bool, checkCount int) error {
+	sessVal := sess.GetMultiple()
+	entId := qutil.Int64All(sessVal["entId"])
+	entUserId := qutil.Int64All(sessVal["entUserId"])
 	go GetExcelFile(selectId, checkCount, isSenior, func(excelPath string, exportIds []string) {
 	go GetExcelFile(selectId, checkCount, isSenior, func(excelPath string, exportIds []string) {
 		deduct, err := usePerPack(userId, checkCount, isSenior, &PersonalUsePackRemark{
 		deduct, err := usePerPack(userId, checkCount, isSenior, &PersonalUsePackRemark{
 			QueryId:         selectId,
 			QueryId:         selectId,
@@ -489,21 +530,24 @@ func (this *dataExportPackStruct) UsePersonalPack(userId, selectId, phone, email
 			ExportTimeStamp: time.Now().Unix(),
 			ExportTimeStamp: time.Now().Unix(),
 			Phone:           phone,
 			Phone:           phone,
 			Email:           email,
 			Email:           email,
-		}, exportIds)
+		}, exportIds, entId, entUserId)
 		if err == nil {
 		if err == nil {
 			go util.Mysql.Insert("datapacket_record", map[string]interface{}{
 			go util.Mysql.Insert("datapacket_record", map[string]interface{}{
-				"infoids":    strings.Join(exportIds, ","),
-				"type":       2,
-				"master_id":  userId,
-				"useid":      userId,
-				"query_id":   selectId,
-				"date":       time.Now().Unix(),
-				"path":       excelPath,
-				"deduct_num": deduct,
-				"export_num": checkCount,
-				"phone":      phone,
-				"mail":       email,
-				"isSenior":   qutil.If(isSenior, 2, 1),
+				"infoids":     strings.Join(exportIds, ","),
+				"type":        2,
+				"master_id":   userId,
+				"useid":       userId,
+				"query_id":    selectId,
+				"date":        time.Now().Unix(),
+				"path":        excelPath,
+				"deduct_num":  deduct,
+				"export_num":  checkCount,
+				"phone":       phone,
+				"mail":        email,
+				"isSenior":    qutil.If(isSenior, 2, 1),
+				"ent_id":      entId,
+				"ent_user_id": entUserId,
+				"operator":    fmt.Sprintf("%s(%s)", qutil.ObjToString(sessVal["entUserName"]), qutil.ObjToString(sessVal["phone"])),
 			})
 			})
 			//发送邮件
 			//发送邮件
 			go sendPackExportMail(userId, selectId, email, excelPath)
 			go sendPackExportMail(userId, selectId, email, excelPath)
@@ -534,6 +578,7 @@ func (this *dataExportPackStruct) UseDailyPack(userId, selectId, phone, email st
 	if vipStatus.Status <= 0 || vipStatus.DailyNum == 0 {
 	if vipStatus.Status <= 0 || vipStatus.DailyNum == 0 {
 		return fmt.Errorf("非法请求")
 		return fmt.Errorf("非法请求")
 	}
 	}
+	sessVal := session.GetMultiple()
 	go GetExcelFile(selectId, selectCount, true, func(excelPath string, exportIds []string) {
 	go GetExcelFile(selectId, selectCount, true, func(excelPath string, exportIds []string) {
 		packetMsg := dataexport.GetDataPacketMsg(qutil.InterfaceToStr(qutil.If(vipStatus.Pid == "", userId, vipStatus.Pid)), vipStatus.DailyNum)
 		packetMsg := dataexport.GetDataPacketMsg(qutil.InterfaceToStr(qutil.If(vipStatus.Pid == "", userId, vipStatus.Pid)), vipStatus.DailyNum)
 		//余额扣除
 		//余额扣除
@@ -542,7 +587,7 @@ func (this *dataExportPackStruct) UseDailyPack(userId, selectId, phone, email st
 				return err
 				return err
 			}
 			}
 			//保存导出记录
 			//保存导出记录
-			packetMsg.SaveRecord(util.Mysql, userId, selectId, dataexport.BigMemberDaily, exportIds, excelPath, phone, email)
+			packetMsg.SaveRecord(util.Mysql, userId, selectId, dataexport.BigMemberDaily, exportIds, excelPath, phone, email, qutil.Int64All(sessVal["entId"]), qutil.Int64All(sessVal["entUserId"]), 0, fmt.Sprintf("%s(%s)", qutil.ObjToString(sessVal["entUserName"]), qutil.ObjToString(sessVal["phone"])), "")
 			//发送邮件
 			//发送邮件
 			go sendPackExportMail(userId, selectId, email, excelPath)
 			go sendPackExportMail(userId, selectId, email, excelPath)
 			return nil
 			return nil
@@ -557,17 +602,135 @@ func (this *dataExportPackStruct) UseDailyPack(userId, selectId, phone, email st
 }
 }
 
 
 // PerRechargeList 个人数据包充值记录
 // PerRechargeList 个人数据包充值记录
-func (this *dataExportPackStruct) PerRechargeList(userId string, pageNum, pageSize int) (int, []map[string]interface{}, error) {
-	if pageSize == 0 {
+func (this *dataExportPackStruct) PerRechargeList(userId, userIds, starttime, endtime string, entId, entDeptId, entRole, account, tpe, pageNum, pageSize int) (int, *[]map[string]interface{}) {
+	if pageSize <= 0 {
 		pageSize = 10
 		pageSize = 10
 	}
 	}
-	pageNum += 1
-	return perPackRecharge(userId, pageNum, pageSize)
+	if pageNum <= 0 {
+		pageNum = 1
+	}
+	comSql := ``
+	args := []interface{}{}
+	if entRole == 2 {
+		comSql = `from entniche_department_parent b
+			inner join entniche_department_user c on ((b.pid=? or c.dept_id=?) and b.id=c.dept_id)
+			inner join jy_user_center.consume_record a on (c.user_id=a.entUserId) where 1=1`
+		args = append(args, entDeptId, entDeptId)
+	} else {
+		comSql = `from jy_user_center.consume_record a where `
+		if entRole == 1 {
+			comSql += `a.entId=?`
+			args = append(args, entId)
+		} else {
+			comSql += `a.userId=?`
+			args = append(args, userId)
+		}
+	}
+	comSql += ` and a.name in ('数据流包','数据流包(合并)')`
+	if account > 0 {
+		comSql += ` and a.accountType=?`
+		if account == 1 || account == 2 {
+			args = append(args, 0)
+			comSql += ` and a.resourceType in (?,?)`
+			if account == 1 {
+				args = append(args, "高级字段包", "高级字段包(合并)")
+			} else {
+				args = append(args, "标准字段包", "标准字段包(合并)")
+			}
+		} else {
+			args = append(args, account-2)
+		}
+	}
+	if userIds != "" {
+		wh, thisArgs := qutil.WhArgs(strings.Split(userIds, ","))
+		comSql += ` and a.entUserId in (` + wh + `)`
+		args = append(args, thisArgs...)
+	}
+	if tpe > 0 {
+		comSql += ` and a.userType=?`
+		args = append(args, tpe-1)
+	}
+	if starttime != "" {
+		comSql += ` and a.createTime>=?`
+		args = append(args, starttime)
+	}
+	if endtime != "" {
+		comSql += ` and a.createTime<=?`
+		args = append(args, endtime)
+	}
+	countSql := `select count(1) as count ` + comSql
+	count := util.Mysql.CountBySql(countSql, args...)
+	//
+	listSql := `select a.createTime,a.operator,a.accountType,a.userType,a.number,a.deductionNumb,a.remarks,a.resourceType,a.source ` + comSql + ` order by a.createTime desc limit ?,?`
+	args = append(args, (pageNum-1)*pageSize, pageSize)
+	list := util.Mysql.SelectBySql(listSql, args...)
+	if list != nil {
+		for _, v := range *list {
+			createTime, err := time.ParseInLocation(time.DateTime, qutil.ObjToString(v["createTime"]), time.Local)
+			if err == nil {
+				v["createTime"] = createTime.Unix()
+			}
+			reasonTitle := ""
+			if qutil.IntAll(v["accountType"]) == 1 {
+				v["account"] = "企业数据流量包"
+			} else {
+				v["account"] = fmt.Sprintf("个人数据流量包(%s)", strings.ReplaceAll(qutil.ObjToString(v["resourceType"]), "(合并)", ""))
+			}
+			switch qutil.IntAll(v["userType"]) {
+			case 0:
+				v["type"] = "消费"
+				v["number"] = fmt.Sprintf("-%d", qutil.IntAll(v["deductionNumb"]))
+				switch qutil.IntAll(v["source"]) {
+				case 0:
+					reasonTitle = "数据自助导出"
+				case 1:
+					reasonTitle = "数据定制导出"
+				case 2:
+					reasonTitle = "数据推送"
+				case 3:
+					reasonTitle = "线下历史数据导出"
+				}
+			case 1:
+				v["type"] = "新增"
+				reasonTitle = "充值数据流量包"
+				var orderDetail PackDetailReturn
+				if json.Unmarshal([]byte(qutil.ObjToString(v["remarks"])), &orderDetail) == nil {
+					var etm string
+					if orderDetail.EndTime > 0 { //通过账号合并合并过来的资源,没有有效期和价格
+						etm = FormatDateByInt64(&orderDetail.EndTime, time.DateOnly)
+					} else if err == nil {
+						etm = createTime.AddDate(orderDetail.ValidYear, 0, 0).Format(time.DateOnly)
+					}
+					if etm != "" {
+						v["reasonContent"] = fmt.Sprintf("有效期至:%s", etm)
+					}
+					if orderDetail.GiveCycle > 0 && orderDetail.DisCountId > 0 { //满赠
+						v["number"] = orderDetail.PackNum - orderDetail.GiveCycle
+						v["giveNumber"] = orderDetail.GiveCycle
+					}
+				}
+				v["number"] = fmt.Sprintf("+%d", qutil.IntAll(v["number"]))
+			case 2:
+				v["type"] = "作废"
+				v["number"] = fmt.Sprintf("-%d", qutil.IntAll(v["number"]))
+				reasonTitle = "未使用权益到期失效"
+			}
+			v["reasonTitle"] = reasonTitle
+			v["operator"] = strings.TrimSuffix(strings.ReplaceAll(qutil.ObjToString(v["operator"]), "(", " "), ")")
+			delete(v, "remarks")
+			delete(v, "resourceType")
+			delete(v, "accountType")
+			delete(v, "userType")
+			delete(v, "deductionNumb")
+			delete(v, "source")
+		}
+	}
+	return int(count), list
 }
 }
 
 
 // 查询企业账户余额
 // 查询企业账户余额
-func getCurrEntCount(entName, entPhone string) int {
-	current, ok := util.Mgo_Qyfw.FindOne("user", map[string]interface{}{"phone": entPhone, "username": entName})
+func getCurrEntCount(entId int64) int {
+	current, ok := util.Mgo_Qyfw.FindOne("user", map[string]interface{}{"entid": entId})
 	if current == nil || !ok {
 	if current == nil || !ok {
 		return 0
 		return 0
 	}
 	}

+ 19 - 1
src/jfw/modules/subscribepay/src/entity/dataexport.go

@@ -19,6 +19,7 @@ import (
 	qutil "app.yhyue.com/moapp/jybase/common"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	. "app.yhyue.com/moapp/jybase/date"
 	. "app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/mail"
 	"app.yhyue.com/moapp/jybase/mail"
+	. "app.yhyue.com/moapp/jybase/mongodb"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/dataexport"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/dataexport"
 )
 )
 
 
@@ -70,6 +71,8 @@ func (d *dataExportStruct) PayCallBack(param *CallBackParam) bool {
 		//dis_word := qutil.ObjToString((*orderdata)["dis_word"])
 		//dis_word := qutil.ObjToString((*orderdata)["dis_word"])
 		filter := qutil.ObjToString((*orderdata)["filter"])
 		filter := qutil.ObjToString((*orderdata)["filter"])
 		user_phone := qutil.ObjToString((*orderdata)["user_phone"])
 		user_phone := qutil.ObjToString((*orderdata)["user_phone"])
+		user_mail := qutil.ObjToString((*orderdata)["user_mail"])
+		data_spec := qutil.ObjToString((*orderdata)["data_spec"])
 		sc := new(dataexport.SieveCondition)
 		sc := new(dataexport.SieveCondition)
 		err := json.Unmarshal([]byte(filter), &sc)
 		err := json.Unmarshal([]byte(filter), &sc)
 		if err != nil {
 		if err != nil {
@@ -98,7 +101,22 @@ func (d *dataExportStruct) PayCallBack(param *CallBackParam) bool {
 			if update {
 			if update {
 				//先发个通知
 				//先发个通知
 				go SendMailToBJFinance(orderdata, pay_time, param.TransactionId, 1, config.GmailAuth)
 				go SendMailToBJFinance(orderdata, pay_time, param.TransactionId, 1, config.GmailAuth)
-				go pay.CheckSave(userId, qutil.InterfaceToStr((*orderdata)["filter_id"])) //数据导出成功保存筛选条件
+				filter_id, _ := (*orderdata)["filter_id"].(string)
+				go pay.CheckSave(userId, filter_id) //数据导出成功保存筛选条件
+				//保存导出记录
+				go func() {
+					log.Println(userId, "保存自助导出记录。。。")
+					operator := ""
+					var ent_id, ent_user_id int64
+					if !IsObjectIdHex(userId) {
+						if ity := config.Middleground.UserCenter.IdentityByPositionId(qutil.Int64All(userId)); ity != nil {
+							ent_id = ity.EntId
+							ent_user_id = ity.EntUserId
+							operator = fmt.Sprintf("%s(%s)", ity.EntUserName, ity.EntUserPhone)
+						}
+					}
+					util.Mysql.InsertBatch("datapacket_record", []string{"infoids", "master_id", "useid", "query_id", "date", "deduct_num", "export_num", "path", "phone", "mail", "isSenior", "ent_id", "ent_user_id", "operator"}, []interface{}{"", userId, userId, filter_id, time.Now().Unix(), dataCount, dataCount, download_url, user_phone, user_mail, qutil.If(data_spec == "高级字段包", 2, 1).(int), ent_id, ent_user_id, operator})
+				}()
 				//发送邮件移至定时任务
 				//发送邮件移至定时任务
 				//go SendMailToPayUser(orderdata, float64(param.CashFee)/100, pay_time, download_url, config.GmailAuth)
 				//go SendMailToPayUser(orderdata, float64(param.CashFee)/100, pay_time, download_url, config.GmailAuth)
 
 

+ 7 - 6
src/jfw/modules/subscribepay/src/go.mod

@@ -3,9 +3,10 @@ module jy/src/jfw/modules/subscribepay/src
 go 1.20
 go 1.20
 
 
 require (
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20250218064808-f3105db833dd
+	app.yhyue.com/moapp/jyResourcesCenter v0.0.0-20250211075100-eb5d7cd299f8
+	app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.31.8
+	app.yhyue.com/moapp/jypkg v1.32.3
 	bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2
 	bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20241213060113-ac41966a58ec
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20241213060113-ac41966a58ec
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230911091604-2faa31032743
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230911091604-2faa31032743
@@ -16,6 +17,7 @@ require (
 	github.com/google/uuid v1.6.0
 	github.com/google/uuid v1.6.0
 	github.com/shopspring/decimal v1.3.1
 	github.com/shopspring/decimal v1.3.1
 	github.com/tealeg/xlsx v1.0.5
 	github.com/tealeg/xlsx v1.0.5
+	github.com/zeromicro/go-zero v1.6.4
 	go.mongodb.org/mongo-driver v1.14.0
 	go.mongodb.org/mongo-driver v1.14.0
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
 	k8s.io/apimachinery v0.29.3
 	k8s.io/apimachinery v0.29.3
@@ -92,7 +94,7 @@ require (
 	github.com/prometheus/common v0.45.0 // indirect
 	github.com/prometheus/common v0.45.0 // indirect
 	github.com/prometheus/procfs v0.12.0 // indirect
 	github.com/prometheus/procfs v0.12.0 // indirect
 	github.com/redis/go-redis/v9 v9.4.0 // indirect
 	github.com/redis/go-redis/v9 v9.4.0 // indirect
-	github.com/rivo/uniseg v0.2.0 // indirect
+	github.com/rivo/uniseg v0.4.4 // indirect
 	github.com/sirupsen/logrus v1.8.3 // indirect
 	github.com/sirupsen/logrus v1.8.3 // indirect
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
 	github.com/spf13/afero v1.9.3 // indirect
 	github.com/spf13/afero v1.9.3 // indirect
@@ -105,7 +107,6 @@ require (
 	github.com/xdg-go/scram v1.1.2 // indirect
 	github.com/xdg-go/scram v1.1.2 // indirect
 	github.com/xdg-go/stringprep v1.0.4 // indirect
 	github.com/xdg-go/stringprep v1.0.4 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect
 	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect
-	github.com/zeromicro/go-zero v1.6.4 // indirect
 	go.etcd.io/etcd/api/v3 v3.5.13 // indirect
 	go.etcd.io/etcd/api/v3 v3.5.13 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.13 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.13 // indirect
@@ -127,10 +128,10 @@ require (
 	golang.org/x/crypto v0.22.0 // indirect
 	golang.org/x/crypto v0.22.0 // indirect
 	golang.org/x/net v0.24.0 // indirect
 	golang.org/x/net v0.24.0 // indirect
 	golang.org/x/oauth2 v0.17.0 // indirect
 	golang.org/x/oauth2 v0.17.0 // indirect
-	golang.org/x/sync v0.6.0 // indirect
+	golang.org/x/sync v0.11.0 // indirect
 	golang.org/x/sys v0.19.0 // indirect
 	golang.org/x/sys v0.19.0 // indirect
 	golang.org/x/term v0.19.0 // indirect
 	golang.org/x/term v0.19.0 // indirect
-	golang.org/x/text v0.14.0 // indirect
+	golang.org/x/text v0.22.0 // indirect
 	golang.org/x/time v0.5.0 // indirect
 	golang.org/x/time v0.5.0 // indirect
 	google.golang.org/appengine v1.6.8 // indirect
 	google.golang.org/appengine v1.6.8 // indirect
 	google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
 	google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect

+ 13 - 10
src/jfw/modules/subscribepay/src/go.sum

@@ -5,6 +5,8 @@ app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547 h1:cCmWQW8D
 app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547/go.mod h1:JvIs8uKjdT963+7JnZGIEcL4ctBiBjwkoz0kNyigE78=
 app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547/go.mod h1:JvIs8uKjdT963+7JnZGIEcL4ctBiBjwkoz0kNyigE78=
 app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736 h1:7Vl3qq1nJZyRQNyMDoCTC14ScKABZqbUmJP0WpOLnIQ=
 app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736 h1:7Vl3qq1nJZyRQNyMDoCTC14ScKABZqbUmJP0WpOLnIQ=
 app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736/go.mod h1:NEkVbas7w0Lg4/BPoN4rkl808q4OKv7Bk5lwTXvOThU=
 app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736/go.mod h1:NEkVbas7w0Lg4/BPoN4rkl808q4OKv7Bk5lwTXvOThU=
+app.yhyue.com/moapp/jyResourcesCenter v0.0.0-20250211075100-eb5d7cd299f8 h1:pn923ETz8nwCumFV05I3HCTA6vze7tNAsSQQJiC67Gk=
+app.yhyue.com/moapp/jyResourcesCenter v0.0.0-20250211075100-eb5d7cd299f8/go.mod h1:sT/02sF4CuTIGVzYjVix3lHK4EEJRZssS7mydYyr5m4=
 app.yhyue.com/moapp/jy_docs v1.1.1/go.mod h1:54sK98Z5tpMFd2aPLN1IRfEyV3zpFRyFxKj6oi2C5/Q=
 app.yhyue.com/moapp/jy_docs v1.1.1/go.mod h1:54sK98Z5tpMFd2aPLN1IRfEyV3zpFRyFxKj6oi2C5/Q=
 app.yhyue.com/moapp/jybase v0.0.0-20210322021809-141cc2c37946/go.mod h1:29ShuI8y7qEyg2KviHSx1iamiCioBKdTMm2ndVzWAhk=
 app.yhyue.com/moapp/jybase v0.0.0-20210322021809-141cc2c37946/go.mod h1:29ShuI8y7qEyg2KviHSx1iamiCioBKdTMm2ndVzWAhk=
 app.yhyue.com/moapp/jybase v0.0.0-20220415064050-37ce64b3e2d4/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 app.yhyue.com/moapp/jybase v0.0.0-20220415064050-37ce64b3e2d4/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
@@ -15,13 +17,13 @@ app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJ
 app.yhyue.com/moapp/jybase v0.0.0-20230419121327-bedf77840ba6/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230419121327-bedf77840ba6/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20231025021840-2f91c944ecdd/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20231025021840-2f91c944ecdd/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
-app.yhyue.com/moapp/jybase v0.0.0-20250218064808-f3105db833dd h1:KlNtol66E3XSVSTCc6lqqfixj3trS9XwSYZInXDxkL0=
-app.yhyue.com/moapp/jybase v0.0.0-20250218064808-f3105db833dd/go.mod h1:XHNATN6tsJKHdCB0DbUtFdPPHXexTUFyB3RlO+lUUoM=
+app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b h1:P63V6J6w7zFcmW27GWVYgJS0+xa29WKSdNSFqLiIbK4=
+app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b/go.mod h1:7M8adhCw7V/wEK+eIcL/gQJ0moslTZbk42DdkEBgmzg=
 app.yhyue.com/moapp/jyfs v0.0.0-20231024061508-480c270480d4/go.mod h1:61hzZ3dZHXL28BNl8BOgZsvM2S5UVY5YFzOkEUPrSu4=
 app.yhyue.com/moapp/jyfs v0.0.0-20231024061508-480c270480d4/go.mod h1:61hzZ3dZHXL28BNl8BOgZsvM2S5UVY5YFzOkEUPrSu4=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
-app.yhyue.com/moapp/jypkg v1.31.8 h1:nbdjgRCvtVLA/27lM9WqoNqhU1sIb7qcOO5WnxX3MGg=
-app.yhyue.com/moapp/jypkg v1.31.8/go.mod h1:bdHYv0sag7HhH89ft9nbOXHk21cNKes4xu1Ocpc021Y=
+app.yhyue.com/moapp/jypkg v1.32.3 h1:84pjfCkhTfQ3fKeZyNOCpagp3M9hLDDBnoKsoNcef+E=
+app.yhyue.com/moapp/jypkg v1.32.3/go.mod h1:m/OMjugcf4XK5c/2mErxnXEyAZ+WNya8HP0x8jFGw4U=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 h1:WGi4OEIoqw6NpNFGioUEBZnjK9aBa+xJqf/5WY+QyhM=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 h1:WGi4OEIoqw6NpNFGioUEBZnjK9aBa+xJqf/5WY+QyhM=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161/go.mod h1:0Oj8SB4pVjdCLD28sy2zyM3hS0WHGpNuVcakLW43GmI=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161/go.mod h1:0Oj8SB4pVjdCLD28sy2zyM3hS0WHGpNuVcakLW43GmI=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
@@ -1636,8 +1638,9 @@ github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwy
 github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
 github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
 github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
 github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
-github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
+github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
 github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
 github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@@ -2127,8 +2130,8 @@ golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
+golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -2295,8 +2298,8 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
+golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -2392,7 +2395,7 @@ golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
 golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
 golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
 golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
 golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
-golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

+ 29 - 27
src/jfw/modules/subscribepay/src/service/dataexportPack.go

@@ -376,8 +376,8 @@ func (this *DataExportPack) Statistics() {
 		if selectCount <= 0 {
 		if selectCount <= 0 {
 			return nil, fmt.Errorf("导出数据异常")
 			return nil, fmt.Errorf("导出数据异常")
 		}
 		}
-		if entId := this.GetString("entId"); entId != "" {
-			deduct, err := entity.JyDataExportPack.DoEntPackRepeatCheck(this.Session(), userId, entId, filterId, selectCount)
+		if this.GetString("entId") != "" {
+			deduct, err := entity.JyDataExportPack.DoEntPackRepeatCheck(this.Session(), userId, filterId, qutil.IntAll(this.GetSession("entId")), selectCount)
 			log.Printf("%s Statistics filterId :%s 查询耗时 %v\n", userId, filterId, time.Now().Sub(tm))
 			log.Printf("%s Statistics filterId :%s 查询耗时 %v\n", userId, filterId, time.Now().Sub(tm))
 			if err != nil {
 			if err != nil {
 				log.Printf("%s Statistics-DoEntPackRepeatCheck 查询导出id失败 %v\n", userId, err)
 				log.Printf("%s Statistics-DoEntPackRepeatCheck 查询导出id失败 %v\n", userId, err)
@@ -444,11 +444,6 @@ func (this *DataExportPack) PackPay() {
 		}
 		}
 		switch this.GetString("doType") {
 		switch this.GetString("doType") {
 		case "entPack": //企业数据包支付
 		case "entPack": //企业数据包支付
-			entId := fmt.Sprint(qutil.Int64All(this.GetSession("entId")))
-			positionType := qutil.Int64All(this.GetSession("positionType"))
-			if entId == "" || entId == "0" || positionType == 0 {
-				return nil, fmt.Errorf("当前身份不能使用企业扣减")
-			}
 			var userPhone, userMail string
 			var userPhone, userMail string
 			if reqPhone, reqMail := this.GetString("order_phone"), this.GetString("order_email"); reqPhone != "" && reqMail != "" {
 			if reqPhone, reqMail := this.GetString("order_phone"), this.GetString("order_email"); reqPhone != "" && reqMail != "" {
 				user_phone, user_mail, user_mail_status := dataExportPhoneAndMailCheck(this.Session())
 				user_phone, user_mail, user_mail_status := dataExportPhoneAndMailCheck(this.Session())
@@ -460,7 +455,7 @@ func (this *DataExportPack) PackPay() {
 				userMail = reqMail
 				userMail = reqMail
 			}
 			}
 			//扣除数量查询
 			//扣除数量查询
-			err := entity.JyDataExportPack.UseEntPack(this.Session(), userId, entId, filterId, userPhone, userMail)
+			err := entity.JyDataExportPack.UseEntPack(this.Session(), filterId, userPhone, userMail)
 			if err != nil {
 			if err != nil {
 				return nil, err
 				return nil, err
 			}
 			}
@@ -481,7 +476,7 @@ func (this *DataExportPack) PackPay() {
 
 
 			packType := this.GetString("packType") //senior 高级字段;normal 普通字段包
 			packType := this.GetString("packType") //senior 高级字段;normal 普通字段包
 			//生成excel扣除,
 			//生成excel扣除,
-			_ = entity.JyDataExportPack.UsePersonalPack(userId, filterId, userPhone, userMail, packType == "senior", selectCount)
+			_ = entity.JyDataExportPack.UsePersonalPack(this.Session(), userId, filterId, userPhone, userMail, packType == "senior", selectCount)
 			return "success", nil
 			return "success", nil
 		case "dailyPack": //每日限量包扣除
 		case "dailyPack": //每日限量包扣除
 			var userPhone, userMail string
 			var userPhone, userMail string
@@ -545,22 +540,22 @@ func (this *DataExportPack) FileCheck() {
 // RechargeList 数据流量包充值记录
 // RechargeList 数据流量包充值记录
 func (this *DataExportPack) RechargeList() {
 func (this *DataExportPack) RechargeList() {
 	userId, _ := this.GetSession("userId").(string)
 	userId, _ := this.GetSession("userId").(string)
-	rData, errMsg := func() (interface{}, error) {
-		pageSize, _ := this.GetInteger("pageSize")
-		pageNum, _ := this.GetInteger("pageNum")
-		total, list, err := entity.JyDataExportPack.PerRechargeList(userId, pageNum, pageSize)
-		if err != nil {
-			return nil, err
-		}
-		return map[string]interface{}{
-			"total": total,
-			"list":  list,
-		}, nil
-	}()
-	if errMsg != nil {
-		log.Printf("%s DataExportPack RechargeList 异常:%s\n", userId, errMsg.Error())
-	}
-	this.ServeJson(NewResult(rData, errMsg))
+	entId := qutil.IntAll(this.GetSession("entId"))
+	entRole := qutil.IntAll(this.GetSession("entRole"))
+	entDeptId := qutil.IntAll(this.GetSession("entDeptId"))
+	userIds := this.GetString("userIds")
+	account, _ := this.GetInteger("account")
+	tpe, _ := this.GetInteger("type")
+	starttime := this.GetString("starttime")
+	endtime := this.GetString("endtime")
+	pageSize, _ := this.GetInteger("pageSize")
+	pageNum, _ := this.GetInteger("pageNum")
+	total, list := entity.JyDataExportPack.PerRechargeList(userId, userIds, starttime, endtime, entId, entDeptId, entRole, account, tpe, pageNum, pageSize)
+	this.ServeJson(map[string]interface{}{
+		"isAdmin": entRole > 0,
+		"total":   total,
+		"list":    list,
+	})
 }
 }
 
 
 // RecordList 数据导出记录
 // RecordList 数据导出记录
@@ -571,8 +566,14 @@ func (this *DataExportPack) RecordList() {
 		pageNum, _ := this.GetInteger("pageNum")
 		pageNum, _ := this.GetInteger("pageNum")
 		vipMsg := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
 		vipMsg := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
 		entId := qutil.IntAll(this.GetSession("entId"))
 		entId := qutil.IntAll(this.GetSession("entId"))
-		entUserId := qutil.IntAll(this.GetSession("entUserId"))
-		returnList, total, err := entity.JyDataExportPack.GetDataExportRecordList(userId, vipMsg.Pid, entId, entUserId, pageNum, pageSize)
+		entRole := qutil.IntAll(this.GetSession("entRole"))
+		entDeptId := qutil.IntAll(this.GetSession("entDeptId"))
+		userIds := this.GetString("userIds")
+		// 1:个人支付 2:企业数据流量包 3:个人数据流量包(高级字段包) 4:个人数据流量包(标准字段包)
+		payWay, _ := this.GetInteger("payWay")
+		starttime, _ := this.GetInteger("starttime")
+		endtime, _ := this.GetInteger("endtime")
+		returnList, total, err := entity.JyDataExportPack.GetDataExportRecordList(userId, vipMsg.Pid, userIds, starttime, endtime, entRole, entId, entDeptId, pageNum, pageSize, payWay)
 		if err != nil {
 		if err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
@@ -582,6 +583,7 @@ func (this *DataExportPack) RecordList() {
 		if total != -1 {
 		if total != -1 {
 			returnData["total"] = total
 			returnData["total"] = total
 		}
 		}
+		returnData["isAdmin"] = entRole > 0
 		return returnData, nil
 		return returnData, nil
 	}()
 	}()
 	if errMsg != nil {
 	if errMsg != nil {

+ 1 - 1
src/jfw/modules/subscribepay/src/service/invoice.go

@@ -1836,7 +1836,7 @@ func (this *Invoice) InvoiceQuery() {
 }
 }
 
 
 func ShowData(phone string) map[string]interface{} {
 func ShowData(phone string) map[string]interface{} {
-	data := util.Mysql.SelectBySql(fmt.Sprintf(`SELECT company_name,phone,mail,invoice_type,company_address,bank_name,bank_account,remark,taxpayer_identnum FROM invoice WHERE phone = '%s' ORDER BY create_time desc LIMIT 1`, phone))
+	data := util.Mysql.SelectBySql(fmt.Sprintf(`SELECT company_name,phone,company_phone,mail,invoice_variety,invoice_content,invoice_type,company_address,bank_name,bank_account,remark,taxpayer_identnum FROM invoice WHERE phone = '%s' ORDER BY create_time desc LIMIT 1`, phone))
 	if data != nil && len(*data) > 0 {
 	if data != nil && len(*data) > 0 {
 		return (*data)[0]
 		return (*data)[0]
 	}
 	}

+ 1 - 1
src/jfw/modules/subscribepay/src/service/userAccountInfo.go

@@ -313,7 +313,7 @@ func (this *UserAccount) GetAccountInfo() {
 		}
 		}
 		b := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
 		b := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
 		//s从数据导出填写的邮箱或者从数据定制服务这里获取的邮箱
 		//s从数据导出填写的邮箱或者从数据定制服务这里获取的邮箱
-		_, otherMail := dataexport.GetLastExportPhoneAndMail(util.Mysql, userId, qutil.ObjToString(sessVal["entUserId"]))
+		_, otherMail := dataexport.GetLastExportPhoneAndMail(util.Mysql, qutil.ObjToString(sessVal["userId"]))
 		if otherMail == "" {
 		if otherMail == "" {
 			saleData, _ := util.MQFW.FindOne("saleLeads", map[string]interface{}{
 			saleData, _ := util.MQFW.FindOne("saleLeads", map[string]interface{}{
 				"userid": sessVal["userId"],
 				"userid": sessVal["userId"],

+ 1 - 0
src/jfw/modules/subscribepay/src/util/rpc.go

@@ -4,6 +4,7 @@ import (
 	"jy/src/jfw/modules/subscribepay/src/config"
 	"jy/src/jfw/modules/subscribepay/src/config"
 	"log"
 	"log"
 	"net/rpc"
 	"net/rpc"
+
 	util "app.yhyue.com/moapp/jybase/common"
 	util "app.yhyue.com/moapp/jybase/common"
 )
 )