细节优化

feat/task1-c-wallet
gongfuxiang 2023-03-01 10:48:46 +08:00
parent b32b948197
commit c4213fc6ac
12 changed files with 73 additions and 58 deletions

View File

@ -41,10 +41,11 @@ class UserAddress
return [
// 基础配置
'base' => [
'key_field' => 'id',
'is_search' => 1,
'is_delete' => 1,
'is_middle' => 0,
'key_field' => 'id',
'is_search' => 1,
'is_delete' => 1,
'is_middle' => 0,
'is_data_export_excel' => 1,
],
// 表单配置
'form' => [

View File

@ -1,9 +1,11 @@
<!-- 商品基础信息 -->
{{if !empty($module_data)}}
<div class="am-nbfc">
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data.images}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{if !empty($module_data['images'])}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data.images}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{/if}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}" {{if !empty($module_data['title_color'])}} style="color:{{$module_data.title_color}};" {{/if}} class="am-nowrap-initial">{{$module_data.title}}</a>
{{if !empty($module_data['simple_desc'])}}
<p class="am-text-danger am-nowrap-initial">{{$module_data.simple_desc}}</p>

View File

@ -1,9 +1,11 @@
<!-- 商品基础信息 -->
{{if !empty($module_data)}}
<div class="am-nbfc">
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data['images']}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{if !empty($module_data['images'])}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data['images']}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{/if}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}" {{if !empty($module_data['title_color'])}} style="color:{{$module_data.title_color}};" {{/if}} class="am-nowrap-initial">{{$module_data.title}}</a>
{{if !empty($module_data['simple_desc'])}}
<p class="am-text-danger am-nowrap-initial">{{$module_data.simple_desc}}</p>

View File

@ -1,9 +1,11 @@
<!-- 商品基础信息 -->
{{if !empty($module_data)}}
<div class="am-nbfc">
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data['images']}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{if !empty($module_data['images'])}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data['images']}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{/if}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}" {{if !empty($module_data['title_color'])}} style="color:{{$module_data.title_color}};" {{/if}} class="am-nowrap-initial">{{$module_data.title}}</a>
{{if !empty($module_data['simple_desc'])}}
<p class="am-text-danger am-nowrap-initial">{{$module_data.simple_desc}}</p>

View File

@ -2,9 +2,11 @@
{{if !empty($module_data)}}
{{if !empty($module_data['goods'])}}
<div class="am-nbfc">
<a href="{{$module_data.goods.goods_url}}" target="_blank">
<img src="{{$module_data.goods.images}}" alt="{{$module_data.goods.title}}" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{if !empty($module_data['goods']['images'])}}
<a href="{{$module_data.goods.goods_url}}" target="_blank">
<img src="{{$module_data.goods.images}}" alt="{{$module_data.goods.title}}" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{/if}}
<a class="am-text-top am-nowrap-initial" href="{{$module_data.goods.goods_url}}" target="_blank">{{$module_data.goods.title}}</a>
</div>
<p>{{$currency_symbol}}{{$module_data.goods.price}}</p>

View File

@ -1,9 +1,11 @@
<!-- 商品基础信息 -->
{{if !empty($module_data)}}
<div class="am-nbfc">
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data['images']}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{if !empty($module_data['images'])}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}">
<img src="{{$module_data['images']}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="35" height="35" />
</a>
{{/if}}
<a href="{{$module_data.goods_url}}" target="_blank" title="{{$module_data.title}}" {{if !empty($module_data['title_color'])}} style="color:{{$module_data.title_color}};" {{/if}} class="am-nowrap-initial">{{$module_data.title}}</a>
{{if !empty($module_data['simple_desc'])}}
<p class="am-text-danger am-nowrap-initial">{{$module_data.simple_desc}}</p>

View File

