Goods.php
4.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
/**
* tpshop
* ============================================================================
* 版权所有 2015-2027 深圳搜豹网络科技有限公司,并保留所有权利。
* 网站地址: http://www.tp-shop.cn
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
* 不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* Author: IT宇宙人
* Date: 2015-09-09
*/
namespace app\admin\model;
use think\Model;
class Goods extends Model {
/**
* 后置操作方法
* 自定义的一个函数 用于数据保存后做的相应处理操作, 使用时手动调用
* @param int $goods_id 商品id
*/
public function afterSave($goods_id)
{
// 商品货号
$goods_sn = "TP".str_pad($goods_id,7,"0",STR_PAD_LEFT);
$this->where("goods_id = $goods_id and goods_sn = ''")->save(array("goods_sn"=>$goods_sn)); // 根据条件更新记录
// 商品图片相册 图册
$goods_images = I('goods_images/a');
if(count($goods_images) > 1)
{
array_pop($goods_images); // 弹出最后一个
$goodsImagesArr = M('GoodsImages')->where("goods_id = $goods_id")->getField('img_id,image_url'); // 查出所有已经存在的图片
// 删除图片
foreach($goodsImagesArr as $key => $val)
{
if(!in_array($val, $goods_images))
M('GoodsImages')->where("img_id = {$key}")->delete(); //
}
// 添加图片
foreach($goods_images as $key => $val)
{
if($val == null) continue;
if(!in_array($val, $goodsImagesArr))
{
$data = array(
'goods_id' => $goods_id,
'image_url' => $val,
'store_id' => getAdmStoId(),
'ismain'=>0,
);
M("GoodsImages")->insert($data); // 实例化User对象
}
}
}
// 查看主图是否已经存在相册中
$original_img = I('original_img');
// mlog($original_img,"goodimg");
$c = M('GoodsImages')->where("goods_id = $goods_id and image_url = '{$original_img}'")->count();
if($c == 0 && $original_img)
{
// mlog("存在","goodimg");
M("GoodsImages")->add(array('goods_id'=>$goods_id,'image_url'=>$original_img,'store_id'=>getAdmStoId(),ismain=>1));
}
delFile("./public/upload/goods/thumb/$goods_id"); // 删除缩略图
// 商品规格价钱处理
M("SpecGoodsPrice")->where('goods_id = '.$goods_id)->delete(); // 删除原有的价格规格对象
if(I('item/a'))
{
$spec = M('Spec')->getField('id,name'); // 规格表
$specItem = M('SpecItem')->getField('id,item');//规格项
foreach(I('item/a') as $k => $v)
{
// 批量添加数据
$v['price'] = trim($v['price']);
$store_count = $v['store_count'] = trim($v['store_count']); // 记录商品总库存
$v['sku'] = trim($v['sku']);
$dataList[] = ['goods_id'=>$goods_id,'key'=>$k,'key_name'=>$v['key_name'],'price'=>$v['price'],'store_count'=>$v['store_count'],'sku'=>$v['sku']];
// 修改商品后购物车的商品价格也修改一下
M('cart')->where("goods_id = $goods_id and spec_key = '$k'")->save(array(
'market_price'=>$v['price'], //市场价
'goods_price'=>$v['price'], // 本店价
'member_goods_price'=>$v['price'], // 会员折扣价
));
}
M("SpecGoodsPrice")->insertAll($dataList);
}
// 商品规格图片处理
if(I('item_img/a'))
{
M('SpecImage')->where("goods_id = $goods_id")->delete(); // 把原来是删除再重新插入
foreach (I('item_img/a') as $key => $val)
{
M('SpecImage')->insert(array('goods_id'=>$goods_id ,'spec_image_id'=>$key,'src'=>$val));
}
}
refresh_stock($goods_id); // 刷新商品库存
}
}