Commit dc854fcf929e2a1850f77b2a5d2349f78c235116

Authored by yvan.ni
1 parent f89ad8d2

先不要用宜肤小程序api.

packageD/pages/AI-test-skin/analyse/analyse.js
... ... @@ -4,7 +4,6 @@ const request = app.request;
4 4 const os = app.globalData;
5 5 const setting = os.setting;
6 6 const ut = require('../../../../utils/util');
7   -import { pluginGD } from '../../../ai_config/config'
8 7 Page({
9 8  
10 9 /**
... ... @@ -12,174 +11,171 @@ Page({
12 11 */
13 12 data: {
14 13 iurl: setting.imghost,
15   - per: 0,
16   - timer: 0,
17   - img: null,
18   - sourceimg: null,
19   - err_map: null,
  14 + per:0,
  15 + timer:0,
  16 + img:null,
  17 + sourceimg:null,
  18 + err_map:null,
20 19 },
21 20  
22 21 /**
23 22 * 生命周期函数--监听页面加载
24 23 */
25 24 onLoad: function (options) {
26   - //初始化美图测肤插件
27   - var plugin = requirePlugin('mtSkinSdk')
28   - plugin.setConfig(pluginGD)
29   - var th = this;
30   - //设置错误码分析
31   - this.set_err_map();
32   - //进度条加载
33   - this.timer();
34   - //接口开始分析
35   - setTimeout(function () {
36   - //th.analysis_img();
37   - //先检验一下图片
38   - th.mt_check(function () {
39   -
40   - });
41   - }, 800)
  25 + var th=this;
  26 + //设置错误码分析
  27 + this.set_err_map();
  28 + //进度条加载
  29 + this.timer();
  30 + //接口开始分析
  31 + setTimeout(function () {
  32 + //th.analysis_img();
  33 + //先检验一下图片
  34 + th.img_check(function () {
  35 +
  36 + });
  37 + },800)
42 38  
43 39 },
44 40 //定时器
45   - timer: function (func) {
46   - var per = this.data.per + 5;
47   - var th = this;
48   - if (per < 96) {
49   - th.setData({ per: per });
50   - setTimeout(function () {
51   - th.timer();
52   - }, 400)
53   - }
  41 + timer:function (func) {
  42 + var per=this.data.per+5;
  43 + var th=this;
  44 + if(per<96){
  45 + th.setData({per:per});
  46 + setTimeout(function () {
  47 + th.timer();
  48 + },400)
  49 + }
54 50 },
55 51  
56 52 //错误码表
57   - set_err_map: function () {
58   - var map = {
59   - "2": "服务暂不可用",
60   - "4": "集群超限额",
61   - "6": "没有接口权限",
62   - "17": "每天流量超限额",
63   - "18": "QPS超限额",
64   - "19": "请求总量超限额",
65   - "100": "无效的access_token参数",
66   - "110": "Access Token失效",
67   - "111": " Access token过期",
68   - "222001": "必要参数未传入",
69   - "222002": "参数格式错误",
70   - "222003": "参数格式错误",
71   - "222004": "参数格式错误",
72   - "222005": "参数格式错误",
73   - "222006": "参数格式错误",
74   - "222007": "参数格式错误",
75   - "222008": "参数格式错误",
76   - "222009": "参数格式错误",
77   - "222010": "参数格式错误",
78   - "222011": "参数格式错误",
79   - "222012": "参数格式错误",
80   - "222013": "参数格式错误",
81   - "222014": "参数格式错误",
82   - "222015": "参数格式错误",
83   - "222016": "参数格式错误",
84   - "222017": "参数格式错误",
85   - "222018": "参数格式错误",
86   - "222019": "参数格式错误",
87   - "222020": "参数格式错误",
88   - "222021": "参数格式错误",
89   - "222022": "身份证号不符合要求,备注:中国大陆身份证号的每一位数字都有其生成规则,不可随意填写。",
90   - "222023": "参数格式错误",
91   - "222024": "参数格式错误",
92   - "222025": "参数格式错误",
93   - "222026": "参数格式错误",
94   - "222027": "验证码长度错误(最小值大于最大值)",
95   - "222028": "参数格式错误",
96   - "222029": "参数格式错误",
97   - "222030": "参数格式错误",
98   - "222039": "参数格式错误",
99   - "222200": "该接口需使用application/json的格式进行请求",
100   - "222201": "服务端请求失败",
101   - "222202": "图片中没有人脸",
102   - "222203": "无法解析人脸",
103   - "222204": "从图片的url下载图片失败",
104   - "222205": "服务端请求失败",
105   - "222206": "服务端请求失败",
106   - "222207": "未找到匹配的用户",
107   - "222208": "图片的数量错误",
108   - "222209": "face token不存在",
109   - "222210": "人脸库中用户下的人脸数目超过限制",
110   - "222300": "人脸图片添加失败",
111   - "222301": "获取人脸图片失败",
112   - "222302": "服务端请求失败",
113   - "222303": "获取人脸图片失败",
114   - "222152": "人脸属性编辑,target参数错误",
115   - "222514": "人脸属性编辑v2调用服务失败,请重试",
116   - "223100": "操作的用户组不存在",
117   - "223101": "该用户组已存在",
118   - "223102": "找不到该用户",
119   - "223103": "找不到该用户",
120   - "223104": "group_list包含组数量过多",
121   - "223105": "该人脸已存在",
122   - "223106": "该人脸不存在",
123   - "223107": "人脸库中人脸复制时源组与目标组的scene_type不同",
124   - "223110": "uid_list包含数量过多",
125   - "223111": "目标用户组不存在",
126   - "223112": "quality_conf格式不正确",
127   - "223113": "人脸有被遮挡",
128   - "223114": "人脸模糊",
129   - "223115": "人脸光照不好",
130   - "223116": "人脸不完整",
131   - "223117": "app_list包含app数量过多",
132   - "223118": "质量控制项错误",
133   - "223119": "活体控制项错误",
134   - "223120": "活体检测未通过",
135   - "223121": "质量检测未通过 左眼遮挡程度过高",
136   - "223122": "质量检测未通过 右眼遮挡程度过高",
137   - "223123": "质量检测未通过 左脸遮挡程度过高",
138   - "223124": "质量检测未通过 右脸遮挡程度过高",
139   - "223125": "质量检测未通过 下巴遮挡程度过高",
140   - "223126": "质量检测未通过 鼻子遮挡程度过高",
141   - "223127": "质量检测未通过 嘴巴遮挡程度过高",
142   - "222901": "参数校验初始化失败",
143   - "222902": "参数校验初始化失败",
144   - "222903": "参数校验初始化失败",
145   - "222904": "参数校验初始化失败",
146   - "222905": "接口初始化失败",
147   - "222906": "接口初始化失败",
148   - "222907": "缓存处理失败",
149   - "222908": "缓存处理失败",
150   - "222909": "缓存处理失败",
151   - "222910": "数据存储处理失败",
152   - "222911": "数据存储处理失败",
153   - "222912": "数据存储处理失败",
154   - "222913": "接口初始化失败",
155   - "222914": "接口初始化失败",
156   - "222915": "后端服务连接失败",
157   - "222916": "后端服务连接失败",
158   - "222304": "图片尺寸太大",
159   - "222305": "当前版本不支持图片存储",
160   - "223128": "正在清理该用户组的数据",
161   - "223136": "该组内存在关联图片,无法新建相同名称组",
162   - "222361": "公安服务连接失败",
163   - "222046": "参数格式错误",
164   - "222101": "参数格式错误",
165   - "222102": "参数格式错误",
166   - "222307": "图片非法 鉴黄未通过",
167   - "222308": "图片非法 含有政治敏感人物",
168   - "222211": "人脸融合失败 模板图质量不合格",
169   - "222212": "人脸融合失败",
170   - "223129": "人脸未面向正前方(人脸的角度信息大于30度)",
171   - "223130": "spoofing_control参数格式错误",
172   - "223131": "合成图检测未通过",
173   - "223201": "请求参数scene_type 格式错误",
174   - "223202": "识别时请求的scene_type与group设置的scene_type不匹配",
175   - }
176   - this.setData({ err_map: map });
  53 + set_err_map:function () {
  54 + var map={
  55 + "2":"服务暂不可用",
  56 + "4":"集群超限额",
  57 + "6":"没有接口权限",
  58 + "17":"每天流量超限额",
  59 + "18":"QPS超限额",
  60 + "19":"请求总量超限额",
  61 + "100":"无效的access_token参数",
  62 + "110":"Access Token失效",
  63 + "111":" Access token过期",
  64 + "222001":"必要参数未传入",
  65 + "222002":"参数格式错误",
  66 + "222003":"参数格式错误",
  67 + "222004":"参数格式错误",
  68 + "222005":"参数格式错误",
  69 + "222006":"参数格式错误",
  70 + "222007":"参数格式错误",
  71 + "222008":"参数格式错误",
  72 + "222009":"参数格式错误",
  73 + "222010":"参数格式错误",
  74 + "222011":"参数格式错误",
  75 + "222012":"参数格式错误",
  76 + "222013":"参数格式错误",
  77 + "222014":"参数格式错误",
  78 + "222015":"参数格式错误",
  79 + "222016":"参数格式错误",
  80 + "222017":"参数格式错误",
  81 + "222018":"参数格式错误",
  82 + "222019":"参数格式错误",
  83 + "222020":"参数格式错误",
  84 + "222021":"参数格式错误",
  85 + "222022":"身份证号不符合要求,备注:中国大陆身份证号的每一位数字都有其生成规则,不可随意填写。",
  86 + "222023":"参数格式错误",
  87 + "222024":"参数格式错误",
  88 + "222025":"参数格式错误",
  89 + "222026":"参数格式错误",
  90 + "222027":"验证码长度错误(最小值大于最大值)",
  91 + "222028":"参数格式错误",
  92 + "222029":"参数格式错误",
  93 + "222030":"参数格式错误",
  94 + "222039":"参数格式错误",
  95 + "222200":"该接口需使用application/json的格式进行请求",
  96 + "222201":"服务端请求失败",
  97 + "222202":"图片中没有人脸",
  98 + "222203":"无法解析人脸",
  99 + "222204":"从图片的url下载图片失败",
  100 + "222205":"服务端请求失败",
  101 + "222206":"服务端请求失败",
  102 + "222207":"未找到匹配的用户",
  103 + "222208":"图片的数量错误",
  104 + "222209":"face token不存在",
  105 + "222210":"人脸库中用户下的人脸数目超过限制",
  106 + "222300":"人脸图片添加失败",
  107 + "222301":"获取人脸图片失败",
  108 + "222302":"服务端请求失败",
  109 + "222303":"获取人脸图片失败",
  110 + "222152":"人脸属性编辑,target参数错误",
  111 + "222514":"人脸属性编辑v2调用服务失败,请重试",
  112 + "223100":"操作的用户组不存在",
  113 + "223101":"该用户组已存在",
  114 + "223102":"找不到该用户",
  115 + "223103":"找不到该用户",
  116 + "223104":"group_list包含组数量过多",
  117 + "223105":"该人脸已存在",
  118 + "223106":"该人脸不存在",
  119 + "223107":"人脸库中人脸复制时源组与目标组的scene_type不同",
  120 + "223110":"uid_list包含数量过多",
  121 + "223111":"目标用户组不存在",
  122 + "223112":"quality_conf格式不正确",
  123 + "223113":"人脸有被遮挡",
  124 + "223114":"人脸模糊",
  125 + "223115":"人脸光照不好",
  126 + "223116":"人脸不完整",
  127 + "223117":"app_list包含app数量过多",
  128 + "223118":"质量控制项错误",
  129 + "223119":"活体控制项错误",
  130 + "223120":"活体检测未通过",
  131 + "223121":"质量检测未通过 左眼遮挡程度过高",
  132 + "223122":"质量检测未通过 右眼遮挡程度过高",
  133 + "223123":"质量检测未通过 左脸遮挡程度过高",
  134 + "223124":"质量检测未通过 右脸遮挡程度过高",
  135 + "223125":"质量检测未通过 下巴遮挡程度过高",
  136 + "223126":"质量检测未通过 鼻子遮挡程度过高",
  137 + "223127":"质量检测未通过 嘴巴遮挡程度过高",
  138 + "222901":"参数校验初始化失败",
  139 + "222902":"参数校验初始化失败",
  140 + "222903":"参数校验初始化失败",
  141 + "222904":"参数校验初始化失败",
  142 + "222905":"接口初始化失败",
  143 + "222906":"接口初始化失败",
  144 + "222907":"缓存处理失败",
  145 + "222908":"缓存处理失败",
  146 + "222909":"缓存处理失败",
  147 + "222910":"数据存储处理失败",
  148 + "222911":"数据存储处理失败",
  149 + "222912":"数据存储处理失败",
  150 + "222913":"接口初始化失败",
  151 + "222914":"接口初始化失败",
  152 + "222915":"后端服务连接失败",
  153 + "222916":"后端服务连接失败",
  154 + "222304":"图片尺寸太大",
  155 + "222305":"当前版本不支持图片存储",
  156 + "223128":"正在清理该用户组的数据",
  157 + "223136":"该组内存在关联图片,无法新建相同名称组",
  158 + "222361":"公安服务连接失败",
  159 + "222046":"参数格式错误",
  160 + "222101":"参数格式错误",
  161 + "222102":"参数格式错误",
  162 + "222307":"图片非法 鉴黄未通过",
  163 + "222308":"图片非法 含有政治敏感人物",
  164 + "222211":"人脸融合失败 模板图质量不合格",
  165 + "222212":"人脸融合失败",
  166 + "223129":"人脸未面向正前方(人脸的角度信息大于30度)",
  167 + "223130":"spoofing_control参数格式错误",
  168 + "223131":"合成图检测未通过",
  169 + "223201":"请求参数scene_type 格式错误",
  170 + "223202":"识别时请求的scene_type与group设置的scene_type不匹配",
  171 + }
  172 + this.setData({err_map:map});
177 173 },
178 174  
179 175 /**
180 176 * 生命周期函数--监听页面显示
181 177 */
182   - onShow: function () { },
  178 + onShow: function (){ },
183 179  
184 180 /**
185 181 * 生命周期函数--监听页面隐藏
... ... @@ -203,318 +199,159 @@ Page({
203 199  
204 200 },
205 201  
206   - mt_check() {
207   - let img_info = getApp().globalData.skin_img_info;
208   - var plugin = requirePlugin('mtSkinSdk');
209   - let th = this;
210   - plugin.facePoseCorrect({
211   - path: img_info['path'],
212   - size: img_info['size'],
213   - success(res) {
214   - console.log('=========姿态校正 成功==========')
215   - console.log('姿态校正结果', res)
216   - let analyse_info = res.data;
217   - //检查闭眼情况
218   - if (analyse_info.analyse_info) {
219   - //检查睁眼闭眼
220   - let { left, right } = analyse_info.analyse_info;
221   - if (left !== 2 || right !== 2) {
222   - var msg = "未闭眼拍照";
223   - th.go_error(msg);
224   - return false;
225   - }
226   - }
227   - //检查佩戴情况
228   - if (analyse_info.faceGlasses) {
229   - let { none, normal, sunglasses } = analyse_info.faceGlasses;
230   - if (normal > 0.8 || sunglasses > 0.8 || none < 0.1) {
231   - var msg = "有佩戴眼镜";
232   - th.go_error(msg);
233   - return false;
234   - }
235   - }
236   - //检查框里情况
237   - if (analyse_info.faceOutDetect.outBound == 1) {
238   - var msg = "未在取景框内";
239   - th.go_error(msg);
240   - return false;
241   - }
242   - // if (analyse_info.facePoseEuler) {
243   - // let { pitch, roll, yaw } = analyse_info.facePoseEuler;
244   - // if (normal > 0.8 || sunglasses > 0.8 || none < 0.1) {
245   - // var msg = "有佩戴眼镜";
246   - // th.go_error(msg);
247   - // return false;
248   - // }
249   - // }
250   - //检查环境情况
251   - if (analyse_info.faceQuality) {
252   - let { bright, blur, compression } = analyse_info.faceQuality;
253   - if (bright > 80) {
254   - var msg = "亮度过亮";
255   - th.go_error(msg);
256   - return false;
257   - }
258   - if (bright < 20 || blur < 20) {
259   - var msg = "亮度过暗或图片过于模糊";
260   - th.go_error(msg);
261   - return false;
262   - }
263   - }
264   - //检查距离
265   - if (analyse_info.faceRatio < 0.2) {
266   - var msg = "距离过远";
267   - th.go_error(msg);
268   - return false;
269   - }
270   - if (analyse_info.faceRatio > 0.8) {
271   - var msg = "距离过近";
272   - th.go_error(msg);
273   - return false;
274   - }
275   - //检查遮挡物
276   - if (analyse_info.faceVisibility) {
277   - var msg = "";
278   - let fail = Object.keys(analyse_info.faceVisibility).filter(key => {
279   - return analyse_info.faceVisibility[key] <= 80;
280   - })
281   - console.log('fail', fail);
282   - switch (fail[0]) {
283   - case "jaw":
284   - msg = "下巴有遮挡";
285   - break;
286   - case "leftcheek":
287   - msg = "左脸有遮挡";
288   - break;
289   - case "lefteye":
290   - msg = "左眼有遮挡";
291   - break;
292   - case "lefteyebrow":
293   - msg = "左眉毛有遮挡";
294   - break;
295   - case "mouse":
296   - msg = "嘴巴有遮挡";
297   - break;
298   - case "nose":
299   - msg = "鼻子有遮挡";
300   - break;
301   - case "rightcheek":
302   - msg = "右脸有遮挡";
303   - break;
304   - case "righteye":
305   - msg = "右眼有遮挡";
306   - break;
307   - case "rightyebrow":
308   - msg = "右眉毛有遮挡";
309   - break;
310   - }
311   - if (msg) {
312   - th.go_error(msg);
313   - return false;
314   - }
315   - }
316   - th.analyse_by_mtapi(img_info);
317   - },
318   - fail(err) {
319   - th.go_error('识别有误,请重试');
320   - return false;
321   - }
322   - })
323   -
324   - },
325   -
326   - analyse_by_mtapi(img_info) {
327   - // let img_info = getApp().globalData.skin_img_info;
328   - let th = this;
329   - var plugin = requirePlugin('mtSkinSdk')
330   - plugin.detectImage({
331   - path: img_info['path'],
332   - size: img_info['size'],
333   - success(res) {
334   - console.log('=========用户传图片链接获取检测结果 成功==========')
335   - console.log('检测结果', res);
336   - let req_data = {
337   - store_id: setting.stoid,
338   - user_id: getApp().globalData.user_id,
339   - img: getApp().globalData.face_img,
340   - sourceimg: getApp().globalData.face_SourceImg,
341   - addtime: ut.gettimestamp(),
342   - resultjson: JSON.stringify(res.data.data),
343   - detectjson: JSON.stringify(th.data.check_data)
344   - }
345   - //要保存一下分析的结果
346   - th.json_post("/api/weshop/face/storeSkinface/save", req_data, function (res) {
347   - if (res.data.code == 0) {
348   - let url = "/packageD/pages/AI-test-skin/success_result/success_result?id=" + res.data.data.id; //跳到分析页
349   - wx.redirectTo({
350   - url: url
351   - })
352   - } else {
353   - getApp().showWarning("保存失败");
354   - }
355   - })
356   - },
357   - fail(err) {
358   - console.error('=========用户传图片链接获取检测结果 失败==========')
359   - console.log('error', err)
360   - }
361   - })
362   - },
363   -
364 202 //检查图片有没有OK
365   - img_check: function (func) {
366   - var th = this;
367   - var data = {
  203 + img_check:function (func) {
  204 + var th=this;
  205 + var data={
368 206 "appid": "25521854",
369 207 "image": getApp().globalData.face_SourceImg,
370 208 "face_field": "age,expression,face_shape,gender,glasses,landmark,landmark150,quality,eye_status,emotion,face_type,mask,spoofing",
371   - "image_type": "URL",
372   - "store_id":setting.stoid
  209 + "image_type": "URL"
373 210 }
374 211 //开始调用接口,进行对图片进行判断是否符合标准
375   - this.json_post("/api/weshop/baidubce/face/skindetect", data, function (res) {
376   - if (res.data.code == 0) {
  212 + this.json_post("/api/weshop/baidubce/face/skindetect",data,function (res) {
  213 + if(res.data.code==0){
377 214 //检查的字段存储
378   - var check_data = th.data.check_data = res.data.data;
379   - check_data = check_data.face_list[0];
  215 + var check_data=th.data.check_data=res.data.data;
  216 + check_data=check_data.face_list[0];
380 217 console.log(check_data);
381 218 //检查睁眼闭眼
382   - var eye_status = check_data.eye_status;
383   - if (eye_status.left_eye > 0.1 || eye_status.right_eye > 0.1) {
384   - var msg = "未闭眼拍照";
  219 + var eye_status=check_data.eye_status;
  220 + if(eye_status.left_eye>0.1 || eye_status.right_eye>0.1) {
  221 + var msg="未闭眼拍照";
385 222 th.go_error(msg);
386 223 return false;
387 224 }
388 225 //检查是不是有带眼镜
389   - if (check_data.glasses.type != 'none') {
390   - var msg = "有佩戴眼镜";
  226 + if(check_data.glasses.type!='none'){
  227 + var msg="有佩戴眼镜";
391 228 th.go_error(msg);
392 229 return false;
393 230 }
394 231 //检查头部的角度
395   - var angle = check_data.angle;
396   - if (Math.abs(angle.Pitch) > 20) {
397   - var msg = "头部的俯仰角度过大";
  232 + var angle=check_data.angle;
  233 + if(Math.abs(angle.Pitch)>20) {
  234 + var msg="头部的俯仰角度过大";
398 235 th.go_error(msg);
399 236 return false;
400 237 }
401   - if (Math.abs(angle.Roll) > 20) {
402   - var msg = "头部的平面角度过大";
  238 + if(Math.abs(angle.Roll)>20) {
  239 + var msg="头部的平面角度过大";
403 240 th.go_error(msg);
404 241 return false;
405 242 }
406   - if (Math.abs(angle.Yaw) > 20) {
407   - var msg = "头部的左右角度过大";
  243 + if(Math.abs(angle.Yaw)>20) {
  244 + var msg="头部的左右角度过大";
408 245 th.go_error(msg);
409 246 return false;
410 247 }
411   - var quality = check_data.quality;
412   - if (quality.blur > 0.7) {
413   - var msg = "图片模糊";
  248 + var quality=check_data.quality;
  249 + if(quality.blur>0.7){
  250 + var msg="图片模糊";
414 251 th.go_error(msg);
415 252 return false;
416 253 }
417 254 //开始检查遮挡
418   - var occlusion = check_data.quality.occlusion;
419   - if (occlusion.left_eye > 0.6) {
420   - var msg = "左眼被遮挡";
  255 + var occlusion=check_data.quality.occlusion;
  256 + if(occlusion.left_eye >0.6){
  257 + var msg="左眼被遮挡";
421 258 th.go_error(msg);
422 259 return false;
423 260 }
424   - if (occlusion.right_eye > 0.6) {
425   - var msg = "右眼被遮挡";
  261 + if(occlusion.right_eye>0.6){
  262 + var msg="右眼被遮挡";
426 263 th.go_error(msg);
427 264 return false;
428 265 }
429   - if (occlusion.nose > 0.7) {
430   - var msg = "鼻子被遮挡";
  266 + if(occlusion.nose>0.7){
  267 + var msg="鼻子被遮挡";
431 268 th.go_error(msg);
432 269 return false;
433 270 }
434   - if (occlusion.mouth > 0.7) {
435   - var msg = "嘴巴被遮挡";
  271 + if(occlusion.mouth>0.7){
  272 + var msg="嘴巴被遮挡";
436 273 th.go_error(msg);
437 274 return false;
438 275 }
439   - if (occlusion.left_cheek > 0.8) {
440   - var msg = "左脸颊被遮挡";
  276 + if(occlusion.left_cheek >0.8){
  277 + var msg="左脸颊被遮挡";
441 278 th.go_error(msg);
442 279 return false;
443 280 }
444   - if (occlusion.right_cheek > 0.8) {
445   - var msg = "右脸颊被遮挡";
  281 + if(occlusion.right_cheek >0.8){
  282 + var msg="右脸颊被遮挡";
446 283 th.go_error(msg);
447 284 return false;
448 285 }
449   - if (occlusion.chin_contour > 0.6) {
450   - var msg = "下巴颊被遮挡";
  286 + if(occlusion.chin_contour >0.6){
  287 + var msg="下巴颊被遮挡";
451 288 th.go_error(msg);
452 289 return false;
453 290 }
454   - if (quality.illumination < 40) {
455   - var msg = "图像光照不足";
  291 + if(quality.illumination<40){
  292 + var msg="图像光照不足";
456 293 th.go_error(msg);
457 294 return false;
458 295 }
459   - if (quality.completeness = 0) {
460   - var msg = "人脸未显示完整";
  296 + if(quality.completeness=0){
  297 + var msg="人脸未显示完整";
461 298 th.go_error(msg);
462 299 return false;
463 300 }
464 301 //-- 开始调用分析的接口 --
465   - var face_token = check_data.face_token;
466   - var data = {
  302 + var face_token=check_data.face_token;
  303 + var data={
467 304 "image": face_token,
468 305 "face_field": "color,smooth,acnespotmole,wrinkle,eyesattr,blackheadpore,skinface,skinquality",
469 306 "image_type": "FACE_TOKEN"
470 307 }
471 308 th.analysis_img(data);
472   - } else {
473   - var msg = th.data.err_map[res.data.code + ""];
  309 + }else{
  310 + var msg=th.data.err_map[res.data.code+""];
474 311 th.go_error(msg);
475 312 }
476 313 })
477 314 },
478   -
  315 +
479 316 //跳转到错误页面
480   - go_error: function (msg) {
481   - let url = "/packageD/pages/AI-test-skin/fail_result/fail_result?msg=" + msg; //跳到分析页
  317 + go_error:function (msg) {
  318 + let url = "/packageD/pages/AI-test-skin/fail_result/fail_result?msg="+msg; //跳到分析页
482 319 wx.redirectTo({
483 320 url: url
484 321 });
485 322 },
486 323  
487   - analysis_img: function (data) {
488   - var th = this;
  324 + analysis_img:function (data) {
  325 + var th=this;
489 326 //开始调用接口,进行分析
490   - this.json_post("/api/weshop/baidubce/face/skinAnalyze", data, function (res) {
491   - if (res.data.code == 0) {
492   - getApp().globalData.face_result = res.data.data;
493   - var req_data = {
494   - store_id: setting.stoid,
495   - user_id: getApp().globalData.user_id,
496   - img: getApp().globalData.face_img,
497   - sourceimg: getApp().globalData.face_SourceImg,
498   - addtime: ut.gettimestamp(),
499   - resultjson: JSON.stringify(res.data.data),
500   - detectjson: JSON.stringify(th.data.check_data)
  327 + this.json_post("/api/weshop/baidubce/face/skinAnalyze",data,function (res) {
  328 + if(res.data.code==0){
  329 + getApp().globalData.face_result=res.data.data;
  330 + var req_data={
  331 + store_id:setting.stoid,
  332 + user_id:getApp().globalData.user_id,
  333 + img:getApp().globalData.face_img,
  334 + sourceimg:getApp().globalData.face_SourceImg,
  335 + addtime:ut.gettimestamp(),
  336 + resultjson:JSON.stringify(res.data.data),
  337 + detectjson:JSON.stringify(th.data.check_data)
501 338 }
502 339 //要保存一下分析的结果
503   - th.json_post("/api/weshop/face/storeSkinface/save", req_data, function (res) {
504   - if (res.data.code == 0) {
505   - let url = "/packageD/pages/AI-test-skin/success_result/success_result?id=" + res.data.data.id; //跳到分析页
  340 + th.json_post("/api/weshop/face/storeSkinface/save",req_data,function (res) {
  341 + if(res.data.code==0){
  342 + let url = "/packageD/pages/AI-test-skin/success_result/success_result?id="+res.data.data.id; //跳到分析页
506 343 wx.redirectTo({
507 344 url: url
508 345 })
509   - } else {
  346 + }else{
510 347 getApp().showWarning("保存失败");
511 348 }
512 349 })
513   - } else {
514   - var msg = th.data.err_map[res.data.code + ""];
515   - let url = "/packageD/pages/AI-test-skin/fail_result/fail_result?msg=" + msg; //跳到分析页
  350 + }else{
  351 + var msg=th.data.err_map[res.data.code+""];
  352 + let url = "/packageD/pages/AI-test-skin/fail_result/fail_result?msg="+msg; //跳到分析页
516 353 wx.redirectTo({
517   - url: url
  354 + url: url
518 355 })
519 356 }
520 357 })
... ... @@ -526,10 +363,10 @@ Page({
526 363 * @param {Object} succ //成功的回调
527 364 * @param {Object} fail //失败的回调
528 365 */
529   - json_post: function (url, data, succ, fail, mathod) {
530   - var Mathod = "POST";
  366 + json_post:function(url,data,succ,fail,mathod){
  367 + var Mathod="POST";
531 368 if (mathod) Mathod = mathod;
532   - if (url.indexOf("http") == -1) url = getApp().globalData.setting.url + url;
  369 + if(url.indexOf("http")==-1) url=getApp().globalData.setting.url +url;
533 370 var str = JSON.stringify(data);
534 371 wx.request({
535 372 url: url,
... ... @@ -538,8 +375,8 @@ Page({
538 375 header: {
539 376 'content-type': 'application/json'
540 377 },// 设置请求的 header
541   - success: function (res) { succ(res); },
542   - fail: function (res) { fail(res); }
  378 + success: function (res) {succ(res); },
  379 + fail:function(res){fail(res);}
543 380 })
544 381 },
545 382  
... ...