outmoney.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. // pages/outmoney/outmoney.js
  2. let log = require('../../utils/log.js');
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. outMoney: null,
  9. inputValue:'',
  10. checkPass: false,
  11. msg:null,
  12. userInfo: {},
  13. isLogin: false,
  14. remarkArray: [{
  15. value: 1,
  16. text:'充电站位置不方便'
  17. },{
  18. value: 2,
  19. text:'电费过高'
  20. },{
  21. value: 3,
  22. text:'服务费过高'
  23. },{
  24. value: 4,
  25. text:'充电慢'
  26. },{
  27. value: 5,
  28. text:'油车或电车占位'
  29. },{
  30. value: 6,
  31. text:'停放环境堪忧'
  32. },{
  33. value: 7,
  34. text:'长时间离线无人维修'
  35. },{
  36. value: 8,
  37. text:'充电桩存在安全隐患'
  38. },{
  39. value: 9,
  40. text:'小程序经常卡顿'
  41. },{
  42. value: 10,
  43. text:'变更住所'
  44. },{
  45. value: 11,
  46. text:'车已售出'
  47. },{
  48. value: 12,
  49. text:'其他'
  50. }],
  51. remarkArrayIndex: null
  52. },
  53. outMoney(e) {
  54. //console.log(e);
  55. let outMoney = e.detail.value;
  56. // 如果输入的长度超过2个字符,则截取前2个字符
  57. if (outMoney.length > 4) {
  58. outMoney = outMoney.slice(0, 4);
  59. }
  60. this.setData({
  61. inputValue:outMoney
  62. });
  63. this.setData({
  64. outMoney:this.data.inputValue
  65. });
  66. console.log(this.data.outMoney);
  67. console.log("45456");
  68. if (this.data.userInfo.repaidbalance && outMoney && outMoney >= 0.3 && outMoney <= this.data.userInfo.repaidbalance) {
  69. if (this.data.remarkArrayIndex){
  70. this.setData({
  71. checkPass: true
  72. });
  73. }else{
  74. this.setData({
  75. checkPass: false
  76. });
  77. }
  78. } else {
  79. this.setData({
  80. checkPass: false
  81. });
  82. }
  83. },
  84. beginOutMoney(e) {
  85. if (this.data.msg) {
  86. wx.showModal({
  87. showCancel: false,
  88. content: this.data.msg,
  89. confirmColor:'#00AADD',
  90. });
  91. return;
  92. }
  93. log.info('[提现]', '[用户触发提现流程]');
  94. wx.showLoading({
  95. title: '提现中...',
  96. mask: true
  97. });
  98. let that = this;
  99. log.info('[提现]', '[用户触发提现流程]', '[wx.login请求]');
  100. wx.login({
  101. success(res) {
  102. console.log(res);
  103. log.info('[提现]', '[用户触发提现流程]', '[wx.login响应]', res);
  104. if (res.code) {
  105. // 发起网络请求
  106. log.info('[提现]', '[服务端提现]', '[请求]', {
  107. //outTradeNo: new Date().getTime(), //订单号
  108. //totalFee: that.data.chargemoney_select, //钱
  109. totalFee: that.data.outMoney,
  110. userId: that.data.userInfo.userId,
  111. loginName: that.data.userInfo.loginName,
  112. remark: that.data.remarkArray[that.data.remarkArrayIndex].text,
  113. code: res.code
  114. });
  115. wx.request({
  116. url: getApp().globalData.postHeadAgreement +'/restapi/wechatpay/dopayTransfers',
  117. data: {
  118. //outTradeNo: new Date().getTime(), //订单号
  119. //totalFee: that.data.chargemoney_select, //钱
  120. totalFee: that.data.outMoney,
  121. userId: that.data.userInfo.userId,
  122. loginName: that.data.userInfo.loginName,
  123. remark: that.data.remarkArray[that.data.remarkArrayIndex].text,
  124. code: res.code
  125. },
  126. header: {
  127. 'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
  128. },
  129. method: 'POST',
  130. success(res1) {
  131. wx.hideLoading();
  132. let {
  133. data
  134. } = res1;
  135. log.info('[提现]', '[服务端提现]', '[响应]', data);
  136. if (data && data.code == 200) {
  137. wx.navigateBack();
  138. wx.showModal({
  139. showCancel: false,
  140. content: '提现成功',
  141. confirmColor:'#00AADD',
  142. });
  143. log.info('[提现]', '[服务端提现]', '[提现成功]', data);
  144. } else {
  145. wx.showModal({
  146. showCancel: false,
  147. content: data.msg,
  148. confirmColor:'#00AADD',
  149. });
  150. log.info('[提现]', '[服务端提现]', '[提现失败data null||data.code<>200]', data);
  151. }
  152. }
  153. });
  154. } else {
  155. wx.hideLoading();
  156. console.log('登录失败!' + res.errMsg);
  157. log.info('[提现]', '[用户触发提现流程]', '[wx.login响应失败code null]', res);
  158. }
  159. }
  160. })
  161. },
  162. bindRemarkChange: function (e) {
  163. //console.log(e.detail.value);
  164. //let remarkValue = this.data.remarkArray[e.detail.value].value;
  165. this.setData({
  166. remarkArrayIndex: e.detail.value
  167. });
  168. if (this.data.userInfo.repaidbalance && this.data.outMoney && this.data.outMoney >= 0.3 && this.data.outMoney <= this.data.userInfo.repaidbalance) {
  169. this.setData({
  170. checkPass: true
  171. });
  172. }else{
  173. this.setData({
  174. checkPass: false
  175. });
  176. }
  177. },
  178. /**
  179. * 生命周期函数--监听页面加载
  180. */
  181. onLoad: function(options) {
  182. },
  183. /**
  184. * 生命周期函数--监听页面初次渲染完成
  185. */
  186. onReady: function() {
  187. },
  188. /**
  189. * 生命周期函数--监听页面显示
  190. */
  191. onShow: function() {
  192. log.info('[提现]', '[加载完成]');
  193. let userInfo = wx.getStorageSync('userInfo');
  194. let isLogin = wx.getStorageSync('isLogin');
  195. let that = this;
  196. log.info('[提现]', '[同步用户数据]', '[请求]', {
  197. loginName: userInfo.loginName
  198. });
  199. wx.request({
  200. url: getApp().globalData.postHeadAgreement +'/restapi/wechat/syncUser',
  201. data: {
  202. loginName: userInfo.loginName
  203. },
  204. method: 'POST',
  205. success: function(res) {
  206. let {
  207. data
  208. } = res;
  209. log.info('[提现]', '[同步用户数据]', '[响应]', data);
  210. if (data.code && data.code != 200) {
  211. wx.removeStorageSync('userInfo');
  212. wx.removeStorageSync('isLogin');
  213. let url = '/pages/login/phone_login/phone_login';
  214. wx.redirectTo({
  215. url,
  216. });
  217. log.info('[提现]', '[同步用户数据]', '[失败data null||data.code<>200跳转登陆界面]', data);
  218. } else {
  219. that.setData({
  220. userInfo: data,
  221. isLogin: true
  222. });
  223. wx.setStorageSync('userInfo', data);
  224. wx.setStorageSync('isLogin', true);
  225. log.info('[提现]', '[同步用户数据]', '[成功]', data);
  226. log.info('[提现]', '[获取用户是否有未完成订单]', '[请求]', {
  227. userId: userInfo.userId
  228. });
  229. wx.request({
  230. url: getApp().globalData.postHeadAgreement + '/restapi/pileLog/wechatchargstatus',
  231. data: {
  232. userId: userInfo.userId
  233. },
  234. method: 'POST',
  235. success(res) {
  236. let {
  237. data
  238. } = res;
  239. log.info('[提现]', '[获取用户是否有未完成订单]', '[响应]', data);
  240. if (data && data.code == 200) {
  241. //有正在充电的订单
  242. that.setData({
  243. msg: '暂时无法退款,请先完成订单!'
  244. });
  245. log.info('[提现]', '[获取用户是否有未完成订单]', '[用户有未完成订单无法体现]', data);
  246. } else {
  247. console.log(res);
  248. log.info('[提现]', '[获取用户是否有未完成订单]', '[用户没有未完成订单]', data);
  249. }
  250. }
  251. });
  252. log.info('[提现]', '[获取用户是否有未支付订单]', '[请求]', {
  253. userId: that.data.userInfo.userId
  254. });
  255. wx.request({
  256. url: getApp().globalData.postHeadAgreement + '/restapi/pileLog/wechatsettlement',
  257. data: {
  258. userId: that.data.userInfo.userId
  259. },
  260. method: 'POST',
  261. success(res) {
  262. let {
  263. data
  264. } = res;
  265. log.info('[提现]', '[获取用户是否有未支付订单]', '[响应]', data);
  266. let {
  267. result: order
  268. } = data;
  269. if (data && order && data.code == 200) {
  270. //有未支付的订单
  271. that.setData({
  272. msg: '暂时无法退款,请先完成订单!'
  273. });
  274. log.info('[提现]', '[获取用户是否有未支付订单]','[用户有未支付订单无法提现]');
  275. } else {
  276. console.log(res);
  277. log.info('[提现]', '[获取用户是否有未支付订单]', '[用户没有未支付订单]');
  278. }
  279. }
  280. });
  281. }
  282. },
  283. fail(e) {
  284. console.log("用户数据同步失败");
  285. log.info('[提现]', '[同步用户数据]', '[fail]', e);
  286. }
  287. });
  288. },
  289. /**
  290. * 生命周期函数--监听页面隐藏
  291. */
  292. onHide: function() {
  293. },
  294. /**
  295. * 生命周期函数--监听页面卸载
  296. */
  297. onUnload: function() {
  298. },
  299. /**
  300. * 页面相关事件处理函数--监听用户下拉动作
  301. */
  302. onPullDownRefresh: function() {
  303. },
  304. /**
  305. * 页面上拉触底事件的处理函数
  306. */
  307. onReachBottom: function() {
  308. },
  309. /**
  310. * 用户点击右上角分享
  311. */
  312. onShareAppMessage: function() {
  313. }
  314. })