Quellcode durchsuchen

Merge branch 'dev2.5.1' of ssh://192.168.3.207:10022/qmx/jy into dev2.5.1

wangkaiyue vor 6 Jahren
Ursprung
Commit
da64daf1d7

+ 14 - 6
src/config.json

@@ -194,14 +194,17 @@
     "advertName": "广告",
     "advertUrl": "/swordfish/about",
     "wxJianyu": {
-        "appid": "wx79f2cc873dbea989",
-        "appsecret": "fb3f77e9c6725811b5c39f6d58bd58a3",
+        "appid": "wxd66e9589c9fecff6",
+        "appsecret": "dd00e71cb2370432d9de848b674eb8e7",
         "pay": {
-            "mchid": "1293231901",
-            "key": "top2016top2016",
+            "mchid": "1418321102",
+            "key": "topnet2016topnet2016topnet2016ab",
             "attachmsg": "剑鱼打赏",
             "bodymsg": "剑鱼-招标信息打赏",
-            "detailmsg": "招标推送信息[%s] 打赏%s元钱"
+            "detailmsg": "招标推送信息[%s] 打赏%s元钱",
+			"sjdc_attachmsg": "数据导出",
+            "sjdc_bodymsg": "数据导出",
+            "sjdc_detailmsg": "数据导出"
         }
     },
     "industry": "分类综合测试",
@@ -235,6 +238,12 @@
         "shareTimesUpperLimitIrr": 1000
     },
 	"cookiedomain": ".qmx.top",
+	"mysql":{
+		"dbName":   "jianyu",
+		"address":  "192.168.3.207:3366",
+		"userName": "root",
+		"passWord": "Topnet123"
+	},
 	"exportData":{
 		"unitPrice_normal":1,
 		"unitPrice_senior":2,
@@ -248,5 +257,4 @@
         "pwd": "ue9Rg9Sf4CVtdm5a",
         "user": "public03@topnet.net.cn"
     }
-    
 }

+ 5 - 0
src/jfw/config/config.go

@@ -9,7 +9,12 @@ var Seoconfig_Version string
 
 var Sysconfig map[string]interface{}
 var Seoconfig map[string]interface{}
+var WeixinConfig map[string]interface{}
+var Wxoauth, Wxoauthinfo string
 
 func init() {
 	util.ReadConfig(&Sysconfig)
+	WeixinConfig = Sysconfig["wxJianyu"].(map[string]interface{})
+	Wxoauth = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=` + WeixinConfig["appid"].(string) + `&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect`
+	Wxoauthinfo = `https://api.weixin.qq.com/sns/oauth2/access_token?appid=` + WeixinConfig["appid"].(string) + `&secret=` + WeixinConfig["appsecret"].(string) + `&code=%s&grant_type=authorization_code`
 }

+ 13 - 0
src/jfw/front/dataExport.go

