OaMchModel.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <?php
  2. /**
  3. * OaMchModel.php UTF-8
  4. * 公众号关联支付表
  5. *
  6. * @date : 2018/9/14 20:31
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HuoMp 1.0
  11. */
  12. namespace huomp\model\weixin;
  13. use huolib\constant\MpConfConst;
  14. use huomp\model\common\CommonModel;
  15. class OaMchModel extends CommonModel {
  16. protected $table = 'mp_oa_mch';
  17. /**
  18. * 关联账号表
  19. *
  20. * @return mixed
  21. */
  22. public function mc() {
  23. return $this->hasone(MpConfModel::className(), 'mp_id', 'oa_id')->field('mp_id,wx_name,wx_logo,qr_code');
  24. }
  25. /**
  26. * 添加数据
  27. *
  28. * @param $data
  29. *
  30. * @return bool
  31. */
  32. public function addData($data) {
  33. if (empty($data)) {
  34. return false;
  35. }
  36. $_rs = $this->where($data)->find();
  37. if (!empty($_rs)) {
  38. return $_rs['id'];
  39. }
  40. $_data = $data;
  41. $_obj = self::create($_data, true);
  42. if ($_obj) {
  43. if (!empty($_data['is_default']) && MpConfConst::MP_OA_MCH_DEFAULT_2 == $_data['is_default']) {
  44. $_map = [
  45. 'mch_id' => $_data['mch_id'],
  46. 'id' => ['neq', $_obj->id],
  47. ];
  48. /* 先将全部设置为非默认 */
  49. $this->update(['is_default' => MpConfConst::MP_OA_MCH_DEFAULT_1], $_map);
  50. }
  51. return $_obj->id;
  52. }
  53. return false;
  54. }
  55. /**
  56. * 获取数据
  57. *
  58. * @param $mch_id
  59. *
  60. * @return array|bool|false|\PDOStatement|string|\think\Model
  61. */
  62. public function getInfoByMchId($mch_id) {
  63. $_map['mch_id'] = $mch_id;
  64. $_info = self::where($_map)->find();
  65. if (false === $_info) {
  66. return false;
  67. }
  68. if (is_object($_info)) {
  69. return $_info->toArray();
  70. } else {
  71. return $_info;
  72. }
  73. }
  74. /**
  75. * 删除记录
  76. *
  77. * @param $id
  78. *
  79. * @return int
  80. */
  81. public function deleteData($id) {
  82. $_map = ['id' => $id];
  83. return self::where($_map)->delete();
  84. }
  85. /**
  86. * 删除记录
  87. *
  88. * @param $oa_id
  89. *
  90. * @return int
  91. */
  92. public function deleteDataByOaId($oa_id) {
  93. $_map = ['oa_id' => $oa_id];
  94. return self::where($_map)->delete();
  95. }
  96. /**
  97. * 删除记录
  98. *
  99. * @param $mch_id
  100. *
  101. * @return int
  102. */
  103. public function deleteDataByMchId($mch_id) {
  104. $_map = ['mch_id' => $mch_id];
  105. return self::where($_map)->delete();
  106. }
  107. /**
  108. * 修改默认状态
  109. *
  110. * @param $id
  111. * @param int $is_default
  112. *
  113. * @return bool
  114. */
  115. public function setDefault($id, $is_default = MpConfConst::MP_OA_MCH_DEFAULT_2) {
  116. $_data = $this->getInfoById($id);
  117. $_map = ['mch_id' => $_data['mch_id']];
  118. /* 先将全部设置为非默认 */
  119. $this->update(['is_default' => MpConfConst::MP_OA_MCH_DEFAULT_1], $_map);
  120. $_map = ['id' => $id];
  121. $_data = ['is_default' => $is_default];
  122. $_rs = $this->update($_data, $_map);
  123. if (false == $_rs) {
  124. return false;
  125. }
  126. return true;
  127. }
  128. /**
  129. * 获取公众号绑定商户信息配置信息
  130. *
  131. * @param $oa_id
  132. *
  133. * @return array
  134. */
  135. public function getPayConfByOaId($oa_id, $order = '-is_default') {
  136. $_rdata = [];
  137. $_map = ['oa_id' => $oa_id];
  138. $order = $this->orderFilter($order);
  139. $_data = $this->where($_map)->order($order)->find();
  140. if (is_object($_data)) {
  141. $_data = $_data->toArray();
  142. }
  143. if (empty($_data)) {
  144. return $_rdata;
  145. }
  146. $_map = ['mp_id' => $oa_id];
  147. $_oa_data = (new MpConfModel())->where($_map)->find();
  148. if (is_object($_oa_data)) {
  149. $_oa_data = $_oa_data->toArray();
  150. }
  151. if (empty($_oa_data)) {
  152. return $_rdata;
  153. }
  154. $_map = ['mp_id' => $_data['mch_id']];
  155. $_mch_data = (new MpConfModel())->where($_map)->find();
  156. if (is_object($_mch_data)) {
  157. $_mch_data = $_mch_data->toArray();
  158. }
  159. if (empty($_mch_data)) {
  160. return $_rdata;
  161. }
  162. $_rdata = [
  163. 'app_id' => $oa_id,
  164. 'mch_id' => $_mch_data['mp_id'],
  165. 'key' => $_mch_data['app_secret'],
  166. 'app_secret' => $_oa_data['app_secret'],
  167. ];
  168. return $_rdata;
  169. }
  170. }