commonservice.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. (function (app) {
  2. //公共服务
  3. app.factory('common', ['$http', 'config', '$q', 'msg', function ($http, config, $q, msg) {
  4. return {
  5. //经营范围
  6. getSetting: function (category) {
  7. return $http({
  8. url: config.server + 'api/setting/get/' + category,
  9. method: "get"
  10. })
  11. },
  12. //选择图片
  13. chooseImage: function (cameraOptions) {
  14. var deferred = $q.defer();
  15. var defaultCameraOptions = {
  16. quality: 50,
  17. sourceType: 1,
  18. allowEdit: false,
  19. encodingType: 0,//0为jpg,1为png
  20. //targetHeight: 112,
  21. //targetWidth: 112
  22. };
  23. var options = angular.extend(defaultCameraOptions, cameraOptions);
  24. var sheetOptions = {
  25. title: '选择图片方式',
  26. buttonLabels: ['拍摄照片', '从图库选择'],
  27. addCancelButtonWithLabel: '取消',
  28. androidEnableCancelButton: true
  29. };
  30. window.plugins.actionsheet.show(sheetOptions, function (index) {
  31. switch (index) {
  32. case 1: //拍摄图片
  33. options.sourceType = 1;
  34. break;
  35. case 2://从图库选择
  36. options.sourceType = 2;
  37. break;
  38. default:
  39. return;
  40. deferred.resolve();
  41. break;
  42. }
  43. navigator.camera.getPicture(function (imageUri) {
  44. if (imageUri) {
  45. deferred.resolve(imageUri);
  46. } else {
  47. deferred.reject('图片未找到');
  48. }
  49. }, function (error) {
  50. deferred.reject(error);
  51. }, options);
  52. });
  53. return deferred.promise;
  54. },
  55. uploadFiles: function (imageUri,type) {//通用上传,type:1图片,2视频
  56. var deferred = $q.defer();
  57. if (imageUri) {
  58. var uploadOptions = new FileUploadOptions();
  59. if (type==1) {//图片
  60. uploadOptions.fileKey = "picture";
  61. uploadOptions.fileName = "picture.jpg";
  62. uploadOptions.mimeType = "image/jpeg";
  63. uploadOptions.params = { tag: "picture" };
  64. }
  65. if (type==2) {//视频
  66. uploadOptions.fileKey = "video";
  67. uploadOptions.fileName = "video.mp4";
  68. uploadOptions.mimeType = "video/mpeg";
  69. uploadOptions.params = { tag: "video" };
  70. }
  71. uploadOptions.httpMethod = 'post';
  72. uploadOptions.chunkedMode = true;
  73. var token = 'Bearer ' + localStorage['token'];
  74. uploadOptions.headers = { "Authorization": token };
  75. var ft = new FileTransfer();
  76. ft.upload(imageUri, encodeURI(config.server + "api/attachment/upload"), function (sucess) {
  77. deferred.resolve(sucess);
  78. // alert('上传成功' + JSON.stringify(sucess));
  79. }, function (fail) {
  80. deferred.reject(fail);
  81. //alert('上传失败' + JSON.stringify(fail));
  82. }, uploadOptions);
  83. } else {
  84. deferred.reject('图片未找到');
  85. }
  86. return deferred.promise;
  87. },
  88. setAvator: function () {//上传头像
  89. var deferred = $q.defer();
  90. this.chooseImage().then(function (imageUri) {
  91. msg.text('上传中');
  92. var uploadOptions = new FileUploadOptions();
  93. uploadOptions.fileKey = "avatar";
  94. uploadOptions.fileName = "avatar.jpg";
  95. uploadOptions.mimeType = "image/jpeg";
  96. uploadOptions.httpMethod = 'post';
  97. uploadOptions.chunkedMode = true;
  98. var token = 'Bearer ' + localStorage['token'];
  99. uploadOptions.headers = { "Authorization": token };
  100. var ft = new FileTransfer();
  101. ft.upload(imageUri, encodeURI(config.server + "api/auth/avatar"), function (sucess) {
  102. msg.hide();
  103. deferred.resolve(sucess);
  104. // alert('上传成功' + JSON.stringify(sucess));
  105. }, function (fail) {
  106. msg.hide();
  107. deferred.reject(fail);
  108. // alert('上传失败' + JSON.stringify(fail));
  109. }, uploadOptions);
  110. });
  111. return deferred.promise;
  112. },
  113. continue_consume: function (data) {
  114. var deferred = $q.defer();
  115. $http({
  116. url: config.server + 'api/service/continue_consume',
  117. method: "post",
  118. data: data
  119. }).success(function (result) {
  120. console.log("result pay:"+JSON.stringify(result));
  121. var payInfo = result.data.orderString;
  122. if (data.pay_type == "alipay_app") {
  123. //支付宝
  124. console.log("result AliPay");
  125. cordova.plugins.AliPay.pay(payInfo, function success(e) {
  126. //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
  127. //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
  128. //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
  129. //当e.resultStatus为9000时,请去服务端验证支付结果
  130. // alert('状态码:' + e.resultStatus);
  131. if (e.resultStatus == '9000') {
  132. deferred.resolve(e.resultStatus);
  133. } else {
  134. deferred.reject(e);
  135. }
  136. }, function error(e) {
  137. deferred.reject(e);
  138. });
  139. }
  140. if (data.pay_type== "wechatpay_app") { //微信
  141. window.wxpay.payment({
  142. appid: payInfo.appid,
  143. noncestr: payInfo.noncestr,
  144. package: payInfo.package,
  145. partnerid: payInfo.partnerid,
  146. prepayid: payInfo.prepayid,
  147. timestamp: payInfo.timestamp,
  148. sign: payInfo.sign
  149. }, function success(msg) {
  150. console.log("wxpay success:"+JSON.stringify(msg));
  151. deferred.resolve(msg);
  152. }, function error(e) {
  153. console.log("wxpay error:"+JSON.stringify(e));
  154. deferred.reject(e);
  155. })
  156. }
  157. }).error(function (erro) {
  158. // alert(JSON.stringify(erro));
  159. deferred.reject(erro);
  160. });
  161. return deferred.promise;
  162. },
  163. pay: function (data) {
  164. var deferred = $q.defer();
  165. $http({
  166. url: config.server + 'api/merchant/charge',
  167. method: "post",
  168. data: data
  169. }).success(function (result) {
  170. console.log("result pay:"+JSON.stringify(result));
  171. var payInfo = result.data.orderString;
  172. if (data.type == 1) {
  173. //支付宝
  174. cordova.plugins.AliPay.pay(payInfo, function success(e) {
  175. //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
  176. //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
  177. //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
  178. //当e.resultStatus为9000时,请去服务端验证支付结果
  179. // alert('状态码:' + e.resultStatus);
  180. if (e.resultStatus == '9000') {
  181. deferred.resolve(e.resultStatus);
  182. } else {
  183. deferred.reject(e);
  184. }
  185. }, function error(e) {
  186. deferred.reject(e);
  187. });
  188. }
  189. if (data.type==2) { //微信
  190. window.wxpay.payment({
  191. appid: payInfo.appid,
  192. noncestr: payInfo.noncestr,
  193. package: payInfo.package,
  194. partnerid: payInfo.partnerid,
  195. prepayid: payInfo.prepayid,
  196. timestamp: payInfo.timestamp,
  197. sign: payInfo.sign
  198. }, function success(msg) {
  199. console.log("wxpay success:"+JSON.stringify(msg));
  200. deferred.resolve(msg);
  201. }, function error(e) {
  202. console.log("wxpay error:"+JSON.stringify(e));
  203. deferred.reject(e);
  204. })
  205. }
  206. }).error(function (erro) {
  207. // alert(JSON.stringify(erro));
  208. deferred.reject(erro);
  209. });
  210. return deferred.promise;
  211. }
  212. };
  213. }]);
  214. })(angular.module('app.services'));