From 4e3ebe2646aecb63d9632cb0e129c1c426a7e18c Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 21:46:43 +0800 Subject: [PATCH 01/11] up --- .idea/misc.xml | 13 + .idea/vcs.xml | 6 + .../com/bsd/cases/model/FillterConstants.java | 22 ++ .../cases/service/CaseCategoryService.java | 2 + .../impl/WxMpInMemoryConfigStorage.java | 236 ------------------ .../cases/service/impl/WxMpServiceImpl.java | 99 -------- src/main/java/com/bsd/cases/vo/CaseVo.java | 8 + 7 files changed, 51 insertions(+), 335 deletions(-) create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/com/bsd/cases/model/FillterConstants.java delete mode 100644 src/main/java/com/bsd/cases/service/impl/WxMpInMemoryConfigStorage.java delete mode 100644 src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java create mode 100644 src/main/java/com/bsd/cases/vo/CaseVo.java diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d30d09e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/com/bsd/cases/model/FillterConstants.java b/src/main/java/com/bsd/cases/model/FillterConstants.java new file mode 100644 index 0000000..fd205c7 --- /dev/null +++ b/src/main/java/com/bsd/cases/model/FillterConstants.java @@ -0,0 +1,22 @@ +package com.bsd.cases.model; + +public class FillterConstants { + + public static String EQUAL = "is"; + + public static String EQUALSYM = "="; + + public static String LIKE = "like"; + + public static String LIKESYM = "regex"; + + public static String IN = "in"; + + public static String GTE = "gte"; + + public static String GTESYM = ">="; + + public static String LTE = "lte"; + + public static String LTESYM = "<="; +} diff --git a/src/main/java/com/bsd/cases/service/CaseCategoryService.java b/src/main/java/com/bsd/cases/service/CaseCategoryService.java index 49fbbbd..8eb08a1 100644 --- a/src/main/java/com/bsd/cases/service/CaseCategoryService.java +++ b/src/main/java/com/bsd/cases/service/CaseCategoryService.java @@ -10,4 +10,6 @@ public interface CaseCategoryService extends BaseService this.expiresTime; - } - - public synchronized void updateAccessToken(WxAccessToken accessToken) { - updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); - } - - public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) { - this.accessToken = accessToken; - this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l; - } - - public void expireAccessToken() { - this.expiresTime = 0; - } - - public String getJsapiTicket() { - return jsapiTicket; - } - - public void setJsapiTicket(String jsapiTicket) { - this.jsapiTicket = jsapiTicket; - } - - public long getJsapiTicketExpiresTime() { - return jsapiTicketExpiresTime; - } - - public void setJsapiTicketExpiresTime(long jsapiTicketExpiresTime) { - this.jsapiTicketExpiresTime = jsapiTicketExpiresTime; - } - - public boolean isJsapiTicketExpired() { - return System.currentTimeMillis() > this.jsapiTicketExpiresTime; - } - - public synchronized void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) { - this.jsapiTicket = jsapiTicket; - // 预留200秒的时间 - this.jsapiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l; - } - - public void expireJsapiTicket() { - this.jsapiTicketExpiresTime = 0; - } - - public String getAppId() { - return this.appId; - } - - public String getSecret() { - return this.secret; - } - - public String getToken() { - return this.token; - } - - public long getExpiresTime() { - return this.expiresTime; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - public void setSecret(String secret) { - this.secret = secret; - } - - public void setToken(String token) { - this.token = token; - } - - public String getAesKey() { - return aesKey; - } - - public void setAesKey(String aesKey) { - this.aesKey = aesKey; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public void setExpiresTime(long expiresTime) { - this.expiresTime = expiresTime; - } - - @Override - public String getOauth2redirectUri() { - return this.oauth2redirectUri; - } - - public void setOauth2redirectUri(String oauth2redirectUri) { - this.oauth2redirectUri = oauth2redirectUri; - } - - public String getHttp_proxy_host() { - return http_proxy_host; - } - - public void setHttp_proxy_host(String http_proxy_host) { - this.http_proxy_host = http_proxy_host; - } - - public int getHttp_proxy_port() { - return http_proxy_port; - } - - public void setHttp_proxy_port(int http_proxy_port) { - this.http_proxy_port = http_proxy_port; - } - - public String getHttp_proxy_username() { - return http_proxy_username; - } - - public void setHttp_proxy_username(String http_proxy_username) { - this.http_proxy_username = http_proxy_username; - } - - public String getHttp_proxy_password() { - return http_proxy_password; - } - - public void setHttp_proxy_password(String http_proxy_password) { - this.http_proxy_password = http_proxy_password; - } - - @Override - public String toString() { - return "WxMpInMemoryConfigStorage{" + - "appId='" + appId + '\'' + - ", secret='" + secret + '\'' + - ", token='" + token + '\'' + - ", partnerId='" + partnerId + '\'' + - ", partnerKey='" + partnerKey + '\'' + - ", accessToken='" + accessToken + '\'' + - ", aesKey='" + aesKey + '\'' + - ", expiresTime=" + expiresTime + - ", http_proxy_host='" + http_proxy_host + '\'' + - ", http_proxy_port=" + http_proxy_port + - ", http_proxy_username='" + http_proxy_username + '\'' + - ", http_proxy_password='" + http_proxy_password + '\'' + - ", jsapiTicket='" + jsapiTicket + '\'' + - ", jsapiTicketExpiresTime='" + jsapiTicketExpiresTime + '\'' + - ", tmpDirFile='" + tmpDirFile + '\'' + - '}'; - } - - @Override - public String getPartnerId() { - return partnerId; - } - - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - @Override - public String getPartnerKey() { - return partnerKey; - } - - public void setPartnerKey(String partnerKey) { - this.partnerKey = partnerKey; - } - - @Override - public File getTmpDirFile() { - return this.tmpDirFile; - } - - public void setTmpDirFile(File tmpDirFile) { - this.tmpDirFile = tmpDirFile; - } - - @Override - public SSLContext getSSLContext() { - return sslContext; - } - - public void setSSLContext(SSLContext context) { - sslContext = context; - } - -} diff --git a/src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java deleted file mode 100644 index be75500..0000000 --- a/src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.bsd.cases.service.impl; - -import com.bsd.cases.service.WxMpConfigStorage; -import com.bsd.cases.service.WxMpService; -import com.bsd.cases.util.wx.common.bean.WxAccessToken; -import com.bsd.cases.util.wx.common.bean.result.WxError; -import com.bsd.cases.util.wx.common.exception.WxErrorException; -import com.bsd.cases.util.wx.common.session.StandardSessionManager; -import com.bsd.cases.util.wx.common.session.WxSessionManager; -import com.bsd.cases.util.wx.common.util.crypto.SHA1; - -import org.apache.http.HttpHost; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -public class WxMpServiceImpl implements WxMpService { - - protected final Logger log = LoggerFactory.getLogger(WxMpServiceImpl.class); - - /** - * 全局的是否正在刷新access token的锁 - */ - protected final Object globalAccessTokenRefreshLock = new Object(); - - /** - * 全局的是否正在刷新jsapi_ticket的锁 - */ - protected final Object globalJsapiTicketRefreshLock = new Object(); - - protected WxMpConfigStorage wxMpConfigStorage; - - protected CloseableHttpClient httpClient; - - protected HttpHost httpProxy; - - private int retrySleepMillis = 1000; - - private int maxRetryTimes = 5; - - protected WxSessionManager sessionManager = new StandardSessionManager(); - - public boolean checkSignature(String timestamp, String nonce, String signature) { - try { - return SHA1.gen(wxMpConfigStorage.getToken(), timestamp, nonce).equals(signature); - } catch (Exception e) { - return false; - } - } - - public String getAccessToken() throws WxErrorException { - return getAccessToken(false); - } - - public String getAccessToken(boolean forceRefresh) throws WxErrorException { - if (forceRefresh) { - wxMpConfigStorage.expireAccessToken(); - } - if (wxMpConfigStorage.isAccessTokenExpired()) { - synchronized (globalAccessTokenRefreshLock) { - if (wxMpConfigStorage.isAccessTokenExpired()) { - String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" - + "&appid=" + wxMpConfigStorage.getAppId() - + "&secret=" + wxMpConfigStorage.getSecret(); - try { - HttpGet httpGet = new HttpGet(url); - if (httpProxy != null) { - RequestConfig config = RequestConfig.custom().setProxy(httpProxy).build(); - httpGet.setConfig(config); - } - CloseableHttpResponse response = getHttpclient().execute(httpGet); - String resultContent = new BasicResponseHandler().handleResponse(response); - WxError error = WxError.fromJson(resultContent); - if (error.getErrorCode() != 0) { - throw new WxErrorException(error); - } - WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); - wxMpConfigStorage.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); - } catch (ClientProtocolException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - } - return wxMpConfigStorage.getAccessToken(); - } - - protected CloseableHttpClient getHttpclient() { - return httpClient; - } -} diff --git a/src/main/java/com/bsd/cases/vo/CaseVo.java b/src/main/java/com/bsd/cases/vo/CaseVo.java new file mode 100644 index 0000000..47169ad --- /dev/null +++ b/src/main/java/com/bsd/cases/vo/CaseVo.java @@ -0,0 +1,8 @@ +package com.bsd.cases.vo; + +import lombok.Data; + +@Data +public class CaseVo { + +} From b3336619337ef36dffd6a9a50219d8fdabe18901 Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 22:04:50 +0800 Subject: [PATCH 02/11] up --- src/.gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/.gitignore diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..bb38415 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,3 @@ +/.idea/ +/target/ +/case.iml From d6579d06b58587695890989a341874815ca7fbc1 Mon Sep 17 00:00:00 2001 From: slimfish Date: Thu, 15 Oct 2020 22:16:21 +0800 Subject: [PATCH 03/11] .gitignore --- src/.gitignore => .gitignore | 0 .idea/misc.xml | 13 ------------- .idea/vcs.xml | 6 ------ 3 files changed, 19 deletions(-) rename src/.gitignore => .gitignore (100%) delete mode 100644 .idea/misc.xml delete mode 100644 .idea/vcs.xml diff --git a/src/.gitignore b/.gitignore similarity index 100% rename from src/.gitignore rename to .gitignore diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d30d09e..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From af5920d1ddd31fe19b122d83d01ea04262759a0b Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 22:20:30 +0800 Subject: [PATCH 04/11] up --- .../bsd/cases/mapper/CaseCategoryMapper.java | 5 +++++ .../java/com/bsd/cases/model/CaseCategory.java | 1 + .../java/com/bsd/cases/vo/CaseSearchVo.java | 17 +++++++++++++++++ src/main/java/com/bsd/cases/vo/CaseVo.java | 8 -------- .../resources/mapper/CaseCategoryMapper.xml | 7 ++++++- 5 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/bsd/cases/vo/CaseSearchVo.java delete mode 100644 src/main/java/com/bsd/cases/vo/CaseVo.java diff --git a/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java b/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java index 8fdfd13..a6cf030 100644 --- a/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java +++ b/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java @@ -2,8 +2,13 @@ package com.bsd.cases.mapper; import com.bsd.cases.model.CaseCategory; import com.bsd.cases.util.CommonMapper; +import com.bsd.cases.vo.CaseSearchVo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface CaseCategoryMapper extends CommonMapper { + List search(@Param("name") String name); } diff --git a/src/main/java/com/bsd/cases/model/CaseCategory.java b/src/main/java/com/bsd/cases/model/CaseCategory.java index 70616c0..a69a324 100644 --- a/src/main/java/com/bsd/cases/model/CaseCategory.java +++ b/src/main/java/com/bsd/cases/model/CaseCategory.java @@ -15,4 +15,5 @@ public class CaseCategory extends BaseEntity{ private Long parentId; + private String url; } diff --git a/src/main/java/com/bsd/cases/vo/CaseSearchVo.java b/src/main/java/com/bsd/cases/vo/CaseSearchVo.java new file mode 100644 index 0000000..dad61ac --- /dev/null +++ b/src/main/java/com/bsd/cases/vo/CaseSearchVo.java @@ -0,0 +1,17 @@ +package com.bsd.cases.vo; + +import lombok.Data; + +@Data +public class CaseSearchVo { + + private Long id; + + private String name; + + private String url; + /** + * type 是 0 就是category type 是 1 是content + */ + private Integer type; +} diff --git a/src/main/java/com/bsd/cases/vo/CaseVo.java b/src/main/java/com/bsd/cases/vo/CaseVo.java deleted file mode 100644 index 47169ad..0000000 --- a/src/main/java/com/bsd/cases/vo/CaseVo.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.bsd.cases.vo; - -import lombok.Data; - -@Data -public class CaseVo { - -} diff --git a/src/main/resources/mapper/CaseCategoryMapper.xml b/src/main/resources/mapper/CaseCategoryMapper.xml index 8726ef2..77fc657 100644 --- a/src/main/resources/mapper/CaseCategoryMapper.xml +++ b/src/main/resources/mapper/CaseCategoryMapper.xml @@ -1,5 +1,10 @@ - + From eec94477cdc1b3d2a991247217be5a3124da6cb6 Mon Sep 17 00:00:00 2001 From: slimfish Date: Thu, 15 Oct 2020 22:34:35 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=90=A6=E5=88=99=E6=88=91=E8=B7=91?= =?UTF-8?q?=E4=B8=8D=E8=B5=B7=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-dev.yml | 5 ----- src/main/resources/application-production.yml | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 9c19e3b..7c58ab6 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,7 +1,5 @@ -#服务器端口号配置 server: port: 8080 - #数据源配置 spring: datasource: @@ -25,7 +23,6 @@ spring: pool-prepared-statements: true max-open-prepared-statements: 50 max-pool-prepared-statement-per-connection-size: 20 - # 页面配置 mvc: view: prefix: /templates/ @@ -34,12 +31,10 @@ spring: cache: false request-context-attribute: request -#日志配置 log4j2 logging: config: classpath:log4j2.yml -#mybatis配置 mybatis: type-aliases-package: com.oceanspot.template.util.model mapper-locations: classpath:mapper/*.xml diff --git a/src/main/resources/application-production.yml b/src/main/resources/application-production.yml index 542f6ce..e74f737 100644 --- a/src/main/resources/application-production.yml +++ b/src/main/resources/application-production.yml @@ -1,7 +1,5 @@ -#服务器端口号配置 server: port: 8080 - #数据源配置 spring: datasource: @@ -25,7 +23,6 @@ spring: pool-prepared-statements: true max-open-prepared-statements: 50 max-pool-prepared-statement-per-connection-size: 20 - # 页面配置 mvc: view: prefix: /templates/ @@ -34,12 +31,10 @@ spring: cache: false request-context-attribute: request -#日志配置 log4j2 logging: config: classpath:log4j2.yml -#mybatis配置 mybatis: type-aliases-package: com.oceanspot.template.util.model mapper-locations: classpath:mapper/*.xml From ca511477976eb8a0f014e9c60d95132ad3f26a2c Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 22:35:07 +0800 Subject: [PATCH 06/11] up --- .../controller/CaseCategoryController.java | 28 +++++++++++++++++++ .../cases/service/CaseCategoryService.java | 3 +- .../service/impl/CaseCategoryServiceImpl.java | 15 ++++++++++ .../resources/mapper/CaseCategoryMapper.xml | 8 +++--- 4 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/bsd/cases/controller/CaseCategoryController.java b/src/main/java/com/bsd/cases/controller/CaseCategoryController.java index e78b741..ebac4e7 100644 --- a/src/main/java/com/bsd/cases/controller/CaseCategoryController.java +++ b/src/main/java/com/bsd/cases/controller/CaseCategoryController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.bsd.cases.service.CaseCategoryService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -52,4 +53,31 @@ public class CaseCategoryController { } return ajaxResult; } + + @RequestMapping("/search") + public AjaxResult search(@RequestBody AjaxRequest ajaxRequest,HttpServletRequest request) { + AjaxResult ajaxResult = new AjaxResult(); + JSONObject data = ajaxRequest.getData(); + if (null == data){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("data missing"); + }else { + Integer pageNum = data.getInteger("pageNum"); + Integer pageSize = data.getInteger("pageSize"); + if (null==pageNum|| null == pageSize){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("分页参数不可为空"); + }else { + String name = data.getString("name"); + if(StringUtils.isBlank(name)){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("查询参数不可为空"); + }else { + ajaxResult.setRetcode(AjaxResult.SUCCESS); + ajaxResult.setData(caseCategoryService.search(name,pageNum,pageSize)); + } + } + } + return ajaxResult; + } } diff --git a/src/main/java/com/bsd/cases/service/CaseCategoryService.java b/src/main/java/com/bsd/cases/service/CaseCategoryService.java index 8eb08a1..030bd04 100644 --- a/src/main/java/com/bsd/cases/service/CaseCategoryService.java +++ b/src/main/java/com/bsd/cases/service/CaseCategoryService.java @@ -2,6 +2,7 @@ package com.bsd.cases.service; import com.alibaba.fastjson.JSONObject; import com.bsd.cases.util.AjaxRequest; +import com.bsd.cases.vo.CaseSearchVo; import java.util.List; @@ -11,5 +12,5 @@ public interface CaseCategoryService extends BaseService caseSearchVoList = caseCategoryMapper.search(name); + JSONObject data = PageUtils.page(caseSearchVoList,pageNum,pageSize); + return data; + } + } diff --git a/src/main/resources/mapper/CaseCategoryMapper.xml b/src/main/resources/mapper/CaseCategoryMapper.xml index 77fc657..cb6e8a0 100644 --- a/src/main/resources/mapper/CaseCategoryMapper.xml +++ b/src/main/resources/mapper/CaseCategoryMapper.xml @@ -2,9 +2,9 @@ From a663474d8ff1bcc051b60d2b8af41a726f994bc8 Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 22:36:47 +0800 Subject: [PATCH 07/11] up --- src/main/resources/mapper/CaseCategoryMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mapper/CaseCategoryMapper.xml b/src/main/resources/mapper/CaseCategoryMapper.xml index cb6e8a0..9ac7ddb 100644 --- a/src/main/resources/mapper/CaseCategoryMapper.xml +++ b/src/main/resources/mapper/CaseCategoryMapper.xml @@ -2,9 +2,9 @@ From 243ea6668aa1e24d5947677d61f874032fcefd36 Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 22:58:50 +0800 Subject: [PATCH 08/11] up --- .../controller/CaseRecommendController.java | 32 +++++++++++++++++ .../bsd/cases/mapper/CaseRecommendMapper.java | 9 +++++ .../com/bsd/cases/model/CaseRecommend.java | 18 ++++++++++ .../cases/service/CaseRecommendService.java | 7 ++++ .../impl/CaseRecommendServiceImpl.java | 35 +++++++++++++++++++ 5 files changed, 101 insertions(+) create mode 100644 src/main/java/com/bsd/cases/controller/CaseRecommendController.java create mode 100644 src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java create mode 100644 src/main/java/com/bsd/cases/model/CaseRecommend.java create mode 100644 src/main/java/com/bsd/cases/service/CaseRecommendService.java create mode 100644 src/main/java/com/bsd/cases/service/impl/CaseRecommendServiceImpl.java diff --git a/src/main/java/com/bsd/cases/controller/CaseRecommendController.java b/src/main/java/com/bsd/cases/controller/CaseRecommendController.java new file mode 100644 index 0000000..62a7246 --- /dev/null +++ b/src/main/java/com/bsd/cases/controller/CaseRecommendController.java @@ -0,0 +1,32 @@ +package com.bsd.cases.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bsd.cases.model.CaseRecommend; +import com.bsd.cases.service.CaseRecommendService; +import com.bsd.cases.util.AjaxResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/case-recommend") +public class CaseRecommendController { + @Resource + private CaseRecommendService caseRecommendService; + + @RequestMapping("/get-case-recommend") + public AjaxResult getAllCategory(HttpServletRequest request) { + AjaxResult ajaxResult = new AjaxResult(); + List caseRecommendList = caseRecommendService.getCaseRecommend(); + if (null!=caseRecommendList){ + ajaxResult.setRetcode(AjaxResult.SUCCESS); + ajaxResult.setData(caseRecommendList); + }else { + ajaxResult.setRetcode(AjaxResult.FAILED); + } + return ajaxResult; + } +} diff --git a/src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java b/src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java new file mode 100644 index 0000000..bcde2a9 --- /dev/null +++ b/src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java @@ -0,0 +1,9 @@ +package com.bsd.cases.mapper; + +import com.bsd.cases.model.CaseRecommend; +import com.bsd.cases.util.CommonMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface CaseRecommendMapper extends CommonMapper { +} diff --git a/src/main/java/com/bsd/cases/model/CaseRecommend.java b/src/main/java/com/bsd/cases/model/CaseRecommend.java new file mode 100644 index 0000000..f7723ee --- /dev/null +++ b/src/main/java/com/bsd/cases/model/CaseRecommend.java @@ -0,0 +1,18 @@ +package com.bsd.cases.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("case_recommend") +public class CaseRecommend extends BaseEntity{ + + private Long contentId; + + private String url; + + private Integer sort; + +} diff --git a/src/main/java/com/bsd/cases/service/CaseRecommendService.java b/src/main/java/com/bsd/cases/service/CaseRecommendService.java new file mode 100644 index 0000000..b051e1c --- /dev/null +++ b/src/main/java/com/bsd/cases/service/CaseRecommendService.java @@ -0,0 +1,7 @@ +package com.bsd.cases.service; + +import java.util.List; + +public interface CaseRecommendService extends BaseService { + List getCaseRecommend(); +} diff --git a/src/main/java/com/bsd/cases/service/impl/CaseRecommendServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/CaseRecommendServiceImpl.java new file mode 100644 index 0000000..a165dc0 --- /dev/null +++ b/src/main/java/com/bsd/cases/service/impl/CaseRecommendServiceImpl.java @@ -0,0 +1,35 @@ +package com.bsd.cases.service.impl; + +import com.bsd.cases.constants.Constants; +import com.bsd.cases.mapper.CaseRecommendMapper; +import com.bsd.cases.model.CaseRecommend; +import com.bsd.cases.service.CaseRecommendService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import java.util.List; + +@Service("caseRecommendService") +@Transactional +public class CaseRecommendServiceImpl extends BaseServiceImpl + implements CaseRecommendService { + + @Resource + private CaseRecommendMapper caseRecommendMapper; + + /** + * 首页获取banner图 + * @return + */ + @Override + public List getCaseRecommend() { + Example example = new Example(CaseRecommend.class); + Example.Criteria criteria = example.createCriteria(); + criteria.andEqualTo("state",Constants.STATE_VALID); + example.setOrderByClause("sort asc"); + List caseRecommendList = caseRecommendMapper.selectByExample(example); + return caseRecommendList; + } +} From 7dcbdc7d20ed0b80fbe7b7bc23132f8e7ec0159f Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 23:26:08 +0800 Subject: [PATCH 09/11] up --- src/main/java/com/bsd/cases/util/PageUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/bsd/cases/util/PageUtils.java b/src/main/java/com/bsd/cases/util/PageUtils.java index 453ae3b..fa116cd 100644 --- a/src/main/java/com/bsd/cases/util/PageUtils.java +++ b/src/main/java/com/bsd/cases/util/PageUtils.java @@ -25,6 +25,7 @@ public class PageUtils { jsonObject.put("total",size); jsonObject.put("pageNum",pageNum); jsonObject.put("pageSize",pageSize); + jsonObject.put("pages",(int) Math.ceil(Double.valueOf(size) / Double.valueOf(pageSize))); return jsonObject; } } From c0a2116d89220ebf20ea5b4262aac1c58a37e8cb Mon Sep 17 00:00:00 2001 From: slimfish Date: Thu, 15 Oct 2020 23:35:33 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E8=B7=A8=E5=9F=9F=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsd/cases/controller/BaseController.java | 1 + .../controller/CaseCategoryController.java | 29 ++----------------- .../controller/CaseContentController.java | 2 ++ 3 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/bsd/cases/controller/BaseController.java b/src/main/java/com/bsd/cases/controller/BaseController.java index 7a6aa2c..a2b40f2 100644 --- a/src/main/java/com/bsd/cases/controller/BaseController.java +++ b/src/main/java/com/bsd/cases/controller/BaseController.java @@ -10,6 +10,7 @@ import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.MessageSourceAware; +import org.springframework.web.bind.annotation.CrossOrigin; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; diff --git a/src/main/java/com/bsd/cases/controller/CaseCategoryController.java b/src/main/java/com/bsd/cases/controller/CaseCategoryController.java index ebac4e7..4537ec7 100644 --- a/src/main/java/com/bsd/cases/controller/CaseCategoryController.java +++ b/src/main/java/com/bsd/cases/controller/CaseCategoryController.java @@ -5,6 +5,7 @@ import com.bsd.cases.service.CaseCategoryService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +@CrossOrigin @RestController @RequestMapping("/case-category") public class CaseCategoryController { @@ -53,31 +55,4 @@ public class CaseCategoryController { } return ajaxResult; } - - @RequestMapping("/search") - public AjaxResult search(@RequestBody AjaxRequest ajaxRequest,HttpServletRequest request) { - AjaxResult ajaxResult = new AjaxResult(); - JSONObject data = ajaxRequest.getData(); - if (null == data){ - ajaxResult.setRetcode(AjaxResult.FAILED); - ajaxResult.setRetmsg("data missing"); - }else { - Integer pageNum = data.getInteger("pageNum"); - Integer pageSize = data.getInteger("pageSize"); - if (null==pageNum|| null == pageSize){ - ajaxResult.setRetcode(AjaxResult.FAILED); - ajaxResult.setRetmsg("分页参数不可为空"); - }else { - String name = data.getString("name"); - if(StringUtils.isBlank(name)){ - ajaxResult.setRetcode(AjaxResult.FAILED); - ajaxResult.setRetmsg("查询参数不可为空"); - }else { - ajaxResult.setRetcode(AjaxResult.SUCCESS); - ajaxResult.setData(caseCategoryService.search(name,pageNum,pageSize)); - } - } - } - return ajaxResult; - } } diff --git a/src/main/java/com/bsd/cases/controller/CaseContentController.java b/src/main/java/com/bsd/cases/controller/CaseContentController.java index 4fc58b0..acadb1e 100644 --- a/src/main/java/com/bsd/cases/controller/CaseContentController.java +++ b/src/main/java/com/bsd/cases/controller/CaseContentController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.bsd.cases.service.CaseContentService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +@CrossOrigin @RestController @RequestMapping("/case-content") public class CaseContentController { From 32c691241f63b936944c6347fbf343551c30fc00 Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Thu, 15 Oct 2020 23:51:33 +0800 Subject: [PATCH 11/11] up --- .../service/impl/CaseCategoryServiceImpl.java | 25 ++++++++++++++++++- .../service/impl/CaseContentServiceImpl.java | 1 + .../java/com/bsd/cases/vo/CaseCategoryVo.java | 17 +++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/bsd/cases/vo/CaseCategoryVo.java diff --git a/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java index 4fa5dcb..d228bb1 100644 --- a/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java +++ b/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java @@ -1,13 +1,16 @@ package com.bsd.cases.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.bsd.cases.constants.Constants; import com.bsd.cases.mapper.CaseCategoryMapper; import com.bsd.cases.model.CaseCategory; +import com.bsd.cases.model.CaseContent; import com.bsd.cases.service.CaseCategoryService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; import com.bsd.cases.util.PageUtils; +import com.bsd.cases.vo.CaseCategoryVo; import com.bsd.cases.vo.CaseSearchVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -52,13 +55,33 @@ public class CaseCategoryServiceImpl extends BaseServiceImpl caseCategoryList2 = caseCategoryMapper.select(findCaseCategory2); findCaseCategory.setState(Constants.STATE_VALID); - findCaseCategory.setParentId(caseCategoryList2.get(0).getId()); + parentId = caseCategoryList2.get(0).getId(); + findCaseCategory.setParentId(parentId); }else { findCaseCategory.setState(Constants.STATE_VALID); findCaseCategory.setParentId(parentId); } List caseCategoryList = caseCategoryMapper.select(findCaseCategory); JSONObject pageJson = PageUtils.page(caseCategoryList,pageNum,pageSize); + JSONArray jsonArray = pageJson.getJSONArray("list"); + caseCategoryList = JSONObject.parseArray(JSONObject.toJSONString(jsonArray), CaseCategory.class); + List newCaseCategoryVoList = new ArrayList<>(); + for (CaseCategory caseCategory:caseCategoryList){ + CaseCategoryVo caseCategoryVo = new CaseCategoryVo(); + caseCategoryVo.setName(caseCategory.getName()); + caseCategoryVo.setLevel(caseCategory.getLevel()); + caseCategoryVo.setParentId(parentId); + caseCategoryVo.setUrl(caseCategory.getUrl()); + String parenName = caseCategoryMapper.selectByPrimaryKey(parentId).getName(); + caseCategoryVo.setParentName(parenName); + newCaseCategoryVoList.add(caseCategoryVo); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("list",newCaseCategoryVoList); + jsonObject.put("total",pageJson.getInteger("total")); + jsonObject.put("pageNum",pageNum); + jsonObject.put("pages",(int) Math.ceil(Double.valueOf(pageJson.getInteger("total")) / Double.valueOf(pageSize))); + jsonObject.put("pageSize",pageSize); return pageJson; } diff --git a/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java index 4150581..6921fe2 100644 --- a/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java +++ b/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java @@ -57,6 +57,7 @@ public class CaseContentServiceImpl extends BaseServiceImpl