yshop3.0正式发布
This commit is contained in:
@ -24,7 +24,7 @@ yshop基于当前流行技术组合的前后端分离商城系统: SpringBoot2
|
||||
- 可以具体查看演示地址查看当前版本已经完成的功能,不再絮叨啦
|
||||
|
||||
#### 项目结构
|
||||
项目采用分模块开发方式
|
||||
yshop3.0项目采用分模块开发方式
|
||||
- yshop-app 移动端API模块(H5+uniapp端的API)
|
||||
- yshop-admin 管理后台模块
|
||||
- yshop-weixin 微信相关模块
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2
pom.xml
2
pom.xml
@ -7,7 +7,7 @@
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
|
||||
<modules>
|
||||
<module>yshop-common</module>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-generator</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>co.yixiang</groupId>
|
||||
@ -32,7 +32,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-message</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>co.yixiang</groupId>
|
||||
@ -43,7 +43,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-shop</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-weixin</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
@ -33,7 +33,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-message</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>co.yixiang</groupId>
|
||||
|
@ -132,7 +132,7 @@ public class AuthService {
|
||||
//构建微信用户
|
||||
WechatUserDto wechatUserDTO = WechatUserDto.builder()
|
||||
.nickname(nickname)
|
||||
.openid(wxMpUser.getOpenId())
|
||||
.routineOpenid(wxMpUser.getOpenId())
|
||||
.unionId(wxMpUser.getUnionId())
|
||||
.sex(Integer.valueOf(wxMpUser.getGender()))
|
||||
.language(wxMpUser.getLanguage())
|
||||
@ -151,7 +151,7 @@ public class AuthService {
|
||||
} else {
|
||||
returnUser = yxUser;
|
||||
WechatUserDto wechatUser =yxUser.getWxProfile();
|
||||
if ((StrUtil.isBlank(wechatUser.getOpenid()) && StrUtil.isNotBlank(wxMpUser.getOpenId()))
|
||||
if ((StrUtil.isBlank(wechatUser.getRoutineOpenid()) && StrUtil.isNotBlank(wxMpUser.getOpenId()))
|
||||
|| (StrUtil.isBlank(wechatUser.getUnionId()) && StrUtil.isNotBlank(wxMpUser.getUnionId()))) {
|
||||
wechatUser.setRoutineOpenid(wxMpUser.getOpenId());
|
||||
wechatUser.setUnionId(wxMpUser.getUnionId());
|
||||
@ -245,6 +245,8 @@ public class AuthService {
|
||||
|
||||
userService.setSpread(spread,returnUser.getUid());
|
||||
|
||||
log.error("spread:{}",spread);
|
||||
|
||||
return returnUser;
|
||||
|
||||
} catch (WxErrorException e) {
|
||||
|
@ -191,6 +191,7 @@ public class OrderSupplyService {
|
||||
jsConfig.put("package",wxPayMpOrderResult.getPackageValue());
|
||||
jsConfig.put("signType",wxPayMpOrderResult.getSignType());
|
||||
orderDTO.setJsConfig(jsConfig);
|
||||
map.put("payMsg","订单创建成功");
|
||||
map.put("result",orderDTO);
|
||||
return map;
|
||||
}else if(AppFromEnum.APP.getValue().equals(from)){//app支付
|
||||
@ -206,6 +207,7 @@ public class OrderSupplyService {
|
||||
jsConfig.put("sign",wxPayAppOrderResult.getSign());
|
||||
orderDTO.setJsConfig(jsConfig);
|
||||
map.put("result",orderDTO);
|
||||
map.put("payMsg","订单创建成功");
|
||||
return map;
|
||||
}else{//公众号
|
||||
map.put("status","WECHAT_PAY");
|
||||
|
@ -3,9 +3,7 @@ package co.yixiang.modules.user.param;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@ -22,8 +20,8 @@ public class RechargeParam implements Serializable {
|
||||
|
||||
private String from;
|
||||
|
||||
@NotNull(message = "金额必填")
|
||||
@Min(value = 1,message = "充值金额不能低于1")
|
||||
//@NotNull(message = "金额必填")
|
||||
// @Min(value = 1,message = "充值金额不能低于1")
|
||||
private Double price;
|
||||
|
||||
@JsonProperty(value = "paid_price")
|
@ -190,15 +190,13 @@ public class UserController {
|
||||
}
|
||||
|
||||
|
||||
@AuthCheck
|
||||
@PostMapping("/user/edit")
|
||||
@ApiOperation(value = "用户修改信息",notes = "用修改信息")
|
||||
public ApiResult<Object> edit(@Validated @RequestBody UserEditParam param){
|
||||
int uid = SecurityUtils.getUserId().intValue();
|
||||
|
||||
YxUser yxUser = new YxUser();
|
||||
YxUser yxUser = LocalUser.getUser();
|
||||
yxUser.setAvatar(param.getAvatar());
|
||||
yxUser.setNickname(param.getNickname());
|
||||
yxUser.setUid(Long.valueOf(String.valueOf(uid)));
|
||||
|
||||
yxUserService.updateById(yxUser);
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
package co.yixiang.modules.user.rest;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import co.yixiang.api.ApiResult;
|
||||
import co.yixiang.api.YshopException;
|
||||
import co.yixiang.common.bean.LocalUser;
|
||||
@ -16,6 +17,7 @@ import co.yixiang.common.interceptor.AuthCheck;
|
||||
import co.yixiang.constant.ShopConstants;
|
||||
import co.yixiang.enums.AppFromEnum;
|
||||
import co.yixiang.enums.BillDetailEnum;
|
||||
import co.yixiang.exception.ErrorRequestException;
|
||||
import co.yixiang.modules.shop.domain.YxSystemGroupData;
|
||||
import co.yixiang.modules.shop.service.YxSystemGroupDataService;
|
||||
import co.yixiang.modules.shop.service.dto.YxSystemGroupDataQueryCriteria;
|
||||
@ -26,6 +28,7 @@ import co.yixiang.modules.user.service.YxUserRechargeService;
|
||||
import co.yixiang.mp.service.WeixinPayService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.github.binarywang.wxpay.bean.order.WxPayAppOrderResult;
|
||||
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
||||
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -108,6 +111,29 @@ public class UserRechargeController {
|
||||
WxPayMwebOrderResult result = (WxPayMwebOrderResult)weixinPayService
|
||||
.unifyPay(orderSn,param.getFrom(), BillDetailEnum.TYPE_1.getValue(),"H5充值");
|
||||
map.put("data",result.getMwebUrl());
|
||||
}else if(AppFromEnum.ROUNTINE.getValue().equals(param.getFrom())){
|
||||
WxPayMpOrderResult wxPayMpOrderResult = (WxPayMpOrderResult)weixinPayService
|
||||
.unifyPay(orderSn,param.getFrom(), BillDetailEnum.TYPE_1.getValue(),"小程序充值");
|
||||
Map<String,String> jsConfig = new HashMap<>();
|
||||
jsConfig.put("timeStamp",wxPayMpOrderResult.getTimeStamp());
|
||||
jsConfig.put("appId",wxPayMpOrderResult.getAppId());
|
||||
jsConfig.put("paySign",wxPayMpOrderResult.getPaySign());
|
||||
jsConfig.put("nonceStr",wxPayMpOrderResult.getNonceStr());
|
||||
jsConfig.put("package",wxPayMpOrderResult.getPackageValue());
|
||||
jsConfig.put("signType",wxPayMpOrderResult.getSignType());
|
||||
map.put("data",jsConfig);
|
||||
}else if(AppFromEnum.APP.getValue().equals(param.getFrom())){
|
||||
WxPayAppOrderResult wxPayAppOrderResult = (WxPayAppOrderResult)weixinPayService
|
||||
.unifyPay(orderSn,param.getFrom(), BillDetailEnum.TYPE_1.getValue(),"app充值");
|
||||
Map<String,String> jsConfig = new HashMap<>();
|
||||
jsConfig.put("partnerid",wxPayAppOrderResult.getPartnerId());
|
||||
jsConfig.put("appid",wxPayAppOrderResult.getAppId());
|
||||
jsConfig.put("prepayid",wxPayAppOrderResult.getPrepayId());
|
||||
jsConfig.put("package",wxPayAppOrderResult.getPackageValue());
|
||||
jsConfig.put("noncestr",wxPayAppOrderResult.getNonceStr());
|
||||
jsConfig.put("timestamp",wxPayAppOrderResult.getTimeStamp());
|
||||
jsConfig.put("sign",wxPayAppOrderResult.getSign());
|
||||
map.put("data",jsConfig);
|
||||
}else{
|
||||
WxPayMpOrderResult result = (WxPayMpOrderResult)weixinPayService
|
||||
.unifyPay(orderSn,param.getFrom(), BillDetailEnum.TYPE_1.getValue(),"公众号充值");
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-mproot</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-common</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--模板引擎-->
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -16,12 +16,12 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-common</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-mproot</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-tools</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
@ -43,16 +44,17 @@ import java.util.*;
|
||||
* @date 2020-05-13
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||
public class YxStoreSeckillServiceImpl extends BaseServiceImpl<YxStoreSeckillMapper, YxStoreSeckill> implements YxStoreSeckillService {
|
||||
|
||||
private final IGenerator generator;
|
||||
@Autowired
|
||||
private IGenerator generator;
|
||||
|
||||
private final YxStoreSeckillMapper yxStoreSeckillMapper;
|
||||
@Autowired
|
||||
private YxStoreSeckillMapper yxStoreSeckillMapper;
|
||||
|
||||
|
||||
private final YxStoreProductReplyService replyService;
|
||||
@Autowired
|
||||
private YxStoreProductReplyService replyService;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -35,6 +35,11 @@ public interface YxStoreProductReplyService extends BaseService<YxStoreProductR
|
||||
*/
|
||||
ReplyCountVo getReplyCount(long productId);
|
||||
|
||||
/**
|
||||
* 处理评价
|
||||
* @param replyQueryVo replyQueryVo
|
||||
* @return YxStoreProductReplyQueryVo
|
||||
*/
|
||||
YxStoreProductReplyQueryVo handleReply(YxStoreProductReplyQueryVo replyQueryVo);
|
||||
|
||||
/**
|
||||
|
@ -109,8 +109,8 @@ public class YxStoreProductReplyServiceImpl extends BaseServiceImpl<StoreProduct
|
||||
|
||||
/**
|
||||
* 处理评价
|
||||
* @param replyQueryVo
|
||||
* @return
|
||||
* @param replyQueryVo replyQueryVo
|
||||
* @return YxStoreProductReplyQueryVo
|
||||
*/
|
||||
@Override
|
||||
public YxStoreProductReplyQueryVo handleReply(YxStoreProductReplyQueryVo replyQueryVo) {
|
||||
|
@ -81,8 +81,7 @@ public class YxUserServiceImpl extends BaseServiceImpl<UserMapper, YxUser> imple
|
||||
@Autowired
|
||||
private UserBillMapper userBillMapper;
|
||||
|
||||
@Autowired
|
||||
private YxUserBillService yxUserBillService;
|
||||
|
||||
@Autowired
|
||||
private YxSystemUserLevelService systemUserLevelService;
|
||||
@Autowired
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-mall</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.rocketmq</groupId>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<name>MyBatisPlus模块</name>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-weixin</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-logging</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--邮件依赖-->
|
||||
|
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>yshop</artifactId>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
<dependency>
|
||||
<groupId>co.yixiang</groupId>
|
||||
<artifactId>yshop-mall</artifactId>
|
||||
<version>3.0-RC2</version>
|
||||
<version>3.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
Reference in New Issue
Block a user