master
wangxinglong 2021-12-17 11:41:27 +08:00
parent cd5ea3d614
commit a3ddaa012a
7 changed files with 80 additions and 9 deletions

View File

@ -2,6 +2,7 @@
namespace app\controller\api; namespace app\controller\api;
use app\repository\DictionaryRepository;
use think\facade\Db; use think\facade\Db;
use app\model\Area as AreaModel; use app\model\Area as AreaModel;
/** /**
@ -13,7 +14,7 @@ use app\model\Area as AreaModel;
class Area extends Base class Area extends Base
{ {
protected $noNeedLogin = [ protected $noNeedLogin = [
'index', 'index',"getProvinceDictionaryCity"
]; ];
/** /**
@ -25,4 +26,50 @@ class Area extends Base
$filter = input("filter",false); $filter = input("filter",false);
return json(AreaModel::getByPCode($pcode,$filter)); return json(AreaModel::getByPCode($pcode,$filter));
} }
/**
* 获取
* */
public function getProvinceDictionaryCity()
{
$province = AreaModel::getByPCode(86,true);
$provinceCode = array_column($province->toArray(),null,"code");
$provinceCodeArray = array_keys($provinceCode);
$city = AreaModel::getByPCodes($provinceCodeArray,true);
$city = array_column($city,null,"code");
$items = DictionaryRepository::getInstance()->getAllBusinessCircleList();
$items->each(function ($item)use($city) {
$areaText = '';
if (!empty($item['province_text'])) {
$areaText = $item['province_text'].'·';
}
if (!empty($item['city_text']) && $item['city_text'] != '市辖区') {
$areaText .= $item['city_text'].'·';
}
if (!empty($item['county_text'])) {
$areaText .= $item['county_text'];
}
$item['name_text'] = $item['name'];
if (!empty($areaText)) {
$item['name_text'] = $item['name'] . '「'.$areaText.'」';
}
return $item;
});
foreach ($items->toArray() as $item){
if(isset($city[$item["city"]])){
$city[$item["city"]]["children"][]=$item;
}
}
foreach ($city as $item){
if (isset($provinceCode[$item["pcode"]])){
$provinceCode[$item["pcode"]]["children"][] =$item;
}
}
return $this->json(0,"success",$provinceCode);
}
} }

View File

@ -366,6 +366,7 @@ class Business extends Base
$data["businessAddress"] = $list['province_text'] . $list['city_text'] . $list['county_text'] . $business['business_address']; $data["businessAddress"] = $list['province_text'] . $list['city_text'] . $list['county_text'] . $business['business_address'];
$data["businessName"] = $list['business_name']; $data["businessName"] = $list['business_name'];
$data["businessSubtitle"] = $business['business_subtitle'];
$data["count"] = $couponMain->count; $data["count"] = $couponMain->count;
$data["couponName"] = $couponMain->name; $data["couponName"] = $couponMain->name;
$data["deductionMoney"] = $couponMain->deduction_money; $data["deductionMoney"] = $couponMain->deduction_money;

View File

@ -776,7 +776,9 @@ class Coupon extends Base
{ {
$couponMainId = input("couponMainId/d"); $couponMainId = input("couponMainId/d");
$couponMain = CouponMain::findById($couponMainId,[],function ($q){ $couponMain = CouponMain::findById($couponMainId,[],function ($q){
return $q->with("usingRule"); return $q->with(["usingRule","business"=>function($q){
$q->field("code,business_subtitle");
}]);
}); });
if(empty($couponMain)){ if(empty($couponMain)){
return $this->json(4001,"优惠券不存在"); return $this->json(4001,"优惠券不存在");

View File

@ -310,7 +310,6 @@ class Coupon extends Base
} }
$business = BusinessRepository::getInstance()->getBusinessAccount($data["business_code"], true); $business = BusinessRepository::getInstance()->getBusinessAccount($data["business_code"], true);
if (empty($business)) { if (empty($business)) {
return $this->json(4001, '商家不存在'); return $this->json(4001, '商家不存在');
} }

View File

@ -19,10 +19,32 @@ class Area extends Base
*/ */
public static function getByPCode($PCode,bool $filter = false) public static function getByPCode($PCode,bool $filter = false)
{ {
return self::where("pcode",$PCode) ->when($filter,function ($q){ return self::where("pcode",$PCode)->when($filter,function ($q){
$q->where("status",self::COMMON_ON); $q->where("status",self::COMMON_ON);
})->order("id asc")->select(); })
->field("id,code,pcode,name,status")
->order("id asc")->select();
} }
/**
*
* @param $PCode
* @param $filter bool 是否过滤屏蔽的地区
* @return Area[]|array|\think\Collection
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function getByPCodes($PCodes,bool $filter = false)
{
return self::where("pcode","in",$PCodes) ->when($filter,function ($q){
$q->where("status",self::COMMON_ON);
})
->field("id,code,pcode,name,status")
->order("id asc")
->select()
->toArray();
}
// 获取列表 // 获取列表

View File

@ -157,13 +157,13 @@ class BusinessRepository extends Repository
*/ */
public function getBusinessAccount($businessCode, bool $lock = false) public function getBusinessAccount($businessCode, bool $lock = false)
{ {
$Flow = Business::with(["account"])->where("code", $businessCode)->when($lock, function ($q) { $business = Business::where("code", $businessCode)->when($lock, function ($q) {
$q->lock(true); $q->lock(true);
})->find(); })->find();
if (empty($Flow) || empty($Flow->account)) { if (empty($business)) {
return null; return null;
} }
return $Flow; return $business;
} }

View File

@ -16,7 +16,7 @@
<select disabled name="item[business_code]" lay-search=""> <select disabled name="item[business_code]" lay-search="">
<option value=""></option> <option value=""></option>
{foreach $business as $bitem} {foreach $business as $bitem}
<option value="{$bitem['code']}" {if $item['business_code']==$bitem['code']} selected{/if}>{$bitem['business_name']}</option> <option value="{$bitem['code']}" {if $item['business_code'] == $bitem['code']} selected {/if}>{$bitem['business_name']}</option>
{/foreach} {/foreach}
</select> </select>
</div> </div>