Contact.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace app\admin\controller\wwh;
  3. use app\common\controller\Backend;
  4. use think\Db;
  5. class Contact extends Base
  6. {
  7. // 表字段结构
  8. const DEFAULT_CONTACT = [
  9. 'tel' => '',
  10. 'email' => '',
  11. 'time' => '',
  12. 'address' => ''
  13. ];
  14. // 语言标识
  15. const LANG_CN = 1;
  16. const LANG_EN = 2;
  17. /**
  18. * 查看
  19. */
  20. public function index()
  21. {
  22. // 初始化中英文数据
  23. $dataCN = $this->initContactData(self::LANG_CN);
  24. $dataEN = $this->initContactData(self::LANG_EN);
  25. $this->assign([
  26. 'dataCN' => $dataCN,
  27. 'dataEN' => $dataEN
  28. ]);
  29. return $this->view->fetch();
  30. }
  31. /**
  32. * 初始化数据
  33. * @param int $lang 语言标识
  34. * @return array
  35. */
  36. protected function initContactData($lang)
  37. {
  38. $id = $lang; // ID与语言标识相同
  39. $data = Db::name('wwh_contact')->where('id', $id)->find();
  40. if (!$data) {
  41. $data = array_merge(
  42. ['id' => $id, 'lang' => $lang],
  43. self::DEFAULT_CONTACT
  44. );
  45. Db::name('wwh_contact')->insert($data);
  46. }
  47. return $data;
  48. }
  49. /**
  50. * 保存数据
  51. * @param int $lang 语言标识
  52. */
  53. public function saveContact($lang)
  54. {
  55. $id = $lang; // ID与语言标识相同
  56. $data = [
  57. 'id' => $id,
  58. 'tel' => input('tel'),
  59. 'email' => input('email'),
  60. 'time' => input('time'),
  61. 'address' => input('address'),
  62. 'lang' => $lang
  63. ];
  64. $exists = Db::name('wwh_contact')->where('id', $id)->find();
  65. if ($exists) {
  66. // 检查数据变动
  67. foreach (array_keys(self::DEFAULT_CONTACT) as $field) {
  68. if ($exists[$field] != $data[$field]) {
  69. $result = Db::name('wwh_contact')->update($data);
  70. return $this->returnResult($result);
  71. }
  72. }
  73. return $this->error('未检测到数据变动', null, null, false);
  74. }
  75. $result = Db::name('wwh_contact')->insert($data);
  76. return $this->returnResult($result);
  77. }
  78. /**
  79. * 返回操作结果
  80. * @param bool $result
  81. */
  82. protected function returnResult($result)
  83. {
  84. return $result ? $this->success('保存成功') : $this->error('保存失败');
  85. }
  86. /**
  87. * 中文联系信息修改
  88. */
  89. public function ContactCN()
  90. {
  91. return $this->saveContact(self::LANG_CN);
  92. }
  93. /**
  94. * 英文联系信息修改
  95. */
  96. public function ContactEN()
  97. {
  98. return $this->saveContact(self::LANG_EN);
  99. }
  100. }