dever 5 years ago
parent
commit
f574fd77ea

+ 5 - 1
config/base.php

@@ -42,8 +42,12 @@ $config['base'] = array
 		'skin' => array
 		(
 			'reg' => 35247,
-			'order' => 38099,
+			'order' => 35246,
 			'code' => 35245,
+			# 需要增加一个notice
+			'notice' => 38099,
+			# order的反馈方案修改后
+			'feedback' => 38747,
 		),
 		# 短信签名
 		'sign' => 47159,

+ 65 - 0
ku/database/cate.php

@@ -0,0 +1,65 @@
+<?php
+
+return array
+(
+	# 表名
+	'name' => 'cate',
+	# 显示给用户看的名称
+	'lang' => '商品分类',
+	'order' => 9,
+	# 数据结构
+	'struct' => array
+	(
+	
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'search'	=> 'order',
+			//'list'		=> true,
+		),
+
+		'name'		=> array
+		(
+			'type' 		=> 'varchar-300',
+			'name' 		=> '分类名称',
+			'default' 	=> '',
+			'desc' 		=> '分类名称',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+			'list'		=> true,
+		),
+
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '创建时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			//'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		//'excel'	=> true,
+		//'delete' => false,
+		//'edit' => false,
+		//'insert' => false,
+	),
+);

+ 180 - 0
ku/database/product.php

@@ -0,0 +1,180 @@
+<?php
+
+$type = array
+(
+	1 => '有赞',
+	2 => '淘宝',
+	3 => '天猫',
+);
+$cate = function()
+{
+	return Dever::db('ku/cate')->state();
+};
+return array
+(
+	# 表名
+	'name' => 'product',
+	# 显示给用户看的名称
+	'lang' => '商品管理',
+	'order' => 10,
+	'end' => array
+	(
+		'update' => 'ku/lib/manage.spider',
+		'insert' => 'ku/lib/manage.spider',
+	),
+	# 数据结构
+	'struct' => array
+	(
+	
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'search'	=> 'order',
+			//'list'		=> true,
+		),
+
+		'type'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '商品来源',
+			'default' 	=> '1',
+			'desc' 		=> '商品来源',
+			'match' 	=> 'is_numeric',
+			'option' 	=> $type,
+			'search'	=> 'select',
+			//'update'	=> 'radio',
+			//'control'	=> 'type',
+			'list'		=> true,
+		),
+
+		'cate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '商品分类',
+			'default' 	=> '1',
+			'desc' 		=> '商品分类',
+			'match' 	=> 'is_numeric',
+			'option' 	=> $cate,
+			'update'	=> 'select',
+			//'control'	=> 'type',
+			//'list'		=> true,
+		),
+
+		'link'		=> array
+		(
+			'type' 		=> 'varchar-300',
+			'name' 		=> '商品链接-用于自动抓取商品名称、图片、价格等信息,注意:天猫不能自动抓取,请手动填写商品信息',
+			'default' 	=> '',
+			'desc' 		=> '商品链接',
+			'match' 	=> 'is_string',
+			'search'	=> 'fulltext',
+			'update'	=> 'textarea',
+		),
+
+		'code'		=> array
+		(
+			'type' 		=> 'varchar-500',
+			'name' 		=> '淘口令或者有赞商城的商品路径-商品路径如:pages/goods/detail/index?alias=3nwqrknhydge',
+			'default' 	=> '',
+			'desc' 		=> '淘口令',
+			'match' 	=> 'option',
+			'update'	=> 'textarea',
+		),
+
+		'name'		=> array
+		(
+			'type' 		=> 'varchar-300',
+			'name' 		=> '商品名称',
+			'default' 	=> '',
+			'desc' 		=> '商品名称',
+			'search'	=> 'fulltext',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+			'list'		=> '"{link}" ? "<a href=\'{link}\'  target=\'_blank\' />{name}</a>" : "{name}"',
+		),
+
+		'price'		=> array
+		(
+			'type' 		=> 'varchar-300',
+			'name' 		=> '商品价格-输入整体价格',
+			'default' 	=> '',
+			'desc' 		=> '商品价格',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+		),
+
+		'pic'		=> array
+		(
+			'type' 		=> 'varchar-300',
+			'name' 		=> '商品图片',
+			'default' 	=> '',
+			'desc' 		=> '商品图片',
+			'match' 	=> 'option',
+			'update'	=> 'image',
+			'key' 		=> '1',
+			'list'		=> '"{pic}" ? "<img src=\'{pic}\' width=\'200\' />" : ""',
+		),
+
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '创建时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			//'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		//'excel'	=> true,
+		//'delete' => false,
+		//'edit' => false,
+		//'insert' => false,
+	),
+
+	'request' => array
+	(
+		'getDataByIds' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'id' => array('yes', 'in'),
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('id' => 'desc'),
+			'col' => '*',
+		),
+		'search' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'name' => array('yes', 'like'),
+				'id' => array('yes', 'in'),
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('id', 'desc'),
+			'col' => '*,name as value,name as label|id',//这里为了做autocomplete进行测试,必须输出value和label
+		),
+	),
+);

