Browse Source

自提优化

master
weigang 5 years ago
parent
commit
89d6277db3
  1. 4
      app/Constants/v3/ErrorCode.php
  2. 2
      app/Controller/v3/OrderOnlineController.php
  3. 2
      app/Request/v3/OrderOnlineRequest.php
  4. 1
      app/Service/v3/Implementations/GoodsActivityService.php
  5. 38
      app/Service/v3/Implementations/OrderOnlineService.php

4
app/Constants/v3/ErrorCode.php

@ -292,7 +292,7 @@ class ErrorCode extends AbstractConstants
/**
* 订单中部分活动商品不可使用优惠券
* @Message("订单中有不能使用优惠券的商品")
* @Message("订单中有不能使用的优惠券[商品不可用或优惠券失效]")
*/
const GOODS_ACTIVITY_CANNOT_USE_COUPON = 1156;
@ -300,7 +300,7 @@ class ErrorCode extends AbstractConstants
* 活动商品不存在
* @Message("活动商品可能已下架")
*/
const GOODS_ACTIVITY_NOT_EXISTS = 1156;
const GOODS_ACTIVITY_NOT_EXISTS = 1157;
/************************************/
/* 优惠券相关 1201-1250 */

2
app/Controller/v3/OrderOnlineController.php

@ -197,7 +197,7 @@ class OrderOnlineController extends BaseController
$data = $this->orderOnlineService->do(
$params['market_id'],
$params['user_id'],
$params['user_address_id'],
($params['user_address_id'] ?? 0),
json_decode($params['store_list']),
$params['total_money'],
$params['delivery_time_note'],

2
app/Request/v3/OrderOnlineRequest.php

@ -24,7 +24,7 @@ class OrderOnlineRequest extends BaseFormRequest
return [
'market_id' => 'required|nonempty|integer',
'user_id' => 'required|nonempty|integer',
'user_address_id' => 'required|nonempty|integer',
'user_address_id' => 'required_unless:self_take,1|nonempty|integer',
'store_list' => 'required|nonempty|json_keys:store_id,note,cart_ids',
'delivery_time_note' => 'required|nonempty',
'total_money' => 'required|nonempty',

1
app/Service/v3/Implementations/GoodsActivityService.php

@ -151,7 +151,6 @@ class GoodsActivityService implements GoodsActivityServiceInterface
$redis = ApplicationContext::getContainer()->get(Redis::class);
$activityTypeLimitNumsKey = 'activity_type_limit_nums';
$limitNums = $redis->hGetAll($activityTypeLimitNumsKey);
var_dump($limitNums);
if (empty($limitNums)) {

38
app/Service/v3/Implementations/OrderOnlineService.php

@ -133,18 +133,21 @@ class OrderOnlineService implements OrderOnlineServiceInterface
$currentTime = time();
bcscale(6);
// 用户收货地址
// 获取配送费用
$userAddrAndDPrice = $this->userAddressService->getAddressAndDistributionPrice($userAddrId, $marketId);
$userAddr = $userAddrAndDPrice['address']['address'];
$deliveryAmount = $userAddrAndDPrice['distribution_price'];
$deliveryDistance = $userAddrAndDPrice['delivery_distance'];
// 配送方式,默认是服务站配送
$shippingType = Shipping::TYPE_LANZU;
if ($selfTake == 1) {
$shippingType = Shipping::TYPE_SELF_TAKE;
$userAddr = (object)[];
$deliveryAmount = 0;
$deliveryDistance = 0;
$shippingType = Shipping::TYPE_SELF_TAKE;
// 如果非自提,则通过用户地址计算相关数据和费用
if ($selfTake != 1) {
// 用户收货地址
// 获取配送费用
$userAddrAndDPrice = $this->userAddressService->getAddressAndDistributionPrice($userAddrId, $marketId);
$userAddr = $userAddrAndDPrice['address']['address'];
$deliveryAmount = $userAddrAndDPrice['distribution_price'];
$deliveryDistance = $userAddrAndDPrice['delivery_distance'];
$shippingType = Shipping::TYPE_LANZU;
}
// 优惠券数据,当前订单可用个优惠券
@ -190,7 +193,6 @@ class OrderOnlineService implements OrderOnlineServiceInterface
$cartIds = explode(',', $storeItem->cart_ids);
$carts = ShoppingCart::query()->whereIn('id', $cartIds)->where(['market_id' => $marketId, 'user_id' => $userId])->get();
foreach ($carts as $k => &$cart) {
// 查个商品,做商品有效的判断检查
$goods = [];
if ($cart->activity_type == 1) {
@ -322,11 +324,11 @@ class OrderOnlineService implements OrderOnlineServiceInterface
'delivery_money' => $deliveryAmount,
'delivery_distance' => $deliveryDistance,
'state' => OrderState::UNPAID,
'tel' => $userAddr->tel,
'address' => $userAddr->address.$userAddr->doorplate,
'lat' => $userAddr->lat,
'lng' => $userAddr->lng,
'name' => $userAddr->user_name,
'tel' => $userAddr->tel ?? '',
'address' => ($userAddr->address ?? '').($userAddr->doorplate ?? ''),
'lat' => $userAddr->lat ?? '',
'lng' => $userAddr->lng ?? '',
'name' => $userAddr->user_name ?? '',
'plat' => $plat,
'delivery_time_note' => $deliveryTimeNote
];

Loading…
Cancel
Save