diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/RetouchSkinController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/RetouchSkinController.java new file mode 100644 index 0000000..0591acb --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/RetouchSkinController.java @@ -0,0 +1,73 @@ +package com.heyu.api.controller.face; + + +import com.aliyun.facebody20191230.models.RetouchSkinResponse; +import com.aliyun.facebody20191230.models.RetouchSkinResponseBody; +import com.heyu.api.alibaba.handle.facebody.ARetouchSkinHandle; +import com.heyu.api.alibaba.request.facebody.ARetouchSkinRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.request.face.RetouchSkinReq; +import com.heyu.api.resp.face.RetouchSkinResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/RetouchSkin?tab=DOC&lang=JAVA&RegionId=cn-shanghai + * + * 智能美肤 + * + * RetouchSkin + * + * + * 功能描述 + * 智能美肤功能可实现输入一张人物图像,自动对脸部以及全身皮肤进行美肤,同时尽可能的保留皮肤质感。功能支持情况如下: + * + * 脸部美肤:脸部区域匀肤、去瑕疵,比如:痘、痘印、雀斑等。 + * 全身皮肤:全身皮肤区域美白。 + * 多人照片:支持不超过 10 人的多人图片处理。 + * + * 应用场景 + * 专业修图:可用于影楼、电商、图片直播等专业摄影场景,利用智能美肤算法快速进行美肤修图,提高工作效率。 + * 美颜拍摄:用于娱乐、生活等场景,提高人物美观度。 + * + */ +@Slf4j +@RestController +@RequestMapping("/face") +@NotIntercept +public class RetouchSkinController extends BaseController { + + + @Autowired + private ARetouchSkinHandle aRetouchSkinHandle; + + + @RequestMapping("/skin") + @CacheResult + public R skin(RetouchSkinReq req) { + + RetouchSkinResp resp = new RetouchSkinResp(); + + ARetouchSkinRequest request = new ARetouchSkinRequest(); + request.setImageBase64(req.getImageBase64()); + request.setImageUrl(req.getImageUrl()); + request.setRetouchDegree(req.getRetouchDegree()); + request.setWhiteningDegree(req.getWhiteningDegree()); + + ApiR aR = aRetouchSkinHandle.handle(request); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + RetouchSkinResponseBody.RetouchSkinResponseBodyData responseBodyData = aR.getData().getBody().getData(); + + resp.setImageURL(responseBodyData.getImageURL()); + return R.ok().setData(resp); + } + return R.error(aR.getErrorMsg()); + } + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/good/ClassifyCommodityController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/good/ClassifyCommodityController.java new file mode 100644 index 0000000..e575892 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/good/ClassifyCommodityController.java @@ -0,0 +1,93 @@ +package com.heyu.api.controller.good; + + +import com.aliyun.goodstech20191230.models.ClassifyCommodityResponse; +import com.aliyun.goodstech20191230.models.ClassifyCommodityResponseBody; +import com.heyu.api.alibaba.handle.goodstech.AClassifyCommodityHandle; +import com.heyu.api.alibaba.request.goodstech.AClassifyCommodityRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.request.good.ClassifyCommodityReq; +import com.heyu.api.resp.good.ClassifyCommodityResp; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/*** + *https://next.api.aliyun.com/api/goodstech/2019-12-30/ClassifyCommodity?lang=JAVA&RegionId=cn-shanghai&tab=DOC + * + *' + * + * + 商品分类 + + ClassifyCommodity + + * + * 接口说明 + * 功能描述 + * 商品分类能力可以识别图像中的商品分类,返回商品类目、置信度等信息。目前已经支持服饰鞋包、3C 数码、家居用品等超过六千种类目分类。 + * + * 所属于的类目: + * + * + * https://viapi-demo.oss-cn-shanghai.aliyuncs.com/doc/category.txt?spm=api-workbench.api_explorer.0.0.e67a1634kpvqtJ&file=category.txt + * + * + */ +@Slf4j +@RestController +@RequestMapping("/good") +@NotIntercept +public class ClassifyCommodityController extends BaseController { + + + @Autowired + private AClassifyCommodityHandle aClassifyCommodityHandle; + + + @RequestMapping("/classify") + @CacheResult + public R recognize(ClassifyCommodityReq req) { + List resp = new ArrayList<>(); + + AClassifyCommodityRequest request = new AClassifyCommodityRequest(); + request.setImageBase64(req.getImageBase64()); + request.setImageUrl(req.getImageUrl()); + + + ApiR aR = aClassifyCommodityHandle.handle(request); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + ClassifyCommodityResponseBody.ClassifyCommodityResponseBodyData responseBodyData = aR.getData().getBody().getData(); + + + List categories = responseBodyData.getCategories(); + + if (CollectionUtils.isNotEmpty(categories)) { + for (ClassifyCommodityResponseBody.ClassifyCommodityResponseBodyDataCategories category : categories) { + ClassifyCommodityResp classifyCommodityResp = new ClassifyCommodityResp(); + classifyCommodityResp.setScore(category.getScore()); + classifyCommodityResp.setCategoryName(category.getCategoryName()); + classifyCommodityResp.setCategoryId(category.getCategoryId()); + + resp.add(classifyCommodityResp); + } + + + } + + return R.ok().setData(resp); + + } + + return R.error(aR.getErrorMsg()); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/RetouchSkinReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/RetouchSkinReq.java new file mode 100644 index 0000000..9b87ef6 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/RetouchSkinReq.java @@ -0,0 +1,36 @@ +package com.heyu.api.request.face; + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +/*** + * + * https://next.api.aliyun.com/api/facebody/2019-12-30/RetouchSkin?tab=DOC&lang=JAVA&RegionId=cn-shanghai + * 智能美肤 RetouchSkin + */ +@Data +public class RetouchSkinReq extends CommonReq { + + + /** + * 磨皮力度。取值范围为[0,1.5],默认为 1.0。数值越大皮肤纹理越不明显。 + * + * 示例值: + * 1.0 + */ + public Float retouchDegree = 1f; + + /** + * 美白力度。取值范围为[0,1.5],默认为 1.0。数值越大皮肤越白。 + * + * 示例值: + * 1.0 + */ + public Float whiteningDegree = 1f ; + + + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/good/ClassifyCommodityReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/good/ClassifyCommodityReq.java new file mode 100644 index 0000000..51a57c7 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/good/ClassifyCommodityReq.java @@ -0,0 +1,13 @@ +package com.heyu.api.request.good; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +@Data +public class ClassifyCommodityReq extends CommonReq { + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/RetouchSkinResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/RetouchSkinResp.java new file mode 100644 index 0000000..cec1ed4 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/RetouchSkinResp.java @@ -0,0 +1,18 @@ +package com.heyu.api.resp.face; + + +import com.heyu.api.resp.CommonImageUrlResp; +import lombok.Data; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/RetouchSkin?tab=DOC&lang=JAVA&RegionId=cn-shanghai + * + *智能美肤 RetouchSkin + */ +@Data +public class RetouchSkinResp extends CommonImageUrlResp { + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/good/ClassifyCommodityResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/good/ClassifyCommodityResp.java new file mode 100644 index 0000000..7b6533f --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/good/ClassifyCommodityResp.java @@ -0,0 +1,49 @@ +package com.heyu.api.resp.good; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +/*** + * https://next.api.aliyun.com/api/goodstech/2019-12-30/ClassifyCommodity?lang=JAVA&RegionId=cn-shanghai&tab=DOC + * + * 商品分类 + * + * ClassifyCommodity + * + * + */ +@Data +public class ClassifyCommodityResp extends BaseResp { + /*** + * + * Score + * number + * 分类 ID 的匹配度,大于 0 小于等于 1。 + * + * 示例值: + * 0.417248 + * + */ + private Float score; + + + /*** + * 类目 ID。 + * + * 说明 您可以在 category.txt 文件中查看该接口支持的类目 ID 和类目名称。 + * 示例值: + * 584 + */ + private String categoryId; + + + /*** + * 类目名称。 + * + * 说明 您可以在 category.txt 文件中查看该接口支持的类目 ID 和类目名称。 + * 示例值: + * 旁轴相机 + */ + private String categoryName; + +}