@ -14,7 +14,7 @@
<li>1. 被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软体及软体的副本。</li>
<li>2. 被授权人可根据程式的需要修改授权条款为适当的内容。</li>
<li>3. 在软件和软件的所有副本中都必须包含版权声明和许可声明。</li>
<li class="am-margin-top-xl">协议地址:<a href="https://ask.shopxo.net/article/15" target="_blank">https://ask.shopxo.net/article/15</a></li>
<li class="am-margin-top-xl">协议地址:<a href="https://license.shopxo.net/" target="_blank">https://license.shopxo.net/</a></li>
<li>英文原文:<a href="https://opensource.org/licenses/mit-license.php" target="_blank">https://opensource.org/licenses/mit-license.php</a></li>
</ul>

View File

@ -13,5 +13,8 @@
<!-- amazeui插件 -->
<script type='text/javascript' src="{{$Think.__MY_ROOT_PUBLIC__}}static/common/lib/amazeui-switch/amazeui.switch.min.js"></script>
<script type='text/javascript' src="{{$Think.__MY_ROOT_PUBLIC__}}static/common/lib/amazeui-chosen/amazeui.chosen.min.js"></script>
<script type='text/javascript' src="{{$Think.__MY_ROOT_PUBLIC__}}static/common/lib/amazeui-dialog/amazeui.dialog.js"></script>
<script type='text/javascript' src="{{$Think.__MY_ROOT_PUBLIC__}}static/common/lib/amazeui-chosen/amazeui.chosen.js"></script>
<script type='text/javascript' src="{{$Think.__MY_ROOT_PUBLIC__}}static/common/lib/amazeui-dialog/amazeui.dialog.js"></script>
<!-- 复制插件 -->
<script type='text/javascript' src="{{$Think.__MY_ROOT_PUBLIC__}}static/common/lib/clipboard/clipboard.min.js"></script>

View File

@ -18,4 +18,9 @@
<li class="word">安装完成</li>
</ul>
</div>
</div>
</div>
<!-- <div class="am-container am-text-center am-text-danger am-padding-top-lg am-padding-bottom-sm">
<span>v8.1版本由</span>
<a href="" target="_blank"><strong>XXXXXX</strong></a>
<span>独家赞助发布!</span>
</div> -->

View File

@ -556,31 +556,17 @@ class BuyService
}
// 先判断规格的起购数、则再判断商品的起购数
if(isset($v['spec_buy_min_number']) && $v['spec_buy_min_number'] > 0)
$min = (isset($v['spec_buy_min_number']) && $v['spec_buy_min_number'] > 0) ? $v['spec_buy_min_number'] : (isset($v['buy_min_number']) ? $v['buy_min_number'] : 0);
if($min > 0 && $v['stock'] < $min)
{
if($v['stock'] < $v['spec_buy_min_number'])
{
return DataReturn(MyLang('common_service.buy.goods_buy_min_error_tips').'['.$v['title'].']['.$v['stock'].'<'.$v['spec_buy_min_number'].']', -1);
}
} else {
if(isset($v['buy_min_number']) && $v['buy_min_number'] > 1 && $v['stock'] < $v['buy_min_number'])
{
return DataReturn(MyLang('common_service.buy.goods_buy_min_error_tips').'['.$v['title'].']['.$v['stock'].'<'.$v['buy_min_number'].']', -1);
}
return DataReturn(MyLang('common_service.buy.goods_buy_min_error_tips').'['.$v['title'].']['.$v['stock'].'<'.$min.']', -1);
}
// 先判断规格的限购数、则再判断商品的限购数
if(isset($v['spec_buy_max_number']) && $v['spec_buy_max_number'] > 0)
$max = (isset($v['spec_buy_max_number']) && $v['spec_buy_max_number'] > 0) ? $v['spec_buy_max_number'] : (isset($v['buy_max_number']) ? $v['buy_max_number'] : 0);
if($max > 0 && $v['stock'] > $max)
{
if($v['stock'] > $v['spec_buy_max_number'])
{
return DataReturn(MyLang('common_service.buy.goods_buy_max_error_tips').'['.$v['title'].']['.$v['stock'].'>'.$v['spec_buy_max_number'].']', -1);
}
} else {
if(isset($v['buy_max_number']) && $v['buy_max_number'] > 0 && $v['stock'] > $v['buy_max_number'])
{
return DataReturn(MyLang('common_service.buy.goods_buy_max_error_tips').'['.$v['title'].']['.$v['stock'].'>'.$v['buy_max_number'].']', -1);
}
return DataReturn(MyLang('common_service.buy.goods_buy_max_error_tips').'['.$v['title'].']['.$v['stock'].'>'.$max.']', -1);
}
// 是否支持购物车操作