+ 8 - 0
ku/index.php

@@ -0,0 +1,8 @@
+<?php
+
+define('DEVER_APP_NAME', 'ku');
+define('DEVER_APP_LANG', '商品库管理');
+define('DEVER_APP_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+define('DEVER_MANAGE_ORDER', 99);
+define('DEVER_MANAGE_ICON', 'glyphicon glyphicon-credit-card');
+include(DEVER_APP_PATH . '../boot.php');

+ 78 - 0
ku/lib/Manage.php

@@ -0,0 +1,78 @@
+<?php
+
+namespace Ku\Lib;
+
+use Dever;
+
+class Manage
+{
+	/**
+     * 完成反馈,发送短信
+     *
+     * @return mixed
+     */
+    public function spider($id, $name, $data)
+    {
+    	$link = Dever::param('link', $data);
+    	if (strpos($link, 'taobao.com')) {
+        	$type = 2;
+        } elseif (strpos($link, 'tmall.com')) {
+            $type = 3;
+        } else {
+            $type = 1;
+        }
+        $update['where_id'] = $id;
+        $update['type'] = $type;
+        Dever::db('ku/product')->update($update);
+        # 生成产品的链接
+        Dever::daemon('spider/handle.createProduct?id=' . $id, 'ku');
+        //Dever::load('ku/spider/handle.createProduct?id=' . $id);
+    }
+
+    /**
+     * 获取所有产品
+     *
+     * @return mixed
+     */
+    public function products($state = true)
+    {
+        $result = Dever::db('ku/cate')->state();
+        foreach ($result as $k => $v) {
+        	$result[$k]['child'] = Dever::db('ku/product')->state(array('cate' => $v['id']));
+        }
+        $result['state'] = 1;
+
+        return $result;
+    }
+
+    /**
+     * 获取产品列表,用于后台联动搜索
+     *
+     * @return mixed
+     */
+    public function search_product_api()
+    {
+        $data = Dever::db('ku/product')->search(array('name' => Dever::input('term')));
+
+        //Dever::debug($data);
+        if ($data) {
+            return $data;
+        }
+        return array
+            (
+            0 => array('id' => -1, 'value' => '没有找到您搜索的数据', 'label' => '没有找到您搜索的数据'),
+        );
+    }
+
+    /**
+     * 获取产品列表,用于后台联动搜索
+     *
+     * @return mixed
+     */
+    public function search_product_by_ids($id)
+    {
+        $data = Dever::db('ku/product')->search($id);
+
+        return $data;
+    }
+}

+ 19 - 22
service/spider/Handle.php → ku/spider/Handle.php

@@ -1,5 +1,5 @@
 <?php
-namespace Service\Spider;
+namespace Ku\Spider;
 
 use Dever;
 
@@ -8,31 +8,28 @@ class Handle
 	public function createProduct($id = false)
     {
     	$id = Dever::input('id', $id);
-        $feedback = Dever::db('service/feedback')->one($id);
+        $product = Dever::db('ku/product')->one($id);
         $spider = $this;
-        if ($feedback) {
-            $feedback['product'] = Dever::array_decode($feedback['product']);
-            if ($feedback['product']) {
-                foreach ($feedback['product'] as $k => $v) {
-                	$update = false;
-                	if (!$v['name'] && $v['update'][0] == 1) {
-                		$update = true;
-                	} elseif ($v['update'][0] == 2) {
-                		$update = true;
-                	}
-                    if ($v['link'] && $update) {
-                        $data = $spider->get($v['link']);
-                        if ($data) {
-                            $feedback['product'][$k]['name'] = $data['name'];
-                            $feedback['product'][$k]['pic'] = $this->pic($data);
-                            $feedback['product'][$k]['price'] = $data['price'];
-                        }
-                    }
+        $param = array();
+        if ($product && $product['link']) {
+            $update = false;
+            if (!$product['name'] || !$product['pic'] || !$product['price']) {
+                $update = true;
+            }
+            if ($update) {
+                $data = $spider->get($product['link']);
+                if ($data) {
+                    $param['name'] = $product['name'] ? $product['name'] : $data['name'];
+                    $param['pic'] = $product['pic'] ? $product['pic'] : $this->pic($data);
+                    $param['price'] = $product['price'] ? $product['price'] : $data['price'];
                 }
             }
 
             Dever::config('base')->hook = true;
-            Dever::db('service/feedback')->update(array('where_id' => $id, 'product' => Dever::array_encode($feedback['product'])));
+            if ($param) {
+                $param['where_id'] = $id;
+                Dever::db('ku/product')->update($param);
+            }
         }
     }
 
@@ -82,7 +79,7 @@ class Handle
         if (!$type) {
         	return false;
         }
-        return Dever::load('service/spider/' . $type);
+        return Dever::load('ku/spider/' . $type);
 	}
 
 	private function rule($rule, $data, $type)

+ 1 - 1
service/spider/Taobao.php → ku/spider/Taobao.php

@@ -1,5 +1,5 @@
 <?php
-namespace Service\Spider;
+namespace Ku\Spider;
 
 use Dever;
 

+ 1 - 1
service/spider/Tmall.php → ku/spider/Tmall.php

@@ -1,5 +1,5 @@
 <?php
-namespace Service\Spider;
+namespace Ku\Spider;
 
 use Dever;
 

+ 1 - 1
service/spider/Youzan.php → ku/spider/Youzan.php

@@ -1,5 +1,5 @@
 <?php
-namespace Service\Spider;
+namespace Ku\Spider;
 
 use Dever;
 

+ 40 - 0
service/database/feedback.php

@@ -18,6 +18,11 @@ $status = array
 	1 => '保存后立刻发送给用户',
 	2 => '保存后不发送给用户',
 );
+$sms = array
+(
+	1 => '不发送提醒短信',
+	2 => '发送提醒短信',
+);
 
 $product_update = array
 (
@@ -31,6 +36,11 @@ $product = function()
 	return Dever::db('service/product')->state();
 };
 
+$products = function()
+{
+	return Dever::load('ku/lib/manage.products');
+};
+
 
 $id = Dever::input('search_option_product_id');
 $name = '';
@@ -204,8 +214,35 @@ return array
 			'option' 	=> $status,
 			'update'	=> 'radio',
 			//'list'		=> true,
+			'control'	=> 'status',
+		),
+
+		'sms'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '是否发送短信-二次服务订单修正后,是否发送短信,首次提交无需修改该状态',
+			'default' 	=> '1',
+			'desc' 		=> '是否发送短信',
+			'match' 	=> 'is_numeric',
+			'option' 	=> $sms,
+			'update'	=> 'radio',
+			//'list'		=> true,
+			'show'		=> 'status=2',
+		),
+
+		'products'		=> array
+		(
+			'type' 		=> 'text-255',
+			'name' 		=> '商品清单',
+			'default' 	=> '',
+			'desc' 		=> '商品清单',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+			//'option'	=> $products,
+			'autocomplete' => array('ku/lib/manage.search_product?json=1', 'id', 'ku/lib/manage.search_product_by_ids'),
 		),
 
