修改商城代码

This commit is contained in:
Anyon 2020-09-22 19:03:55 +08:00
parent 6d8611572d
commit 6e9ce42564
9 changed files with 28 additions and 27 deletions

View File

@ -95,9 +95,9 @@ class NewsItem extends Controller
if ($this->request->isGet()) {
$query = $this->app->db->name('DataNewsMark')->where(['deleted' => 0, 'status' => 1]);
$this->mark = $query->order('sort desc,id desc')->select()->toArray();
$data['mark'] = think_string_to_array($data['mark']);
$data['mark'] = mark_str2arr($data['mark']);
} else {
$data['mark'] = think_array_to_string($data['mark'] ?? []);
$data['mark'] = mark_arr2str($data['mark'] ?? []);
}
}

View File

@ -83,7 +83,7 @@ class ShopGoods extends Controller
$clist = $this->app->db->name('ShopGoodsCate')->whereIn('id', array_column($data, 'cate'))->column('pid,name,status', 'id');
foreach ($data as &$vo) {
$vo['cate'] = $clist[$vo['cate']] ?? $vo['cate'];
$vo['mark'] = think_string_to_array($vo['mark'] ?: '', ',', $this->marks);
$vo['mark'] = mark_string_array($vo['mark'] ?: '', ',', $this->marks);
}
}
@ -153,7 +153,7 @@ class ShopGoods extends Controller
$data['code'] = CodeExtend::uniqidNumber(12, 'G');
}
if ($this->request->isGet()) {
$data['mark'] = think_string_to_array($data['mark']);
$data['mark'] = mark_string_array($data['mark']);
$this->marks = GoodsService::instance()->getMarkList();
$this->cates = GoodsService::instance()->getCateList('arr2table');
$fields = 'goods_sku `sku`,goods_code,goods_spec `key`,price_selling `selling`,price_market `market`,number_virtual `virtual`,number_express `express`,status';
@ -163,7 +163,7 @@ class ShopGoods extends Controller
if (empty($data['cover'])) $this->error('商品图片不能为空!');
if (empty($data['slider'])) $this->error('轮播图不能为空!');
// 商品规格保存
$data['mark'] = think_array_to_string($data['mark'] ?? []);
$data['mark'] = mark_array_string($data['mark'] ?? []);
[$count, $items] = [0, json_decode($data['data_items'], true)];
foreach ($items as $item) {
$count += intval($item[0]['status']);

View File

@ -99,11 +99,12 @@ class GoodsService extends Service
foreach ($cates as $cate) if (isset($cates[$cate['pid']])) {
$cates[$cate['id']]['parent'] =& $cates[$cate['pid']];
}
$map = [['goods_code', 'in', array_unique(array_column($data, 'code'))], ['status', '=', 1]];
$items = $this->app->db->name('ShopGoodsItem')->withoutField('id,status,create_at')->where($map)->select()->toArray();
$codes = array_unique(array_column($data, 'code'));
$query = $this->app->db->name('ShopGoodsItem')->withoutField('id,status,create_at');
$items = $query->whereIn('goods_code', $codes)->where(['status' => 1])->select()->toArray();
$marks = $this->app->db->name('ShopGoodsMark')->where(['status' => 1])->column('name');
foreach ($data as &$vo) {
$vo['marks'] = think_string_to_array($vo['mark'], ',', $marks);
$vo['marks'] = mark_string_array($vo['mark'], ',', $marks);
$vo['cates'] = $cates[$vo['cate']] ?? [];
$vo['slider'] = explode('|', $vo['slider']);
$vo['specs'] = json_decode($vo['data_specs'], true);

View File

@ -5,7 +5,7 @@ namespace app\data\service;
use think\admin\Service;
/**
* 文章数据处理服务
* 文章数据服务
* Class NewsService
* @package app\data\service
*/
@ -13,7 +13,7 @@ class NewsService extends Service
{
/**
* 同步文章数据统计
* @param integer $cid 文章记录ID
* @param integer $cid 文章ID
* @throws \think\db\exception\DbException
*/
public function syncNewsTotal(int $cid)
@ -42,7 +42,7 @@ class NewsService extends Service
$cols = 'id,name,cover,mark,status,deleted,create_at,num_like,num_read,num_comment,num_collect';
$items = $this->app->db->name('DataNewsItem')->whereIn('id', $cids)->column($cols, 'id');
$marks = $this->app->db->name('DataNewsMark')->where(['status' => 1])->column('name');
foreach ($items as &$vo) $vo['mark'] = think_string_to_array($vo['mark'] ?: '', ',', $marks);
foreach ($items as &$vo) $vo['mark'] = mark_str_2_arr($vo['mark'] ?: '', ',', $marks);
/*! 绑定会员数据 */
$mids = array_unique(array_column($list, 'mid'));
$cols = 'id,phone,nickname,username,headimg,status';
@ -64,17 +64,17 @@ class NewsService extends Service
public function buildListState(array &$list, int $mid = 0): array
{
if (count($list) > 0) {
[$cid1s, $cid2s] = [[], []];
[$cid1s, $cid2s, $marks] = [[], [], []];
if ($mid > 0) {
$map = [['mid', '=', $mid], ['cid', 'in', array_column($list, 'id')]];
$map = [['mid', '=', $mid], ['cid', 'in', array_unique(array_column($list, 'id'))]];
$marks = $this->app->db->name('DataNewsMark')->where(['status' => 1])->column('name');
$cid1s = $this->app->db->name('DataNewsXCollect')->where($map)->where(['type' => 2])->column('cid');
$cid2s = $this->app->db->name('DataNewsXCollect')->where($map)->where(['type' => 1])->column('cid');
}
$marks = $this->app->db->name('DataNewsMark')->where(['status' => 1])->column('name');
foreach ($list as &$vo) {
$vo['mark'] = mark_string_array($vo['mark'] ?: '', ',', $marks);
$vo['my_like_state'] = in_array($vo['id'], $cid1s) ? 1 : 0;
$vo['my_coll_state'] = in_array($vo['id'], $cid2s) ? 1 : 0;
$vo['mark'] = think_string_to_array($vo['mark'] ?: '', ',', $marks);
}
}
return $list;

View File

@ -57,7 +57,6 @@ class OrderService extends Service
*/
public function buildItemData(array &$data = []): array
{
$nos = array_unique(array_column($data, 'order_no'));
// 关联会员数据
$mids = array_unique(array_merge(array_column($data, 'mid'), array_column($data, 'from')));
$members = $this->app->db->name('DataMember')->whereIn('id', $mids)->column('*', 'id');
@ -66,11 +65,12 @@ class OrderService extends Service
unset($user['unionid'], $user['password'], $user['status'], $user['deleted']);
}
// 关联发货信息
$trucks = $this->app->db->name('ShopOrderSend')->whereIn('order_no', $nos)->column('*', 'order_no');
$nobs = array_unique(array_column($data, 'order_no'));
$trucks = $this->app->db->name('ShopOrderSend')->whereIn('order_no', $nobs)->column('*', 'order_no');
foreach ($trucks as &$item) unset($item['id'], $item['mid'], $item['status'], $item['deleted'], $item['create_at']);
// 关联订单商品
$query = $this->app->db->name('ShopOrderItem')->where(['status' => 1, 'deleted' => 0]);
$items = $query->withoutField('id,mid,status,deleted,create_at')->whereIn('order_no', $nos)->select()->toArray();
$items = $query->withoutField('id,mid,status,deleted,create_at')->whereIn('order_no', $nobs)->select()->toArray();
foreach ($data as &$vo) {
$vo['sales'] = 0;
$vo['member'] = $members[$vo['mid']] ?? [];

View File

@ -20,7 +20,7 @@ class UserService extends Service
/**
* 获取会员资料
* @param mixed $map 查询条件
* @param boolean $force 强制令牌
* @param boolean $force 刷新令牌
* @return array
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException

View File

@ -1,6 +1,6 @@
<?php
if (!function_exists('think_string_to_array')) {
if (!function_exists('mark_string_array')) {
/**
* 字符串转数组
* @param string $text 待转内容
@ -8,7 +8,7 @@ if (!function_exists('think_string_to_array')) {
* @param null|array $allow 限定规则
* @return array
*/
function think_string_to_array(string $text, string $separ = ',', $allow = null): array
function mark_string_array(string $text, string $separ = ',', $allow = null): array
{
$text = trim($text, $separ);
$data = $text ? explode($separ, $text) : [];
@ -19,26 +19,26 @@ if (!function_exists('think_string_to_array')) {
}
}
if (!function_exists('think_array_to_string')) {
if (!function_exists('mark_array_string')) {
/**
* 数组转字符串
* @param array $data 待转数组
* @param string $separ 分隔字符
* @return string
*/
function think_array_to_string(array $data, string $separ = ',')
function mark_array_string(array $data, string $separ = ',')
{
return join($separ, $data);
}
}
if (!function_exists('think_show_goods_spec')) {
if (!function_exists('show_goods_spec')) {
/**
* 商品规格过滤显示
* @param string $spec 原规格内容
* @return string
*/
function think_show_goods_spec(string $spec): string
function show_goods_spec(string $spec): string
{
$specs = [];
foreach (explode(';;', $spec) as $sp) {

View File

@ -24,7 +24,7 @@
<tbody>
{foreach $vo.items as $goods}
<tr>
<td class="layui-bg-gray" width="28%">{$goods.goods_spec|think_show_goods_spec}</td>
<td class="layui-bg-gray" width="28%">{$goods.goods_spec|show_goods_spec}</td>
<td class="layui-bg-gray text-center" width="12%">{$goods.price_market+0}</td>
<td class="layui-bg-gray text-center" width="12%">{$goods.price_selling+0}</td>
<td class="layui-bg-gray text-center" width="12%">{$goods.stock_total|default=0}</td>

View File

@ -87,7 +87,7 @@
{foreach $vo.items as $item}
<div>
<b class="color-blue">{$item.stock_sales|default=0}</b><b class="color-green"> x </b><b class="color-blue">{$item.price_market+0} </b>
{$item.goods_name|default=''} <span class="color-green"> ( {$item.goods_spec|think_show_goods_spec} ) </span>
{$item.goods_name|default=''} <span class="color-green"> ( {$item.goods_spec|show_goods_spec} ) </span>
</div>
{/foreach}
</td>