View File

@ -783,7 +783,7 @@ class SearchService
if(!empty($bid))
{
$data_params = [
'field' => 'id,name,describe,logo,website_url',
'field' => 'id,name,describe,logo,website_url,seo_title,seo_keywords,seo_desc',
'where' => [
['id', '=', $bid]
],

View File

@ -788,31 +788,34 @@ class WarehouseGoodsService
* @version 1.0.0
* @date 2020-07-16
* @desc description
* @param [int] $goods_id [商品id]
* @param [int] $goods_id [商品id]
* @param [array] $params [输入参数]
*/
public static function GoodsSpecInventorySync($goods_id)
public static function GoodsSpecInventorySync($goods_id, $params = [])
{
// 获取商品实际规格
$res = GoodsService::GoodsSpecificationsActual($goods_id);
if(empty($res['value']))
$spec = GoodsService::GoodsSpecificationsActual($goods_id);
if(empty($spec['value']))
{
// 没有规格则读取默认规格数据
$res['value'][] = [
'base_id' => Db::name('GoodsSpecBase')->where(['goods_id'=>$goods_id])->value('id'),
'value' => 'default',
$spec['value'] = [
[
'base_id' => Db::name('GoodsSpecBase')->where(['goods_id'=>$goods_id])->value('id'),
'value' => 'default',
]
];
}
// 商品规格库存
$inventory_total = 0;
foreach($res['value'] as $v)
foreach($spec['value'] as &$v)
{
$inventory = self::WarehouseGoodsSpecInventory($goods_id, str_replace(GoodsService::$goods_spec_to_string_separator, '', $v['value']));
if(Db::name('GoodsSpecBase')->where(['id'=>$v['base_id'], 'goods_id'=>$goods_id])->update(['inventory'=>$inventory]) === false)
$v['inventory'] = self::WarehouseGoodsSpecInventory($goods_id, str_replace(GoodsService::$goods_spec_to_string_separator, '', $v['value']));
if(Db::name('GoodsSpecBase')->where(['id'=>$v['base_id'], 'goods_id'=>$goods_id])->update(['inventory'=>$v['inventory']]) === false)
{
return DataReturn(MyLang('common_service.warehousegoods.goods_spec_sync_inventory_fail_tips'), -20);
}
$inventory_total += $inventory;
$inventory_total += $v['inventory'];
}
// 商品库存
@ -828,9 +831,12 @@ class WarehouseGoodsService
// 商品仓库库存修改钩子
$hook_name = 'plugins_service_warehouse_goods_inventory_sync';
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'goods_id' => $goods_id
'hook_name' => $hook_name,
'is_backend' => true,
'goods_id' => $goods_id,
'inventory_total' => $inventory_total,
'spec' => $spec,
'params' => $params,
]));
if(isset($ret['code']) && $ret['code'] != 0)
{
@ -938,9 +944,11 @@ class WarehouseGoodsService
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'warehouse_id' => $warehouse_id,
'order_id' => $order_id,
'goods_id' => $goods_id,
'spec' => $spec,
'md5_key' => $md5_key,
'buy_number' => $buy_number,
]));
if(isset($ret['code']) && $ret['code'] != 0)
@ -1011,9 +1019,11 @@ class WarehouseGoodsService
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'warehouse_id' => $warehouse_id,
'order_id' => $order_id,
'goods_id' => $goods_id,
'spec' => $spec,
'md5_key' => $md5_key,
'buy_number' => $buy_number,
]));
if(isset($ret['code']) && $ret['code'] != 0)