+		
 		'product'		=> array
 		(
 			'type' 		=> 'longtext',
@@ -213,6 +250,7 @@ return array
 			'default' 	=> '',
 			'desc' 		=> '商品清单',
 			'match' 	=> 'is_string',
+			/*
 			'update'	=> array
 			(
 				array
@@ -298,7 +336,9 @@ return array
 					'key' 		=> '1',
 				),
 			),
+			*/
 		),
+		
 
 		'state'		=> array
 		(

+ 73 - 12
service/database/order.php

@@ -11,6 +11,8 @@ $status = array
 	1 => '待支付',
 	2 => '已支付',
 	3 => '支付失败',
+	//4 => '申请退款',
+	5 => '已退款',
 );
 
 $product = function()
@@ -41,12 +43,12 @@ return array
 	# 显示给用户看的名称
 	'lang' => '订单管理',
 	'order' => 100,
-	/*
+
 	'end' => array
 	(
 		'update' => 'service/lib/manage.order',
 	),
-	*/
+
 	# 数据结构
 	'struct' => array
 	(
@@ -121,8 +123,9 @@ return array
 			'match' 	=> 'is_numeric',
 			'option' 	=> $type,
 			'search'	=> 'select',
-			'update'	=> 'checkbox',
+			'update'	=> 'radio',
 			//'list'		=> true,
+			'control'	=> 'type',
 		),
 
 		'notice'		=> array
