MemAddressModel.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. /**
  3. * AddressModel.php UTF-8
  4. *
  5. *
  6. * @date : 2019/2/18 11:18
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : linjiebin <ljb@huosdk.com>
  10. * @version : HUOSDK 7.0
  11. */
  12. namespace huo\model\address;
  13. use huo\model\common\CommonModel;
  14. use huolib\constant\CommonConst;
  15. class MemAddressModel extends CommonModel {
  16. protected $name = 'mem_address';
  17. protected $pk = 'id';
  18. /* 开启自动写入时间戳字段 */
  19. protected $autoWriteTimestamp = true;
  20. /**
  21. * 添加数据
  22. *
  23. * @param array $data 需要添加的数据
  24. *
  25. * @return false|int 添加失败返回 false 添加成功 返回添加的ID
  26. */
  27. public function addData($data) {
  28. if (empty($data)) {
  29. return false;
  30. }
  31. $_data = $data;
  32. $_model = new static();
  33. $_rs = $_model->allowField(true)->isUpdate(false)->save($_data, []);
  34. if (false !== $_rs) {
  35. return $_model->getLastInsID();
  36. }
  37. return false;
  38. }
  39. /**
  40. * 通过ID获取信息
  41. *
  42. * @param int $id 主键ID
  43. *
  44. * @return array
  45. */
  46. public function getInfoById($id) {
  47. /* 缓存操作 */
  48. if (!empty($_data)) {
  49. return $_data;
  50. }
  51. $_data = parent::getInfoById($id);
  52. if (empty($_data)) {
  53. return [];
  54. }
  55. return $_data;
  56. }
  57. /**
  58. * 更新单条数据
  59. *
  60. * @param array $data 数据
  61. * @param int $id ID
  62. *
  63. * @return bool
  64. */
  65. public function updateData($data, $id) {
  66. $_data = $data;
  67. $_map[$this->pk] = $id;
  68. $_model = new static();
  69. $_rs = $_model->isUpdate(true)->save($_data, $_map);
  70. if (false === $_rs) {
  71. return false;
  72. }
  73. /* 缓存操作 */
  74. return true;
  75. }
  76. /**
  77. * 删除单条数据
  78. *
  79. * @param int $id ID
  80. * @param bool $is_complete 是否完成删除
  81. *
  82. * @return bool
  83. */
  84. public function deleteData($id, $is_complete = true) {
  85. $_map[$this->pk] = $id;
  86. if (true == $is_complete) {
  87. /* 彻底删除 */
  88. $_rs = $this->where($_map)->delete();
  89. } else {
  90. $_data['is_delete'] = CommonConst::CONST_DELETED;
  91. $_rs = self::updateData($_data, $id);
  92. }
  93. if (false === $_rs) {
  94. return false;
  95. }
  96. /* 缓存操作 */
  97. return $_rs;
  98. }
  99. /**
  100. * 设定某个ID以外的为非默认
  101. *
  102. * @param int $id 当前id
  103. * @param int $mem_id 玩家id
  104. *
  105. * @return MemAddressModel
  106. */
  107. public function setNoDefaultExcept($id, $mem_id) {
  108. $_map = [
  109. 'id' => ['neq', $id],
  110. 'mem_id' => $mem_id
  111. ];
  112. return $this->where($_map)->update(['is_default' => 1]);
  113. }
  114. }