|
|
@@ -59,24 +59,25 @@ class ActivityLogic extends BaseLogic
|
|
|
}
|
|
|
$v['goods'] = self::groupArrays($v['goods']);
|
|
|
}
|
|
|
+ $res['coupons'] = CouponRules::with(['couponCategoryOne'])->where('property_activity_id',$params['property_activity_id'])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($res['coupons'] as &$coupon) {
|
|
|
+ $coupon['goods_category_id'] = $coupon['couponCategoryOne']['goods_category_id'];
|
|
|
+ }
|
|
|
+ $res['goods'] = Goods::where('property_activity_id',$params['property_activity_id'])
|
|
|
+ ->where('is_agent',1)
|
|
|
+ ->visible(['id','goods_name','goods_image','base_service_fee','service_total','service_fee','goods_type'])
|
|
|
+ ->order('is_recommend desc')
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ // 临时添加
|
|
|
+ foreach ($res['goods'] as &$good){
|
|
|
+ $good['service_fee'] = $good['base_service_fee'];
|
|
|
+ }
|
|
|
}else{
|
|
|
$res['block_data_structure'] = self::blockDataStructure($res['activity_info']['url_page'],$res['activity_info']['block_data']);
|
|
|
- }
|
|
|
- $res['coupons'] = CouponRules::with(['couponCategoryOne'])->where('property_activity_id',$params['property_activity_id'])
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- foreach ($res['coupons'] as &$coupon) {
|
|
|
- $coupon['goods_category_id'] = $coupon['couponCategoryOne']['goods_category_id'];
|
|
|
- }
|
|
|
- $res['goods'] = Goods::where('property_activity_id',$params['property_activity_id'])
|
|
|
- ->where('is_agent',1)
|
|
|
- ->visible(['id','goods_name','goods_image','base_service_fee','service_total','service_fee','goods_type'])
|
|
|
- ->order('is_recommend desc')
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- // 临时添加
|
|
|
- foreach ($res['goods'] as &$good){
|
|
|
- $good['service_fee'] = $good['base_service_fee'];
|
|
|
+ $res['coupons'] = self::couponDataStructure($params['property_activity_id']);
|
|
|
}
|
|
|
return $res;
|
|
|
}catch(\Exception $e){
|
|
|
@@ -88,9 +89,11 @@ class ActivityLogic extends BaseLogic
|
|
|
array_multisort(array_column($data, 'sort'), SORT_DESC, $data);
|
|
|
foreach ($data as &$v){
|
|
|
array_multisort(array_column($v['goods'], 'recommend_weight'), SORT_DESC, $v['goods']);
|
|
|
- // 临时改价 11-28
|
|
|
if(!empty($v['goods'])){
|
|
|
foreach ($v['goods'] as &$item){
|
|
|
+ $item = Goods::findOrEmpty($item['id'])->toArray();
|
|
|
+
|
|
|
+ // 临时改价 11-28
|
|
|
$item['service_fee'] = $item['base_service_fee'];
|
|
|
}
|
|
|
}
|
|
|
@@ -105,6 +108,17 @@ class ActivityLogic extends BaseLogic
|
|
|
}
|
|
|
return $data;
|
|
|
}
|
|
|
+ public static function couponDataStructure(int $property_activity_id): array {
|
|
|
+ $couponIds = self::getDataIdsByType($property_activity_id, 'coupon_data');
|
|
|
+ $coupons = CouponRules::with(['couponCategoryOne'])
|
|
|
+ ->where('id','in',$couponIds)
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($coupons as &$coupon) {
|
|
|
+ $coupon['goods_category_id'] = $coupon['couponCategoryOne']['goods_category_id'];
|
|
|
+ }
|
|
|
+ return $coupons;
|
|
|
+ }
|
|
|
public static function groupArrays($array) {
|
|
|
$result = []; $groupSize = 2;
|
|
|
$totalElements = count($array);
|
|
|
@@ -116,13 +130,9 @@ class ActivityLogic extends BaseLogic
|
|
|
}
|
|
|
public static function createPropertyOrder($params,$serviceOrder){
|
|
|
try{
|
|
|
- // 判断商品是否为 代理活动商品
|
|
|
- $goods = Goods::findOrEmpty($params['goods_id']);
|
|
|
- if($goods->isEmpty()){
|
|
|
- throw new \Exception('产品不存在!');
|
|
|
- }
|
|
|
- if($goods->property_activity_id > 0){
|
|
|
- $propertyActivity = PropertyActivity::findOrEmpty($goods->property_activity_id);
|
|
|
+ // 代理活动
|
|
|
+ if(isset($params['property_activity_id']) && !empty($params['property_activity_id'])){
|
|
|
+ $propertyActivity = PropertyActivity::findOrEmpty($params['property_activity_id']);
|
|
|
if($propertyActivity->isEmpty()){
|
|
|
throw new \Exception('活动不存在');
|
|
|
}
|
|
|
@@ -146,11 +156,60 @@ class ActivityLogic extends BaseLogic
|
|
|
if($result === false){
|
|
|
throw new \Exception('生成代理单失败');
|
|
|
}
|
|
|
+ }elseif (isset($params['goods_id']) && !empty($params['goods_id'])) {
|
|
|
+ // 判断商品是否为 代理活动商品
|
|
|
+ $goods = Goods::findOrEmpty($params['goods_id']);
|
|
|
+ if ($goods->isEmpty()) {
|
|
|
+ throw new \Exception('产品不存在!');
|
|
|
+ }
|
|
|
+ if ($goods->property_activity_id > 0) {
|
|
|
+ $propertyActivity = PropertyActivity::findOrEmpty($goods->property_activity_id);
|
|
|
+ if ($propertyActivity->isEmpty()) {
|
|
|
+ throw new \Exception('活动不存在');
|
|
|
+ }
|
|
|
+ if (!empty($propertyActivity->getData('activity_start_time')) && $propertyActivity->getData('activity_start_time') > time()) {
|
|
|
+ throw new \Exception('活动未开始');
|
|
|
+ }
|
|
|
+ if (!empty($propertyActivity->getData('activity_end_time')) && $propertyActivity->getData('activity_end_time') < time()) {
|
|
|
+ throw new \Exception('活动已结束');
|
|
|
+ }
|
|
|
+ // 生成代理单 user_info
|
|
|
+ // remark address property_head_id householder_name householder_mobile
|
|
|
+ $result = PropertyOrderLogic::add(array_merge($params, [
|
|
|
+ 'property_head_id' => $propertyActivity['property_head_id'],
|
|
|
+ 'householder_mobile' => $params['user_info']['mobile'],
|
|
|
+ 'householder_name' => $params['user_info']['real_name'],
|
|
|
+ 'address' => $params['address'],
|
|
|
+ 'remark' => '',
|
|
|
+ 'order_status' => 1,
|
|
|
+ 'work_id' => $serviceOrder['work_id'],
|
|
|
+ ]));
|
|
|
+ if ($result === false) {
|
|
|
+ throw new \Exception('生成代理单失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}catch(\Exception $e){
|
|
|
throw new \Exception($e->getMessage());
|
|
|
}
|
|
|
}
|
|
|
+ public static function getDataIdsByType($property_activity_id, $type): array
|
|
|
+ {
|
|
|
+ $ids = [];
|
|
|
+ $activityInfo = PropertyActivity::where('property_activity_id',$property_activity_id)->findOrEmpty();
|
|
|
+ if(!$activityInfo->isEmpty()){
|
|
|
+ $activityInfo = $activityInfo->toArray();
|
|
|
+ if($type === 'block_data'){
|
|
|
+ foreach ($activityInfo['block_data'] as &$item) {
|
|
|
+ $ids = array_merge($ids,array_column($item['goods'], 'id'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($type === 'coupon_data'){
|
|
|
+ $ids = array_merge($ids,array_column($activityInfo['coupon_data'], 'id'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $ids??[0];
|
|
|
+ }
|
|
|
|
|
|
}
|