RUserController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <?php
  2. class RUserController extends AdminController{
  3. protected $fileds = [
  4. 'user_name' =>'姓名',
  5. 'phone' =>'手机号',
  6. 'sex' =>'性别',
  7. 'card_number' =>'注册号',
  8. 'password' =>'密码',
  9. ];
  10. public function actionIndex()
  11. {
  12. // $users = RUser::model()->findAll();
  13. // foreach ($users as $user) {
  14. // $user->avatar = str_replace('http://odulcd8g1.bkt.clouddn.com','http://avatar.yiguanjia.club',$user->avatar);
  15. // $user->save();
  16. // }
  17. // 订单类型
  18. $type_data = Yii::app()->params['o2o_service'];
  19. $type = CommonFn::getComboboxData($type_data, 100, true, 100);
  20. $this->render('index', array(
  21. 'fileds' => $this->fileds,
  22. 'type' => $type
  23. ));
  24. }
  25. public function actionList(){
  26. $search = Yii::app()->request->getParam('search', '');
  27. $id = Yii::app()->request->getParam('id', '');
  28. $params = CommonFn::getPageParams();
  29. if(isset($params['sort']) && isset($params['sort']['register_time'])){
  30. $params['sort'] = array('_id' => $params['sort']['register_time']);
  31. }
  32. $criteria = new EMongoCriteria($params);
  33. if ($id != ''){
  34. $user_id = new MongoId($id);
  35. $criteria->_id('==', $user_id);
  36. }
  37. if ($search != '' && !CommonFn::isMongoId($search)){
  38. $criteria->addCond('source','or', new MongoRegex('/' . $search . '/'));
  39. $criteria->addCond('user_info.mobile','or', new MongoRegex('/' . $search . '/'));
  40. $criteria->addCond('user_info.name','or', new MongoRegex('/' . $search . '/'));
  41. $criteria->user_name('or', new MongoRegex('/' . $search . '/'));
  42. if (CommonFn::isMongoId($search)){
  43. $criteria->_id('or', new MongoId($search));
  44. }
  45. }
  46. if (CommonFn::isMongoId($search)) {
  47. $criteria = new EMongoCriteria();
  48. $criteria->_id('==', new MongoId($search));
  49. }
  50. $cursor = RUser::model()->findAll($criteria);
  51. $total = $cursor->count();
  52. $rows = CommonFn::getRowsFromCursor($cursor);
  53. $parsedRows = RUser::model()->parse($rows);
  54. echo CommonFn::composeDatagridData($parsedRows, $total);
  55. }
  56. public function actionUpdate(){
  57. $id = Yii::app()->request->getParam('id', '');
  58. if(!$id){
  59. CommonFn::requestAjax(false, "缺少必须参数");
  60. }
  61. $criteria = new EMongoCriteria();
  62. $criteria->_id = new MongoId($id);
  63. $user = RUser::model()->find($criteria);
  64. $mobile = Yii::app()->getRequest()->getParam('mobile','');
  65. $name = Yii::app()->getRequest()->getParam('name','');
  66. $user->user_info = array('name' => $name,'mobile' => $mobile);
  67. $success = $user->save();
  68. CommonFn::requestAjax($success, '修改成功', array());
  69. }
  70. public function actionGetCoupons(){
  71. $user_id = Yii::app()->getRequest()->getParam("user_id");
  72. $UserCoupon = new UserCoupon();
  73. $criteria = new EMongoCriteria();
  74. $criteria->user('==',new MongoId($user_id));
  75. $current_time = time();
  76. $criteria->end_time('>=',$current_time);
  77. $criteria->status('==',1);
  78. $coupons = UserCoupon::model()->findAll($criteria);
  79. $coupon_list = array();
  80. foreach ($coupons as $value) {
  81. $coupon = Coupon::get($value->coupon);
  82. if($coupon->status!=1){
  83. continue;
  84. }
  85. $coupon = $UserCoupon->parseRow($value,array('id','start_time','end_time','start_time_str','end_time_str','coupon'));
  86. $coupon['unuseable_reason'] = '可使用';
  87. $coupon_list[] = $coupon;
  88. }
  89. $criteria = new EMongoCriteria();
  90. $criteria->user('==',new MongoId($user_id));
  91. $criteria->status('==',-1);
  92. $coupons = UserCoupon::model()->findAll($criteria);
  93. foreach ($coupons as $value) {
  94. $coupon = $UserCoupon->parseRow($value,array('id','start_time','end_time','start_time_str','end_time_str','coupon'));
  95. $coupon['unuseable_reason'] = '已使用';
  96. $coupon_list[] = $coupon;
  97. }
  98. $criteria = new EMongoCriteria();
  99. $criteria->user('==',new MongoId($user_id));
  100. $current_time = time();
  101. $criteria->end_time('<',$current_time);
  102. $coupons = UserCoupon::model()->findAll($criteria);
  103. foreach ($coupons as $value) {
  104. $coupon = $UserCoupon->parseRow($value,array('id','start_time','end_time','start_time_str','end_time_str','coupon'));
  105. $coupon['unuseable_reason'] = '已过期';
  106. $coupon_list[] = $coupon;
  107. }
  108. foreach ($coupon_list as $key => $value) {
  109. $coupon_list[$key]['name'] = $value['coupon']['name'];
  110. $coupon_list[$key]['value'] = $value['coupon']['value'];
  111. $coupon_list[$key]['min_price'] = $value['coupon']['min_price'];
  112. $coupon_list[$key]['type_str'] = $value['coupon']['type_str'];
  113. }
  114. $total = count($coupon_list);
  115. $data = $coupon_list;
  116. echo CommonFn::composeDatagridData($data, $total);
  117. }
  118. public function actionChangeBalance(){
  119. $id = Yii::app()->request->getParam('id');
  120. $amount = intval(Yii::app()->request->getParam('amount'));
  121. $memo = Yii::app()->request->getParam('memo');
  122. $type = Yii::app()->request->getParam('type');
  123. if(!$id||!$amount||!$memo||!$type){
  124. CommonFn::requestAjax(false, "缺少必须参数");
  125. }
  126. $user = RUser::get(new MongoId($id));
  127. if(!$user){
  128. CommonFn::requestAjax(false, "用户不存在");
  129. }
  130. $user->balance = $user->balance+$amount;
  131. if($user->balance<0){
  132. CommonFn::requestAjax(false, "用户余额不能小于0");
  133. }
  134. $user->save();
  135. $balance_log = new BalanceLog();
  136. $balance_log->time = time();
  137. $balance_log->user = $user->_id;
  138. $balance_log->memo = $memo;
  139. $balance_log->type = $type;
  140. $balance_log->amount = $amount;
  141. $balance_log->save(true);
  142. CommonFn::requestAjax(true, '修改成功', array());
  143. }
  144. public function actionBalanceLog(){
  145. $id = Yii::app()->request->getParam('id', '');
  146. $params = CommonFn::getPageParams();
  147. $criteria = new EMongoCriteria($params);
  148. if ($id != ''){
  149. $id = new MongoId($id);
  150. $criteria->user('==', $id);
  151. }else{
  152. CommonFn::requestAjax(false, "缺少必须参数");
  153. }
  154. $cursor = BalanceLog::model()->findAll($criteria);
  155. $total = $cursor->count();
  156. $rows = CommonFn::getRowsFromCursor($cursor);
  157. $parsedRows = BalanceLog::model()->parse($rows);
  158. echo CommonFn::composeDatagridData($parsedRows, $total);
  159. }
  160. public function actionSendCoupon() {
  161. $user_id = Yii::app()->request->getParam('user_id', '');
  162. $coupon_id = Yii::app()->request->getParam('coupon_id', '');
  163. $start_time = Yii::app()->request->getParam('start_time', '');
  164. $end_time = Yii::app()->request->getParam('end_time', '');
  165. $need_sms = intval(Yii::app()->request->getParam('need_sms', '0'));
  166. $copy = Yii::app()->request->getParam('copy', '');
  167. $mongo = new MongoClient(DB_CONNETC);
  168. $db = $mongo->fuwu;
  169. $coll = 'admin_send_coupon_log';
  170. $collection = $db->selectCollection($coll);
  171. $admin = Yii::app()->user;
  172. $admin_id = $admin->id;
  173. $user_id = new MongoId($user_id);
  174. $coupon_id = new MongoId($coupon_id);
  175. $time = time();
  176. $user = RUser::get($user_id);
  177. //开始与结束时间处理
  178. $start_time = empty($start_time) ? $time : strtotime($start_time);
  179. $end_time = empty($end_time) ? strtotime('+30 day', $start_time) : strtotime($end_time);
  180. //插入user_coupons表
  181. $flag_user_coupon = Service::factory('CouponService')->giveCoupon($user_id, $coupon_id, $start_time, $end_time);
  182. if (!$flag_user_coupon) {
  183. CommonFn::requestAjax($flag_user_coupon, '发放优惠券失败', array());
  184. }
  185. //插入admin_send_coupon_log表
  186. $data = array(
  187. 'admin_id' => $admin_id,
  188. 'user_id' => $user_id,
  189. 'coupon_id' => $coupon_id,
  190. 'time' => $time
  191. );
  192. $flag_send_log = $collection->insert($data);
  193. if ($flag_send_log['err'] != null) {
  194. CommonFn::requestAjax($flag_user_coupon, '优惠券已发放,日志记录失败', array());
  195. }
  196. //发送短信
  197. if ($need_sms) {
  198. if (isset($user->mobile)&&$user->mobile != '') {
  199. Service::factory('SendSMSService')->send_sms($copy, $user->mobile);
  200. } else if (!empty($user->shop_address) && isset($user->shop_address[0]['mobile'])) {
  201. $mobile = $user->shop_address[0]['mobile'];
  202. Service::factory('SendSMSService')->send_sms($copy, $mobile);
  203. }
  204. }
  205. CommonFn::requestAjax(true, '优惠券已成功发放');
  206. }
  207. public function actionAdd(){
  208. $user_name = Yii::app()->request->getParam('user_name', '');
  209. $sex = (int)Yii::app()->request->getParam('sex', '');
  210. $phone = Yii::app()->request->getParam('phone', '');
  211. $card_number = Yii::app()->request->getParam('card_number', '');
  212. $password = Yii::app()->request->getParam('password', '');
  213. $criteria = new EMongoCriteria();
  214. $criteria->card_number('==',$card_number);
  215. $criteria->password('==',$password);
  216. $result = RegisterCard::model()->find($criteria);
  217. if ($result->status != 0) {
  218. CommonFn::requestAjax(false, '添加失败,注册卡已被使用');
  219. }
  220. if ($result) {
  221. $userAr = new RUser();
  222. $userAr->user_name = $user_name;
  223. $userAr->user_info = [
  224. 'name' => $user_name,
  225. 'mobile' => $phone,
  226. 'phone' => $phone,
  227. 'email' => '',
  228. 'birth' => '',
  229. 'sex' => (int)$sex,
  230. ];
  231. $userAr->avatar = '';
  232. $userAr->wx_pub_openid = '';
  233. $userAr->unionid = '';
  234. $userAr->sex = $sex;
  235. $userAr->register_time = time();
  236. $userAr->channel = 'wxpub';
  237. $userAr->wx_have_follow = 1;
  238. $userAr->source = '建工';
  239. $userAr->type = '电话';
  240. $userAr->balance = 800;
  241. $userAr->save();
  242. $result->user_id = $userAr->_id;
  243. $result->time = time();
  244. $result->phone = $phone;
  245. $result->status = 1;
  246. $result->source = '电话';
  247. $result->save();
  248. CommonFn::requestAjax(true, '添加成功');
  249. } else {
  250. CommonFn::requestAjax(false, '添加失败,注册卡号不正确');
  251. }
  252. }
  253. }