@@ -12,6 +12,9 @@ type DataExport struct {
 	*xweb.Action
 	toSieve   xweb.Mapper `xweb:"/front/dataExport/toSieve"`   //数据导出-条件筛选
 	sieveData xweb.Mapper `xweb:"/front/dataExport/sieveData"` //筛选数据
+
+	toMyOrder  xweb.Mapper `xweb:"/front/dataExport/toMyOrder"`  //我的订单
+	queryOrder xweb.Mapper `xweb:"/front/dataExport/queryOrder"` //查询我的订单
 }
 
 func init() {
@@ -87,3 +90,13 @@ type KeyWord struct {
 	Appended []string `json:"appended"` //附加词
 	Exclude  []string `json:"exclude"`  //排除词
 }
+
+func (d *DataExport) ToMyOrder() error {
+	d.Render("/pc/myOrder.html")
+	return nil
+}
+
+func (d *DataExport) QueryOrder() error{
+	d.ServeJson(nil)
+	return nil
+}

+ 0 - 1
src/jfw/front/front.go

@@ -162,7 +162,6 @@ var urlMap map[string]interface{}
 //var userPoolSize = 1000
 //var up userPool
 var se = util.SE //移到tools中
-var payCallBackChan chan bool = make(chan bool, 1)
 var isIosReg = regexp.MustCompile("\\(i[^;]+;( U;)? CPU.+Mac OS X")
 
 func init() {

+ 11 - 9
src/jfw/front/laboratory.go

@@ -1,14 +1,16 @@
 package front
 
 import (
+	"jfw/config"
 	jylabutil "jfw/jylabutil"
 	"jfw/wx"
 	"qfw/util"
 	"qfw/util/redis"
 
+	"fmt"
+
 	"github.com/go-xweb/xweb"
 	"gopkg.in/mgo.v2/bson"
-	"fmt"
 	//"net/url"
 	"jfw/tools"
 	"net/url"
@@ -17,11 +19,11 @@ import (
 type Lab struct {
 	*xweb.Action
 	/********************剑鱼实验室dev2.0**************************/
-	index     xweb.Mapper `xweb:"/jylab/index"`             //实验室首页
-	labMode   xweb.Mapper `xweb:"/jylab/laboratory/(\\w+)"` //智能订阅
-	operation xweb.Mapper `xweb:"/jylab/operation"`         //用户操作按钮
-	qrToLab   xweb.Mapper `xweb:"/jylab/qrToLab/(.*)"`      //pc端扫码进入实验室首页
-	qrToLabSubpage   xweb.Mapper `xweb:"/jylab/qr/(.*)"`      //pc端扫码进入实验室子页
+	index          xweb.Mapper `xweb:"/jylab/index"`             //实验室首页
+	labMode        xweb.Mapper `xweb:"/jylab/laboratory/(\\w+)"` //智能订阅
+	operation      xweb.Mapper `xweb:"/jylab/operation"`         //用户操作按钮
+	qrToLab        xweb.Mapper `xweb:"/jylab/qrToLab/(.*)"`      //pc端扫码进入实验室首页
+	qrToLabSubpage xweb.Mapper `xweb:"/jylab/qr/(.*)"`           //pc端扫码进入实验室子页
 }
 
 //
@@ -182,16 +184,16 @@ func (l *Lab) QrToLabSubpage(t string) error {
 			//微信跳回来的
 			code := l.GetString("code")
 			if code != "" {
-				openid := Getopenid(code)
+				openid := tools.Getopenid(code)
 				FindUserAndCreateSess(openid, l.Session())
 				return l.Redirect("/jylab/laboratory/" + t)
-			}else {
+			} else {
 				return nil
 			}
 		} else {
 			if tools.CheckWxBrowser(l.Request) {
 				//所有参数都不再使用,跳到微信验证用户
-				return l.Redirect(fmt.Sprintf(Wxoauth, url.QueryEscape(l.Site()+l.Url()), "wx"), 302)
+				return l.Redirect(fmt.Sprintf(config.Wxoauth, url.QueryEscape(l.Site()+l.Url()), "wx"), 302)
 			} else {
 				return l.Render("/weixin/sharePage.html")
 			}

+ 2 - 32
src/jfw/front/shorturl.go

@@ -1,16 +1,13 @@
 package front
 
 import (
-	"encoding/json"
 	"fmt"
-	"io/ioutil"
 	"jfw/config"
 	"jfw/forceShare"
 	"jfw/tools"
 	"jfw/wx"
 	"log"
 	"math/rand"
-	"net/http"
 	"net/url"
 	"qfw/util"
 	"qfw/util/redis"
@@ -23,13 +20,6 @@ import (
 	"gopkg.in/mgo.v2/bson"
 )
 
-var Wxoauth, Wxoauthinfo string
-
-func init() {
-	Wxoauth = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=` + jianyuConfig["appid"].(string) + `&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect`
-	Wxoauthinfo = `https://api.weixin.qq.com/sns/oauth2/access_token?appid=` + jianyuConfig["appid"].(string) + `&secret=` + jianyuConfig["appsecret"].(string) + `&code=%s&grant_type=authorization_code`
-}
-
 type Short struct {
 	*xweb.Action
 	article xweb.Mapper `xweb:"/article/(\\w+)/(.*).html"` //([pm])
@@ -65,7 +55,7 @@ func (s *Short) Article(stype, id string) error {
 				//微信跳回来的
 				code := s.GetString("code")
 				if code != "" {
-					openid := Getopenid(code)
+					openid := tools.Getopenid(code)
 					if openid != "" {
 						isSubscribe := true
 						if !checkIsSubscribeFlag {
@@ -80,7 +70,7 @@ func (s *Short) Article(stype, id string) error {
 			} else {
 				if tools.CheckWxBrowser(s.Request) {
 					//所有参数都不再使用,跳到微信验证用户
-					return s.Redirect(fmt.Sprintf(Wxoauth, url.QueryEscape(s.Site()+s.Url()), "wx"), 302)
+					return s.Redirect(fmt.Sprintf(config.Wxoauth, url.QueryEscape(s.Site()+s.Url()), "wx"), 302)
 				}
 			}
 		}
@@ -258,26 +248,6 @@ func (s *Short) Article(stype, id string) error {
 	return nil
 }
 
-//获取用户openid
-func Getopenid(code string) (openid string) {
-	defer util.Catch()
-	recturl := fmt.Sprintf(Wxoauthinfo, code)
-	//log.Println(recturl)
-	resp, err := http.Get(recturl)
-	defer resp.Body.Close()
-	if err != nil {
-		fmt.Println(err.Error())
-		return
-	}
-	bs, _ := ioutil.ReadAll(resp.Body)
-	resp.Body.Close()
-	data := map[string]interface{}{}
-	json.Unmarshal(bs, &data)
-	//log.Println(data)
-	openid, _ = data["openid"].(string)
-	return
-}
-
 //检查用户是否关注
 func CheckUserIsSubscribe(openid string) bool {
 	log.Println(openid, "------检查是否关注")

+ 2 - 2
src/jfw/front/swordfish.go

@@ -1876,7 +1876,7 @@ func (m *Front) About() error {
 			//微信跳回来的
 			code := m.GetString("code")
 			if code != "" {
-				openid := Getopenid(code)
+				openid := tools.Getopenid(code)
 				userInfo, ok := mongodb.FindOneByField("user", map[string]interface{}{
 					"s_m_openid": openid,
 					"i_appid":    2,
@@ -1889,7 +1889,7 @@ func (m *Front) About() error {
 		} else {
 			if tools.CheckWxBrowser(m.Request) {
 				//所有参数都不再使用,跳到微信验证用户
-				return m.Redirect(fmt.Sprintf(Wxoauth, url.QueryEscape(m.Site()+m.Url()), "wx"), 302)
+				return m.Redirect(fmt.Sprintf(config.Wxoauth, url.QueryEscape(m.Site()+m.Url()), "wx"), 302)
 			}
 		}
 	}

+ 147 - 61
src/jfw/front/pay.go → src/jfw/pay/weixin.go

@@ -1,10 +1,8 @@
-package front
+package pay
 
 import (
-	"encoding/json"
 	"encoding/xml"
 	"fmt"
-	"io/ioutil"
 	"jfw/config"
 	"jfw/tools"
 	"jfw/wx"
@@ -18,27 +16,55 @@ import (
 	"github.com/go-xweb/xweb"
 )
 
-type Pay struct {
+type WxPayAction struct {
 	*xweb.Action
+	//打赏
 	redirectOauth xweb.Mapper `xweb:"/front/pay/redirect"`    //微信支付授权
 	getUserInfo   xweb.Mapper `xweb:"/front/pay/getUserInfo"` //微信支付获取用户信息
+	qr            xweb.Mapper `xweb:"/front/pay/qr/([^.]*)"`  //生成二维码图片
 	payIndex      xweb.Mapper `xweb:"/weixin/pay/index"`      //微信支付页面
 	wxPay         xweb.Mapper `xweb:"/weixin/pay/pay"`        //微信支付
-	payCallback   xweb.Mapper `xweb:"/weixin/pay/callback"`   //微信支付回调
-	qr            xweb.Mapper `xweb:"/front/pay/qr/([^.]*)"`  //生成二维码图片
+	//pc端扫码支付
+	sacnPay_GetQrCode   xweb.Mapper `xweb:"/weixin/sacnPay/getQrCode"`   //生成支付二维码
+	sacnPay_CreateOrder xweb.Mapper `xweb:"/weixin/sacnPay/createOrder"` //创建订单
+	//统一回调函数
+	payCallback xweb.Mapper `xweb:"/weixin/pay/callback"` //微信支付回调
+}
+
+type WeixinStruct struct {
+	payCallBackChan   chan bool
+	appid             string
+	mchid             string
+	key               string
+	dashang_attachmsg string
+	dashang_bodymsg   string
+	dashang_detailmsg string
+	sjdc_attachmsg    string
+	sjdc_bodymsg      string
+	sjdc_detailmsg    string
 }
 
-var jianyuConfig map[string]interface{}
-var payConfig map[string]interface{}
+var weixinStruct *WeixinStruct
 
 func init() {
-	xweb.AddAction(&Pay{})
-	jianyuConfig = config.Sysconfig["wxJianyu"].(map[string]interface{})
-	payConfig = jianyuConfig["pay"].(map[string]interface{})
+	xweb.AddAction(&WxPayAction{})
+	payConfig := config.WeixinConfig["pay"].(map[string]interface{})
+	weixinStruct = &WeixinStruct{
+		payCallBackChan:   make(chan bool, 1),
+		appid:             util.ObjToString(config.WeixinConfig["appid"]),
+		mchid:             util.ObjToString(payConfig["mchid"]),
+		key:               util.ObjToString(payConfig["key"]),
+		dashang_attachmsg: util.ObjToString(payConfig["attachmsg"]),
+		dashang_bodymsg:   util.ObjToString(payConfig["bodymsg"]),
+		dashang_detailmsg: util.ObjToString(payConfig["detailmsg"]),
+		sjdc_attachmsg:    util.ObjToString(payConfig["sjdc_attachmsg"]),
+		sjdc_bodymsg:      util.ObjToString(payConfig["sjdc_bodymsg"]),
+		sjdc_detailmsg:    util.ObjToString(payConfig["sjdc_detailmsg"]),
+	}
 }
 
 //转发
-func (p *Pay) RedirectOauth() {
+func (p *WxPayAction) RedirectOauth() {
 	param := p.GetString("source") + "_" + p.GetString("id")
 	webdomain := config.Sysconfig["webdomain"].(string)
 	openId, _ := p.GetSession("payOpenId").(string)
@@ -50,39 +76,25 @@ func (p *Pay) RedirectOauth() {
 		p.Redirect(webdomain+"/weixin/pay/index?param="+param, http.StatusFound)
 		return
 	}
-	urlstr := "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + jianyuConfig["appid"].(string) + "&redirect_uri=" + webdomain + "/front/pay/getUserInfo?param=" + param + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
+	urlstr := fmt.Sprintf(config.Wxoauth, fmt.Sprintf("%s/front/pay/getUserInfo?param=%s", webdomain, param), "1")
 	p.Redirect(urlstr, http.StatusFound)
 }
 
 //取用户信息,取完以后再跳转到实际支付页面
-func (p *Pay) GetUserInfo() {
-	api_url := "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"
-	//取用户信息
-	recturl := fmt.Sprintf(api_url, jianyuConfig["appid"].(string), jianyuConfig["appsecret"].(string), p.GetString("code"))
-	resp, err := http.Get(recturl)
-	defer resp.Body.Close()
-	if err != nil {
-		fmt.Println(err.Error())
-		return
-	}
-	bs, _ := ioutil.ReadAll(resp.Body)
-	resp.Body.Close()
-	data := map[string]interface{}{}
-	json.Unmarshal(bs, &data)
-	openid, _ := data["openid"].(string)
+func (p *WxPayAction) GetUserInfo() {
 	//传入openid,进入支付页面,正常情况下应该存入session
-	p.SetSession("payOpenId", openid)
+	p.SetSession("payOpenId", tools.Getopenid(p.GetString("code")))
 	p.Redirect("/weixin/pay/index?param="+p.GetString("param"), http.StatusFound)
 }
-func (p *Pay) PayIndex() error {
+func (p *WxPayAction) PayIndex() error {
 	param := p.GetString("param")
 	params := strings.Split(param, "_")
 	id := util.DecodeArticleId2ByCheck(params[1])[0]
 	title := ""
 	if id != "" {
-		data, ok := mongodb.FindById("bidding", id, `{"title":1}`)
+		data, ok := tools.MQFW.FindById("bidding", id, `{"title":1}`)
 		if ok && (data == nil || *data == nil || len(*data) == 0) {
-			data, ok = mongodb.FindById("bidding_back", id, `{"title":1}`)
+			data, ok = tools.MQFW.FindById("bidding_back", id, `{"title":1}`)
 		}
 		if ok && data != nil && len(*data) > 0 {
 			title, _ = (*data)["title"].(string)
@@ -95,7 +107,7 @@ func (p *Pay) PayIndex() error {
 	p.T["signature"] = wx.SignJSSDK(p.Site() + p.Url())
 	return p.Render("/weixin/pay.html", &p.T)
 }
-func (p *Pay) WxPay() error {
+func (p *WxPayAction) WxPay() error {
 	openId, _ := p.GetSession("payOpenId").(string)
 	if openId == "" {
 		p.ServeJson(map[string]interface{}{
@@ -117,15 +129,15 @@ func (p *Pay) WxPay() error {
 		tradeno := "jy-" + fmt.Sprint(time.Now().Unix()) + util.Uuid(12)
 		//获取预订单号
 		ret, err := tools.GetPrepayId(map[string]string{
-			"attachmsg":  payConfig["attachmsg"].(string),
-			"bodymsg":    payConfig["bodymsg"].(string),
-			"detailmsg":  fmt.Sprintf(payConfig["detailmsg"].(string), title, fmt.Sprint(float64(totalfee)/100)),
+			"attachmsg":  weixinStruct.dashang_attachmsg,
+			"bodymsg":    weixinStruct.dashang_bodymsg,
+			"detailmsg":  fmt.Sprintf(weixinStruct.dashang_detailmsg, title, fmt.Sprint(float64(totalfee)/100)),
 			"useropenid": openId,
 			"tradeno":    tradeno,
 			"userip":     p.IP(),
 			"totalfee":   fmt.Sprint(totalfee),
-			"mchid":      payConfig["mchid"].(string),
-			"key":        payConfig["key"].(string),
+			"mchid":      weixinStruct.mchid,
+			"key":        weixinStruct.key,
 			"notifyUrl":  config.Sysconfig["webdomain"].(string) + "/weixin/pay/callback",
 		})
 		if err != nil || ret == nil {
@@ -143,10 +155,10 @@ func (p *Pay) WxPay() error {
 		}
 		nonceStr := util.Uuid(32)
 		timestamp := time.Now().Unix()
-		sign := util.WxSign(fmt.Sprintf("appId=%s&nonceStr=%s&package=%s&signType=%s&timeStamp=%d&key=%s", jianyuConfig["appid"].(string), nonceStr, "prepay_id="+prepayId, "MD5", timestamp, payConfig["key"].(string)))
+		sign := util.WxSign(fmt.Sprintf("appId=%s&nonceStr=%s&package=%s&signType=%s&timeStamp=%d&key=%s", weixinStruct.appid, nonceStr, "prepay_id="+prepayId, "MD5", timestamp, weixinStruct.key))
 		//保存记录
 		now := time.Now()
-		mongodb.Save("reward", map[string]interface{}{
+		tools.MQFW.Save("reward", map[string]interface{}{
 			"s_source":     p.GetString("source"),
 			"s_prepayid":   prepayId,
 			"s_title":      title,
@@ -166,7 +178,7 @@ func (p *Pay) WxPay() error {
 		})
 		p.ServeJson(map[string]interface{}{
 			"status":    1,
-			"appId":     jianyuConfig["appid"].(string),
+			"appId":     weixinStruct.appid,
 			"timestamp": fmt.Sprint(timestamp),
 			"signType":  "MD5",
 			"sign":      sign,
@@ -177,7 +189,7 @@ func (p *Pay) WxPay() error {
 		operation, _ := p.GetInteger("operation")
 		prepayId := p.GetString("prepayId")
 		if operation == 1 || operation == -1 {
-			mongodb.Update("reward", `{"s_openid":"`+openId+`","s_prepayid":"`+prepayId+`"}`, map[string]interface{}{
+			tools.MQFW.Update("reward", `{"s_openid":"`+openId+`","s_prepayid":"`+prepayId+`"}`, map[string]interface{}{
 				"$set": map[string]interface{}{
 					"i_operation":  operation,
 					"l_updatetime": time.Now().Unix(),
@@ -187,10 +199,10 @@ func (p *Pay) WxPay() error {
 	}
 	return nil
 }
-func (p *Pay) PayCallback() {
-	payCallBackChan <- true
+func (p *WxPayAction) PayCallback() {
+	weixinStruct.payCallBackChan <- true
 	defer func() {
-		<-payCallBackChan
+		<-weixinStruct.payCallBackChan
 	}()
 	by := p.Body()
 	fmt.Println("回调通知参数", string(by))
@@ -215,23 +227,29 @@ func (p *Pay) PayCallback() {
 	}{}
 	err := xml.Unmarshal(by, &ret)
 	if err == nil {
-		if ret.ReturnCode == "SUCCESS" && ret.Appid == jianyuConfig["appid"].(string) && ret.MchId == payConfig["mchid"].(string) {
-			sign := util.WxSign("appid=%s&attach=%s&bank_type=%s&cash_fee=%d&fee_type=%s&is_subscribe=%s&mch_id=%s&nonce_str=%s&openid=%s&out_trade_no=%s&result_code=%s&return_code=%s&time_end=%s&total_fee=%s&trade_type=%s&transaction_id=%s&key=%s", ret.Appid, ret.Attach, ret.BankType, ret.CashFee, ret.FeeType, ret.IsSubscribe, ret.MchId, ret.NonceStr, ret.OpenId, ret.OutTradeNo, ret.ResultCode, ret.ReturnCode, ret.TimeEnd, ret.TotalFee, ret.TradeType, ret.TransactionId, payConfig["key"].(string))
+		if ret.ReturnCode == "SUCCESS" && ret.Appid == weixinStruct.appid && ret.MchId == weixinStruct.mchid {
+			sign := util.WxSign("appid=%s&attach=%s&bank_type=%s&cash_fee=%d&fee_type=%s&is_subscribe=%s&mch_id=%s&nonce_str=%s&openid=%s&out_trade_no=%s&result_code=%s&return_code=%s&time_end=%s&total_fee=%s&trade_type=%s&transaction_id=%s&key=%s", ret.Appid, ret.Attach, ret.BankType, ret.CashFee, ret.FeeType, ret.IsSubscribe, ret.MchId, ret.NonceStr, ret.OpenId, ret.OutTradeNo, ret.ResultCode, ret.ReturnCode, ret.TimeEnd, ret.TotalFee, ret.TradeType, ret.TransactionId, weixinStruct.key)
 			if ret.Sign == sign {
-				query := map[string]interface{}{
-					"s_openid":   ret.OpenId,
-					"s_tradeno":  ret.OutTradeNo,
-					"i_totalfee": ret.CashFee,
-					"i_status":   0,
+				//打赏
+				if strings.HasPrefix(ret.OutTradeNo, "jy_") {
+					query := map[string]interface{}{
+						"s_openid":   ret.OpenId,
+						"s_tradeno":  ret.OutTradeNo,
+						"i_totalfee": ret.CashFee,
+						"i_status":   0,
+					}
+					tools.MQFW.Update("reward", query, map[string]interface{}{
+						"$set": map[string]interface{}{
+							"i_status":        1,
+							"s_timeend":       ret.TimeEnd,
+							"l_updatetime":    time.Now().Unix(),
+							"s_transactionid": ret.TransactionId,
+						},
+					}, false, false)
+				} else if strings.HasPrefix(ret.OutTradeNo, "jysjdc_") { //订阅数据导出
+					//操作mysql库
+
 				}
-				mongodb.Update("reward", query, map[string]interface{}{
-					"$set": map[string]interface{}{
-						"i_status":        1,
-						"s_timeend":       ret.TimeEnd,
-						"l_updatetime":    time.Now().Unix(),
-						"s_transactionid": ret.TransactionId,
-					},
-				}, false, false)
 				p.Write(`<xml>
 			  	<return_code><![CDATA[SUCCESS]]></return_code>
 			  	<return_msg><![CDATA[OK]]></return_msg>
@@ -254,7 +272,7 @@ func (p *Pay) PayCallback() {
 }
 
 //打赏二维码图片
-func (c *Pay) Qr(code string) error {
+func (c *WxPayAction) Qr(code string) error {
 	w := c.ResponseWriter
 	w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
 	w.Header().Set("Pragma", "no-cache")
@@ -266,3 +284,71 @@ func (c *Pay) Qr(code string) error {
 	_, err := w.Write(pngdat)
 	return err
 }
+func (p *WxPayAction) SacnPay_CreateOrder() {
+	money, _ := p.GetInt("money")
+	content := p.GetString("content")
+	openId, _ := p.GetSession("s_m_openid").(string)
+	//
+	money = 1
+	content = "jsdlkfjsdlkfj"
+	openId = "test"
+	if content == "" || openId == "" {
+		p.ServeJson(map[string]interface{}{"status": "n"})
+		return
+	}
+	nickname, _ := p.GetSession("s_nickname").(string)
+	totalfee := 1
+	tradeno := "jysjdc-" + fmt.Sprint(time.Now().Unix()) + util.Uuid(12)
+	//获取预订单号
+	ret, err := tools.GetPrepayId(map[string]string{
+		"attachmsg":  weixinStruct.sjdc_attachmsg,
+		"bodymsg":    weixinStruct.sjdc_bodymsg,
+		"detailmsg":  weixinStruct.sjdc_detailmsg,
+		"useropenid": openId,
+		"tradeno":    tradeno,
+		"userip":     p.IP(),
+		"totalfee":   fmt.Sprint(totalfee),
+		"mchid":      weixinStruct.mchid,
+		"key":        weixinStruct.key,
+		"notifyUrl":  config.Sysconfig["webdomain"].(string) + "/weixin/pay/callback",
+		"appid":      weixinStruct.appid,
+		"tradeType":  "NATIVE",
+	})
+	//存库
+	log.Println(ret)
+	result := map[string]interface{}{}
+	if err != nil && ret != nil && util.IntAll((*ret)["status"]) == 1 {
+		now := time.Now()
+		tools.Mysql.Insert("jianyu_order", map[string]interface{}{
+			"order_money":   money,
+			"user_nickname": nickname,
+			"user_openid":   openId,
+			"content":       content,
+			"prepay_id":     (*ret)["prepayid"],
+			"code_url":      (*ret)["codeurl"],
+			"out_trade_no":  tradeno,
+			"create_time":   util.FormatDate(&now, util.Date_Full_Layout),
+		})
+		result["status"] = "y"
+		result["code"] = tradeno
+		result["token"] = (*ret)["sign"]
+	} else {
+		log.Println("生成预支付交易单失败", ret)
+		result["status"] = "n"
+	}
+	p.ServeJson(result)
+}
+func (p *WxPayAction) SacnPay_GetQrCode() error {
+	code := p.GetString("code")
+	//sign := p.GetString("sign")
+	w := p.ResponseWriter
+	w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+	w.Header().Set("Pragma", "no-cache")
+	w.Header().Set("Expires", "0")
+	w.Header().Set("Content-Type", "image/png")
+	data := fmt.Sprintf("%s/front/pay/redirect?id=%s&source=p", config.Sysconfig["webdomain"].(string), code)
+	r, _ := qr.Encode(data, qr.M)
+	pngdat := r.PNG()
+	_, err := w.Write(pngdat)
+	return err
+}

+ 41 - 0
src/jfw/tools/tools.go

@@ -1,2 +1,43 @@
 package tools
 
+import (
+	"encoding/json"
+	"fmt"
+	"io/ioutil"
+	. "jfw/config"
+	"log"
+	"net/http"
+	"qfw/util"
+	"qfw/util/mysql"
+)
+
+var Mysql *mysql.Mysql
+
+func init() {
+	mysqlConfig, _ := Sysconfig["mysql"].(map[string]interface{})
+	Mysql = &mysql.Mysql{
+		Address:  util.ObjToString(mysqlConfig["address"]),
+		UserName: util.ObjToString(mysqlConfig["userName"]),
+		PassWord: util.ObjToString(mysqlConfig["passWord"]),
+		DBName:   util.ObjToString(mysqlConfig["dbName"]),
+	}
+	Mysql.Init()
+}
+
+//获取用户openid
+func Getopenid(code string) (openid string) {
+	defer util.Catch()
+	recturl := fmt.Sprintf(Wxoauthinfo, code)
+	resp, err := http.Get(recturl)
+	defer resp.Body.Close()
+	if err != nil {
+		log.Println(err.Error())
+		return
+	}
+	bs, _ := ioutil.ReadAll(resp.Body)
+	resp.Body.Close()
+	data := map[string]interface{}{}
+	json.Unmarshal(bs, &data)
+	openid, _ = data["openid"].(string)
+	return
+}

+ 2 - 0
src/main.go

@@ -7,6 +7,7 @@ import (
 	"jfw/front"
 	"jfw/jgpush"
 	"jfw/limitsearch"
+	_ "jfw/pay"
 	"jfw/qrmanager"
 	"jfw/rpcfollow"
 	"jfw/tag"
@@ -17,6 +18,7 @@ import (
 	"net/rpc"
 	"qfw/util"
 	"qfw/util/elastic"
+	_ "qfw/util/mysql"
 	"qfw/util/redis"
 	"time"
 	ca "ucbsutil/cassandra"

+ 12 - 12
src/web/staticres/dataExport/css/conditions.css

@@ -38,13 +38,13 @@ button {
   padding: 30px 0;
   font-family: MicrosoftYaHei;
   font-size: 16px; }
-  .conditions-box .progress {
+  .conditions-box .progress_ {
     width: 1200px;
     display: inline-block;
     padding-left: 120px;
     margin-bottom: 30px;
     box-sizing: border-box; }
-    .conditions-box .progress div {
+    .conditions-box .progress_ div {
       width: 300px;
       height: 38px;
       line-height: 38px;
@@ -53,19 +53,19 @@ button {
       color: white;
       float: left;
       margin-right: 8px; }
-      .conditions-box .progress div.a1 {
+      .conditions-box .progress_ div.a1 {
         background-color: #BFBFBF;
         color: #fff; }
-      .conditions-box .progress div.b2 {
+      .conditions-box .progress_ div.b2 {
         background-color: #72DAE8;
         color: #fff; }
-      .conditions-box .progress div.c3 {
+      .conditions-box .progress_ div.c3 {
         background-color: #2CB7CA;
         color: #fff; }
-    .conditions-box .progress .l {
+    .conditions-box .progress_ .l {
       position: relative;
       z-index: 3; }
-      .conditions-box .progress .l:after {
+      .conditions-box .progress_ .l:after {
         content: "";
         position: absolute;
         right: -23px;
@@ -75,10 +75,10 @@ button {
         border-top: 19px solid transparent;
         border-left: 23px solid #2CB7CA;
         border-bottom: 19px solid transparent; }
-    .conditions-box .progress .c {
+    .conditions-box .progress_ .c {
       z-index: 2;
       position: relative; }
-      .conditions-box .progress .c:before {
+      .conditions-box .progress_ .c:before {
         content: "";
         position: absolute;
         left: 0;
@@ -88,7 +88,7 @@ button {
         border-top: 19px solid transparent;
         border-left: 23px solid #fff;
         border-bottom: 19px solid transparent; }
-      .conditions-box .progress .c:after {
+      .conditions-box .progress_ .c:after {
         content: "";
         position: absolute;
         right: -23px;
@@ -98,9 +98,9 @@ button {
         border-top: 19px solid transparent;
         border-left: 23px solid #BFBFBF;
         border-bottom: 19px solid transparent; }
-    .conditions-box .progress .r {
+    .conditions-box .progress_ .r {
       position: relative; }
-      .conditions-box .progress .r:before {
+      .conditions-box .progress_ .r:before {
         content: "";
         position: absolute;
         left: 0;

+ 69 - 18
src/web/staticres/dataExport/js/conditions_order.js

@@ -2,6 +2,7 @@
 var selectArea = []
 var selectAreaCity = []
 var selectAreaNow = null
+var selectAreaArr = []
 var keyAllArr = []
 /* 切换市区显示 */
 function toggleDialog(f) {
@@ -16,10 +17,9 @@ function showMoreCity (arr) {
   var box = $('.dialog>.select-area-box')
   var tempHTML = ''
   box.html(tempHTML)
-  tempHTML += '<span class="select-area" style="margin-right: 10px;">全省</span>';
-  console.log('--arr--', arr)
+  // console.log('--arr--', arr)
   arr.forEach(function (value) {
-    console.log('--value--', value.name)
+    // console.log('--value--', value.name)
     tempHTML += '<span class="select-area">' + value.name.replace(/市$/g,'') + '</span>'
   })
   box.html(tempHTML)
@@ -29,25 +29,38 @@ $(document).on('click','span.select-area', function () {
   var dom = $(this)
   var t = dom.text()
   if(t === '全国'){
+    selectArea.forEach(function (value) {
+      delAddBox(value)
+    })
     return addDelBox(t,'#area-del')
   }
-  if(t === '全省'){
-      t = selectAreaNow;
-  }
   /* 判断来源 */
   var f = dom.parent().parent().hasClass('dialog')
   if(f) {
-    if(selectAreaCity.indexOf(t) !== -1) {
-      selectAreaCity.splice(selectAreaCity.indexOf(t),1)
-    } else {
-      selectAreaCity.push(t)
-    }
+      // console.log(t)
+      if(t === '全省') {
+          // console.log($(this))
+          selectAreaCity = [t]
+          $(this).nextAll().removeClass('select')
+      } else {
+          var tempI = selectAreaCity.indexOf('全省')
+          if(tempI !== -1) {
+            selectAreaCity.splice(tempI,1)
+          }
+          if(selectAreaCity.indexOf(t) !== -1) {
+              selectAreaCity.splice(selectAreaCity.indexOf(t),1)
+          } else {
+              selectAreaCity.push(t)
+          }
+          $(this).parent().children('.select-area:eq(0)').removeClass('select')
+      }
     dom.toggleClass('select')
     return true
   } else {
     if(t !== selectAreaNow) {
       selectAreaCity = []
     }
+    delAddBox('全国')
     selectAreaNow = t
   }
   /* 展开市级 */
@@ -69,7 +82,12 @@ $(document).on('click','span.select-area', function () {
     }
     dom.addClass('click')
     toggleDialog(true)
-    showMoreCity(area.city)
+    var tempA = [{name: '全省'}].concat(area.city)
+      selectAreaArr = area.city.map(function (v) {
+          return v.name.replace(/市$/g,'')
+      })
+      // console.log(area.city);
+      showMoreCity(tempA)
   } else {
     addDelBox(t,'#area-del')
     toggleDialog(false)
@@ -85,10 +103,15 @@ $(document).on('click','.delete-close>i',function () {
 })
 /*移除delBox*/
 function removeDelBox(select) {
+  $("#area-del").find("div[data-arr='selectArea'][data-val='全国']").remove();
   if(select=="全国"){
-    $("#area-del").empty();
+      if(!Array.isArray(window['selectArea'])) {
+          window['selectArea'] = []
+      }
+      $("#area-del").html("");
   }else if (select=="全省"){
-
+      $("#area-del").find("div[data-arr='selectArea'][data-parent='"+select+"']").remove();
+      window['selectArea'].splice()
   }else{
 
   }
@@ -98,7 +121,7 @@ function addDelBox(str,box,arr,template){
   // console.log('--template,arr--', template,arr)
   arr = arr || 'selectArea'
   var tempKey = arr ? 'data-arr="'+arr+'"' : ''
-  template = template || '<div '+tempKey+' class="delete-close">'+str+'<i class="iconfont icon-guanbi"></i></div>'
+  template = template || '<div '+tempKey+' class="delete-close" >'+str+'<i class="iconfont icon-guanbi"></i></div>'
   var tempArr = window[arr]
   if(!Array.isArray(tempArr)) {
     window[arr] = []
@@ -114,9 +137,25 @@ function addDelBox(str,box,arr,template){
 /* 确定选中 */
 function areaSelect (f) {
   if(f) {
-    selectAreaCity.forEach(function (value) {
-      addDelBox(value,'#area-del')
-    })
+      // console.log(selectAreaCity);
+      var sf = selectAreaCity.indexOf('全省')  !== -1
+      if(sf) {
+          selectAreaCity = [selectAreaNow]
+          // console.log('s1',selectArea)
+          selectAreaArr.forEach(function (value) {
+            var tempI = selectArea.indexOf(value)
+            // console.log(value,tempI)
+            if(tempI !== -1) {
+                delAddBox(value)
+            }
+          })
+          addDelBox(selectAreaNow,'#area-del')
+      } else {
+         delAddBox(selectAreaNow)
+          selectAreaCity.forEach(function (value) {
+              addDelBox(value,'#area-del')
+          })
+      }
   } else {
     selectAreaCity = []
   }
@@ -124,6 +163,18 @@ function areaSelect (f) {
   selectAreaNow = null
   toggleDialog(false)
 }
+/* 删除box */
+function delAddBox(n) {
+  $('#area-del .delete-close').each(function () {
+      if($(this).text() === n) {
+        $(this).remove()
+      }
+  })
+  selectArea = []
+  $('#area-del .delete-close').each(function () {
+      selectArea.push($(this).text())
+  })
+}
 /* 输入事件 */
 $(".user-input input").on('input',function () {
   var dom = $(this)

+ 1 - 1
src/web/staticres/js/public-nav.js

@@ -9,7 +9,7 @@ $(function () {
 		    $thisWidth = $(this).width(),
 		    //当前宽度
 		$thisIndex = $(this).index();
-		if($href.indexOf("supsearch")>-1||$href.indexOf("bidsearchforent")>-1||$href.indexOf("promotional/topics")>-1||$href.indexOf("list")>-1||$href.indexOf("article/content")>-1||$href.indexOf("article/bdprivate")>-1||$href.indexOf("jyblog")>-1){
+		if($href.indexOf("supsearch")>-1||$href.indexOf("bidsearchforent")>-1||$href.indexOf("promotional/topics")>-1||$href.indexOf("list")>-1||$href.indexOf("article/content")>-1||$href.indexOf("article/bdprivate")>-1||$href.indexOf("jyblog")>-1||$href.indexOf("dataExport/toSieve")>-1){
 			$navLi.find("a").css({"color":"#252627"});
 		}else{
 			$navLi.find("a").css({"color":"#fff"});

+ 57 - 11
src/web/templates/pc/dataExport_sieve.html

@@ -5,16 +5,28 @@
     <meta name="viewport"
           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    {{include "/common/pnc.html"}}
+    <link href="/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <link href="/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <link rel="stylesheet" type="text/css" href="/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" />
+    <script type="text/javascript" src="/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
+
     <link rel="stylesheet" href="//at.alicdn.com/t/font_624651_c3e1rnkx3cn.css">
     <link rel="stylesheet" href="/dataExport/css/reset_pc.css">
     <link rel="stylesheet" href="/dataExport/css/conditions.css">
     <script language="javascript" type="text/javascript" src="/My97DatePicker/WdatePicker.js"></script>
     <title>条件筛选</title>
+    <style>
+        .select-date.select {
+            border-color: #2CB7CA;
+            color: #2CB7CA; }
+    </style>
 </head>
 <body>
-<section class="conditions-box w">
+{{include "/common/pchead.html"}}
+<section class="conditions-box w" style="padding-top: 106px;">
     <!--指示条-->
-    <div class="progress">
+    <div class="progress_">
         <div class="l c3">
             1.条件筛选
         </div>
@@ -84,13 +96,13 @@
         <!--行业-->
         <div class="line-box float-box" style="padding-bottom: 0">
             <div class="left" style="padding-top: 8px">行业</div>
-            <div class="right">
+            <div class="right" style="font-size: 14px;">
                 <div class="industry">
                     <!--收起-->
                     <div class="stop">
                         更多
                     </div>
-                    <div class="industry-content">
+                    <div class="industry-content" style="width:1004px;">
                     </div>
                 </div>
             </div>
@@ -149,10 +161,12 @@
         <!--确定筛选-->
         <div class="button-box">
             <button class="sussecc" id="sieve">确定</button>
-            <button>重置</button>
+            <button id="reset">重置</button>
         </div>
     </div>
 </section>
+{{include "/common/pcbottom.html"}}
+{{include "/common/baiducc.html"}}
 <script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
 <script src="/dataExport/js/mapJSON.js"></script>
@@ -162,6 +176,7 @@
     var industrylist = {{.T.industrylist}};
     var sortArray = {{.T.sortArray}};
     $(function () {
+        $(".logo img").attr("src","/images/swordfish/sf_01.png");
         //行业
         var industryhtml = '<span id="induAll" class="active">全部</span>';
         if (sortArray != null && sortArray.length > 0) {
@@ -180,10 +195,22 @@
     });
 
     $(".u-select").click(function () {
+        resetSelectDate();
         $(".u-select").removeClass("select");
         $(this).addClass("select");
     });
 
+    //重置开始时间 结束时间
+    function resetSelectDate() {
+        $(".select-date").removeClass("select");
+        $("#starttime").attr("data-value", "");
+        $("#endtime").attr("data-value", "");
+        $("#starttime").text("");
+        $("#endtime").text("");
+        $("#starttime").attr("data-text", "开始时间");
+        $("#endtime").attr("data-text", "结束时间");
+    }
+
     //datepicker start-------------
     function onpicking(dp, obj) {
         var time = new Date(dp.cal.newdate.y, dp.cal.newdate.M - 1, dp.cal.newdate.d).getTime() + "";
@@ -192,21 +219,18 @@
         $(obj).attr("data-value", time);
         if ($("#starttime").attr("data-value") && $("#endtime").attr("data-value")) {
             $(".u-select").removeClass("select");
+            $(".select-date").addClass("select");
         }
     }
 
     function onclearing(obj) {
+        $(".select-date").removeClass("select");
         $(obj).attr("data-value", "");
         if ($(obj).attr("id") == "starttime") {
             $(obj).attr("data-text", "开始时间");
         } else {
             $(obj).attr("data-text", "结束时间");
         }
-        if ($(".customtime").hasClass("active") && getInputTime().join("") == "") {
-            $(".customtime").removeClass("active");
-            $("#publishtime #alltime").addClass("active");
-        }
-        //
         if (!$("#starttime").attr("data-value") || !$("#endtime").attr("data-value")) {
             $(".u-select").first().addClass("select");
         }
@@ -254,7 +278,6 @@
     function getIndustries() {
         var arr = new Array();
         $.each($(".industry-content").children("font[class='active']"), function (index, value) {
-            console.log($(value).data("value"));
             var obj = $(value);
             if (obj) {
                 arr.push(obj.data("value"));
@@ -309,6 +332,8 @@
     }
 
     $("#sieve").click(function () {
+        $("#sieve").addClass("sussecc");
+        $("#reset").removeClass("sussecc");
         var date = getDate();
         var area = getAreas();
         var industry = getIndustries();
@@ -329,5 +354,26 @@
 
         }, 'json');
     });
+
+    $("#reset").click(function () {
+        //botton
+        $("#reset").addClass("sussecc");
+        $("#sieve").removeClass("sussecc");
+        //publishtime
+        resetSelectDate();
+        $(".u-select").removeClass("select");
+        $(".u-select").first().addClass("select");
+        //area
+        $("#area-del").children().remove();
+        //industry
+        $(".industry-content").children("font").removeClass("active");
+        $(".industry-content #induAll").addClass("active");
+        //keyword
+        $("#inputDel_0").find("div[data-arr='inputDel_0']").remove();
+        //buyer
+        $("#inputDel_1").find("div[data-arr='inputDel_1']").remove();
+        //winner
+        $("#inputDel_2").find("div[data-arr='inputDel_2']").remove();
+    });
 </script>
 </html>

+ 178 - 0
src/web/templates/pc/myOrder.html

@@ -0,0 +1,178 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_624651_bjdvktmum68.css">
+    <link rel="stylesheet" href="/dataExport/css/reset_pc.css">
+    <link rel="stylesheet" href="/dataExport/css/drder_details.css">
+    <title>我的订单</title>
+</head>
+<body>
+<section id="drder" class="w">
+    <div class="tab-bar">
+        <ul class="tab clearfix">
+            <li class="active">全部</li>
+            <li>待付款</li>
+            <li>已完成</li>
+        </ul>
+    </div>
+    <div class="title-bar">
+        <ul class="clearfix">
+            <li>日期</li>
+            <li>关键词</li>
+            <li>数据量</li>
+            <li>数据规格</li>
+            <li>金额</li>
+            <li>状态</li>
+        </ul>
+    </div>
+    <div class="list">
+        <!--全部-->
+        <ul class="item clearfix">
+            <li>
+                <div class="info nopay">
+                    <span>2018.09.15 15:45:23</span>
+                    <span>订单号:456670000659</span>
+                    <a href="#" class="fr iconfont  icon-shanchu"></a>
+                </div>
+                <div class="iner">
+                    <ul class="clearfix">
+                        <li class="clearfix">
+                            <img src="/dataExport/image/historical_data.png" alt="">
+                            <span>2017.05-2018.05</span>
+                        </li>
+                        <li class="gjc">
+                            <span>建筑工程</span>
+                        </li>
+                        <li>
+                            10.564条
+                        </li>
+                        <li>标准字段包</li>
+                        <li>
+                            ¥1205
+                        </li>
+                        <li>
+                            <p>待付款</p>
+                            <a class="xq" href="#">查看详情</a>
+                            <a class="pay" href="#">去支付</a>
+                        </li>
+                    </ul>
+                </div>
+            </li>
+            <li>
+                <div class="info pay">
+                    <span>2018.09.15 15:45:23</span>
+                    <span>订单号:456670000659</span>
+                    <!--<a href="#" class="fr iconfont  icon-shanchu"></a>-->
+                </div>
+                <div class="iner">
+                    <ul class="clearfix">
+                        <li class="clearfix">
+                            <img src="/dataExport/image/historical_data.png" alt="">
+                            <span>2017.05-2018.05</span>
+                        </li>
+                        <li class="gjc">
+                            <span>建筑工程</span>
+                            <span>建筑工程</span>
+                            <span>建筑工程</span>
+                        </li>
+                        <li>
+                            10.564条
+                        </li>
+                        <li>标准字段包</li>
+                        <li>
+                            ¥1205
+                        </li>
+                        <li>
+                            <p class="wc">已完成</p>
+                            <a class="wcxq" href="#">查看详情</a>
+                        </li>
+                    </ul>
+                </div>
+            </li>
+        </ul>
+        <!--待付款-->
+        <ul class="item clearfix">
+        </ul>
+        <!--已完成-->
+        <ul class="item clearfix">
+        </ul>
+    </div>
+</section>
+
+<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
+<script>
+    $(function () {
+        /*设置关键词css*/
+        var $gjccss =  $(".list .gjc");
+        $gjccss.each(function (v,i) {
+            var $l = i.children.length;
+            var $h = 66;
+            i.style.height = ($h/$l)+'px';
+            i.style.lineHeight = ($h/$l)+'px';
+        });
+
+        $(".tab-bar .tab li").on("click",function () {
+            var $Index = $(this).index();
+            $(this).addClass("active").siblings().removeClass("active");
+            var $list = $(".list .item");
+            $list.eq($Index).show().siblings().hide();
+
+            var temp = "";
+            for (var i=0;i<3;i++){
+                temp +=
+                `<li>
+                    <div class="info pay">
+                        <span>2018.09.15 15:45:23</span>
+                        <span>订单号:456670000659</span>
+                    </div>
+                    <div class="iner">
+                        <ul class="clearfix">
+                            <li class="clearfix">
+                                <img src="/dataExport/image/historical_data.png" alt="">
+                                <span>2017.05-2018.05</span>
+                            </li>
+                            <li class="gjc" style="height: 22px; line-height: 22px;">
+                                <span>建筑工程</span>
+                                <span>建筑工程</span>
+                                <span>建筑工程</span>
+                            </li>
+                            <li>10.564条</li>
+                            <li>标准字段包</li>
+                            <li>¥1205</li>
+                            <li>
+                                <p class="wc">已完成</p>
+                                <a class="wcxq" href="#">查看详情</a>
+                            </li>
+                        </ul>
+                    </div>
+                </li>`;
+            }
+
+            $list.eq($Index).html(temp);
+
+            // var param = {
+            //     "openid":"111",
+            //     "type":$Index // 0-全部 1-待支付 2-已支付
+            // }
+            // $.ajax({
+            //     type: "post",
+            //     url: "/front/dataExport/queryOrder",
+            //     data: param,
+            //     dataType: 'json',
+            //     success: function(data){
+            //
+            //     },
+            //     error: function(xhr, type){
+            //
+            //     }
+            // });
+        })
+
+    })
+</script>
+</body>
+</html>