diff --git a/README.md b/README.md
index e93d7a89..539caf52 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,7 @@
#### 项目简介
-yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurity+jwt+redis+Vue的前后端分离的商城系统, 包含商城、拼团、砍价、
-秒杀、优惠券、积分、分销等功能,更适合企业或个人二次开发;
+yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2+Jpa+MybatisPlus+SpringSecurity+jwt+redis+Vue的前后端分离的商城系统, 包含商城、拼团、砍价、商户管理、 秒杀、优惠券、积分、分销等功能,更适合企业或个人二次开发;;
**开发文档** 【[查看文档](https://gitee.com/guchengwuyue/yshopmall/wikis/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83?sort_id=1718722)】
@@ -54,7 +53,6 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit
#### 已经完成功能
- 可以具体查看演示地址查看当前版本已经完成的功能,不再絮叨啦
-
#### 项目结构
项目采用分模块开发方式
- yshop-api 公众号(H5)API模块
@@ -86,16 +84,16 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit
@@ -123,7 +121,6 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit
* 2.1 Vue 全家桶
* 2.2 Element
-
#### 项目发布明细
- 1.0版本
@@ -132,6 +129,8 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit
- 1.2.1增加了未付款订单取消功能库存销量退出、优惠券、积分功能,个人中心增加了积分流水
- 1.3版本新增拼团功能,已经发布
- 1.3.1版本手机端新增商户管理、后台新增统计
+- 1.3.2新增后台微信相关及其支付配置,新增自动回复配置
+- 1.3.3新增 后台微信图文发送功能,小程序配置,增加小程序授权等,修复一些bug等
- 1.4版本规划:补充公众号功能、发布mpvue小程序
diff --git a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java
index 6a9485f5..cd1cadf7 100644
--- a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java
+++ b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java
@@ -60,7 +60,7 @@ public class YxArticleController {
@DeleteMapping(value = "/yxArticle/{id}")
@PreAuthorize("hasAnyRole('ADMIN','YXARTICLE_ALL','YXARTICLE_DELETE')")
public ResponseEntity delete(@PathVariable Integer id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
yxArticleService.delete(id);
return new ResponseEntity(HttpStatus.OK);
}
@@ -69,7 +69,7 @@ public class YxArticleController {
@GetMapping(value = "/yxArticle/publish/{id}")
@PreAuthorize("hasAnyRole('ADMIN','YXARTICLE_ALL','YXARTICLE_DELETE')")
public ResponseEntity publish(@PathVariable Integer id) throws Exception{
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
YxArticleDTO yxArticleDTO= yxArticleService.findById(id);
yxArticleService.uploadNews(yxArticleDTO);
return new ResponseEntity(HttpStatus.OK);
diff --git a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java
index 392e8430..9e4c4a98 100644
--- a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java
+++ b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java
@@ -47,7 +47,7 @@ public class YxCacheController {
@PostMapping(value = "/yxCache")
@PreAuthorize("hasAnyRole('ADMIN','YXCACHE_ALL','YXCACHE_CREATE')")
public ResponseEntity create( @RequestBody String jsonStr){
- //if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
+ if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
JSONObject jsonObject = JSON.parseObject(jsonStr);
String jsonButton = jsonObject.get("buttons").toString();
YxCache yxCache = new YxCache();
diff --git a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java
index 12c460a6..ee8063bc 100644
--- a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java
+++ b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java
@@ -41,7 +41,7 @@ public class YxWechatReplyController {
@PostMapping(value = "/yxWechatReply")
@PreAuthorize("hasAnyRole('ADMIN','YXWECHATREPLY_ALL','YXWECHATREPLY_CREATE')")
public ResponseEntity create(@RequestBody String jsonStr){
- //if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
+ if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
JSONObject jsonObject = JSON.parseObject(jsonStr);
YxWechatReply yxWechatReply = new YxWechatReply();
YxWechatReply isExist = yxWechatReplyService.isExist(jsonObject.get("key").toString());
diff --git a/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java b/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java
index ab556189..259e5368 100644
--- a/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java
+++ b/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java
@@ -31,13 +31,12 @@ public class SubscribeHandler extends AbstractHandler {
WxSessionManager sessionManager) throws WxErrorException {
+ String str = "你好,欢迎关注yshop!";
YxWechatReply wechatReply = yxWechatReplyService.isExist("subscribe");
- if(ObjectUtil.isNull(wechatReply)){
-
+ if(!ObjectUtil.isNull(wechatReply)){
+ str = JSONObject.parseObject(wechatReply.getData()).getString("content");
}
-
- String str = JSONObject.parseObject(wechatReply.getData()).getString("content");
try {
WxMpXmlOutMessage msg= WxMpXmlOutMessage.TEXT()
.content(str)
diff --git a/yshop-system/src/main/java/co/yixiang/modules/activity/rest/YxStoreCombinationController.java b/yshop-system/src/main/java/co/yixiang/modules/activity/rest/YxStoreCombinationController.java
index 3bf88fd1..92f84fb5 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/activity/rest/YxStoreCombinationController.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/activity/rest/YxStoreCombinationController.java
@@ -45,7 +45,7 @@ public class YxStoreCombinationController {
@PutMapping(value = "/yxStoreCombination")
@PreAuthorize("hasAnyRole('ADMIN','YXSTORECOMBINATION_ALL','YXSTORECOMBINATION_EDIT')")
public ResponseEntity update(@Validated @RequestBody YxStoreCombination resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
if(ObjectUtil.isNotNull(resources.getStartTimeDate())){
resources.setStartTime(OrderUtil.
dateToTimestamp(resources.getStartTimeDate()));
@@ -67,7 +67,7 @@ public class YxStoreCombinationController {
@ApiOperation(value = "开启关闭")
@PostMapping(value = "/yxStoreCombination/onsale/{id}")
public ResponseEntity onSale(@PathVariable Integer id,@RequestBody String jsonStr){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
JSONObject jsonObject = JSON.parseObject(jsonStr);
int status = Integer.valueOf(jsonObject.get("status").toString());
//System.out.println(status);
@@ -80,7 +80,7 @@ public class YxStoreCombinationController {
@DeleteMapping(value = "/yxStoreCombination/{id}")
@PreAuthorize("hasAnyRole('ADMIN','YXSTORECOMBINATION_ALL','YXSTORECOMBINATION_DELETE')")
public ResponseEntity delete(@PathVariable Integer id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
YxStoreCombination combination = new YxStoreCombination();
combination.setIsDel(1);
yxStoreCombinationService.update(combination);
diff --git a/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java b/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java
index 199b4a6d..577a1ea2 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java
@@ -36,11 +36,13 @@ public class RedisServiceImpl implements RedisService {
}
for (Object s : redisTemplate.keys(key)) {
// 过滤掉权限的缓存
- if (s.toString().indexOf("role::loadPermissionByUser") != -1 || s.toString().indexOf("user::loadUserByUsername") != -1) {
+ if (s.toString().indexOf("role::loadPermissionByUser") != -1
+ || s.toString().indexOf("user::loadUserByUsername") != -1
+ || s.toString().indexOf("wechat") != -1 || s.toString().indexOf("wxpay") != -1) {
continue;
}
DataType dataType = redisTemplate.type(s.toString());
- if(dataType.code().equals("hash")) continue;
+ if(!dataType.code().equals("string")) continue;
RedisVo redisVo = new RedisVo(s.toString(),redisTemplate.opsForValue().get(s.toString()).toString());
redisVos.add(redisVo);
}
diff --git a/yshop-system/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java b/yshop-system/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java
index d78ecec1..25e81c58 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java
@@ -46,7 +46,7 @@ public class QuartzJobController {
@PostMapping(value = "/jobs")
@PreAuthorize("hasAnyRole('ADMIN','JOB_ALL','JOB_CREATE')")
public ResponseEntity create(@Validated @RequestBody QuartzJob resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
}
@@ -57,7 +57,7 @@ public class QuartzJobController {
@PutMapping(value = "/jobs")
@PreAuthorize("hasAnyRole('ADMIN','JOB_ALL','JOB_EDIT')")
public ResponseEntity update(@Validated(QuartzJob.Update.class) @RequestBody QuartzJob resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
quartzJobService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@@ -66,7 +66,7 @@ public class QuartzJobController {
@PutMapping(value = "/jobs/{id}")
@PreAuthorize("hasAnyRole('ADMIN','JOB_ALL','JOB_EDIT')")
public ResponseEntity updateIsPause(@PathVariable Long id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
quartzJobService.updateIsPause(quartzJobService.findById(id));
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@@ -75,7 +75,7 @@ public class QuartzJobController {
@PutMapping(value = "/jobs/exec/{id}")
@PreAuthorize("hasAnyRole('ADMIN','JOB_ALL','JOB_EDIT')")
public ResponseEntity execution(@PathVariable Long id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
quartzJobService.execution(quartzJobService.findById(id));
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@@ -84,7 +84,7 @@ public class QuartzJobController {
@DeleteMapping(value = "/jobs/{id}")
@PreAuthorize("hasAnyRole('ADMIN','JOB_ALL','JOB_DELETE')")
public ResponseEntity delete(@PathVariable Long id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
quartzJobService.delete(quartzJobService.findById(id));
return new ResponseEntity(HttpStatus.OK);
}
diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java
index be649831..75627d19 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java
@@ -47,7 +47,7 @@ public class YxStoreCategoryController {
@PostMapping(value = "/yxStoreCategory")
@PreAuthorize("hasAnyRole('ADMIN','YXSTORECATEGORY_ALL','YXSTORECATEGORY_CREATE')")
public ResponseEntity create(@Validated @RequestBody YxStoreCategory resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
resources.setAddTime(OrderUtil.getSecondTimestampTwo());
return new ResponseEntity(yxStoreCategoryService.create(resources),HttpStatus.CREATED);
}
@@ -57,7 +57,7 @@ public class YxStoreCategoryController {
@PutMapping(value = "/yxStoreCategory")
@PreAuthorize("hasAnyRole('ADMIN','YXSTORECATEGORY_ALL','YXSTORECATEGORY_EDIT')")
public ResponseEntity update(@Validated @RequestBody YxStoreCategory resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
yxStoreCategoryService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@@ -67,7 +67,7 @@ public class YxStoreCategoryController {
@DeleteMapping(value = "/yxStoreCategory/{id}")
@PreAuthorize("hasAnyRole('ADMIN','YXSTORECATEGORY_ALL','YXSTORECATEGORY_DELETE')")
public ResponseEntity delete(@PathVariable Integer id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
yxStoreCategoryService.delete(id);
return new ResponseEntity(HttpStatus.OK);
}
diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java
index a5619a0f..23b6baa6 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java
@@ -46,7 +46,7 @@ public class YxStoreProductController {
@PostMapping(value = "/yxStoreProduct")
@PreAuthorize("hasAnyRole('ADMIN','YXSTOREPRODUCT_ALL','YXSTOREPRODUCT_CREATE')")
public ResponseEntity create(@Validated @RequestBody YxStoreProduct resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
resources.setAddTime(OrderUtil.getSecondTimestampTwo());
if(ObjectUtil.isEmpty(resources.getGiveIntegral())) resources.setGiveIntegral(BigDecimal.ZERO);
if(ObjectUtil.isEmpty(resources.getCost())) resources.setCost(BigDecimal.ZERO);
@@ -58,7 +58,7 @@ public class YxStoreProductController {
@PutMapping(value = "/yxStoreProduct")
@PreAuthorize("hasAnyRole('ADMIN','YXSTOREPRODUCT_ALL','YXSTOREPRODUCT_EDIT')")
public ResponseEntity update(@Validated @RequestBody YxStoreProduct resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
yxStoreProductService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@@ -68,7 +68,7 @@ public class YxStoreProductController {
@DeleteMapping(value = "/yxStoreProduct/{id}")
@PreAuthorize("hasAnyRole('ADMIN','YXSTOREPRODUCT_ALL','YXSTOREPRODUCT_DELETE')")
public ResponseEntity delete(@PathVariable Integer id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
yxStoreProductService.delete(id);
return new ResponseEntity(HttpStatus.OK);
}
@@ -107,7 +107,6 @@ public class YxStoreProductController {
@ApiOperation(value = "清除属性")
@PostMapping(value = "/yxStoreProduct/clearAttr/{id}")
public ResponseEntity clearAttr(@PathVariable Integer id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
yxStoreProductService.clearProductAttr(id,true);
return new ResponseEntity(HttpStatus.OK);
}
diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxSystemGroupDataController.java b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxSystemGroupDataController.java
index 36c5a27f..85fb616b 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxSystemGroupDataController.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxSystemGroupDataController.java
@@ -45,7 +45,7 @@ public class YxSystemGroupDataController {
@PostMapping(value = "/yxSystemGroupData")
@PreAuthorize("hasAnyRole('ADMIN','YXSYSTEMGROUPDATA_ALL','YXSYSTEMGROUPDATA_CREATE')")
public ResponseEntity create(@RequestBody String jsonStr){
- //if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
+ if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
JSONObject jsonObject = JSON.parseObject(jsonStr);
if(ObjectUtil.isNotNull(jsonObject.get("name"))){
@@ -88,7 +88,7 @@ public class YxSystemGroupDataController {
@PutMapping(value = "/yxSystemGroupData")
@PreAuthorize("hasAnyRole('ADMIN','YXSYSTEMGROUPDATA_ALL','YXSYSTEMGROUPDATA_EDIT')")
public ResponseEntity update(@RequestBody String jsonStr){
- //if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
+ if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作");
JSONObject jsonObject = JSON.parseObject(jsonStr);
if(ObjectUtil.isNotNull(jsonObject.get("name"))){
if(StrUtil.isEmpty(jsonObject.get("name").toString())){
@@ -123,7 +123,7 @@ public class YxSystemGroupDataController {
@DeleteMapping(value = "/yxSystemGroupData/{id}")
@PreAuthorize("hasAnyRole('ADMIN','YXSYSTEMGROUPDATA_ALL','YXSYSTEMGROUPDATA_DELETE')")
public ResponseEntity delete(@PathVariable Integer id){
- //if(id > 0) throw new BadRequestException("演示环境禁止操作");
+ if(id > 0) throw new BadRequestException("演示环境禁止操作");
yxSystemGroupDataService.delete(id);
return new ResponseEntity(HttpStatus.OK);
}
diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/rest/MenuController.java b/yshop-system/src/main/java/co/yixiang/modules/system/rest/MenuController.java
index 822803ec..dcb5a12d 100644
--- a/yshop-system/src/main/java/co/yixiang/modules/system/rest/MenuController.java
+++ b/yshop-system/src/main/java/co/yixiang/modules/system/rest/MenuController.java
@@ -74,7 +74,7 @@ public class MenuController {
@PostMapping(value = "/menus")
@PreAuthorize("hasAnyRole('ADMIN','MENU_ALL','MENU_CREATE')")
public ResponseEntity create(@Validated @RequestBody Menu resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
}
@@ -85,7 +85,7 @@ public class MenuController {
@PutMapping(value = "/menus")
@PreAuthorize("hasAnyRole('ADMIN','MENU_ALL','MENU_EDIT')")
public ResponseEntity update(@Validated(Menu.Update.class) @RequestBody Menu resources){
- //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
+ if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作");
menuService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@@ -94,7 +94,7 @@ public class MenuController {
@DeleteMapping(value = "/menus/{id}")
@PreAuthorize("hasAnyRole('ADMIN','MENU_ALL','MENU_DELETE')")
public ResponseEntity delete(@PathVariable Long id){
- //if(id>0) throw new BadRequestException("演示环境禁止操作");
+ if(id>0) throw new BadRequestException("演示环境禁止操作");
List