Преглед на файлове

Merge branch 'dev2.8.5' of http://192.168.3.207:10080/qmx/jy into dev2.8.5

xuzhiheng преди 5 години
родител
ревизия
c78ea4a3a8

+ 7 - 0
src/jfw/front/wxMyOrder.go

@@ -211,6 +211,13 @@ func (w *WxMyOrder) MyEmail() {
 			//未绑定邮箱 进入绑定邮箱界面
 			if name != "" && util.ObjToString((*res)["s_myemail"]) != "" {
 				w.T["text_email"] = util.ObjToString((*res)["s_myemail"])
+				//invoice 是从开发票跳转过来的
+				if name == "invoice" {
+					orderCode := w.GetString("orderCode")
+					if orderCode != "" {
+						w.T["orderCode"] = orderCode
+					}
+				}
 			}
 			w.Render("/weixin/email/bind_email.html", &w.T)
 		} else {

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
src/jfw/modules/subscribepay/src/dataexport.json


+ 10 - 0
src/jfw/modules/subscribepay/src/entity/dataExportSearch.go

@@ -45,11 +45,21 @@ type SieveCondition struct {
 	Comeinfrom  string    `json:"comeinfrom"`  //查询来源
 }
 
+//VIP订单
+type VipFilter struct {
+	Area       map[string]interface{} `json:"area"`     //地区
+	Industry   []string               `json:"industry"` //
+	Cyclecount int                    `json:"cyclecount"`
+	Cycleunit  int                    `json:"cycleunit"`
+	ordertype  int                    `json:"ordertype"`
+}
+
 const (
 	INDEX          = "bidding"
 	TYPE           = "bidding"
 	bidSearch_sort = `{"publishtime":-1}`
 )
+
 var ClearHtml = regexp.MustCompile("<[^>]*>")
 var ClearOther = regexp.MustCompile("[\n\r\\s\u3000\u2003\u00a0]")
 var onceSearchCount = 500

+ 76 - 22
src/jfw/modules/subscribepay/src/entity/dataexport.go

@@ -26,25 +26,26 @@ func init() {
 
 //价格配置文件
 type DataexportConfig struct {
-	UnitPrice_normal             float64           `json:"unitPrice_normal"`
-	UnitPrice_senior             float64           `json:"unitPrice_senior"`
-	Discount                     float64           `json:"discount"`
-	OrderMinPrice                float64           `json:"orderMinPrice"`
-	MsgMaxCount                  int               `json:"msgMaxCount"`
-	Standard_Fields              *Dataexport_Field `json:"standard"`
-	Senior_Fields                *Dataexport_Field `json:"senior"`
-	Mail_attach_content          string            `json:"mail_attach_content"`
-	Mail_attach_content_key      string            `json:"mail_attach_content_key"`
-	Mail_notice_content          string            `json:"mail_notice_content"`
-	Mail_notice_title            string            `json:"mail_notice_title"`
-	Mail_retry                   int               `json:"mail_retry"`
-	AuditPersons                 []string          `json:"auditPersons"`
-	Font                         Font              `json:"font"`
-	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"`
-	DataReportContent            string            `json:"dataReportContent"`
+	UnitPrice_normal                 float64           `json:"unitPrice_normal"`
+	UnitPrice_senior                 float64           `json:"unitPrice_senior"`
+	Discount                         float64           `json:"discount"`
+	OrderMinPrice                    float64           `json:"orderMinPrice"`
+	MsgMaxCount                      int               `json:"msgMaxCount"`
+	Standard_Fields                  *Dataexport_Field `json:"standard"`
+	Senior_Fields                    *Dataexport_Field `json:"senior"`
+	Mail_attach_content              string            `json:"mail_attach_content"`
+	Mail_attach_content_key          string            `json:"mail_attach_content_key"`
+	Mail_notice_content              string            `json:"mail_notice_content"`
+	Mail_notice_title                string            `json:"mail_notice_title"`
+	Mail_retry                       int               `json:"mail_retry"`
+	AuditPersons                     []string          `json:"auditPersons"`
+	Font                             Font              `json:"font"`
+	Mail_invoice_finance_content     string            `json:"mail_invoice_finance_content"`     //to北京财务订单内容
+	Mail_vip_invoice_finance_content string            `json:"mail_vip_invoice_finance_content"` //vip订单 to北京财务申请发票内容
+	Mail_order_finance_content       string            `json:"mail_order_finance_content"`       //to北京财务申请发票内容
+	Finance_emails                   []string          `json:"finance_emails"`
+	Qmxdomain                        string            `json:"qmxdomain"`
+	DataReportContent                string            `json:"dataReportContent"`
 }
 type Dataexport_Field struct {
 	Names  []string  `json:"names"`
@@ -178,7 +179,7 @@ func SendMailToBJFinance(order *map[string]interface{}, pay_time, transaction_id
 	data_spec := qutil.ObjToString((*order)["data_spec"])
 	data_count := qutil.IntAll((*order)["data_count"])
 	pay_way := qutil.ObjToString((*order)["pay_way"])
-
+	pay_money := float64(qutil.IntAll((*order)["pay_money"])) / 100
 	if strings.Contains(pay_way, "wx") {
 		pay_way = "微信"
 	} else if strings.Contains(pay_way, "ali") {
@@ -329,10 +330,63 @@ func SendMailToBJFinance(order *map[string]interface{}, pay_time, transaction_id
 			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, isShowTransaction, pay_way, transaction_id, offlineImgSrc, data_spec, data_count, order_money, user_mail, user_phone)
 		} else if product_type == "VIP订阅导出" {
+			//vip开发票内容
+			subscription_area, industry, subscription_cycle, effective_date := "", "", "", ""
+			city_count := 0
+			filter := qutil.ObjToString((*order)["filter"])
+			vip_starttime := qutil.ObjToString((*order)["vip_starttime"])[0:10]
+			vip_endtime := qutil.ObjToString((*order)["vip_endtime"])[0:10]
+			vf := new(VipFilter)
+			err := json.Unmarshal([]byte(filter), &vf)
+			if err == nil && vf != nil {
+				log.Println(vf.Area)
+				vip_area := vf.Area    //区域
+				vip_ind := vf.Industry //行业
+				nbs := JyVipSubStruct.NewBuySet(&vip_area, vip_ind)
+				if nbs != nil {
+					if nbs.Citys != nil {
+						for _, v := range nbs.Citys {
+							city_count += v.(int)
+						}
+					}
+					//订阅区域
+					if nbs.AreaCount != 0 && city_count != 0 {
+						subscription_area = fmt.Sprintf("%d个省级地区、%d个地市", nbs.AreaCount, city_count)
+						log.Println(subscription_area)
+					} else if nbs.AreaCount == 0 && city_count != 0 {
+						subscription_area = fmt.Sprintf("%d个地市", city_count)
+					} else if nbs.AreaCount != 0 && city_count == 0 {
+						subscription_area = fmt.Sprintf("%d个省级地区", nbs.AreaCount)
+					} else {
+						subscription_area = "全国"
+					}
+					//行业
+					if nbs.BuyerclassCount != 0 {
+						industry = fmt.Sprintf("%d个行业", nbs.BuyerclassCount)
+					} else {
+						industry = "全行业"
+					}
+
+					// 订阅周期 有效日期
+					if vip_endtime != "" && vip_starttime != "" {
+						//订阅周期
+
+						log.Println(subscription_cycle)
+						//有效日期
+						vip_starttime = strings.Replace(vip_starttime, "-", ".", -1)
+						vip_endtime = strings.Replace(vip_endtime, "-", ".", -1)
+						effective_date = fmt.Sprintf("%v-%v", vip_starttime, vip_endtime)
+						log.Println(effective_date)
+					}
+				}
+
+			}
+
 			//vip
 			product_type = "VIP订阅"
-			mail_title = "电子发票申请,剑鱼标讯VIP订单【" + order_code + "】,请查收"
-			mailcontent = fmt.Sprintf("", bill_title, company_flag, bill_company, taxnum_flag, bill_taxnum, order_code, create_time, pay_time, product_type, isShowTransaction, pay_way, transaction_id, offlineImgSrc, data_spec, data_count, order_money, user_mail, user_phone)
+			mail_title = "电子发票申请-[剑鱼标讯]VIP订阅(" + order_code + ")"
+
+			mailcontent = fmt.Sprintf(ExConf.Mail_vip_invoice_finance_content, bill_title, company_flag, bill_company, taxnum_flag, bill_taxnum, order_code, create_time, pay_time, pay_way, product_type, pay_money, subscription_area, industry, "订阅周期", effective_date)
 		}
 	}
 	//发送邮件

+ 1 - 1
src/jfw/modules/subscribepay/src/entity/subscribeVip.go

@@ -208,7 +208,7 @@ func (this *vipSubscribeStruct) NewBuySet(area *map[string]interface{}, industry
 		buyset.Citys = citys      //城市
 		buyset.AreaCount = pCount //地区
 	} else {
-		buyset.BuyerclassCount = -1 //全国
+		buyset.AreaCount = -1 //全国
 	}
 	//行业数量
 	buyset.BuyerclassCount = qutil.If(len(industry) > 0, len(industry), -1).(int)

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

@@ -52,7 +52,7 @@ func (d *CommonAction) ApplyInvoice() error {
 		go func() {
 			orderdata := util.Mysql.FindOne("dataexport_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,pay_way", "")
+			}, "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,pay_money,vip_starttime,vip_endtime", "")
 			tt := time.Now()
 			pay_time := qutil.FormatDate(&tt, qutil.Date_Full_Layout)
 			entity.SendMailToBJFinance(orderdata, pay_time, "", 2, config.GmailAuth)

+ 2 - 2
src/jfw/modules/subscribepay/src/service/orderListDetails.go

@@ -55,7 +55,7 @@ func (this *OrderListDetails) GetOrderPayAllMsg() {
 			"order_code": orderCode,
 			//"order_status": 1,
 		}
-		oData := util.Mysql.FindOne("dataexport_order", query, "prepay_time,pay_time,pay_way,original_price,applybill_status,out_trade_no,filter,product_type,order_status,applybill_type,applybill_taxnum,applybill_company,vip_starttime,vip_endtime", "")
+		oData := util.Mysql.FindOne(tableName_order, query, "prepay_time,pay_time,pay_way,original_price,applybill_status,out_trade_no,filter,product_type,order_status,applybill_type,applybill_taxnum,applybill_company,vip_starttime,vip_endtime", "")
 		log.Println("odata:", oData)
 		//查询订单信息
 		if oData == nil || len(*oData) == 0 {
@@ -393,7 +393,7 @@ func (o *OrderListDetails) SetRes(res []map[string]interface{}, queryM map[strin
 
 //查询数据
 func (o *OrderListDetails) Datas(queryM map[string]interface{}, pageNum int) (haveNextPage bool, result []map[string]interface{}, err error) {
-	res := *util.Mysql.Find(tableName_order, queryM, "id,order_code,filter_publishtime,create_time,data_spec,filter_id,filter_keys,order_money,data_count,order_status,pay_way,product_type,filter,pay_time,vip_starttime,vip_endtime", "create_time desc", -1, 0)
+	res := *util.Mysql.Find(tableName_order, queryM, "id,order_code,filter_publishtime,create_time,data_spec,filter_id,filter_keys,order_money,data_count,order_status,pay_way,product_type,filter,pay_time,vip_starttime,vip_endtime,applybill_status,applybill_type,applybill_taxnum,applybill_company", "create_time desc", -1, 0)
 	if len(res) > 0 {
 		start := (pageNum - 1) * pagesize_max
 		end := pageNum * pagesize_max

+ 12 - 2
src/web/templates/weixin/dataExport/dataExport_toMyOrder.html

@@ -696,6 +696,7 @@
 					var psss = 0;
 					for(var index in object){
 					    var obj=object[index];
+					    console.log(obj)
 					    if(obj.product_type=="历史数据"){
 				    		count++;
 							var id = obj.id;
@@ -770,10 +771,19 @@
 	                        	orderHtml=""
 	                        	orderHtml+='<span class="status">'+orderStatus+'</span>'
 	                    		orderHtml+="<a class=\"shanchu iconfont  icon-shanchu\" title=\"删除订单\" onclick=\"deleteOrder(" + id +",this)\"></a>";
+	                        	
 	                        	iconHtml=""
 	                        	iconHtml+='<div class="card-footer">'
-											+'<a  onclick="onceMore(this)" class="btn cancle">再次购买</a>'
-										+'</div>'
+	                        	//已完成订单 开发票判断  0未申请  1已申请
+	                        	var applybill_status=obj.applybill_status;
+	                        	if(applybill_status==0){
+	                        		//iconHtml+='<a  onclick="" class="btn cancle">开发票</a>'
+	                        		iconHtml+='<a  onclick="onceMore(this)" class="btn cancle">再次购买</a>'
+	                        	}else if(applybill_status==1){
+	                        		//iconHtml+='<a  onclick="" class="btn cancle">查看发票</a>'
+	                        		iconHtml+='<a  onclick="onceMore(this)" class="btn cancle">再次购买</a>'
+	                        	}	
+								iconHtml+='</div>'
 	                        }else if(orderStatus==-2){
 	                        	orderStatus="已取消";
 	                        	orderHtml="";

+ 6 - 1
src/web/templates/weixin/email/bind_email.html

@@ -32,6 +32,7 @@
 				var userId={{.T.userId}}
				var reg = /^[a-zA-Z0-9]+([._-]*[a-zA-Z0-9]*)*@[a-zA-Z0-9]+.[a-zA-Z0-9{2,5}$]/;
 				//判断是否是更改邮箱;
 				var param = getParam('name');
+				var orderCode=getParam("orderCode");
 				if (param=="change"){
 					$(".email_input").attr("placeholder",{{.T.text_email}})
 					$("#bindBtn").html("确定");
@@ -116,7 +117,11 @@
 										window.location.replace("/front/wxMyOrder/setSuccess?name=changeEmail"); 
 									}else{
 										sessionStorage.removeItem("send_myemail_"+{{.T.userId}});
-										window.location.replace("/front/wxMyOrder/setSuccess?name=bindEmail"); 
+										if((param="invoice")&&(orderCode!="")){
+											window.location.replace("/front/wxMyOrder/setSuccess?name=invoice&orderCode="+orderCode); 
+										}else{
+											window.location.replace("/front/wxMyOrder/setSuccess?name=bindEmail"); 
+										}
 									}
 								}
 							})

+ 17 - 4
src/web/templates/weixin/email/bind_success.html

@@ -12,9 +12,22 @@
 		<div class="bind_success">
			<div class="success">
				<img src="{{Msg "seo" "cdn"}}/wxmyemail/img/successed.png" >
				<p></p>
			</div>
			<button class="common_btn back">返回 <time class="time">()</time> </button>
		</div>
		<script src="{{Msg "seo" "cdn"}}/wxmyemail/js/zepto.js"></script>
		<script src="{{Msg "seo" "cdn"}}/wxmyemail/js/public.js"></script>
		<script>
			$(function(){
 				//分享
 				initShare({{.T.signature}},{{.T.openid}},2,"jy_wxmyorder",{{.T.nickname}},{{.T.avatar}});
				
-				let param = getParam('name');//获取url传来的参数 判断显示成功的字幕
				console.log(param)
				var time = 6;
				function countDown(){
					if(time == 0){
						$('.time').html('');
						window.location.replace('/front/wxMyOrder/myEmail');
					}else{
						$('.time').html('(' + time + ')');
						time--;
						setTimeout(()=>{
							countDown()
						},1000)
					}
				}
				if(param == 'bindEmail'){
					$('.success>p').html('邮箱绑定成功')
					countDown()
				}else if(param == 'bindPhoe'){
					$('.success>p').html('手机号绑定成功')
					countDown()
				}else if(param == 'changeEmail'){
					$('.success>p').html('邮箱更换成功')
					countDown()
				}else if(param == 'choosePhone'){
					$('.success>p').html('手机号更换成功')
					countDown()
				}else if(param =="unbind"){
-					$('.success>p').html('邮箱解绑成功')
-					countDown()
-				}
				/* 返回 */
				$('.back').on('click',() =>{
					window.location.replace('/front/wxMyOrder/myEmail');
				})
			})
		</script>
+				let param = getParam('name');//获取url传来的参数 判断显示成功的字幕
+				var orderCode=getParam("orderCode"); //开发票的订单
				console.log(param)
				var time = 6;
				function countDown(){
					if(time == 0){
						$('.time').html('');
+						if((param="invoice")&&(orderCode!="")){
+							window.location.replace('/front/vipsubscribe/toOrderDetailPage?orderCode='+orderCode);
+						}else{
+							window.location.replace('/front/wxMyOrder/myEmail');
+						}
					}else{
						$('.time').html('(' + time + ')');
						time--;
						setTimeout(()=>{
							countDown()
						},1000)
					}
				}
				if(param == 'bindEmail'){
					$('.success>p').html('邮箱绑定成功');
					countDown();
				}else if(param == 'bindPhoe'){
					$('.success>p').html('手机号绑定成功');
					countDown();
				}else if(param == 'changeEmail'){
					$('.success>p').html('邮箱更换成功');
					countDown();
				}else if(param == 'choosePhone'){
					$('.success>p').html('手机号更换成功');
					countDown();
				}else if(param =="unbind"){
+					$('.success>p').html('邮箱解绑成功');
+					countDown();
+				}else if(param=="invoice"){
+					$('.success>p').html('邮箱绑定成功');
+					countDown();
+				}
				/* 返回 */
				$('.back').on('click',() =>{
					if((param="invoice")&&(orderCode!="")){
+							window.location.replace('/front/vipsubscribe/toOrderDetailPage?orderCode='+orderCode);
+						}else{
+							window.location.replace('/front/wxMyOrder/myEmail');
+						}
				})
			})
		</script>
 	{{include "/common/baiducc.html"}}
	</body>
 </html>

+ 92 - 1
src/web/templates/weixin/vipsubscribe/vip_order_detail.html

@@ -22,6 +22,64 @@
 	.person > p >span , .unit > p >span{
 		margin-bottom: .12rem;
 	}
+	
+	.jymobile-setting-dialog {
+  font-size: .32rem;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd {
+  padding: 0;
+  height: 0.82rem;
+  line-height: .82rem;
+  text-align: center;
+  background-color: #F5F4F9;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd .weui-dialog__title {
+  font-size: .36rem;
+}
+
+.jymobile-setting-dialog .weui-dialog__bd {
+  padding: .37rem .1rem .38rem;
+  color: #1D1D1D;
+  font-size: .32rem;
+  text-align: center;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft {
+  display: flex;
+  padding: 0 0 .38rem 0;
+  text-align: center;
+  justify-content: space-around;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft:after {
+  border: none;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn {
+  display: flex;
+  flex: none;
+  align-items: center;
+  justify-content: center;
+  width: 1.72rem;
+  height: .72rem;
+  color: #fff;
+  font-size: .32rem;
+  vertical-align: center;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_primary {
+  margin: 0;
+  margin-left: .3rem;
+  background-color: #2CB7CA;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_default {
+  margin: 0;
+  margin-right: .3rem;
+  background-color: #BFBFC3;
+}
 </style>
 <body>
     <div class="vip_order_detail">
@@ -265,7 +323,16 @@ try{
             //已支付未申请发票
             $(".invoice .invoicing").css("display","");
             $(".invoicing").on("click",function(){
-            	window.location.href="/front/vipsubscribe/openInvoice/"+orderCode;
+            	var nowTimestamp= (new Date()).valueOf();
+            	$.post("/subscribepay/orderListDetails/emailOperation?v="+nowTimestamp,{},function(r){
+					if (r.success){
+						//没有绑定邮箱
+						weuiDialog();
+					}else{
+						//绑定了邮箱
+						window.location.href="/front/vipsubscribe/openInvoice/"+orderCode;
+					}
+				})
             });
           }else{
             //已支付已申请发票
@@ -334,6 +401,30 @@ try{
      (Array(2).join(0)+(d.getMonth() + 1)).slice(-2) + "." +
      (Array(2).join(0)+(d.getDate())).slice(-2);
     }
+    
+	function weuiDialog(){
+		weui.dialog({
+			title: '提示信息',
+			content: '您未绑定邮箱<br/>请绑定后再开发票',
+	        className: 'jymobile-setting-dialog',// 设置弹框的类名
+	        buttons: [
+	        {
+	        	label: '去设置',
+	        	type: 'primary',
+	        	onClick: function () {
+	        		window.location.replace("/front/wxMyOrder/myEmail?name=invoice&orderCode="+orderCode);
+	        	}
+	        },
+	        {
+	        	label: '取消',
+	        	type: 'default',
+	        	onClick: function () {
+	        		console.log('取消')
+	        	}
+	        }
+	        ]
+	    });
+	}
   })
       
 </script>

Някои файлове не бяха показани, защото твърде много файлове са промени