From 024738565cfd4ed65f4e058cd17695073b0ecc57 Mon Sep 17 00:00:00 2001 From: zhangjian <178459446@qq.com> Date: Tue, 23 May 2023 15:11:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/controller/GorseController.java | 80 ++++++ .../wx/application/adapter/dto/qo/GorseQ.java | 12 + .../core/controller/CategoryController.java | 261 ++++++++++++++++++ .../wx/application/core/entity/Category.java | 27 ++ .../core/mapper/CategoryMapper.java | 18 ++ .../core/service/CategoryService.java | 27 ++ .../core/service/EntrysService.java | 3 +- .../core/service/FeedbackTypeService.java | 3 +- .../gorse4j/{Gorse.java => GorseService.java} | 17 +- .../main/resources/mapper/CategoryMapper.xml | 6 + 10 files changed, 441 insertions(+), 13 deletions(-) create mode 100644 api/src/main/java/com/wx/application/adapter/controller/GorseController.java create mode 100644 api/src/main/java/com/wx/application/adapter/dto/qo/GorseQ.java create mode 100644 api/src/main/java/com/wx/application/core/controller/CategoryController.java create mode 100644 api/src/main/java/com/wx/application/core/entity/Category.java create mode 100644 api/src/main/java/com/wx/application/core/mapper/CategoryMapper.java create mode 100644 api/src/main/java/com/wx/application/core/service/CategoryService.java rename api/src/main/java/com/wx/application/gorse4j/{Gorse.java => GorseService.java} (89%) create mode 100644 api/src/main/resources/mapper/CategoryMapper.xml diff --git a/api/src/main/java/com/wx/application/adapter/controller/GorseController.java b/api/src/main/java/com/wx/application/adapter/controller/GorseController.java new file mode 100644 index 0000000..99fed12 --- /dev/null +++ b/api/src/main/java/com/wx/application/adapter/controller/GorseController.java @@ -0,0 +1,80 @@ +package com.wx.application.adapter.controller; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.wx.application.adapter.dto.qo.GorseQ; +import com.wx.application.base.BaseController; +import com.wx.application.base.ResponseData; +import com.wx.application.core.service.EntrysService; +import com.wx.application.core.service.RiskUserService; +import com.wx.application.gorse4j.GorseService; +import com.wx.application.nebula.graph.query.NebulaModel; +import com.wx.application.nebula.graph.query.NebulaNode; +import com.wx.application.nebula.graph.service.NebulaOperateService; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@RequestMapping("/gorse") +@RestController("gorseController") +public class GorseController extends BaseController { + + @Autowired + GorseService gorseService; + + @Autowired + RiskUserService riskUserService; + + @Autowired + EntrysService entrysService; + + @Autowired + NebulaOperateService nebulaOperateService; + + /** + * 推荐 + * @param gQo + * @return + * @throws Exception + */ + @PostMapping(value = "/recommend_by_userid") + public ResponseData recommendByUserId(@RequestBody GorseQ gQo) throws Exception { + List res = gorseService.getRecommend(gQo.getUserId()); + if(res == null || res.size() == 0) { + return success(); + } + Map mQ = new HashMap<>(); + mQ.put("INS_fid", StringUtils.join(res, ",")); + return success(entrysService.queryList(mQ)); + } + + @PostMapping(value = "/recommend_by_userid_with_graph") + public ResponseData recommendByUserIdWithGraph(@RequestBody GorseQ gQo) throws Exception { + + NebulaModel nebulaModel = nebulaOperateService.findOnePathById("", gQo.getUserId()); + List nodes = nebulaModel.getNodes(); + + if(nodes != null && nodes.size() > 0) { + nodes.get(0).getVid(); + } + + List res = gorseService.getRecommend(gQo.getUserId()); + if(res == null || res.size() == 0) { + return success(); + } + Map mQ = new HashMap<>(); + mQ.put("INS_fid", StringUtils.join(res, ",")); + return success(entrysService.queryList(mQ)); + } + + +} diff --git a/api/src/main/java/com/wx/application/adapter/dto/qo/GorseQ.java b/api/src/main/java/com/wx/application/adapter/dto/qo/GorseQ.java new file mode 100644 index 0000000..fcd8fe0 --- /dev/null +++ b/api/src/main/java/com/wx/application/adapter/dto/qo/GorseQ.java @@ -0,0 +1,12 @@ +package com.wx.application.adapter.dto.qo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper=false) +public class GorseQ { + + private String userId; + +} diff --git a/api/src/main/java/com/wx/application/core/controller/CategoryController.java b/api/src/main/java/com/wx/application/core/controller/CategoryController.java new file mode 100644 index 0000000..8c6f3c7 --- /dev/null +++ b/api/src/main/java/com/wx/application/core/controller/CategoryController.java @@ -0,0 +1,261 @@ +package com.wx.application.core.controller; + +import org.springframework.web.bind.annotation.*; +import com.wx.application.base.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import com.wx.application.core.service.CategoryService; +import com.wx.application.core.entity.Category; + import com.wx.application.base.ResponseData; +import java.util.Map; +import java.io.Serializable; +/** + * @description : Category 默认控制器,仅供生成器使用 + * --------------------------------- + * @since 2023-05-23 + */ +/*@Slf4j*/ +@RestController("coreCategoryController") +@RequestMapping("//category") +public class CategoryController extends BaseController { + + @Autowired + private CategoryService categoryService; + + /** + * 定义一些通用的错误信息,供其他 api引用 + * @apiDefine DefaultException + * @apiError {String} code 错误码 + * @apiError {String} msg 错误描述 + * @apiError {String} requestId 请求id标识 + * + * @apiErrorExample Error-Response: + * HTTP/1.1 200 + * { + * "code": "UNAUTHORIZED", + * "msg": "未授权,请先登录", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + */ + + /** + * 定义标准对象请求的结构体,供api引用 + * @apiDefine CategoryReq + * @apiParam {String} name + */ + + + /** + * 定义标准对象返回的结构体,供api引用 + * @apiDefine CategoryResp + * @apiSuccess {String} name + */ + + /** + * 定义标准头部,供api引用 + * @apiDefine CategoryHeader + * @apiHeader {String} Authorization 用户授权token + * @apiHeaderExample {json} Header-Example: + * { + * "Authorization": "Bearer 1eyJhbGciOiJIUzI1NiJ9....tzNK43MPVQWYYhDwihCAZa88zXzar7KLdgiBBDuUpBM", + * } + */ + + /** + * + * @api {post} //category/query_unique 通过条件查询对象 + * @apiName 通过条件查询对象 + * @apiGroup Category + * + * @apiUse CategoryHeader + * @apiUse CategoryResp + * @apiSuccessExample Success-Response: + * HTTP/1.1 200 OK + * { + * "data": { + + "name": null, + * }, + * "code": "SUCCESS", + * "msg": "请求成功", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + * @apiUse DefaultException + * + * @description : 通过条件查询对象 + * 仅查询第一条 + * --------------------------------- + * @author : zj + * @since : Create in 2023-05-23 + */ + @PostMapping(value = "/query_unique") + public ResponseData queryUnique(@RequestBody Map categoryQ) { + return success(categoryService.queryUnique(categoryQ)); + } + + /** + * + * @api {post} //category/query_pages 通过条件分页查询列表 + * @apiName 通过条件分页查询列表 + * @apiGroup Category + * + * @apiUse CategoryHeader + * @apiUse CategoryResp + * @apiSuccess {Long} total 总数 + * @apiSuccess {Long} size 分页大小 + * @apiSuccess {Long} current 当前页 + * @apiSuccess {Long} orders 排序 + * @apiSuccess {Long} pages 总页数 + * @apiSuccessExample Success-Response: + * HTTP/1.1 200 OK + * { + * "data": { + * "records": [{ + + "name": null, * }], + * "total": 1, + * "size": 10, + * "current": 1, + * "orders": [], + * "searchCount": true, + * "pages": 1 + * "code": "SUCCESS", + * "msg": "请求成功", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + * @apiUse DefaultException + * + * @description : 通过条件分页查询列表 + * 默认第一页 分页长度为10 + * --------------------------------- + * @author : zj + * @since : Create in 2023-05-23 + */ + @PostMapping(value = "/query_pages") + public ResponseData queryPages(@RequestBody Map categoryQ) { + return success(categoryService.queryPage(categoryQ)); + } + + /** + * + * @api {post} //category/query_list 通过条件查询列表 + * @apiName 通过条件查询列表 + * @apiGroup Category + * + * @apiUse CategoryHeader + * @apiUse CategoryResp + * @apiSuccessExample Success-Response: + * HTTP/1.1 200 OK + * { + * "data": [{ + + "name": null, + * }], + * "code": "SUCCESS", + * "msg": "请求成功", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + * @apiUse DefaultException + * + * @description : 通过条件查询列表 + * 不分页直接返回list + * --------------------------------- + * @author : zj + * @since : Create in 2023-05-23 + */ + @PostMapping(value = "/query_list") + public ResponseData queryList(@RequestBody Map categoryQ) { + return success(categoryService.queryList(categoryQ)); + } + + /** + * + * @api {post} //category/remove/:id 通过id删除单个记录 + * @apiName 通过id删除单个记录 + * @apiGroup Category + * + * @apiUse CategoryHeader + * @apiParam {PK} id 记录主键 + * @apiSuccessExample Success-Response: + * HTTP/1.1 200 OK + * { + * "data": true, + * "code": "SUCCESS", + * "msg": "请求成功", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + * @apiUse DefaultException + * + * @description : 通过id删除单个记录 + * --------------------------------- + * @author : zj + * @since : Create in 2023-05-23 + */ + @PostMapping(value = "/remove/{id}") + public ResponseData remove(@PathVariable("id") Serializable id) { + return success(categoryService.remove(id)); + } + + /** + * + * @api {post} //category/modify 通过id更新单个记录 + * @apiName 通过id更新单个记录 + * @apiGroup Category + * + * @apiUse CategoryHeader + * @apiParam {PK} id 记录主键 + * @apiUse CategoryReq + * @apiSuccessExample Success-Response: + * HTTP/1.1 200 OK + * { + * "data": true, + * "code": "SUCCESS", + * "msg": "请求成功", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + * @apiUse DefaultException + * + * @description : 通过id更新单个记录 + * --------------------------------- + * @author : zj + * @since : Create in 2023-05-23 + */ + @PostMapping(value = "/modify") + public ResponseData modify(@RequestBody Category category) { + return success(categoryService.modify(category)); + } + + /** + * + * @api {post} //category/create 新增 + * @apiName 新增 + * @apiGroup Category + * + * @apiUse CategoryHeader + * @apiUse CategoryReq + * @apiSuccessExample Success-Response: + * HTTP/1.1 200 OK + * { + * "data": true, + * "code": "SUCCESS", + * "msg": "请求成功", + * "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446" + * } + * + * @apiUse DefaultException + * + * @description : 新增 + * --------------------------------- + * @author : zj + * @since : Create in 2023-05-23 + */ + @PostMapping(value = "/create") + public ResponseData create(@RequestBody Category category) { + return success(categoryService.create(category)); + } +} diff --git a/api/src/main/java/com/wx/application/core/entity/Category.java b/api/src/main/java/com/wx/application/core/entity/Category.java new file mode 100644 index 0000000..f0dbed5 --- /dev/null +++ b/api/src/main/java/com/wx/application/core/entity/Category.java @@ -0,0 +1,27 @@ +package com.wx.application.core.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.wx.application.base.BaseEntity; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author zj + * @since 2023-05-23 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("re_category") +public class Category extends BaseEntity { + + private String name; + + + + +} diff --git a/api/src/main/java/com/wx/application/core/mapper/CategoryMapper.java b/api/src/main/java/com/wx/application/core/mapper/CategoryMapper.java new file mode 100644 index 0000000..a2fcb3d --- /dev/null +++ b/api/src/main/java/com/wx/application/core/mapper/CategoryMapper.java @@ -0,0 +1,18 @@ +package com.wx.application.core.mapper; + +import com.wx.application.core.entity.Category; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zj + * @since 2023-05-23 + */ +@Repository +public interface CategoryMapper extends BaseMapper { + +} diff --git a/api/src/main/java/com/wx/application/core/service/CategoryService.java b/api/src/main/java/com/wx/application/core/service/CategoryService.java new file mode 100644 index 0000000..eda3f97 --- /dev/null +++ b/api/src/main/java/com/wx/application/core/service/CategoryService.java @@ -0,0 +1,27 @@ +package com.wx.application.core.service; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.wx.application.base.BaseService; +import com.wx.application.core.entity.Category; +import com.wx.application.core.mapper.CategoryMapper; + +/** + *

+ * 服务类 + *

+ * + * @author zj + * @since 2023-05-23 + */ +/*@Slf4j*/ +@Service("coreCategoryService") +@Transactional +public class CategoryService extends BaseService { + + @Autowired + CategoryMapper baseMapper; +} diff --git a/api/src/main/java/com/wx/application/core/service/EntrysService.java b/api/src/main/java/com/wx/application/core/service/EntrysService.java index 325a7ea..d3c1fde 100644 --- a/api/src/main/java/com/wx/application/core/service/EntrysService.java +++ b/api/src/main/java/com/wx/application/core/service/EntrysService.java @@ -1,13 +1,12 @@ package com.wx.application.core.service; -import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.wx.application.core.entity.Entrys; import com.wx.application.base.BaseService; +import com.wx.application.core.entity.Entrys; import com.wx.application.core.mapper.EntrysMapper; /** diff --git a/api/src/main/java/com/wx/application/core/service/FeedbackTypeService.java b/api/src/main/java/com/wx/application/core/service/FeedbackTypeService.java index 352898c..831e693 100644 --- a/api/src/main/java/com/wx/application/core/service/FeedbackTypeService.java +++ b/api/src/main/java/com/wx/application/core/service/FeedbackTypeService.java @@ -1,13 +1,12 @@ package com.wx.application.core.service; -import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.wx.application.core.entity.FeedbackType; import com.wx.application.base.BaseService; +import com.wx.application.core.entity.FeedbackType; import com.wx.application.core.mapper.FeedbackTypeMapper; /** diff --git a/api/src/main/java/com/wx/application/gorse4j/Gorse.java b/api/src/main/java/com/wx/application/gorse4j/GorseService.java similarity index 89% rename from api/src/main/java/com/wx/application/gorse4j/Gorse.java rename to api/src/main/java/com/wx/application/gorse4j/GorseService.java index 47e33de..1fccce1 100644 --- a/api/src/main/java/com/wx/application/gorse4j/Gorse.java +++ b/api/src/main/java/com/wx/application/gorse4j/GorseService.java @@ -10,21 +10,20 @@ import java.net.URL; import java.util.Arrays; import java.util.List; -public class Gorse { +import org.springframework.stereotype.Service; - private final String endpoint; - private final String apiKey; +@Service +public class GorseService { + + private String endpoint = "http://43.139.83.67:8088/"; + private String apiKey = ""; public static void main(String[] args) throws IOException { // Create a client. - Gorse client = new Gorse("http://43.139.83.67:8088/", ""); - System.out.println(client.getRecommend("1265177464")); + //Gorse client = new Gorse("", ""); + //System.out.println(client.getRecommend("1265177464")); } - public Gorse(String endpoint, String apiKey) { - this.endpoint = endpoint; - this.apiKey = apiKey; - } public RowAffected insertUser(User user) throws IOException { return this.request("POST", this.endpoint + "/api/user", user, RowAffected.class); diff --git a/api/src/main/resources/mapper/CategoryMapper.xml b/api/src/main/resources/mapper/CategoryMapper.xml new file mode 100644 index 0000000..9d7b734 --- /dev/null +++ b/api/src/main/resources/mapper/CategoryMapper.xml @@ -0,0 +1,6 @@ + + + + + +