Utils.js 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. var HTTPS = require('./ts/HTTPS').HTTPSIns
  2. window.Utils = {
  3. // name: 'Utils',
  4. javaToJs(id) {
  5. // const ANDROIDApi = require('ANDROIDApi');
  6. // ANDROIDApi.payOk(id)
  7. },
  8. stringFormat(args) {
  9. let out = arguments[0];
  10. if (arguments.length >= 1) {
  11. for (let key in arguments) {
  12. if (arguments[key] !== undefined && key > 0) {
  13. out = out.replace('{' + (key - 1) + '}', arguments[key]);
  14. }
  15. }
  16. }
  17. return out;
  18. },
  19. versionStrToInt(ver) {
  20. let verArr = ver.split('.');
  21. return verArr.reduce((total, cur, index) => {
  22. return (total + Number(cur) * Math.pow(10, verArr.length - index - 1));
  23. }, 0);
  24. },
  25. //获取当前时间,格式YYYY-MM-DD
  26. getNowFormatDate() {
  27. let date = new Date();
  28. // let seperator1 = "-";
  29. let year = date.getFullYear();
  30. let month = date.getMonth() + 1;
  31. let strDate = date.getDate();
  32. if (month >= 1 && month <= 9) {
  33. month = "0" + month;
  34. }
  35. if (strDate >= 0 && strDate <= 9) {
  36. strDate = "0" + strDate;
  37. }
  38. // let currentdate = year + seperator1 + month + seperator1 + strDate;
  39. let currentdate = year.toString() + month.toString() + strDate.toString();
  40. return currentdate;
  41. },
  42. isSecondDay() {
  43. // 计算是否到了第二天
  44. let yesterday = CC_WECHATGAME ? wx.getStorageSync('yesterday') : cc.sys.localStorage.getItem('yesterday');
  45. yesterday = yesterday ? yesterday : 0;
  46. let today = Utils.getNowFormatDate();
  47. if (CC_WECHATGAME) {
  48. wx.setStorageSync('yesterday', today);
  49. } else {
  50. cc.sys.localStorage.setItem('yesterday', today);
  51. }
  52. if (Number(today) > Number(yesterday))
  53. return true;
  54. return false;
  55. },
  56. isFirstLogin() {
  57. let isFirstLogin = CC_WECHATGAME ? wx.getStorageSync('isFirstLogin') : cc.sys.localStorage.getItem('isFirstLogin');
  58. if (isFirstLogin) return false;
  59. cc.sys.localStorage.setItem('isFirstLogin', 'true');
  60. if (CC_WECHATGAME) {
  61. wx.setStorageSync('isFirstLogin', 'true')
  62. }
  63. return true;
  64. },
  65. getTodayReconmendNum() {
  66. let num = cc.sys.localStorage.getItem('recommendNum');
  67. if (CC_WECHATGAME) {
  68. num = wx.getStorageSync('recommendNum')
  69. }
  70. num = num ? num : 0;
  71. return Number(num);
  72. },
  73. addTodayReconmendNum() {
  74. let num = cc.sys.localStorage.getItem('recommendNum');
  75. if (CC_WECHATGAME) {
  76. num = wx.getStorageSync('recommendNum');
  77. }
  78. num = num ? Number(num) : 0;
  79. num++;
  80. cc.sys.localStorage.setItem('recommendNum', num);
  81. if (CC_WECHATGAME) {
  82. wx.setStorageSync('recommendNum', num);
  83. }
  84. },
  85. clearTodayReconmendNum() {
  86. cc.sys.localStorage.setItem('recommendNum', 0);
  87. if (CC_WECHATGAME) {
  88. wx.setStorageSync('recommendNum', 0);
  89. }
  90. },
  91. //生成从minNum到maxNum的随机数
  92. randomNum(minNum, maxNum) {
  93. return Math.floor(Math.random() * (maxNum - minNum + 1) + minNum);
  94. },
  95. // 生成3-32位随机串:randomString(true, 3, 32)
  96. // 生成43位随机串:randomString(false, 43)
  97. randomString(randomLen, min, max) {
  98. let str = "",
  99. range = min,
  100. arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
  101. 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
  102. 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
  103. 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F',
  104. 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
  105. 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
  106. // 随机产生
  107. if (randomLen) {
  108. range = Math.round(Math.random() * (max - min)) + min;
  109. }
  110. for (let i = 0; i < range; i++) {
  111. let pos = Math.round(Math.random() * (arr.length - 1));
  112. str += arr[pos];
  113. }
  114. return str;
  115. },
  116. encryptedData(appId, sessionKey) {
  117. // let WXBizDataCrypt = require('./WXBizDataCrypt')
  118. // // let QQApi = require("QQApi");
  119. // let encryptedData =
  120. // 'CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZM'+
  121. // 'QmRzooG2xrDcvSnxIMXFufNstNGTyaGS'+
  122. // '9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+'+
  123. // '3hVbJSRgv+4lGOETKUQz6OYStslQ142d'+
  124. // 'NCuabNPGBzlooOmB231qMM85d2/fV6Ch'+
  125. // 'evvXvQP8Hkue1poOFtnEtpyxVLW1zAo6'+
  126. // '/1Xx1COxFvrc2d7UL/lmHInNlxuacJXw'+
  127. // 'u0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn'+
  128. // '/Hz7saL8xz+W//FRAUid1OksQaQx4CMs'+
  129. // '8LOddcQhULW4ucetDf96JcR3g0gfRK4P'+
  130. // 'C7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB'+
  131. // '6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns'+
  132. // '/8wR2SiRS7MNACwTyrGvt9ts8p12PKFd'+
  133. // 'lqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYV'+
  134. // 'oKlaRv85IfVunYzO0IKXsyl7JCUjCpoG'+
  135. // '20f0a04COwfneQAGGwd5oa+T8yO5hzuy'+
  136. // 'Db/XcxxmK01EpqOyuxINew=='
  137. // let iv = 'r7BXXKkLb8qrSNn05n0qiA=='
  138. // let pc = new WXBizDataCrypt(appId, sessionKey)
  139. // let data = pc.decryptData(encryptedData , iv)
  140. // console.log('解密后 data: ', data)
  141. // return data;
  142. },
  143. hadRedPacket() {
  144. let num = cc.sys.localStorage.getItem('hadRedPacket');
  145. if (CC_WECHATGAME) {
  146. num = wx.getStorageSync('hadRedPacket');
  147. }
  148. if (num) return true;
  149. return false;
  150. },
  151. setRedPacket() {
  152. if (CC_WECHATGAME) {
  153. wx.setStorageSync('hadRedPacket', 'true')
  154. } else {
  155. cc.sys.localStorage.setItem('hadRedPacket', 'true');
  156. }
  157. },
  158. clearRedPacket() {
  159. if (CC_WECHATGAME) {
  160. wx.removeStorageSync('hadRedPacket')
  161. } else {
  162. cc.sys.localStorage.removeItem('hadRedPacket');
  163. }
  164. },
  165. getRedPacketNum() {
  166. // let num = cc.sys.localStorage.getItem('RedPacketNum');
  167. // if (CC_WECHATGAME) {
  168. // num = wx.getStorageSync('RedPacketNum');
  169. // }
  170. // num = num ? num : 0;
  171. // HTTPS.Instance.user_info.balance
  172. return Number(HTTPS.user_info.balance);
  173. },
  174. addRedPacketNum(value) {
  175. let num = cc.sys.localStorage.getItem('RedPacketNum');
  176. if (CC_WECHATGAME) {
  177. num = wx.getStorageSync('RedPacketNum');
  178. }
  179. num = num ? Number(num) : 0;
  180. num += value;
  181. num = num.toFixed(2);
  182. // num += '.00';
  183. cc.sys.localStorage.setItem('RedPacketNum', num);
  184. if (CC_WECHATGAME) {
  185. wx.setStorageSync('RedPacketNum', num);
  186. }
  187. },
  188. reduceRedPacketNum(value) {
  189. let num = cc.sys.localStorage.getItem('RedPacketNum');
  190. if (CC_WECHATGAME) {
  191. num = wx.getStorageSync('RedPacketNum');
  192. }
  193. num = num ? Number(num) : 0;
  194. num -= value;
  195. num = num.toFixed(2);
  196. // num += '.00';
  197. if (num <= 0) num = 0;
  198. cc.sys.localStorage.setItem('RedPacketNum', num);
  199. if (CC_WECHATGAME) {
  200. wx.setStorageSync('RedPacketNum', num);
  201. }
  202. },
  203. hadSignIn() {
  204. let num = cc.sys.localStorage.getItem('hadSignIn');
  205. if (CC_WECHATGAME) {
  206. num = wx.getStorageSync('hadSignIn');
  207. }
  208. if (num) return true;
  209. return false;
  210. },
  211. clearSignIn() {
  212. if (CC_WECHATGAME) {
  213. wx.removeStorageSync('hadSignIn')
  214. } else {
  215. cc.sys.localStorage.removeItem('hadSignIn');
  216. }
  217. },
  218. setSignIn() {
  219. cc.sys.localStorage.setItem('hadSignIn', "true");
  220. if (CC_WECHATGAME) {
  221. wx.setStorageSync('hadSignIn', "true");
  222. }
  223. },
  224. // getHadExchangeRedPacketNum() {
  225. // let num = cc.sys.localStorage.getItem('HadExchangeRedPacketNum');
  226. // if (CC_WECHATGAME) {
  227. // num = wx.getStorageSync('HadExchangeRedPacketNum');
  228. // }
  229. // num = num ? Number(num) : 0;
  230. // let value = this.randomNum(5, 9);
  231. // num += value;
  232. // if (num >= 50) num = 50;
  233. // cc.sys.localStorage.setItem('HadExchangeRedPacketNum', num);
  234. // if (CC_WECHATGAME) {
  235. // wx.setStorageSync('HadExchangeRedPacketNum', num);
  236. // }
  237. // return num;
  238. // },
  239. // clearHadExchangeRedPacketNum() {
  240. // cc.sys.localStorage.setItem('HadExchangeRedPacketNum', 0);
  241. // if (CC_WECHATGAME) {
  242. // wx.setStorageSync('HadExchangeRedPacketNum', 0);
  243. // }
  244. // },
  245. // 数组从小到大排序
  246. arrSort(arr) {
  247. for (let i = 0; i < arr.length - 1; i++) {
  248. for (let j = i + 1; j < arr.length; j++) {
  249. let cur = arr[i];
  250. if (cur > arr[j]) {
  251. let index = arr[j];
  252. arr[j] = cur;
  253. arr[i] = index;
  254. }
  255. }
  256. }
  257. return arr;
  258. },
  259. // 数组重新排序并去重
  260. deDuplication(arr) {
  261. let mArr = [];
  262. for (let i = 0; i < arr.length; i++) {
  263. if (mArr.indexOf(arr[i]) == -1) {
  264. mArr.push(arr[i]);
  265. }
  266. }
  267. mArr = this.arrSort(mArr);
  268. return mArr;
  269. },
  270. getConfig(cb) {
  271. let remoteUrl = AppConst.HTTPURL + "/config/popStarConfig.json";
  272. let xhr = new XMLHttpRequest();
  273. xhr.onreadystatechange = function () {
  274. if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
  275. console.log("远程config加载完成")
  276. let response = xhr.responseText;
  277. cb && cb(response);
  278. } else {
  279. console.log("远程config加载失败")
  280. }
  281. };
  282. xhr.open("GET", remoteUrl, true);
  283. xhr.send();
  284. },
  285. };