yshop1.9.2,修复修复素材库无法分页的、退款、角色等问题明细可以登陆演示后台查看

This commit is contained in:
hupeng
2020-01-31 18:04:56 +08:00
parent 97dbcde392
commit fd182495fb
7 changed files with 49 additions and 33 deletions

View File

@ -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") | | | 后台体验账号/密码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版本说明 #### 开源版本与VIP版本说明
### 开源版 ### 开源版
1.包括整个商城系统后台、数据库、api(只是简单的配置好模块); 1.包括整个商城系统后台、数据库
2.本版本本身属于独立后台商城管理系统、可独立作为cms、商城等等后台使用; 2.开源整个商城管理后台(后台已经封装好了图片素材库、编辑器、配置等等组件), 它可以用于所有的Web应用程序如网站商城管理后台网站会员中心
CMSCRMOA等等本版本本身属于独立后台商城管理系统;
3.可以个人、企业直接使用。 3.可以个人、企业直接使用。
### VIP版 ### VIP版
1.包括整个商城系统后台、数据库、API、H5; 1.包括了开源版,还包括了移动端(H5+公众号)、小程序(mpvue2框架)1.0已经发布一个开发版、移动端API
2.本版本是演示的所有功能代码; 2.本版本是演示的所有功能代码;
@ -55,7 +56,7 @@ yshop基于当前流行技术组合的前后端分离商城系统 SpringBoot2
#### 项目结构 #### 项目结构
项目采用分模块开发方式 项目采用分模块开发方式
- yshop-api 公众号(H5)API模块 - yshop-api 移动端API模块
- yshop-mp 微信相关模块 - yshop-mp 微信相关模块
- yshop-common 公共模块 - yshop-common 公共模块
- yshop-system 后台模块 - yshop-system 后台模块
@ -123,6 +124,7 @@ yshop基于当前流行技术组合的前后端分离商城系统 SpringBoot2
* 前端使用技术 * 前端使用技术
* 2.1 Vue 全家桶 * 2.1 Vue 全家桶
* 2.2 Element * 2.2 Element
* 2.3 mpvue
#### 项目发布明细 #### 项目发布明细
@ -146,16 +148,19 @@ yshop基于当前流行技术组合的前后端分离商城系统 SpringBoot2
- yshop1.6.4发布:后台新增修改订单价格与备注优化订单详情显示明细,修复积分记录标题不显示的问题 - yshop1.6.4发布:后台新增修改订单价格与备注优化订单详情显示明细,修复积分记录标题不显示的问题
- yshop1.7 发布 - yshop1.7 发布
- yshop1.8发布: - yshop1.8发布:
- 1、新增小程序支付与登录,后台新增小程序跳转页面, - yshop1.8.3发布更新如下:
- 2、后台新增图片素材管理 - yshop1.9.1,新增城市接口,修复小程序登陆与支付问题,发布mpvue1.0小程序
- 3、本地上传与七牛云上传合并修改一个yml即可两者随意切换 - 1、新增城市接口
- 4、升级swagger-bootstrap,swaager统一配置迁移到common(防止注解冲突) - 2、修复小程序登陆与支付问题
- 5、后台优化操作显示 - 3、发布mpvue1.0小程序
- yshop1.8.1发布更新如下: - 4、WxJava升级到3.6
- 1、修复库存问题#I17Z5X - 5、微信公众号服务配置重构
- 2、修复评价百分比精度问题#I17UQY - 6、修复后台配置公众号,API端必须要重启才能生效的问题
- 3、修复评价列表问题#I17TZC - yshop1.9.2
- 4、移动端图片上传修改为统一处理 - 1、修复素材库无法分页的问题#I18KJN
- 2、修复订单退款问题#I18GG6
- 3、修复分类问题#I17UEI
- 4、修复后台添加角色的问题#I18NCW
#### 反馈交流 #### 反馈交流

View File

@ -1,6 +1,7 @@
package co.yixiang.modules.security.service; package co.yixiang.modules.security.service;
import co.yixiang.exception.BadRequestException; import co.yixiang.exception.BadRequestException;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.modules.security.security.vo.JwtUser; import co.yixiang.modules.security.security.vo.JwtUser;
import co.yixiang.modules.user.entity.YxUser; import co.yixiang.modules.user.entity.YxUser;
import co.yixiang.modules.user.service.YxUserService; import co.yixiang.modules.user.service.YxUserService;
@ -37,7 +38,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
throw new BadRequestException("账号不存在"); throw new BadRequestException("账号不存在");
} else { } else {
if (!user.getStatus()) { if (!user.getStatus()) {
throw new BadRequestException("账号未激活"); throw new ErrorRequestException("账号未激活");
} }
return createJwtUser(user); return createJwtUser(user);
} }

