wangkaiyue vor 6 Jahren
Ursprung
Commit
fe2f7a2591

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 2
src/dataexport.json


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

@@ -297,7 +297,7 @@ func (d *DataExport) ToOrderDetail(orderCode string) error {
 		orderDetail["applybill_status"] = "F" //未申请
 	}
 	orderStatus := util.IntAll((orderDetail)["order_status"])
-	if orderStatus == 1 {
+	if orderStatus == 1 && util.ObjToString(orderDetail["pay_way"]) == "微信" {
 		//微信订单编号
 		wxPayMap := map[string]interface{}{}
 		wxPayMap["out_trade_no"] = orderDetail["out_trade_no"]
@@ -361,7 +361,7 @@ func (d *DataExport) ApplyInvoice() error {
 		go func() {
 			orderdata := public.Mysql.FindOne(tableName_order, map[string]interface{}{
 				"order_code": order_code,
-			}, "id,filter,user_mail,user_phone,product_type,data_spec,filter_id,order_code,data_count,order_status,order_money,out_trade_no,applybill_type,applybill_company,applybill_taxnum,user_openid,create_time,pay_time", "")
+			}, "id,filter,user_mail,user_phone,product_type,data_spec,filter_id,order_code,data_count,order_status,order_money,out_trade_no,applybill_type,applybill_company,applybill_taxnum,user_openid,create_time,pay_time,pay_way", "")
 			tt := time.Now()
 			pay_time := util.FormatDate(&tt, util.Date_Full_Layout)
 			public.SendMailToBJFinance(orderdata, pay_time, "", 2, config.GmailAuth)

+ 23 - 3
src/jfw/public/dataexport.go

@@ -40,6 +40,7 @@ type DataexportConfig struct {
 	Mail_invoice_finance_content string            `json:"mail_invoice_finance_content"` //to北京财务订单内容
 	Mail_order_finance_content   string            `json:"mail_order_finance_content"`   //to北京财务申请发票内容
 	Finance_emails               []string          `json:"finance_emails"`
+	Qmxdomain                    string            `json:"qmxdomain"`
 }
 type Dataexport_Field struct {
 	Names  []string  `json:"names"`
@@ -220,7 +221,7 @@ func SendMailToBJFinance(order *map[string]interface{}, pay_time, transaction_id
 	product_type := util.ObjToString((*order)["product_type"]) + "导出"
 	//
 	order_money := float64(util.IntAll((*order)["order_money"])) / 100
-	if transaction_id == "" {
+	if transaction_id == "" && util.ObjToString((*order)["pay_way"]) == "微信" { //线下支付没有微信订单编号
 		out_trade_no := util.ObjToString((*order)["out_trade_no"])
 		wxpaydata := Mysql.FindOne("weixin_pay", map[string]interface{}{
 			"out_trade_no": out_trade_no,
@@ -278,7 +279,7 @@ func SendMailToBJFinance(order *map[string]interface{}, pay_time, transaction_id
 		mail_title = "剑鱼历史数据订单【" + order_code + "】,请查收"
 		mailcontent = fmt.Sprintf(ExConf.Mail_order_finance_content, order_code, create_time, pay_time, product_type, transaction_id, data_spec, data_count, order_money, user_mail, user_phone, publishtime, region, industry, keys, sc_money, subtype, buyer, winner)
 	} else {
-		//
+		//申请发票
 		pay_time = util.ObjToString((*order)["pay_time"])
 		if pay_time != "" {
 			pay_time = strings.Replace(pay_time, "-", ".", -1)
@@ -297,8 +298,27 @@ func SendMailToBJFinance(order *map[string]interface{}, pay_time, transaction_id
 			company_flag = "flex"
 			taxnum_flag = "flex"
 		}
+		//线下支付获取凭证照片
+		offlineImgSrc := ""
+		if (*order)["pay_way"] == "线下支付" {
+			offlinePayMap := map[string]interface{}{}
+			offlinePayMap["out_trade_no"] = (*order)["out_trade_no"]
+			offlinePay := Mysql.FindOne("offline_pay", offlinePayMap, "", "create_time desc")
+			if imgs := util.ObjToString((*offlinePay)["img_src"]); imgs != "" {
+				ImgArr := strings.Split(imgs, ",")
+				offlineImgSrc = "<p style='margin: 0px 0px 1px; font-size: 14px; color: rgb(29, 29, 29);'>线下支付凭证:%s</p>"
+				for k, v := range ImgArr {
+					var add = ",%s"
+					if k == len(ImgArr)-1 {
+						add = ""
+					}
+					pz := fmt.Sprintf("<a href='%s'>凭证%d</a>%s", ExConf.Qmxdomain+v, k+1, add)
+					offlineImgSrc = fmt.Sprintf(offlineImgSrc, pz)
+				}
+			}
+		}
 		mail_title = "电子发票申请,剑鱼历史数据订单【" + order_code + "】,请查收"
-		mailcontent = fmt.Sprintf(ExConf.Mail_invoice_finance_content, bill_title, company_flag, bill_company, taxnum_flag, bill_taxnum, order_code, create_time, pay_time, product_type, transaction_id, data_spec, data_count, order_money, user_mail, user_phone)
+		mailcontent = fmt.Sprintf(ExConf.Mail_invoice_finance_content, bill_title, company_flag, bill_company, taxnum_flag, bill_taxnum, order_code, create_time, pay_time, product_type, transaction_id, offlineImgSrc, data_spec, data_count, order_money, user_mail, user_phone)
 	}
 	//发送邮件
 	for _, finance_mail := range ExConf.Finance_emails {

+ 2 - 1
src/jfw/public/public.go

@@ -9,6 +9,7 @@ import (
 	"net/http"
 	"net/url"
 	"qfw/util"
+	"qfw/util/jy"
 	"qfw/util/redis"
 	"qfw/util/sms"
 	"regexp"
@@ -171,7 +172,7 @@ func GetOldOpenid(userId string) (*map[string]interface{}, string) {
 	s_m_openid, _ := (*user)["s_m_openid"].(string)
 	a_m_openid, _ := (*user)["a_m_openid"].(string)
 	s_phone, _ := (*user)["s_phone"].(string)
-	openid := util.GetOldOpenid(s_m_openid, a_m_openid, s_phone, (*user)["a_mergeorder"])
+	openid := jy.GetOldOpenid(s_m_openid, a_m_openid, s_phone, (*user)["a_mergeorder"])
 	return user, openid
 }
 

+ 59 - 0
src/jfw/rpcfollow/rpc.go

@@ -2,8 +2,11 @@
 package rpcfollow
 
 import (
+	"fmt"
+	"jfw/config"
 	"jfw/front"
 	public "jfw/public"
+	"log"
 	"qfw/util"
 	"qfw/util/elastic"
 	frpc "qfw/util/rpc"
@@ -125,3 +128,59 @@ func setMyFollowKey(openid, projectname string) string {
 	}
 	return rep
 }
+
+//数据导出线下支付完成调用
+func (c *MyfollowRpc) DateExportOrderFinishByOffline(param *frpc.DateExportData, ret *string) error {
+	log.Println("DateExportOrderFinishByOffline---", param)
+	util.Try(func() {
+		*ret = "1"
+		//查询订单
+		orderdata := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
+			"order_code": param.OrderCode,
+		}, "id,filter,user_mail,product_type,data_spec,user_phone,filter_id,order_code,data_count,order_status,order_money,out_trade_no,create_time", "")
+
+		if orderdata == nil {
+			*ret = "order_nofind"
+			return
+		}
+		if util.Int64All((*orderdata)["order_status"]) != 0 {
+			*ret = "order_errStat"
+			return
+		}
+		//插入数据
+		now := time.Now()
+		pay_time := util.FormatDate(&now, util.Date_Full_Layout)
+
+		insertNum := public.Mysql.Insert("offline_pay", map[string]interface{}{
+			"out_trade_no": (*orderdata)["out_trade_no"],
+			"create_time":  pay_time,
+			"img_src":      param.ImgSrc,
+		})
+		if insertNum == 0 {
+			*ret = "order_errInsert"
+			return
+		}
+		//修改订单状态
+		filename := fmt.Sprintf("%s.xlsx", fmt.Sprintf("%s_%s_%s", time.Now().Format("20060102150405"), util.ObjToString((*orderdata)["order_code"]), util.GetLetterRandom(5)))
+		download_url := fmt.Sprintf("/res/dataexport/%s", filename)
+		updateNum := public.Mysql.Update("dataexport_order", map[string]interface{}{
+			"order_code": param.OrderCode,
+		}, map[string]interface{}{
+			"pay_time":     pay_time,
+			"order_status": 1,
+			"pay_way":      "线下支付",
+			"download_url": download_url,
+		})
+		if !updateNum {
+			*ret = "order_errUpdate"
+			return
+		}
+		*ret = "y"
+		order_money := util.IntAll((*orderdata)["order_money"])
+		ordermoney := float64(order_money) / 100
+		go public.SendNotice(orderdata, ordermoney, pay_time, download_url, config.GmailAuth)
+		go public.SendMailToPayUser(orderdata, ordermoney, pay_time, filename, download_url, config.GmailAuth)
+		go public.SendMailToBJFinance(orderdata, pay_time, "", 1, config.GmailAuth)
+	}, func(e interface{}) {})
+	return nil
+}

+ 2 - 0
src/web/templates/pc/orderDetail.html

@@ -88,7 +88,9 @@
                 <p>下单时间:{{.T.o.create_time}}</p>
                 <p>支付时间:{{.T.o.pay_time}}</p>
                 <p>产品类型:{{.T.o.product_type}}导出</p>
+        {{if .T.o.transaction_id}}        
 				<p>微信支付单号:{{.T.o.transaction_id}}</p>
+        {{end}}
             </div>
             <div class="item">
                 <p>数据规格:{{.T.o.data_spec}}</p>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.