@@ -140,9 +143,10 @@ return array
 			'name' 		=> '支付金额',
 			'default' 	=> '',
 			'desc' 		=> '支付金额',
-			'match' 	=> 'is_string',
+			'match' 	=> 'option',
 			'update'	=> 'text',
 			//'list'		=> true,
+			'show'		=> 'type=1',
 		),
 
 		'code'		=> array
@@ -151,9 +155,10 @@ return array
 			'name' 		=> '使用的兑换码',
 			'default' 	=> '',
 			'desc' 		=> '使用的兑换码',
-			'match' 	=> 'is_string',
+			'match' 	=> 'option',
 			'update'	=> 'text',
 			//'list'		=> true,
+			'show'		=> 'type=2',
 		),
 
 		'status'		=> array
@@ -166,7 +171,8 @@ return array
 			'option' 	=> $status,
 			'search'	=> 'select',
 			'update'	=> 'radio',
-			'list'		=> true,
+			'list'		=> 'Dever::load("service/lib/manage.showOrderStatus", "{id}")',
+			'control'	=> 'status',
 		),
 
 		'feedback_status'		=> array
@@ -204,6 +210,61 @@ return array
 			'show'		=> 'feedback_status=2',
 		),
 
+		'tk_time' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '退款时间',
+			'default' 	=> '',
+			'desc' 		=> '退款时间',
+			'match' 	=> 'option',
+			//'list'		=> true,
+			'show'		=> 'status=5',
+		),
+
+		'tk_admin' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '退款审核人',
+			'default' 	=> '1',
+			'desc' 		=> '退款审核人',
+			'match' 	=> 'option',
+			//'list'		=> true,
+			'show'		=> 'status=5',
+		),
+
+		'tk_desc'		=> array
+		(
+			'type' 		=> 'varchar-300',
+			'name' 		=> '退款备注',
+			'default' 	=> '',
+			'desc' 		=> '退款备注',
+			'match' 	=> 'option',
+			'update'	=> 'textarea',
+			//'show'		=> 'status=5',
+		),
+
+		'feedback_date' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '反馈时间',
+			'default' 	=> '',
+			'desc' 		=> '反馈时间',
+			'match' 	=> 'option',
+			'search'	=> 'date',
+			//'list'		=> true,
+		),
+
+		'survey_date' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '提交问卷时间',
+			'default' 	=> '',
+			'desc' 		=> '提交问卷时间',
+			'match' 	=> 'option',
+			'search'	=> 'date',
+			//'list'		=> true,
+		),
+
 		'state'		=> array
 		(
 			'type' 		=> 'tinyint-1',
@@ -216,22 +277,22 @@ return array
 		'cdate'		=> array
 		(
 			'type' 		=> 'int-11',
-			'name' 		=> '单时间',
+			'name' 		=> '单时间',
 			'match' 	=> array('is_numeric', time()),
 			'desc' 		=> '',
 			# 只有insert时才生效
 			'insert'	=> true,
 			'search'	=> 'date',
 			//'list'		=> 'date("Y-m-d H:i:s", {cdate})',
-			'list'		=> 'Dever::load("service/lib/manage.shoeOrderTime", "{id}")',
+			'list'		=> 'Dever::load("service/lib/manage.showOrderTime", "{id}")',
 		),
 	),
 
 	'manage' => array
 	(
 		'delete' => false,
-		'edit' => false,
-		'insert' => false,
+		//'edit' => false,
+		//'insert' => false,
 
 		'button' => array
 		(
@@ -241,7 +302,7 @@ return array
 		//'list' => array('查看问卷', '"feedback&project=service&search_option_order_id={id}&search_option_product_id={product_id}&oper_parent=order&oper_project=service"'),
 
 		'list_button' => array(
-			//'edit' => array('设计反馈', 'feedback_status,feedback_time,feedback_desc', '{status} == 2'),
+			'edit' => array('退款', 'tk_time,tk_desc,tk_admin', '{status} > 1'),
 
 			'add' => array('添加方案', '"feedback&project=service&search_option_order_id={id}&search_option_product_id={product_id}&search_option_uid={uid}&oper_parent=order&oper_project=service&oper_save_jump=order&where_id={id}"', '{feedback_status} >= 3'),
 		),
@@ -285,7 +346,7 @@ return array
 			(
 				'cdate' => array('yes', '>='),
 				'feedback_status' => array(2, '<='),
-				'notice' => array(1, '<'),
+				'notice' => 'yes',
 				'state' => 1,
 			),
 			'type' => 'all',

+ 3 - 1
service/lib/Email.php

@@ -30,6 +30,7 @@ class Email
 
         $mail->isSMTP();
         //$mail->SMTPDebug = 2;
+        $mail->CharSet = 'UTF-8';
         $mail->Host = 'smtp.exmail.qq.com';
         $mail->Port = 465;
         $mail->SMTPSecure = 'ssl';
@@ -38,7 +39,8 @@ class Email
         $mail->Password = 'ILoveJiazhi0426';
         $mail->setFrom('miniapps@jiazhihome.com', '家芝服务');
         $mail->addAddress($email, $user['username']);
-        $mail->Subject = '家芝'.$product['name'].'方案';
+        $name = '家芝'.$product['name'].'方案';
+        $mail->Subject = "=?utf-8?B?" . base64_encode($name) . "?=";
         $mail->Body = '您好,'.$user['username'].',请见附件。';
         $mail->addAttachment($pdf);
         if (!$mail->send()) {

+ 74 - 13
service/lib/Manage.php

@@ -21,29 +21,66 @@ class Manage
 		}
 	}
 
+    public function showOrderStatus($id)
+    {
+        $info = Dever::db('service/order')->one($id);
+        if ($info) {
+            if ($info['status'] == 1) {
+                return '待支付';
+            } elseif ($info['status'] == 2) {
+                return '已支付';
+            } elseif ($info['status'] == 3) {
+                return '支付失败';
+            } elseif ($info['status'] == 5) {
+                $table['状态'] = '已退款';
+                $manage = Dever::db('manage/admin')->one($info['tk_admin']);
+                $table['备注'] = $info['tk_desc'];
+                $table['时间'] = date('Y-m-d H:i:s', $info['tk_time']);
+                $table['操作人'] = $manage['username'];
+                return Dever::table($table);
+            }
+        }
+    }
+
     /**
      * 得到订单时间
      *
      * @return mixed
      */
-    public function shoeOrderTime($id)
+    public function showOrderTime($id)
     {
         $info = Dever::db('service/order')->one($id);
 
         if ($info) {
             $table = array();
-
-            $user = Dever::db('survey/user_answer')->getOldOne(array('order_id' => $id));
-
+            $update = array();
             $table['申请时间'] = date("Y-m-d H:i:s", $info['cdate']);
-            if ($user) {
-                $table['提交问卷时间'] = date("Y-m-d H:i:s", $user['cdate']);
+            
+            if (!$info['survey_date']) {
+                $user = Dever::db('survey/user_answer')->getOldOne(array('order_id' => $id));
+                if ($user) {
+                    $table['提交问卷时间'] = date("Y-m-d H:i:s", $user['cdate']);
+                    $update['survey_date'] = $user['cdate'];
+                }
+            } else {
+                $table['提交问卷时间'] = date("Y-m-d H:i:s", $info['survey_date']);
+            }
+            
+            if (!$info['feedback_date']) {
+                $feedback = Dever::db('service/feedback')->one(array('order_id' => $id));
+                if ($feedback) {
+                    $table['反馈时间'] = date("Y-m-d H:i:s", $feedback['cdate']);
+                    $update['feedback_date'] = $feedback['cdate'];
+                }
+            } else {
+                $table['反馈时间'] = date("Y-m-d H:i:s", $info['feedback_date']);
             }
 
-            $feedback = Dever::db('service/feedback')->one(array('order_id' => $id));
-            if ($feedback) {
-                $table['反馈时间'] = date("Y-m-d H:i:s", $feedback['cdate']);
+            if ($update) {
+                $update['where_id'] = $id;
+                Dever::db('service/order')->update($update);
             }
+            
 
             return Dever::table($table);
         }
@@ -54,10 +91,25 @@ class Manage
      * 设计反馈之后,发送短信 (已废弃)
      *
      * @return mixed
-     *
+     */
     public function order($id, $name, $data)
     {
-        $feedback_status = Dever::param('feedback_status', $data);
+        # 更改退款状态
+        $status = Dever::param('status', $data);
+        $tk_desc = Dever::param('tk_desc', $data);
+        if ($tk_desc && $tk_desc != 'null') {
+            $admin = Dever::load('manage/auth.info');
+            $update['where_id'] = $id;
+            $update['tk_admin'] = $admin['id'];
+            $update['tk_time'] = time();
+            $update['status'] = 5;
+            Dever::db('service/order')->update($update);
+        } else {
+            $update['where_id'] = $id;
+            $update['status'] = 2;
+            Dever::db('service/order')->update($update);
+        }
+        /*
         if ($feedback_status == 2) {
             $order = Dever::db('service/order')->one($id);
             $user = Dever::db('passport/user')->one($order['id']);
@@ -65,6 +117,7 @@ class Manage
                 Dever::load('passport/applet')->send($user['mobile'], $order['order_id']);
             }
         }
+        */
     }
 
     /**
@@ -88,7 +141,15 @@ class Manage
 
                 $user = Dever::db('passport/user')->one($order['uid']);
                 if ($user['mobile'] && $order['order_id']) {
-                    Dever::setInput('skin', 'order');
+
+                    $skin = 'order';
+                    # 判断是否二次修改
+                    $sms = Dever::param('sms', $data);
+                    if ($sms == 2) {
+                        $skin = 'feedback';
+                    }
+
+                    Dever::setInput('skin', $skin);
                     Dever::load('passport/applet')->send($user['mobile'], $order['order_id']);
                 }
             }
@@ -99,7 +160,7 @@ class Manage
         }
 
         # 生成产品的链接
-        Dever::daemon('spider/handle.createProduct?id=' . $id, 'service');
+        //Dever::daemon('spider/handle.createProduct?id=' . $id, 'service');
         //Dever::load('service/spider/handle.createProduct?id=' . $id);
     }
 

+ 8 - 1
service/lib/Pay.php

@@ -10,8 +10,15 @@ class Pay
 	 *
 	 * @return mixed
 	 */
-	public function act($product_id, $uid, $cash, $order_id, $status, $msg)
+	public function act($param)
 	{
+        $product_id = $param['product_id'];
+        $uid = $param['uid'];
+        $cash = $param['cash'];
+        $order_id = $param['order_id'];
+        $status = $param['status'];
+        $msg = $param['msg'];
+
 		if ($status == 2) {
             # 支付成功
             $order_id = 'WX' . $order_id;

+ 51 - 21
service/lib/Wechat.php

@@ -49,33 +49,63 @@ class Wechat
 	 */
 	public function sendTemplateMsg()
 	{
-		$where['cdate'] = time() + 24*3600;
+		$time = time();
+		$this->order($time + 24*3600, 1);
+		$this->order($time + 72*3600, 2);
+		$this->order($time + 120*3600, 3);
+
+		$this->order($time + 30 * 24 * 3600,  4, 'sms');
+		$this->order($time + 180 * 24 * 3600,  5, 'sms');
+	}
+
+	private function order($time, $notice, $type = 'msg')
+	{
+		$where['cdate'] = $time;
+		$where['notice'] = $notice - 1;
 		$order = Dever::db('service/order')->getDataByTime($where);
 
 		if ($order) {
 			foreach ($order as $k => $v) {
-				$data = array
-				(
-					'keyword1' => array
-					(
-						'value' => $v['order_id'],
-					),
-					'keyword2' => array
-					(
-						'value' => date('Y-m-d H:i:s', $v['cdate']),
-					),
-					'keyword3' => array
-					(
-						'value' => $v['name'],
-					),
-					'keyword4' => array
+				Dever::db('service/order')->update(array('where_id' => $v['id'], 'notice' => $notice));
+				if ($type == 'msg') {
+					$data = array
 					(
-						'value' => '【家芝】您的软装设计服务订单:'.$v['name'].',尚未提交问卷,请微信搜索“家芝”小程序-我的服务,完成问卷后才能为您设计。',
-					),
-				);
-				Dever::db('service/order')->update(array('where_id' => $v['id'], 'notice' => 1));
-				$this->msg($v['product_id'], $v['uid'], $data);
+						'keyword1' => array
+						(
+							'value' => $v['order_id'],
+						),
+						'keyword2' => array
+						(
+							'value' => date('Y-m-d H:i:s', $v['cdate']),
+						),
+						'keyword3' => array
+						(
+							'value' => $v['name'],
+						),
+						'keyword4' => array
+						(
+							'value' => '【家芝】您的软装设计服务订单:'.$v['name'].',尚未提交问卷,请微信搜索“家芝”小程序-我的服务,完成问卷后才能为您设计。',
+						),
+					);
+					$this->msg($v['product_id'], $v['uid'], $data);
+				} else {
+					$this->sms($v['order_id'], $v['uid']);
+				}
+				
 			}
+
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	public function sms($order_id, $uid)
+	{
+		$user = Dever::db('passport/user')->one($uid);
+		if ($user && $user['mobile']) {
+			Dever::setInput('skin', 'notice');
+        	Dever::load('passport/applet')->send($user['mobile'], $order_id);
 		}
 	}
 

+ 22 - 7
service/src/Api.php

@@ -212,22 +212,35 @@ class Api extends Base
         $this->data['feedback'] = Dever::db('service/feedback')->one($id);
 
         if (isset($this->data['feedback']['product'])) {
-            $this->data['feedback']['product'] = Dever::array_decode($this->data['feedback']['product']);
+
+            if (isset($this->data['feedback']['products']) && $this->data['feedback']['products']) {
+                $this->data['feedback']['product'] = Dever::db('ku/product')->getDataByIds($this->data['feedback']['products']);
+            } else {
+                $this->data['feedback']['product'] = Dever::array_decode($this->data['feedback']['product']);
+            }
+            
           	if (isset($this->data['feedback']['product'][0]['name']) && !$this->data['feedback']['product'][0]['name']) {
               	$this->data['feedback']['product'] = array();
             } else {
                 foreach ($this->data['feedback']['product'] as $k => $v) {
-                    $this->data['feedback']['product'][$k]['type'] = $v['type'] = $v['type'][0];
-                    $this->data['feedback']['product'][$k]['update'] = $v['update'] = $v['update'][0];
+                    $this->data['feedback']['product'][$k]['type'] = $v['type'] = is_array($v['type']) ? $v['type'][0] : $v['type'];
+                    //$this->data['feedback']['product'][$k]['update'] = $v['update'] = is_array($v['update']) ? $v['update'][0] : $v['type'];
                     $this->data['feedback']['product'][$k]['wechat'] = '';
-                    if ($v['type'] == 3) {
+                    if ($this->data['feedback']['product'][$k]['type'] == 3) {
                         $this->data['feedback']['product'][$k]['taobao_code'] = '';
                         $this->data['feedback']['product'][$k]['youzan_path'] = '';
                         $this->data['feedback']['product'][$k]['wechat'] = $this->data['config']['wechat'];
-                    } elseif ($v['type'] == 2) {
+                    } elseif ($this->data['feedback']['product'][$k]['type'] == 2) {
                         $this->data['feedback']['product'][$k]['youzan_path'] = '';
-                    } elseif ($v['type'] == 1) {
+                        if (isset($v['code'])) {
+                            $this->data['feedback']['product'][$k]['taobao_code'] = $v['code'];
+                        }
+                        
+                    } elseif ($this->data['feedback']['product'][$k]['type'] == 1) {
                         $this->data['feedback']['product'][$k]['taobao_code'] = '';
+                        if (isset($v['code'])) {
+                            $this->data['feedback']['product'][$k]['youzan_path'] = $v['code'];
+                        }
                     }
                 }
             }
@@ -258,6 +271,8 @@ class Api extends Base
         $param = array
         (
             'account_id' => 1,
+            'project_id' => 1,
+            'product_id' => $product_id,
             'uid' => $this->data['uid'],
             'username' => $user['username'],
             'name' => $product['name'],
@@ -342,7 +357,7 @@ class Api extends Base
 
         $info = Dever::db('service/feedback')->one($feedback_id);
 
-        if ($email && $info && $info['uid'] == $feedback_id) {
+        if ($email && $info && $info['uid'] == $this->data['uid']) {
             if (!preg_match(Dever::rule('email'), $email)) {
                 Dever::alert('请输入正确的邮箱');
             }

+ 2 - 2
service/src/Base.php

@@ -9,8 +9,8 @@ class Base
     public function __construct()
     {
     	# 获取用户信息
-        $this->data['uid'] = Dever::load('passport/applet')->check();
-        //$this->data['uid'] = 1;
+        //$this->data['uid'] = Dever::load('passport/applet')->check();
+        $this->data['uid'] = 1;
 
         # 获取基本配置
         $this->data['config'] = Dever::db('main/config')->one();