View File

@ -6,7 +6,7 @@ spring:
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://localhost:3306/yshop?serverTimezone=Asia/Shanghai&useSSL=false url: jdbc:log4jdbc:mysql://localhost:3306/yshop?serverTimezone=Asia/Shanghai&useSSL=false
username: yshop username: yshop
password: password:
# 初始化配置 # 初始化配置
initial-size: 3 initial-size: 3

View File

@ -6,8 +6,8 @@ import org.springframework.http.HttpStatus;
import static org.springframework.http.HttpStatus.BAD_REQUEST; import static org.springframework.http.HttpStatus.BAD_REQUEST;
/** /**
* @author Zheng Jie * @author hupeng
* @date 2018-11-23 * @date 2019-11-11
* 统一异常处理 * 统一异常处理
*/ */
@Getter @Getter

View File

@ -28,6 +28,7 @@ public class GlobalExceptionHandler {
*/ */
@ExceptionHandler(Throwable.class) @ExceptionHandler(Throwable.class)
public ResponseEntity<ApiError> handleException(Throwable e){ public ResponseEntity<ApiError> handleException(Throwable e){
System.out.println("99999");
// 打印堆栈信息 // 打印堆栈信息
log.error(ThrowableUtil.getStackTrace(e)); log.error(ThrowableUtil.getStackTrace(e));
return buildResponseEntity(ApiError.error(e.getMessage())); return buildResponseEntity(ApiError.error(e.getMessage()));
@ -49,6 +50,7 @@ public class GlobalExceptionHandler {
*/ */
@ExceptionHandler(value = BadRequestException.class) @ExceptionHandler(value = BadRequestException.class)
public ResponseEntity<ApiError> badRequestException(BadRequestException e) { public ResponseEntity<ApiError> badRequestException(BadRequestException e) {
System.out.println("88888");
// 打印堆栈信息 // 打印堆栈信息
log.error(ThrowableUtil.getStackTrace(e)); log.error(ThrowableUtil.getStackTrace(e));
return buildResponseEntity(ApiError.error(e.getStatus(),e.getMessage())); return buildResponseEntity(ApiError.error(e.getStatus(),e.getMessage()));

View File

@ -3,6 +3,8 @@ package co.yixiang.modules.shop.domain;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
@ -13,7 +15,8 @@ import java.io.Serializable;
* @date 2019-10-03 * @date 2019-10-03
*/ */
@Entity @Entity
@Data @Getter
@Setter
@Table(name="yx_store_category") @Table(name="yx_store_category")
public class YxStoreCategory implements Serializable { public class YxStoreCategory implements Serializable {

View File

@ -201,21 +201,26 @@ public class YxStoreOrderController {
//模板消息通知 //模板消息通知
String siteUrl = RedisUtil.get("site_url"); String siteUrl = RedisUtil.get("site_url");
YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid()); try{
if(ObjectUtil.isNotNull(wechatUser)){ YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid());
YxWechatTemplate WechatTemplate = yxWechatTemplateService if(ObjectUtil.isNotNull(wechatUser)){
.findByTempkey("OPENTM410119152"); YxWechatTemplate WechatTemplate = yxWechatTemplateService
Map<String,String> map = new HashMap<>(); .findByTempkey("OPENTM410119152");
map.put("first","您在yshop的订单退款申请被通过钱款将很快还至您的支付账户。"); Map<String,String> map = new HashMap<>();
map.put("keyword1",resources.getOrderId());//订单号 map.put("first","您在yshop的订单退款申请被通过钱款将很快还至您的支付账户。");
map.put("keyword2",resources.getPayPrice().toString()); map.put("keyword1",resources.getOrderId());//订单号
map.put("keyword3", OrderUtil.stampToDate(resources.getAddTime().toString())); map.put("keyword2",resources.getPayPrice().toString());
map.put("remark","yshop电商系统为你服务"); map.put("keyword3", OrderUtil.stampToDate(resources.getAddTime().toString()));
templateMessageService.sendWxMpTemplateMessage( wechatUser.getOpenid() map.put("remark","yshop电商系统为你服务");
,WechatTemplate.getTempid(), templateMessageService.sendWxMpTemplateMessage( wechatUser.getOpenid()
siteUrl+"/order/detail/"+resources.getOrderId(),map); ,WechatTemplate.getTempid(),
siteUrl+"/order/detail/"+resources.getOrderId(),map);
}
}catch (Exception e){
log.info("当前用户不是微信用户不能发送模板消息哦!");
} }
return new ResponseEntity(HttpStatus.NO_CONTENT); return new ResponseEntity(HttpStatus.NO_CONTENT);
} }