* @version : HuoMp 1.0 */ namespace huomp\model\weixin; use huolib\constant\MpConfConst; use huomp\model\common\CommonModel; class OaMchModel extends CommonModel { protected $table = 'mp_oa_mch'; /** * 关联账号表 * * @return mixed */ public function mc() { return $this->hasone(MpConfModel::className(), 'mp_id', 'oa_id')->field('mp_id,wx_name,wx_logo,qr_code'); } /** * 添加数据 * * @param $data * * @return bool */ public function addData($data) { if (empty($data)) { return false; } $_rs = $this->where($data)->find(); if (!empty($_rs)) { return $_rs['id']; } $_data = $data; $_obj = self::create($_data, true); if ($_obj) { if (!empty($_data['is_default']) && MpConfConst::MP_OA_MCH_DEFAULT_2 == $_data['is_default']) { $_map = [ 'mch_id' => $_data['mch_id'], 'id' => ['neq', $_obj->id], ]; /* 先将全部设置为非默认 */ $this->update(['is_default' => MpConfConst::MP_OA_MCH_DEFAULT_1], $_map); } return $_obj->id; } return false; } /** * 获取数据 * * @param $mch_id * * @return array|bool|false|\PDOStatement|string|\think\Model */ public function getInfoByMchId($mch_id) { $_map['mch_id'] = $mch_id; $_info = self::where($_map)->find(); if (false === $_info) { return false; } if (is_object($_info)) { return $_info->toArray(); } else { return $_info; } } /** * 删除记录 * * @param $id * * @return int */ public function deleteData($id) { $_map = ['id' => $id]; return self::where($_map)->delete(); } /** * 删除记录 * * @param $oa_id * * @return int */ public function deleteDataByOaId($oa_id) { $_map = ['oa_id' => $oa_id]; return self::where($_map)->delete(); } /** * 删除记录 * * @param $mch_id * * @return int */ public function deleteDataByMchId($mch_id) { $_map = ['mch_id' => $mch_id]; return self::where($_map)->delete(); } /** * 修改默认状态 * * @param $id * @param int $is_default * * @return bool */ public function setDefault($id, $is_default = MpConfConst::MP_OA_MCH_DEFAULT_2) { $_data = $this->getInfoById($id); $_map = ['mch_id' => $_data['mch_id']]; /* 先将全部设置为非默认 */ $this->update(['is_default' => MpConfConst::MP_OA_MCH_DEFAULT_1], $_map); $_map = ['id' => $id]; $_data = ['is_default' => $is_default]; $_rs = $this->update($_data, $_map); if (false == $_rs) { return false; } return true; } /** * 获取公众号绑定商户信息配置信息 * * @param $oa_id * * @return array */ public function getPayConfByOaId($oa_id, $order = '-is_default') { $_rdata = []; $_map = ['oa_id' => $oa_id]; $order = $this->orderFilter($order); $_data = $this->where($_map)->order($order)->find(); if (is_object($_data)) { $_data = $_data->toArray(); } if (empty($_data)) { return $_rdata; } $_map = ['mp_id' => $oa_id]; $_oa_data = (new MpConfModel())->where($_map)->find(); if (is_object($_oa_data)) { $_oa_data = $_oa_data->toArray(); } if (empty($_oa_data)) { return $_rdata; } $_map = ['mp_id' => $_data['mch_id']]; $_mch_data = (new MpConfModel())->where($_map)->find(); if (is_object($_mch_data)) { $_mch_data = $_mch_data->toArray(); } if (empty($_mch_data)) { return $_rdata; } $_rdata = [ 'app_id' => $oa_id, 'mch_id' => $_mch_data['mp_id'], 'key' => $_mch_data['app_secret'], 'app_secret' => $_oa_data['app_secret'], ]; return $_rdata; } }