diff --git a/README.md b/README.md index a2582700..67ba925c 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2 | | 后台系统 | 前端(公众号) | |--- |--- | --- | -| | https://yshop.dayouqiantu.cn |H5:https://h5.dayouqiantu.cn 测试号:hupeng/123456,也可以自行注册 | +| | https://www.yixiang.co |H5:https://h5.yixiang.co 测试号:hupeng/123456,也可以自行注册 | | | 后台体验账号/密码:admin/123456 | 公众号:![输入图片说明](https://images.gitee.com/uploads/images/2019/1116/060936_fd73496c_477893.jpeg "qrcode_for_gh_95df5a2881cc_258.jpg") | @@ -24,14 +24,15 @@ yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2 #### 开源版本与VIP版本说明 ### 开源版 -1.包括整个商城系统后台、数据库、api(只是简单的配置好模块); +1.包括整个商城系统后台、数据库 -2.本版本本身属于独立后台商城管理系统、可独立作为cms、商城等等后台使用; +2.开源整个商城的管理后台(后台已经封装好了图片素材库、编辑器、配置等等组件), 它可以用于所有的Web应用程序,如网站商城管理后台,网站会员中心, +CMS,CRM,OA等等本版本本身属于独立后台商城管理系统; 3.可以个人、企业直接使用。 ### VIP版 -1.包括整个商城系统后台、数据库、API、H5; +1.包括了开源版,还包括了移动端(H5+公众号)、小程序(mpvue2框架)1.0已经发布一个开发版、移动端API 2.本版本是演示的所有功能代码; @@ -55,7 +56,7 @@ yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2 #### 项目结构 项目采用分模块开发方式 -- yshop-api 公众号(H5)API模块 +- yshop-api 移动端API模块 - yshop-mp 微信相关模块 - yshop-common 公共模块 - yshop-system 后台模块 @@ -123,6 +124,7 @@ yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2 * 前端使用技术 * 2.1 Vue 全家桶 * 2.2 Element + * 2.3 mpvue #### 项目发布明细 @@ -146,16 +148,19 @@ yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2 - yshop1.6.4发布:后台新增修改订单价格与备注优化订单详情显示明细,修复积分记录标题不显示的问题 - yshop1.7 发布 - yshop1.8发布: - - 1、新增小程序支付与登录,后台新增小程序跳转页面, - - 2、后台新增图片素材管理 - - 3、本地上传与七牛云上传合并,修改一个yml即可两者随意切换 - - 4、升级swagger-bootstrap,swaager统一配置迁移到common(防止注解冲突) - - 5、后台优化操作显示 - - yshop1.8.1发布更新如下: - - 1、修复库存问题#I17Z5X - - 2、修复评价百分比精度问题#I17UQY - - 3、修复评价列表问题#I17TZC - - 4、移动端图片上传修改为统一处理 +- yshop1.8.3发布更新如下: + - yshop1.9.1,新增城市接口,修复小程序登陆与支付问题,发布mpvue1.0小程序 + - 1、新增城市接口 + - 2、修复小程序登陆与支付问题 + - 3、发布mpvue1.0小程序 + - 4、WxJava升级到3.6 + - 5、微信公众号服务配置重构 + - 6、修复后台配置公众号,API端必须要重启才能生效的问题 +- yshop1.9.2 + - 1、修复素材库无法分页的问题#I18KJN + - 2、修复订单退款问题#I18GG6 + - 3、修复分类问题#I17UEI + - 4、修复后台添加角色的问题#I18NCW #### 反馈交流 diff --git a/yshop-api/src/main/java/co/yixiang/modules/security/service/UserDetailsServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/security/service/UserDetailsServiceImpl.java index f16b53d9..aa1a9f5a 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/security/service/UserDetailsServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/security/service/UserDetailsServiceImpl.java @@ -1,6 +1,7 @@ package co.yixiang.modules.security.service; import co.yixiang.exception.BadRequestException; +import co.yixiang.exception.ErrorRequestException; import co.yixiang.modules.security.security.vo.JwtUser; import co.yixiang.modules.user.entity.YxUser; import co.yixiang.modules.user.service.YxUserService; @@ -37,7 +38,7 @@ public class UserDetailsServiceImpl implements UserDetailsService { throw new BadRequestException("账号不存在"); } else { if (!user.getStatus()) { - throw new BadRequestException("账号未激活"); + throw new ErrorRequestException("账号未激活"); } return createJwtUser(user); } diff --git a/yshop-api/src/main/resources/config/application-prod.yml b/yshop-api/src/main/resources/config/application-prod.yml index 513d25a2..b17f873e 100644 --- a/yshop-api/src/main/resources/config/application-prod.yml +++ b/yshop-api/src/main/resources/config/application-prod.yml @@ -6,7 +6,7 @@ spring: driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy url: jdbc:log4jdbc:mysql://localhost:3306/yshop?serverTimezone=Asia/Shanghai&useSSL=false username: yshop - password: + password: # 初始化配置 initial-size: 3 diff --git a/yshop-common/src/main/java/co/yixiang/exception/ErrorRequestException.java b/yshop-common/src/main/java/co/yixiang/exception/ErrorRequestException.java index cfb7029f..f90d4bdd 100644 --- a/yshop-common/src/main/java/co/yixiang/exception/ErrorRequestException.java +++ b/yshop-common/src/main/java/co/yixiang/exception/ErrorRequestException.java @@ -6,8 +6,8 @@ import org.springframework.http.HttpStatus; import static org.springframework.http.HttpStatus.BAD_REQUEST; /** - * @author Zheng Jie - * @date 2018-11-23 + * @author hupeng + * @date 2019-11-11 * 统一异常处理 */ @Getter diff --git a/yshop-common/src/main/java/co/yixiang/exception/handler/GlobalExceptionHandler.java b/yshop-common/src/main/java/co/yixiang/exception/handler/GlobalExceptionHandler.java index 3d433da4..4d36efaf 100644 --- a/yshop-common/src/main/java/co/yixiang/exception/handler/GlobalExceptionHandler.java +++ b/yshop-common/src/main/java/co/yixiang/exception/handler/GlobalExceptionHandler.java @@ -28,6 +28,7 @@ public class GlobalExceptionHandler { */ @ExceptionHandler(Throwable.class) public ResponseEntity handleException(Throwable e){ + System.out.println("99999"); // 打印堆栈信息 log.error(ThrowableUtil.getStackTrace(e)); return buildResponseEntity(ApiError.error(e.getMessage())); @@ -49,6 +50,7 @@ public class GlobalExceptionHandler { */ @ExceptionHandler(value = BadRequestException.class) public ResponseEntity badRequestException(BadRequestException e) { + System.out.println("88888"); // 打印堆栈信息 log.error(ThrowableUtil.getStackTrace(e)); return buildResponseEntity(ApiError.error(e.getStatus(),e.getMessage())); diff --git a/yshop-shop/src/main/java/co/yixiang/modules/shop/domain/YxStoreCategory.java b/yshop-shop/src/main/java/co/yixiang/modules/shop/domain/YxStoreCategory.java index da9d2a2b..e6dddb66 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/shop/domain/YxStoreCategory.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/shop/domain/YxStoreCategory.java @@ -3,6 +3,8 @@ package co.yixiang.modules.shop.domain; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import lombok.Data; +import lombok.Getter; +import lombok.Setter; import javax.persistence.*; import javax.validation.constraints.NotBlank; @@ -13,7 +15,8 @@ import java.io.Serializable; * @date 2019-10-03 */ @Entity -@Data +@Getter +@Setter @Table(name="yx_store_category") public class YxStoreCategory implements Serializable { diff --git a/yshop-shop/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java b/yshop-shop/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java index 333c65f4..cab1f9b3 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java @@ -201,21 +201,26 @@ public class YxStoreOrderController { //模板消息通知 String siteUrl = RedisUtil.get("site_url"); - YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid()); - if(ObjectUtil.isNotNull(wechatUser)){ - YxWechatTemplate WechatTemplate = yxWechatTemplateService - .findByTempkey("OPENTM410119152"); - Map map = new HashMap<>(); - map.put("first","您在yshop的订单退款申请被通过,钱款将很快还至您的支付账户。"); - map.put("keyword1",resources.getOrderId());//订单号 - map.put("keyword2",resources.getPayPrice().toString()); - map.put("keyword3", OrderUtil.stampToDate(resources.getAddTime().toString())); - map.put("remark","yshop电商系统为你服务!"); - templateMessageService.sendWxMpTemplateMessage( wechatUser.getOpenid() - ,WechatTemplate.getTempid(), - siteUrl+"/order/detail/"+resources.getOrderId(),map); + try{ + YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid()); + if(ObjectUtil.isNotNull(wechatUser)){ + YxWechatTemplate WechatTemplate = yxWechatTemplateService + .findByTempkey("OPENTM410119152"); + Map map = new HashMap<>(); + map.put("first","您在yshop的订单退款申请被通过,钱款将很快还至您的支付账户。"); + map.put("keyword1",resources.getOrderId());//订单号 + map.put("keyword2",resources.getPayPrice().toString()); + map.put("keyword3", OrderUtil.stampToDate(resources.getAddTime().toString())); + map.put("remark","yshop电商系统为你服务!"); + templateMessageService.sendWxMpTemplateMessage( wechatUser.getOpenid() + ,WechatTemplate.getTempid(), + siteUrl+"/order/detail/"+resources.getOrderId(),map); + } + }catch (Exception e){ + log.info("当前用户不是微信用户不能发送模板消息哦!"); } + return new ResponseEntity(HttpStatus.NO_CONTENT); }