You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

390 lines
12 KiB

  1. -- http://120.76.238.236:8999/wiki/index.php?title=%E9%82%80%E8%AF%B7%E6%B4%BB%E5%8A%A8
  2. local MainInviteNewFriend = class("MainInviteNewFriend", cc.UIView)
  3. function MainInviteNewFriend:ctor()
  4. MainInviteNewFriend.super.ctor(self)
  5. local ui = loadUI("res/ui/ui_dating/ui_laxin.ui")
  6. self.ui = ui
  7. self:addChild(ui)
  8. self:init()
  9. end
  10. function MainInviteNewFriend:init()
  11. loadSpriteFrameFile("res/ui/zy_dating/invite/hall_invite.plist")
  12. self.ui.Items.Button:registerClick(function ()
  13. self:onClickClose()
  14. end)
  15. --隐藏要拷贝的对象
  16. self.ui.Items.Layout_People_Item:setVisible(false)
  17. self.ui.Items.Layout_RecordItem:setVisible(false)
  18. --分享界面隐藏
  19. self.ui.Items.ImageView_Share:setVisible(false)
  20. --隐藏bar
  21. self.ui.Items.ScrollView:hideAllBar()
  22. self.ui.Items.ScrollView_Record:hideAllBar()
  23. self.ui.Items.ScrollView:getInnerContainer():setAutoSize(true)
  24. self.ui.Items.ScrollView_Record:getInnerContainer():setAutoSize(true)
  25. --分享
  26. self.ui.Items.Button_Share:registerClick(handler(self,self.onClickShare))
  27. --好友群分享
  28. self.ui.Items.Button_3:registerClick(handler(self,self.onClickFriend))
  29. --朋友圈分享
  30. self.ui.Items.Button_4:registerClick(handler(self,self.onClickFriendCircle))
  31. --兑换
  32. self.ui.Items.Button_DuiHuan:registerClick(handler(self,self.onClickDuiHuan))
  33. self.ui.Items.Button_DuiHuan:setEnabled(false)
  34. --提现
  35. self.ui.Items.Button_TiXian:registerClick(handler(self,self.onClickTiXian))
  36. self.ui.Items.Button_TiXian:setEnabled(false)
  37. --空白点击
  38. self.ui.Items.Layout_1:registerClick(handler(self,self.onClickBlank))
  39. self.ui.Items.Button_Teach:registerClick(handler(self,self.onClickTeach))
  40. self:initLeft();
  41. app.php:requestLaXinInitData()
  42. self:bindEvent(app , "HallInviteNewFirend" , handler(self , self.updateView));
  43. end
  44. function MainInviteNewFriend:shareCallback(data)
  45. logD("分享成功")
  46. local code = data.code;
  47. local err = data.error;
  48. local result = data.result;
  49. local add = result.add;
  50. local card = result.card;
  51. local atype = result.atype;
  52. local wallet = result.wallet;
  53. if code == 200 then
  54. --显示金币奖励
  55. local info = {}
  56. if atype == 1 then
  57. info.isUserBox = true
  58. info.fileName = "invite_icon.png"
  59. info.tip = "恭喜您获得房卡"..toNumber(add).."张"
  60. --修改房卡
  61. app.user.loginInfo.curCardNum = tostring(card)
  62. elseif atype == 4 then
  63. info.fileName = "invite_hongbao2.png"
  64. info.tip = "恭喜您获得1元红包"
  65. --更新红包数据
  66. self:updateMoney(wallet)
  67. else
  68. info.fileName = "invite_icon.png"
  69. end
  70. --刷新数据
  71. app.php:requestLaXinInitData()
  72. info.normal = true
  73. showFuLiConfirm(info)
  74. else
  75. showTooltip(err)
  76. end
  77. end
  78. function MainInviteNewFriend:playAni(node)
  79. --绑定手机的动画
  80. local seq2 = cc.Sequence:create(
  81. cc.RotateTo:create(0.15,6),
  82. cc.RotateTo:create(0.15,-6),
  83. cc.RotateTo:create(0.16,6),
  84. cc.RotateTo:create(0.16,0),
  85. cc.DelayTime:create(1.5)
  86. )
  87. if node then
  88. node:runAction(cc.RepeatForever:create(seq2))
  89. end
  90. end
  91. function MainInviteNewFriend:initLeft()
  92. self.leftItems = {};
  93. for i = 1,10 do
  94. local people = self.ui.Items.Layout_People_Item:getCopied();
  95. people.Items = getUIItems(people);
  96. people.Items.Layout_3:setVisible(false)
  97. people.Items.ImageView_LQ_1:setVisible(false)
  98. people.Items.ImageView_LQ_2:setVisible(false)
  99. people.Items.ImageView_old_player:setVisible(false)
  100. people.Items.Button_1:setEnabled(false)
  101. people.Items.Button_2:setEnabled(false)
  102. people.Items.Button_1:registerClick(function ()
  103. local id = people.Items.Button_1:getParent():getParent().id ;
  104. logD("id:",id);
  105. app.php:requestLaXinRigisterShare(1,id,handler(self,self.shareCallback))
  106. end)
  107. people.Items.Button_2:registerClick(function ()
  108. local id = people.Items.Button_2:getParent():getParent().id ;
  109. logD("id:",id);
  110. app.php:requestLaXinRigisterShare(2,id,handler(self,self.shareCallback))
  111. end)
  112. table.insert(self.leftItems,people);
  113. self.ui.Items.ScrollView:addChild(people);
  114. end
  115. self.ui.Items.ScrollView:requestDoLayout();
  116. self.ui.Items.ScrollView:doLayout();
  117. self.ui.Items.ScrollView:jumpToTopOnSizeChanged();
  118. end
  119. function MainInviteNewFriend:updateView(data)
  120. self.ui.Items.ScrollView_Record:removeAllChildren()
  121. local response = data.ret;
  122. logD("MainInviteNewFriend response:",table.tostring(response));
  123. self.wallet = response.wallet;
  124. self.tasksEndTime = response.tasksEndTime;
  125. self.shareLink = response.shareLink;
  126. self.inviteAwards = response.inviteAwards;
  127. self.invites = response.invites;
  128. self.exchange = toNumber(response.exchange.card);
  129. self.pictureLink = response.shareImg;
  130. --下载图片
  131. if string.len(self.pictureLink) > 0 then
  132. self:downLoadSharePic()
  133. else
  134. --没有给就去拉取
  135. app.php:requestLaXinDownPic(function (url)
  136. self.pictureLink = url;
  137. self:downLoadSharePic()
  138. end);
  139. end
  140. if self.tasksEndTime then
  141. local function updateTime()
  142. local disTimeInfo = timediff(self.tasksEndTime,os.time());
  143. if disTimeInfo.day == 0 and disTimeInfo.month == 0 and disTimeInfo.hour == 0 and disTimeInfo.min == 0 and disTimeInfo.sec == 0 then
  144. self.ui.Items.Text_EndTime:stopAllActions()
  145. self.ui.Items.Text_EndTime:setText("活动已到期");
  146. self.ui.Items.Button_Share:setEnabled(false)
  147. else
  148. self.ui.Items.Text_EndTime:setString(string.format("活动倒计时:%d天%d时%d分%d秒",disTimeInfo.day + disTimeInfo.month * 30,disTimeInfo.hour,disTimeInfo.min,disTimeInfo.sec))
  149. end
  150. end
  151. self.ui.Items.Text_EndTime:stopAllActions()
  152. self.ui.Items.Text_EndTime:runActions(cc.RepeatForever:create(cc.Sequence:create(cc.DelayTime:create(1),cc.CallFunc:create(function()
  153. updateTime()
  154. end))))
  155. end
  156. --更新奖励记录
  157. if self.inviteAwards then
  158. local tt = {};
  159. for k,v in pairs(self.inviteAwards) do
  160. tt[v.time] = v.content;
  161. end
  162. for k,v in pairsByKeysEx(tt) do
  163. local recordItem = self.ui.Items.Layout_RecordItem:getCopied();
  164. recordItem:setVisible(true)
  165. recordItem.Items = getUIItems(recordItem);
  166. recordItem.Items.Text_report:setText(os.date("%m月%d日",k).." "..tostring(v))
  167. self.ui.Items.ScrollView_Record:addChild(recordItem);
  168. end
  169. self.ui.Items.ScrollView_Record:jumpToTopOnSizeChanged();
  170. self.ui.Items.ScrollView_Record:requestDoLayout();
  171. self.ui.Items.ScrollView_Record:doLayout();
  172. end
  173. --更新左边玩家
  174. if self.invites then
  175. for k,v in ipairs(self.invites) do
  176. local people = self.leftItems[k];
  177. people.id = v.id;
  178. people.Items.Text_name:setText(getSubStringNickname(v.nick));
  179. local nodeHead = people.Items.ImageView_head;
  180. setPlayerHeadImage(v.uid, v.head, nodeHead, false)
  181. local regStatus = toNumber(v.reg_status);
  182. local playStatus = toNumber(v.play_status);
  183. people.Items.ImageView_old_player:setVisible(false)
  184. people.Items.Button_1:stopAllActions();
  185. people.Items.Button_2:stopAllActions();
  186. --红包1状态
  187. if INVITE_NEW_FRIEND.NOENOUGH_ADDITION == regStatus then
  188. people.Items.ImageView_LQ_1:setVisible(false)
  189. people.Items.Button_1:setEnabled(false)
  190. elseif INVITE_NEW_FRIEND.ENOUGH_ADDITION == regStatus then
  191. people.Items.ImageView_LQ_1:setVisible(false)
  192. people.Items.Button_1:setEnabled(true)
  193. self:playAni(people.Items.Button_1)
  194. elseif INVITE_NEW_FRIEND.HAVED_PRIZED == regStatus then
  195. people.Items.ImageView_LQ_1:setVisible(true)
  196. people.Items.Button_1:setEnabled(false)
  197. elseif INVITE_NEW_FRIEND.OLD_PLAYER == regStatus then
  198. people.Items.ImageView_LQ_1:setVisible(false)
  199. people.Items.ImageView_old_player:setVisible(true)
  200. people.Items.Button_1:setEnabled(false)
  201. end
  202. --红包2状态
  203. if INVITE_NEW_FRIEND.NOENOUGH_ADDITION == playStatus then
  204. people.Items.ImageView_LQ_2:setVisible(false)
  205. people.Items.Button_2:setEnabled(false)
  206. elseif INVITE_NEW_FRIEND.ENOUGH_ADDITION == playStatus then
  207. people.Items.ImageView_LQ_2:setVisible(false)
  208. people.Items.Button_2:setEnabled(true)
  209. self:playAni(people.Items.Button_2)
  210. elseif INVITE_NEW_FRIEND.HAVED_PRIZED == playStatus then
  211. people.Items.ImageView_LQ_2:setVisible(true)
  212. people.Items.Button_2:setEnabled(false)
  213. elseif INVITE_NEW_FRIEND.OLD_PLAYER == playStatus then
  214. people.Items.ImageView_LQ_2:setVisible(false)
  215. people.Items.Button_2:setEnabled(false)
  216. end
  217. end
  218. end
  219. --更新红包数据
  220. self:updateMoney(self.wallet)
  221. --更新按钮状态
  222. --兑换
  223. self.ui.Items.Button_DuiHuan:setEnabled(self.wallet > 0)
  224. --提现
  225. self.ui.Items.Button_TiXian:setEnabled(self.wallet > 0)
  226. end
  227. function MainInviteNewFriend:downLoadSharePic()
  228. self.file = getImageNameFromUrl(self.pictureLink)
  229. getImageFromUrlWithTime(self.pictureLink, self.file, nil, function()
  230. logD("拉新分享的图片下载完成")
  231. end)
  232. end
  233. function MainInviteNewFriend:onClickClose()
  234. playBtnCloseEffect()
  235. app:dispatchEvent({name = GAME_EVENT.ACTIVITY_CLOSE})
  236. self:removeFromParent()
  237. end
  238. function MainInviteNewFriend:onClickBlank()
  239. self.ui.Items.ImageView_Share:setVisible(false)
  240. end
  241. function MainInviteNewFriend:onClickTeach()
  242. local view = import("luaScript.Views.Main.MainInviteNewFriendTeach"):new()
  243. view:setAnchorPoint(cc.p(0.5, 0.5))
  244. app:showWaitDialog(view,255)
  245. end
  246. function MainInviteNewFriend:onClickShare()
  247. playBtnEffect()
  248. if not app.plugin:isSupportWeiXin() then
  249. showTooltip("您还未安装微信!请安装后重试!")
  250. return
  251. end
  252. self.ui.Items.ImageView_Share:setVisible(not self.ui.Items.ImageView_Share:isVisible())
  253. end
  254. function MainInviteNewFriend:onClickFriend()
  255. playBtnEffect()
  256. self.ui.Items.ImageView_Share:setVisible(false)
  257. self:share("talk")
  258. end
  259. function MainInviteNewFriend:onClickFriendCircle()
  260. playBtnEffect()
  261. self.ui.Items.ImageView_Share:setVisible(false)
  262. self:share("scene")
  263. end
  264. function MainInviteNewFriend:share(mode)
  265. local info = {}
  266. info.image = cc.FileUtils:getInstance():getWritablePath()..tostring(self.file)
  267. logD("self.file:",self.file)
  268. logD("info.image:",info.image)
  269. if not cc.FileSystem:fileExists(info.image) then
  270. logD("图片还未开始下载或者是在下载中")
  271. showTooltip("当前网络不稳定,请稍候重试!");
  272. return;
  273. end
  274. info.scene = mode
  275. info.contentType = "image"
  276. info.title = self.shareLink.title or ""
  277. info.description = self.shareLink.desc or ""
  278. info.imageWidth = 550
  279. info.thumbWidth = 50
  280. info.url = self.shareLink.link or ""
  281. app.plugin:shareGame(info, function ()
  282. if cc.Application:getInstance():getTargetPlatform() == 3 then
  283. if mode == "scene" then
  284. app.php:requestLaXinFirstShare(handler(self,self.shareCallback))
  285. end
  286. end
  287. end);
  288. if cc.Application:getInstance():getTargetPlatform() == 4 or cc.Application:getInstance():getTargetPlatform() == 5 then
  289. if mode == "scene" then
  290. app.php:requestLaXinFirstShare(handler(self,self.shareCallback))
  291. end
  292. end
  293. end
  294. function MainInviteNewFriend:onClickDuiHuan()
  295. playBtnEffect()
  296. local function btnOk()
  297. app.php:requestLaXinExchange(1,function (data)
  298. local code = data.code;
  299. local err = data.error;
  300. local result = data.result;
  301. if code == 200 then
  302. self:updateMoney(result.wallet)
  303. self:shareCallback(data)
  304. else
  305. showTooltip(err)
  306. end
  307. end)
  308. end
  309. local function btnCancel()
  310. end
  311. local content2 = "你将用"..tostring(self.wallet).."元红包兑换"..tostring(self.exchange * self.wallet).."张房卡,确认兑换?";
  312. if self.wallet and self.wallet > 0 then
  313. showConfirmDialog(content2, btnOk,btnCancel)
  314. end
  315. end
  316. function MainInviteNewFriend:onClickTiXian()
  317. playBtnEffect()
  318. app.php:requestLaXinGetMoney(5005,function (data)
  319. local code = data.code;
  320. local err = data.error;
  321. local result = data.result;
  322. local content = result.content;
  323. if code == 200 then
  324. self:updateMoney(result.wallet)
  325. local function btnOk()
  326. end
  327. showConfirmDialog(content, btnOk)
  328. else
  329. showTooltip(err)
  330. end
  331. end)
  332. end
  333. function MainInviteNewFriend:updateMoney(wallet)
  334. --更新红包数据
  335. self.wallet = toNumber(wallet)
  336. --提现
  337. self.ui.Items.Button_DuiHuan:setEnabled(self.wallet > 0)
  338. --提现
  339. self.ui.Items.Button_TiXian:setEnabled(self.wallet > 0)
  340. self.ui.Items.Text_num:setText(tostring(self.wallet));
  341. self.ui.Items.Layout_2:requestDoLayout();
  342. self.ui.Items.Layout_2:doLayout();
  343. end
  344. return MainInviteNewFriend