bug--解决冲突

This commit is contained in:
taozi
2020-05-14 20:21:09 +08:00
96 changed files with 517 additions and 490 deletions

View File

@ -7,7 +7,7 @@
<groupId>co.yixiang</groupId>
<artifactId>yshop</artifactId>
<packaging>pom</packaging>
<version>2.1</version>
<version>2.2</version>
<modules>
<module>yshop-common</module>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -21,12 +21,12 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-tools</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-mp</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<!--jwt-->

View File

@ -16,7 +16,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.http.HttpUtil;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.enums.AppFromEnum;

View File

@ -15,7 +15,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.http.HttpUtil;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.enums.AppFromEnum;

View File

@ -11,11 +11,10 @@ package co.yixiang.modules.monitor.service.impl;
import co.yixiang.modules.monitor.domain.Visits;
import co.yixiang.modules.monitor.repository.VisitsRepository;
import co.yixiang.modules.monitor.service.VisitsService;
import co.yixiang.service.mapper.LogMapper;
import co.yixiang.logging.service.mapper.LogMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import co.yixiang.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

View File

@ -13,7 +13,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.enums.OrderInfoEnum;

View File

@ -8,22 +8,15 @@
*/
package co.yixiang.modules.security.rest;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.common.api.ApiCode;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.constant.ShopConstants;
import co.yixiang.enums.AppFromEnum;
import co.yixiang.enums.RedisKeyEnum;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.modules.notify.NotifyService;
import co.yixiang.modules.notify.NotifyType;
import co.yixiang.modules.notify.SmsResult;
@ -37,28 +30,19 @@ import co.yixiang.modules.security.security.vo.JwtUser;
import co.yixiang.modules.security.service.OnlineUserService;
import co.yixiang.modules.user.entity.YxSystemAttachment;
import co.yixiang.modules.user.entity.YxUser;
import co.yixiang.modules.user.entity.YxWechatUser;
import co.yixiang.modules.user.service.YxSystemAttachmentService;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.service.YxWechatUserService;
import co.yixiang.modules.user.web.vo.YxUserQueryVo;
import co.yixiang.mp.config.WxMpConfiguration;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.RedisUtil;
import co.yixiang.utils.RedisUtils;
import co.yixiang.utils.SecurityUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonResponse;
import com.vdurmont.emoji.EmojiParser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@ -74,7 +58,6 @@ import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
@ -101,7 +84,7 @@ public class AuthController {
private final YxUserService userService;
private final PasswordEncoder passwordEncoder;
private final YxWechatUserService wechatUserService;
private final WxMaService wxMaService;
private final NotifyService notifyService;
private final YxSystemAttachmentService systemAttachmentService;
@ -161,132 +144,7 @@ public class AuthController {
* 2、目前登陆授权打通方式适用于新项目也就是你yx_user、yx_wechat_user都是空的
* 3、如果你以前已经有数据请自行处理
*/
try {
WxMpService wxService = WxMpConfiguration.getWxMpService();
WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxService.oauth2getAccessToken(code);
WxMpUser wxMpUser = wxService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
String openid = wxMpUser.getOpenId();
//如果开启了UnionId
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
openid = wxMpUser.getUnionId();
}
YxUser yxUser = userService.findByName(openid);
String username = "";
if(ObjectUtil.isNull(yxUser)){
//过滤掉表情
String nickname = EmojiParser.removeAllEmojis(wxMpUser.getNickname());
log.info("昵称:{}", nickname);
//用户保存
YxUser user = new YxUser();
user.setAccount(nickname);
//如果开启了UnionId
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
username = wxMpUser.getUnionId();
user.setUsername(wxMpUser.getUnionId());
}else{
username = wxMpUser.getOpenId();
user.setUsername(wxMpUser.getOpenId());
}
user.setPassword(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPwd(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPhone("");
user.setUserType(AppFromEnum.WECHAT.getValue());
user.setLoginType(AppFromEnum.WECHAT.getValue());
user.setAddTime(OrderUtil.getSecondTimestampTwo());
user.setLastTime(OrderUtil.getSecondTimestampTwo());
user.setNickname(nickname);
user.setAvatar(wxMpUser.getHeadImgUrl());
user.setNowMoney(BigDecimal.ZERO);
user.setBrokeragePrice(BigDecimal.ZERO);
user.setIntegral(BigDecimal.ZERO);
userService.save(user);
//保存微信用户
YxWechatUser yxWechatUser = new YxWechatUser();
yxWechatUser.setAddTime(OrderUtil.getSecondTimestampTwo());
yxWechatUser.setNickname(nickname);
yxWechatUser.setOpenid(wxMpUser.getOpenId());
int sub = 0;
if (ObjectUtil.isNotNull(wxMpUser.getSubscribe()) && wxMpUser.getSubscribe()) sub = 1;
yxWechatUser.setSubscribe(sub);
yxWechatUser.setSex(wxMpUser.getSex());
yxWechatUser.setLanguage(wxMpUser.getLanguage());
yxWechatUser.setCity(wxMpUser.getCity());
yxWechatUser.setProvince(wxMpUser.getProvince());
yxWechatUser.setCountry(wxMpUser.getCountry());
yxWechatUser.setHeadimgurl(wxMpUser.getHeadImgUrl());
if (ObjectUtil.isNotNull(wxMpUser.getSubscribeTime())) {
yxWechatUser.setSubscribeTime(wxMpUser.getSubscribeTime().intValue());
}
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
yxWechatUser.setUnionid(wxMpUser.getUnionId());
}
if (StrUtil.isNotEmpty(wxMpUser.getRemark())) {
yxWechatUser.setUnionid(wxMpUser.getRemark());
}
if (ObjectUtil.isNotEmpty(wxMpUser.getGroupId())) {
yxWechatUser.setGroupid(wxMpUser.getGroupId());
}
yxWechatUser.setUid(user.getUid());
wechatUserService.save(yxWechatUser);
}else{
username = yxUser.getUsername();
if(StrUtil.isNotBlank(wxMpUser.getOpenId()) || StrUtil.isNotBlank(wxMpUser.getUnionId())){
YxWechatUser wechatUser = new YxWechatUser();
wechatUser.setUid(yxUser.getUid());
wechatUser.setUnionid(wxMpUser.getUnionId());
wechatUser.setOpenid(wxMpUser.getOpenId());
wechatUserService.updateById(wechatUser);
}
}
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(username,
ShopConstants.YSHOP_DEFAULT_PWD);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
// 生成令牌
String token = tokenProvider.createToken(authentication);
final JwtUser jwtUserT = (JwtUser) authentication.getPrincipal();
// 保存在线信息
onlineUserService.save(jwtUserT, token, request);
Date expiresTime = tokenProvider.getExpirationDateFromToken(token);
String expiresTimeStr = DateUtil.formatDateTime(expiresTime);
Map<String, String> map = new LinkedHashMap<>();
map.put("token", token);
map.put("expires_time", expiresTimeStr);
if (singleLogin) {
//踢掉之前已经登录的token
onlineUserService.checkLoginOnUser(jwtUserT.getUsername(), token);
}
//设置推广关系
if (StrUtil.isNotEmpty(spread) && !spread.equals("NaN")) {
userService.setSpread(Integer.valueOf(spread),
jwtUserT.getId().intValue());
}
// 返回 token
return ApiResult.ok(map);
} catch (WxErrorException e) {
e.printStackTrace();
log.error(e.getMessage());
return ApiResult.fail("授权失败");
}
return ApiResult.ok(userService.authLogin(code,spread,request));
}
@ -304,135 +162,8 @@ public class AuthController {
* 2、目前登陆授权打通方式适用于新项目也就是你yx_user、yx_wechat_user都是空的
* 3、如果你以前已经有数据请自行处理
*/
String code = loginParam.getCode();
String encryptedData = loginParam.getEncryptedData();
String iv = loginParam.getIv();
String spread = loginParam.getSpread();
try {
//读取redis配置
String appId = RedisUtil.get(RedisKeyEnum.WXAPP_APPID.getValue());
String secret = RedisUtil.get(RedisKeyEnum.WXAPP_SECRET.getValue());
if (StrUtil.isBlank(appId) || StrUtil.isBlank(secret)) {
throw new ErrorRequestException("请先配置小程序");
}
WxMaDefaultConfigImpl wxMaConfig = new WxMaDefaultConfigImpl();
wxMaConfig.setAppid(appId);
wxMaConfig.setSecret(secret);
return ApiResult.ok(userService.wxappAuth(loginParam,request)) ;
wxMaService.setWxMaConfig(wxMaConfig);
WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
String openid = session.getOpenid();
//如果开启了UnionId
if (StrUtil.isNotBlank(session.getUnionid())) {
openid = session.getUnionid();
}
YxUser yxUser = userService.findByName(openid);
String username = "";
if(ObjectUtil.isNull(yxUser)){
WxMaUserInfo wxMpUser = wxMaService.getUserService()
.getUserInfo(session.getSessionKey(), encryptedData, iv);
//过滤掉表情
String nickname = EmojiParser.removeAllEmojis(wxMpUser.getNickName());
//用户保存
YxUser user = new YxUser();
user.setAccount(nickname);
//如果开启了UnionId
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
username = wxMpUser.getUnionId();
user.setUsername(wxMpUser.getUnionId());
}else{
username = wxMpUser.getOpenId();
user.setUsername(wxMpUser.getOpenId());
}
user.setPassword(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPwd(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPhone("");
user.setUserType(AppFromEnum.ROUNTINE.getValue());
user.setAddTime(OrderUtil.getSecondTimestampTwo());
user.setLastTime(OrderUtil.getSecondTimestampTwo());
user.setNickname(nickname);
user.setAvatar(wxMpUser.getAvatarUrl());
user.setNowMoney(BigDecimal.ZERO);
user.setBrokeragePrice(BigDecimal.ZERO);
user.setIntegral(BigDecimal.ZERO);
userService.save(user);
//保存微信用户
YxWechatUser yxWechatUser = new YxWechatUser();
// System.out.println("wxMpUser:"+wxMpUser);
yxWechatUser.setAddTime(OrderUtil.getSecondTimestampTwo());
yxWechatUser.setNickname(nickname);
yxWechatUser.setRoutineOpenid(wxMpUser.getOpenId());
int sub = 0;
yxWechatUser.setSubscribe(sub);
yxWechatUser.setSex(Integer.valueOf(wxMpUser.getGender()));
yxWechatUser.setLanguage(wxMpUser.getLanguage());
yxWechatUser.setCity(wxMpUser.getCity());
yxWechatUser.setProvince(wxMpUser.getProvince());
yxWechatUser.setCountry(wxMpUser.getCountry());
yxWechatUser.setHeadimgurl(wxMpUser.getAvatarUrl());
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
yxWechatUser.setUnionid(wxMpUser.getUnionId());
}
yxWechatUser.setUid(user.getUid());
wechatUserService.save(yxWechatUser);
}else{
username = yxUser.getUsername();
if(StrUtil.isNotBlank(session.getOpenid()) || StrUtil.isNotBlank(session.getUnionid())){
YxWechatUser wechatUser = new YxWechatUser();
wechatUser.setUid(yxUser.getUid());
wechatUser.setUnionid(session.getUnionid());
wechatUser.setRoutineOpenid(session.getOpenid());
wechatUserService.updateById(wechatUser);
}
}
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(username,
ShopConstants.YSHOP_DEFAULT_PWD);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
// 生成令牌
String token = tokenProvider.createToken(authentication);
final JwtUser jwtUserT = (JwtUser) authentication.getPrincipal();
// 保存在线信息
onlineUserService.save(jwtUserT, token, request);
Date expiresTime = tokenProvider.getExpirationDateFromToken(token);
String expiresTimeStr = DateUtil.formatDateTime(expiresTime);
Map<String, String> map = new LinkedHashMap<>();
map.put("token", token);
map.put("expires_time", expiresTimeStr);
if (singleLogin) {
//踢掉之前已经登录的token
onlineUserService.checkLoginOnUser(jwtUserT.getUsername(), token);
}
//设置推广关系
if (StrUtil.isNotEmpty(spread)) {
userService.setSpread(Integer.valueOf(spread),
jwtUserT.getId().intValue());
}
// 返回 token
return ApiResult.ok(map);
} catch (WxErrorException e) {
log.error(e.getMessage(), e);
return ApiResult.fail(e.toString());
}
}

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.shop.web.controller;
import cn.hutool.core.util.ObjectUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.enums.CouponEnum;

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.shop.web.controller;
import cn.hutool.core.util.ObjectUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.modules.shop.service.YxStoreCartService;

View File

@ -12,9 +12,8 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.http.HttpUtil;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.enums.AppFromEnum;
@ -29,7 +28,6 @@ import co.yixiang.modules.user.entity.YxSystemAttachment;
import co.yixiang.modules.user.service.YxSystemAttachmentService;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.web.vo.YxUserQueryVo;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

View File

@ -11,12 +11,14 @@ package co.yixiang.modules.user.service;
import co.yixiang.common.service.BaseService;
import co.yixiang.common.web.vo.Paging;
import co.yixiang.modules.order.web.vo.YxStoreOrderQueryVo;
import co.yixiang.modules.security.rest.param.LoginParam;
import co.yixiang.modules.user.entity.YxUser;
import co.yixiang.modules.user.web.dto.PromUserDTO;
import co.yixiang.modules.user.web.param.PromParam;
import co.yixiang.modules.user.web.param.YxUserQueryParam;
import co.yixiang.modules.user.web.vo.YxUserQueryVo;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.util.List;
@ -71,4 +73,7 @@ public interface YxUserService extends BaseService<YxUser> {
*/
Paging<YxUserQueryVo> getYxUserPageList(YxUserQueryParam yxUserQueryParam) throws Exception;
Object authLogin(String code, String spread, HttpServletRequest request);
Object wxappAuth(LoginParam loginParam, HttpServletRequest request);
}

View File

@ -8,42 +8,71 @@
*/
package co.yixiang.modules.user.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.web.vo.Paging;
import co.yixiang.constant.ShopConstants;
import co.yixiang.enums.AppFromEnum;
import co.yixiang.enums.RedisKeyEnum;
import co.yixiang.exception.BadRequestException;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.modules.order.service.YxStoreOrderService;
import co.yixiang.modules.order.web.vo.YxStoreOrderQueryVo;
import co.yixiang.modules.security.rest.param.LoginParam;
import co.yixiang.modules.security.security.TokenProvider;
import co.yixiang.modules.security.security.vo.JwtUser;
import co.yixiang.modules.security.service.OnlineUserService;
import co.yixiang.modules.shop.service.YxStoreCouponUserService;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.shop.service.YxSystemStoreStaffService;
import co.yixiang.modules.user.entity.YxUser;
import co.yixiang.modules.user.entity.YxUserBill;
import co.yixiang.modules.user.entity.YxUserLevel;
import co.yixiang.modules.user.entity.YxWechatUser;
import co.yixiang.modules.user.mapper.YxUserMapper;
import co.yixiang.modules.user.service.YxUserBillService;
import co.yixiang.modules.user.service.YxUserLevelService;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.service.YxWechatUserService;
import co.yixiang.modules.user.web.dto.PromUserDTO;
import co.yixiang.modules.user.web.param.PromParam;
import co.yixiang.modules.user.web.param.YxUserQueryParam;
import co.yixiang.modules.user.web.vo.YxUserQueryVo;
import co.yixiang.mp.config.WxMpConfiguration;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.RedisUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vdurmont.emoji.EmojiParser;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@ -75,7 +104,22 @@ public class YxUserServiceImpl extends BaseServiceImpl<YxUserMapper, YxUser> imp
private YxStoreCouponUserService storeCouponUserService;
@Autowired
private YxSystemStoreStaffService systemStoreStaffService;
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private OnlineUserService onlineUserService;
@Autowired
private TokenProvider tokenProvider;
@Autowired
private AuthenticationManagerBuilder authenticationManagerBuilder;
@Autowired
private WxMaService wxMaService;
@Autowired
private YxWechatUserService wechatUserService;
@Value("${single.login:true}")
private Boolean singleLogin;
@Value("${yshop.notify.sms.enable}")
private Boolean enableSms;
/**
@ -465,4 +509,265 @@ public class YxUserServiceImpl extends BaseServiceImpl<YxUserMapper, YxUser> imp
wrapper.eq("username",name);
return getOne(wrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object authLogin(String code, String spread, HttpServletRequest request){
try {
WxMpService wxService = WxMpConfiguration.getWxMpService();
WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxService.oauth2getAccessToken(code);
WxMpUser wxMpUser = wxService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
String openid = wxMpUser.getOpenId();
//如果开启了UnionId
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
openid = wxMpUser.getUnionId();
}
YxUser yxUser = this.findByName(openid);
String username = "";
if(ObjectUtil.isNull(yxUser)){
//过滤掉表情
String nickname = EmojiParser.removeAllEmojis(wxMpUser.getNickname());
log.info("昵称:{}", nickname);
//用户保存
YxUser user = new YxUser();
user.setAccount(nickname);
//如果开启了UnionId
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
username = wxMpUser.getUnionId();
user.setUsername(wxMpUser.getUnionId());
}else{
username = wxMpUser.getOpenId();
user.setUsername(wxMpUser.getOpenId());
}
user.setPassword(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPwd(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPhone("");
user.setUserType(AppFromEnum.WECHAT.getValue());
user.setLoginType(AppFromEnum.WECHAT.getValue());
user.setAddTime(OrderUtil.getSecondTimestampTwo());
user.setLastTime(OrderUtil.getSecondTimestampTwo());
user.setNickname(nickname);
user.setAvatar(wxMpUser.getHeadImgUrl());
user.setNowMoney(BigDecimal.ZERO);
user.setBrokeragePrice(BigDecimal.ZERO);
user.setIntegral(BigDecimal.ZERO);
this.save(user);
//保存微信用户
YxWechatUser yxWechatUser = new YxWechatUser();
yxWechatUser.setAddTime(OrderUtil.getSecondTimestampTwo());
yxWechatUser.setNickname(nickname);
yxWechatUser.setOpenid(wxMpUser.getOpenId());
int sub = 0;
if (ObjectUtil.isNotNull(wxMpUser.getSubscribe()) && wxMpUser.getSubscribe()) sub = 1;
yxWechatUser.setSubscribe(sub);
yxWechatUser.setSex(wxMpUser.getSex());
yxWechatUser.setLanguage(wxMpUser.getLanguage());
yxWechatUser.setCity(wxMpUser.getCity());
yxWechatUser.setProvince(wxMpUser.getProvince());
yxWechatUser.setCountry(wxMpUser.getCountry());
yxWechatUser.setHeadimgurl(wxMpUser.getHeadImgUrl());
if (ObjectUtil.isNotNull(wxMpUser.getSubscribeTime())) {
yxWechatUser.setSubscribeTime(wxMpUser.getSubscribeTime().intValue());
}
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
yxWechatUser.setUnionid(wxMpUser.getUnionId());
}
if (StrUtil.isNotEmpty(wxMpUser.getRemark())) {
yxWechatUser.setUnionid(wxMpUser.getRemark());
}
if (ObjectUtil.isNotEmpty(wxMpUser.getGroupId())) {
yxWechatUser.setGroupid(wxMpUser.getGroupId());
}
yxWechatUser.setUid(user.getUid());
wechatUserService.save(yxWechatUser);
}else{
username = yxUser.getUsername();
if(StrUtil.isNotBlank(wxMpUser.getOpenId()) || StrUtil.isNotBlank(wxMpUser.getUnionId())){
YxWechatUser wechatUser = new YxWechatUser();
wechatUser.setUid(yxUser.getUid());
wechatUser.setUnionid(wxMpUser.getUnionId());
wechatUser.setOpenid(wxMpUser.getOpenId());
wechatUserService.updateById(wechatUser);
}
}
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(username,
ShopConstants.YSHOP_DEFAULT_PWD);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
// 生成令牌
String token = tokenProvider.createToken(authentication);
final JwtUser jwtUserT = (JwtUser) authentication.getPrincipal();
// 保存在线信息
onlineUserService.save(jwtUserT, token, request);
Date expiresTime = tokenProvider.getExpirationDateFromToken(token);
String expiresTimeStr = DateUtil.formatDateTime(expiresTime);
Map<String, String> map = new LinkedHashMap<>();
map.put("token", token);
map.put("expires_time", expiresTimeStr);
if (singleLogin) {
//踢掉之前已经登录的token
onlineUserService.checkLoginOnUser(jwtUserT.getUsername(), token);
}
//设置推广关系
if (StrUtil.isNotEmpty(spread) && !spread.equals("NaN")) {
this.setSpread(Integer.valueOf(spread),
jwtUserT.getId().intValue());
}
// 返回 token
return map;
} catch (WxErrorException e) {
e.printStackTrace();
log.error(e.getMessage());
throw new BadRequestException(e.toString());
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object wxappAuth(LoginParam loginParam, HttpServletRequest request){
String code = loginParam.getCode();
String encryptedData = loginParam.getEncryptedData();
String iv = loginParam.getIv();
String spread = loginParam.getSpread();
try {
//读取redis配置
String appId = RedisUtil.get(RedisKeyEnum.WXAPP_APPID.getValue());
String secret = RedisUtil.get(RedisKeyEnum.WXAPP_SECRET.getValue());
if (StrUtil.isBlank(appId) || StrUtil.isBlank(secret)) {
throw new ErrorRequestException("请先配置小程序");
}
WxMaDefaultConfigImpl wxMaConfig = new WxMaDefaultConfigImpl();
wxMaConfig.setAppid(appId);
wxMaConfig.setSecret(secret);
wxMaService.setWxMaConfig(wxMaConfig);
WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
String openid = session.getOpenid();
//如果开启了UnionId
if (StrUtil.isNotBlank(session.getUnionid())) {
openid = session.getUnionid();
}
YxUser yxUser = this.findByName(openid);
String username = "";
if(ObjectUtil.isNull(yxUser)){
WxMaUserInfo wxMpUser = wxMaService.getUserService()
.getUserInfo(session.getSessionKey(), encryptedData, iv);
//过滤掉表情
String nickname = EmojiParser.removeAllEmojis(wxMpUser.getNickName());
//用户保存
YxUser user = new YxUser();
user.setAccount(nickname);
//如果开启了UnionId
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
username = wxMpUser.getUnionId();
user.setUsername(wxMpUser.getUnionId());
}else{
username = wxMpUser.getOpenId();
user.setUsername(wxMpUser.getOpenId());
}
user.setPassword(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPwd(passwordEncoder.encode(ShopConstants.YSHOP_DEFAULT_PWD));
user.setPhone("");
user.setUserType(AppFromEnum.ROUNTINE.getValue());
user.setAddTime(OrderUtil.getSecondTimestampTwo());
user.setLastTime(OrderUtil.getSecondTimestampTwo());
user.setNickname(nickname);
user.setAvatar(wxMpUser.getAvatarUrl());
user.setNowMoney(BigDecimal.ZERO);
user.setBrokeragePrice(BigDecimal.ZERO);
user.setIntegral(BigDecimal.ZERO);
this.save(user);
//保存微信用户
YxWechatUser yxWechatUser = new YxWechatUser();
// System.out.println("wxMpUser:"+wxMpUser);
yxWechatUser.setAddTime(OrderUtil.getSecondTimestampTwo());
yxWechatUser.setNickname(nickname);
yxWechatUser.setRoutineOpenid(wxMpUser.getOpenId());
int sub = 0;
yxWechatUser.setSubscribe(sub);
yxWechatUser.setSex(Integer.valueOf(wxMpUser.getGender()));
yxWechatUser.setLanguage(wxMpUser.getLanguage());
yxWechatUser.setCity(wxMpUser.getCity());
yxWechatUser.setProvince(wxMpUser.getProvince());
yxWechatUser.setCountry(wxMpUser.getCountry());
yxWechatUser.setHeadimgurl(wxMpUser.getAvatarUrl());
if (StrUtil.isNotBlank(wxMpUser.getUnionId())) {
yxWechatUser.setUnionid(wxMpUser.getUnionId());
}
yxWechatUser.setUid(user.getUid());
wechatUserService.save(yxWechatUser);
}else{
username = yxUser.getUsername();
if(StrUtil.isNotBlank(session.getOpenid()) || StrUtil.isNotBlank(session.getUnionid())){
YxWechatUser wechatUser = new YxWechatUser();
wechatUser.setUid(yxUser.getUid());
wechatUser.setUnionid(session.getUnionid());
wechatUser.setRoutineOpenid(session.getOpenid());
wechatUserService.updateById(wechatUser);
}
}
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(username,
ShopConstants.YSHOP_DEFAULT_PWD);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
// 生成令牌
String token = tokenProvider.createToken(authentication);
final JwtUser jwtUserT = (JwtUser) authentication.getPrincipal();
// 保存在线信息
onlineUserService.save(jwtUserT, token, request);
Date expiresTime = tokenProvider.getExpirationDateFromToken(token);
String expiresTimeStr = DateUtil.formatDateTime(expiresTime);
Map<String, String> map = new LinkedHashMap<>();
map.put("token", token);
map.put("expires_time", expiresTimeStr);
if (singleLogin) {
//踢掉之前已经登录的token
onlineUserService.checkLoginOnUser(jwtUserT.getUsername(), token);
}
//设置推广关系
if (StrUtil.isNotEmpty(spread)) {
this.setSpread(Integer.valueOf(spread),
jwtUserT.getId().intValue());
}
// 返回 token
return map;
} catch (WxErrorException e) {
log.error(e.getMessage(), e);
throw new BadRequestException(e.toString());
}
}
}

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.user.web.controller;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.common.web.param.IdParam;

View File

@ -14,7 +14,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.enums.AppFromEnum;

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.user.web.controller;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.constant.ShopConstants;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.user.web.controller;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.modules.user.service.YxSystemUserLevelService;

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -37,7 +37,7 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-mproot</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -20,7 +20,7 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-common</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<!--模板引擎-->

View File

@ -6,9 +6,9 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.domain;
package co.yixiang.gen.domain;
import co.yixiang.utils.GenUtil;
import co.yixiang.gen.utils.GenUtil;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.domain;
package co.yixiang.gen.domain;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.domain.vo;
package co.yixiang.gen.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.domain.vo;
package co.yixiang.gen.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@ -6,10 +6,10 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.rest;
package co.yixiang.gen.rest;
import co.yixiang.service.GenConfigService;
import co.yixiang.domain.GenConfig;
import co.yixiang.gen.service.GenConfigService;
import co.yixiang.gen.domain.GenConfig;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.HttpStatus;

View File

@ -6,11 +6,11 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.rest;
package co.yixiang.gen.rest;
import co.yixiang.service.GenConfigService;
import co.yixiang.service.GeneratorService;
import co.yixiang.domain.ColumnConfig;
import co.yixiang.gen.domain.ColumnConfig;
import co.yixiang.gen.service.GenConfigService;
import co.yixiang.gen.service.GeneratorService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import co.yixiang.exception.BadRequestException;

View File

@ -6,9 +6,9 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service;
package co.yixiang.gen.service;
import co.yixiang.domain.GenConfig;
import co.yixiang.gen.domain.GenConfig;
/**
* @author Zheng Jie

View File

@ -6,10 +6,10 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service;
package co.yixiang.gen.service;
import co.yixiang.domain.ColumnConfig;
import co.yixiang.domain.GenConfig;
import co.yixiang.gen.domain.ColumnConfig;
import co.yixiang.gen.domain.GenConfig;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import javax.servlet.http.HttpServletRequest;

View File

@ -6,12 +6,12 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.impl;
package co.yixiang.gen.service.impl;
import co.yixiang.gen.service.mapper.GenConfigMapper;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.domain.GenConfig;
import co.yixiang.service.GenConfigService;
import co.yixiang.service.mapper.GenConfigMapper;
import co.yixiang.gen.domain.GenConfig;
import co.yixiang.gen.service.GenConfigService;
import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;

View File

@ -6,19 +6,19 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.impl;
package co.yixiang.gen.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ZipUtil;
import co.yixiang.gen.domain.ColumnConfig;
import co.yixiang.gen.service.mapper.ColumnInfoMapper;
import co.yixiang.gen.utils.GenUtil;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.domain.ColumnConfig;
import co.yixiang.domain.GenConfig;
import co.yixiang.service.mapper.ColumnInfoMapper;
import co.yixiang.utils.GenUtil;
import co.yixiang.domain.vo.TableInfo;
import co.yixiang.gen.domain.GenConfig;
import co.yixiang.gen.domain.vo.TableInfo;
import co.yixiang.exception.BadRequestException;
import co.yixiang.service.GeneratorService;
import co.yixiang.gen.service.GeneratorService;
import co.yixiang.utils.FileUtil;
import co.yixiang.utils.PageUtil;
import co.yixiang.utils.StringUtils;

View File

@ -6,9 +6,9 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.mapper;
package co.yixiang.gen.service.mapper;
import co.yixiang.domain.ColumnConfig;
import co.yixiang.gen.domain.ColumnConfig;
import co.yixiang.common.mapper.CoreMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

View File

@ -6,9 +6,9 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.mapper;
package co.yixiang.gen.service.mapper;
import co.yixiang.domain.GenConfig;
import co.yixiang.gen.domain.GenConfig;
import co.yixiang.common.mapper.CoreMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.utils;
package co.yixiang.gen.utils;
import org.apache.commons.configuration.*;

View File

@ -6,13 +6,15 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.utils;
package co.yixiang.gen.utils;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.template.*;
import co.yixiang.domain.GenConfig;
import co.yixiang.gen.domain.GenConfig;
import co.yixiang.utils.FileUtil;
import co.yixiang.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import co.yixiang.domain.ColumnConfig;
import co.yixiang.gen.domain.ColumnConfig;
import org.springframework.util.ObjectUtils;
import java.io.File;
import java.io.FileWriter;

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -16,12 +16,12 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-common</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-mproot</artifactId>
<version>2.1</version>
<version>2.2</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.aop.log;
package co.yixiang.logging.aop.log;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -6,11 +6,11 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.aspect;
package co.yixiang.logging.aspect;
import lombok.extern.slf4j.Slf4j;
import co.yixiang.domain.Log;
import co.yixiang.service.LogService;
import co.yixiang.logging.domain.Log;
import co.yixiang.logging.service.LogService;
import co.yixiang.utils.RequestHolder;
import co.yixiang.utils.SecurityUtils;
import co.yixiang.utils.StringUtils;
@ -45,7 +45,7 @@ public class LogAspect {
/**
* 配置切入点
*/
@Pointcut("@annotation(co.yixiang.aop.log.Log)")
@Pointcut("@annotation(co.yixiang.logging.aop.log.Log)")
public void logPointcut() {
// 该方法无方法体,主要为了让同类中其他方法使用此切入点
}

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.domain;
package co.yixiang.logging.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -6,13 +6,13 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.rest;
package co.yixiang.logging.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import co.yixiang.service.LogService;
import co.yixiang.service.dto.LogQueryCriteria;
import co.yixiang.logging.service.LogService;
import co.yixiang.logging.service.dto.LogQueryCriteria;
import co.yixiang.utils.SecurityUtils;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;

View File

@ -6,11 +6,11 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service;
package co.yixiang.logging.service;
import co.yixiang.logging.domain.Log;
import co.yixiang.common.service.BaseService;
import co.yixiang.domain.Log;
import co.yixiang.service.dto.LogQueryCriteria;
import co.yixiang.logging.service.dto.LogQueryCriteria;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.data.domain.Pageable;
import org.springframework.scheduling.annotation.Async;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.dto;
package co.yixiang.logging.service.dto;
import lombok.Data;
import java.io.Serializable;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.dto;
package co.yixiang.logging.service.dto;
import co.yixiang.annotation.Query;
import lombok.Data;

View File

@ -6,7 +6,7 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.dto;
package co.yixiang.logging.service.dto;
import lombok.Data;
import java.io.Serializable;

View File

@ -6,27 +6,24 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.impl;
package co.yixiang.logging.service.impl;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.logging.service.mapper.LogMapper;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.domain.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.service.LogService;
import co.yixiang.service.dto.LogErrorDTO;
import co.yixiang.service.dto.LogQueryCriteria;
import co.yixiang.service.dto.LogSmallDTO;
import co.yixiang.service.mapper.LogMapper;
import co.yixiang.logging.service.LogService;
import co.yixiang.logging.service.dto.LogErrorDTO;
import co.yixiang.logging.service.dto.LogQueryCriteria;
import co.yixiang.logging.service.dto.LogSmallDTO;
import co.yixiang.utils.*;
import com.baomidou.mybatisplus.core.conditions.query.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -46,7 +43,7 @@ import java.util.Map;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class LogServiceImpl extends BaseServiceImpl<LogMapper, Log> implements LogService {
public class LogServiceImpl extends BaseServiceImpl<LogMapper, co.yixiang.logging.domain.Log> implements LogService {
private final LogMapper logMapper;
@ -61,8 +58,8 @@ public class LogServiceImpl extends BaseServiceImpl<LogMapper, Log> implements
@Override
public Object findAllByPageable(String nickname, Pageable pageable) {
getPage(pageable);
List<Log> list = logMapper.findAllByPageable(nickname);
PageInfo<Log> page = new PageInfo<>(list);
List<co.yixiang.logging.domain.Log> list = logMapper.findAllByPageable(nickname);
PageInfo<co.yixiang.logging.domain.Log> page = new PageInfo<>(list);
Map<String,Object> map = new LinkedHashMap<>(2);
map.put("content",page.getList());
@ -75,7 +72,7 @@ public class LogServiceImpl extends BaseServiceImpl<LogMapper, Log> implements
public Object queryAll(LogQueryCriteria criteria, Pageable pageable){
getPage(pageable);
PageInfo<Log> page = new PageInfo<>(queryAll(criteria));
PageInfo<co.yixiang.logging.domain.Log> page = new PageInfo<>(queryAll(criteria));
Map<String, Object> map = new LinkedHashMap<>(2);
String status = "ERROR";
if(status.equals(criteria.getLogType())){
@ -88,14 +85,14 @@ public class LogServiceImpl extends BaseServiceImpl<LogMapper, Log> implements
}
@Override
public List<Log> queryAll(LogQueryCriteria criteria) {
return baseMapper.selectList(QueryHelpPlus.getPredicate(Log.class, criteria));
public List<co.yixiang.logging.domain.Log> queryAll(LogQueryCriteria criteria) {
return baseMapper.selectList(QueryHelpPlus.getPredicate(co.yixiang.logging.domain.Log.class, criteria));
}
@Override
public Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable) {
getPage(pageable);
PageInfo<Log> page = new PageInfo<>(queryAll(criteria));
PageInfo<co.yixiang.logging.domain.Log> page = new PageInfo<>(queryAll(criteria));
Map<String, Object> map = new LinkedHashMap<>(2);
map.put("content", generator.convert(page.getList(), LogSmallDTO.class));
map.put("totalElements", page.getTotal());
@ -106,11 +103,11 @@ public class LogServiceImpl extends BaseServiceImpl<LogMapper, Log> implements
@Override
@Transactional(rollbackFor = Exception.class)
public void save(String username, String ip, ProceedingJoinPoint joinPoint,
Log log,Long uid){
co.yixiang.logging.domain.Log log, Long uid){
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
co.yixiang.aop.log.Log aopLog = method.getAnnotation(co.yixiang.aop.log.Log.class);
Log aopLog = method.getAnnotation(Log.class);
// 方法路径
String methodName = joinPoint.getTarget().getClass().getName()+"."+signature.getName()+"()";
@ -155,16 +152,16 @@ public class LogServiceImpl extends BaseServiceImpl<LogMapper, Log> implements
@Override
public Object findByErrDetail(Long id) {
Log log = this.getById(id);
co.yixiang.logging.domain.Log log = this.getById(id);
ValidationUtil.isNull( log.getId(),"Log","id", id);
byte[] details = log.getExceptionDetail();
return Dict.create().set("exception",new String(ObjectUtil.isNotNull(details) ? details : "".getBytes()));
}
@Override
public void download(List<Log> logs, HttpServletResponse response) throws IOException {
public void download(List<co.yixiang.logging.domain.Log> logs, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (Log log : logs) {
for (co.yixiang.logging.domain.Log log : logs) {
Map<String,Object> map = new LinkedHashMap<>();
map.put("用户名", log.getUsername());
map.put("IP", log.getRequestIp());

View File

@ -6,10 +6,10 @@
* 购买后可获得全部源代码禁止转卖分享上传到码云github等开源平台
* 一经发现盗用分享等行为将追究法律责任后果自负
*/
package co.yixiang.service.mapper;
package co.yixiang.logging.service.mapper;
import co.yixiang.common.mapper.CoreMapper;
import co.yixiang.domain.Log;
import co.yixiang.logging.domain.Log;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -35,7 +35,7 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-common</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
</dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<name>MyBatisPlus模块</name>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -21,13 +21,13 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-tools</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-mp</artifactId>
<version>2.1</version>
<version>2.2</version>
<exclusions>
<exclusion>
<groupId>co.yixiang</groupId>

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.ObjectUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreBargain;
import co.yixiang.modules.activity.service.YxStoreBargainService;
import co.yixiang.modules.activity.service.dto.YxStoreBargainQueryCriteria;

View File

@ -9,9 +9,7 @@
package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreCombination;
import co.yixiang.modules.activity.service.YxStoreCombinationService;
import co.yixiang.modules.activity.service.dto.YxStoreCombinationQueryCriteria;

View File

@ -8,9 +8,7 @@
*/
package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreCoupon;
import co.yixiang.modules.activity.service.YxStoreCouponService;
import co.yixiang.modules.activity.service.dto.YxStoreCouponQueryCriteria;

View File

@ -9,9 +9,7 @@
package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreCouponIssue;
import co.yixiang.modules.activity.service.YxStoreCouponIssueService;
import co.yixiang.modules.activity.service.dto.YxStoreCouponIssueQueryCriteria;

View File

@ -8,9 +8,7 @@
*/
package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreCouponIssueUser;
import co.yixiang.modules.activity.service.YxStoreCouponIssueUserService;
import co.yixiang.modules.activity.service.dto.YxStoreCouponIssueUserQueryCriteria;

View File

@ -8,8 +8,7 @@
*/
package co.yixiang.modules.activity.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreCouponUser;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.service.YxStoreCouponUserService;
import co.yixiang.modules.activity.service.dto.YxStoreCouponUserQueryCriteria;
import io.swagger.annotations.Api;
@ -18,7 +17,6 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**

View File

@ -8,8 +8,7 @@
*/
package co.yixiang.modules.activity.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStorePink;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.service.YxStorePinkService;
import co.yixiang.modules.activity.service.dto.YxStorePinkQueryCriteria;
import io.swagger.annotations.Api;
@ -18,7 +17,6 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**

View File

@ -9,9 +9,7 @@
package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.activity.domain.YxStoreSeckill;
import co.yixiang.modules.activity.service.YxStoreSeckillService;
import co.yixiang.modules.activity.service.dto.YxStoreSeckillQueryCriteria;

View File

@ -11,7 +11,7 @@ package co.yixiang.modules.activity.rest;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.activity.domain.YxUserExtract;

View File

@ -8,9 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxExpress;
import co.yixiang.modules.shop.service.YxExpressService;
import co.yixiang.modules.shop.service.dto.YxExpressQueryCriteria;

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.shop.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxMaterial;
import co.yixiang.modules.shop.service.YxMaterialService;
import co.yixiang.modules.shop.service.dto.YxMaterialQueryCriteria;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxMaterialGroup;
import co.yixiang.modules.shop.service.YxMaterialGroupService;
import co.yixiang.modules.shop.service.dto.YxMaterialGroupQueryCriteria;

View File

@ -9,9 +9,7 @@
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxUser;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.shop.service.YxUserService;

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.shop.domain.YxStoreCategory;
import co.yixiang.modules.shop.service.YxStoreCategoryService;

View File

@ -13,7 +13,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.constant.ShopConstants;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.OrderInfoEnum;

View File

@ -10,9 +10,8 @@ package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.constant.ShopConstants;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.shop.domain.YxStoreProduct;
import co.yixiang.modules.shop.service.YxStoreProductService;
import co.yixiang.modules.shop.service.dto.YxStoreProductQueryCriteria;

View File

@ -8,9 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxStoreProductReply;
import co.yixiang.modules.shop.service.YxStoreProductReplyService;
import co.yixiang.modules.shop.service.dto.YxStoreProductReplyQueryCriteria;

View File

@ -9,11 +9,9 @@
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.constant.ShopConstants;
import co.yixiang.enums.RedisKeyEnum;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.shop.domain.YxSystemConfig;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.shop.service.dto.YxSystemConfigQueryCriteria;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.constant.ShopConstants;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.shop.domain.YxSystemGroupData;
@ -21,7 +21,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.constant.ShopConstants;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.RedisKeyEnum;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.modules.shop.domain.YxSystemStoreStaff;
import co.yixiang.modules.shop.service.YxSystemStoreStaffService;

View File

@ -8,9 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxSystemUserLevel;
import co.yixiang.modules.shop.service.YxSystemUserLevelService;
import co.yixiang.modules.shop.service.dto.YxSystemUserLevelQueryCriteria;
@ -24,9 +22,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
/**
* @author hupeng
* @date 2019-12-04

View File

@ -8,15 +8,12 @@
*/
package co.yixiang.modules.shop.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxSystemUserTask;
import co.yixiang.modules.shop.service.YxSystemUserTaskService;
import co.yixiang.modules.shop.service.dto.YxSystemUserTaskQueryCriteria;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.service.YxUserBillService;
import co.yixiang.modules.shop.service.dto.YxUserBillQueryCriteria;
import io.swagger.annotations.Api;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.shop.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.modules.shop.domain.YxUserRecharge;
import co.yixiang.modules.shop.service.YxUserRechargeService;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.shop.rest;
import java.util.Arrays;
import co.yixiang.dozer.service.IGenerator;
import lombok.AllArgsConstructor;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.shop.domain.YxWechatUser;
import co.yixiang.modules.shop.service.YxWechatUserService;
import co.yixiang.modules.shop.service.dto.YxWechatUserQueryCriteria;

View File

@ -36,7 +36,7 @@ public interface YxUserBillService extends BaseService<YxUserBill>{
* @param criteria 条件参数
* @return List<YxUserBillDto>
*/
List<YxUserBill> queryAll(YxUserBillQueryCriteria criteria);
List<YxUserBillDto> queryAll(YxUserBillQueryCriteria criteria);
/**
* 导出数据

View File

@ -17,36 +17,37 @@ import java.io.Serializable;
*/
@Data
public class YxSystemUserTaskDto implements Serializable {
private Integer id;
/** 任务名称 */
// 任务名称
private String name;
/** 配置原名 */
// 配置原名
private String realName;
/** 任务类型 */
// 任务类型
private String taskType;
/** 限定数 */
// 限定数
private Integer number;
/** 等级id */
// 等级id
private Integer levelId;
/** 排序 */
private String levalName;
// 排序
private Integer sort;
/** 是否显示 */
// 是否显示
private Integer isShow;
/** 是否务必达成任务,1务必达成,0=满足其一 */
// 是否务必达成任务,1务必达成,0=满足其一
private Integer isMust;
/** 任务说明 */
// 任务说明
private String illustrate;
/** 新增时间 */
// 新增时间
private Integer addTime;
}

View File

@ -54,4 +54,6 @@ public class YxUserBillDto implements Serializable {
/** 0 = 带确定 1 = 有效 -1 = 无效 */
private Integer status;
private String nickname;
}

View File

@ -18,4 +18,7 @@ import co.yixiang.annotation.Query;
*/
@Data
public class YxUserBillQueryCriteria{
private String nickname;
private String category;
private String type;
}

View File

@ -52,8 +52,13 @@ public class YxSystemUserTaskServiceImpl extends BaseServiceImpl<SystemUserTaskM
public Map<String, Object> queryAll(YxSystemUserTaskQueryCriteria criteria, Pageable pageable) {
getPage(pageable);
PageInfo<YxSystemUserTask> page = new PageInfo<>(queryAll(criteria));
List<YxSystemUserTaskDto> systemUserTaskDTOS = generator.convert(page.getList(),YxSystemUserTaskDto.class);
for (YxSystemUserTaskDto systemUserTaskDTO : systemUserTaskDTOS) {
systemUserTaskDTO.setLevalName(this
.getById(systemUserTaskDTO.getLevelId()).getName());
}
Map<String, Object> map = new LinkedHashMap<>(2);
map.put("content", generator.convert(page.getList(), YxSystemUserTaskDto.class));
map.put("content", systemUserTaskDTOS);
map.put("totalElements", page.getTotal());
return map;
}

View File

@ -19,6 +19,7 @@ import co.yixiang.modules.shop.service.YxUserBillService;
import co.yixiang.modules.shop.service.dto.YxUserBillDto;
import co.yixiang.modules.shop.service.dto.YxUserBillQueryCriteria;
import co.yixiang.modules.shop.service.mapper.UserBillMapper;
import org.apache.xmlbeans.impl.xb.xmlconfig.Qnametargetlist;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -51,9 +52,9 @@ public class YxUserBillServiceImpl extends BaseServiceImpl<UserBillMapper, YxUse
//@Cacheable
public Map<String, Object> queryAll(YxUserBillQueryCriteria criteria, Pageable pageable) {
getPage(pageable);
PageInfo<YxUserBill> page = new PageInfo<>(queryAll(criteria));
PageInfo<YxUserBillDto> page = new PageInfo<>(queryAll(criteria));
Map<String, Object> map = new LinkedHashMap<>(2);
map.put("content", generator.convert(page.getList(), YxUserBillDto.class));
map.put("content", page.getList());
map.put("totalElements", page.getTotal());
return map;
}
@ -61,8 +62,9 @@ public class YxUserBillServiceImpl extends BaseServiceImpl<UserBillMapper, YxUse
@Override
//@Cacheable
public List<YxUserBill> queryAll(YxUserBillQueryCriteria criteria){
return baseMapper.selectList(QueryHelpPlus.getPredicate(YxUserBill.class, criteria));
public List<YxUserBillDto> queryAll(YxUserBillQueryCriteria criteria){
return baseMapper.findAllByQueryCriteria(criteria.getCategory(),criteria.getType(),criteria.getNickname());
}

View File

@ -10,9 +10,17 @@ package co.yixiang.modules.shop.service.mapper;
import co.yixiang.common.mapper.CoreMapper;
import co.yixiang.modules.shop.domain.YxUserBill;
import co.yixiang.modules.shop.service.dto.YxUserBillDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Select;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author hupeng
* @date 2020-05-12
@ -21,4 +29,10 @@ import org.springframework.stereotype.Repository;
@Mapper
public interface UserBillMapper extends CoreMapper<YxUserBill> {
@Select("<script> select b.title,b.pm,b.category,b.type,b.number,b.add_time ,u.nickname " +
"from yx_user_bill b left join yx_user u on u.uid=b.uid where 1=1 " +
"<if test =\"category !=''\">and b.category=#{category}</if> " +
"<if test =\"type !=''\">and b.type=#{type}</if> " +
"<if test =\"nickname !=''\">and u.nickname= LIKE CONCAT('%',#{nickname},'%')</if> </script> ")
List<YxUserBillDto> findAllByQueryCriteria(@Param("category") String category, @Param("type") String type, @Param("nickname") String nickname);
}

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -21,7 +21,7 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-generator</artifactId>
<version>2.1</version>
<version>2.2</version>
<exclusions>
<exclusion>
<groupId>co.yixiang</groupId>
@ -32,17 +32,17 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-shop</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-mproot</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-mp</artifactId>
<version>2.1</version>
<version>2.2</version>
<exclusions>
<exclusion>
<groupId>co.yixiang</groupId>

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.quartz.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.quartz.domain.QuartzJob;
@ -18,8 +18,6 @@ import co.yixiang.modules.quartz.service.dto.QuartzJobDto;
import co.yixiang.modules.quartz.service.dto.QuartzJobQueryCriteria;
import co.yixiang.modules.quartz.service.dto.QuartzLogDto;
import co.yixiang.modules.quartz.service.dto.QuartzLogQueryCriteria;
import co.yixiang.modules.shop.domain.YxUser;
import co.yixiang.modules.system.service.dto.JobQueryCriteria;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

View File

@ -16,7 +16,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.security.config.SecurityProperties;
import co.yixiang.modules.security.security.TokenProvider;

View File

@ -8,9 +8,7 @@
*/
package co.yixiang.modules.security.rest;
import cn.hutool.core.util.StrUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.security.service.OnlineUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.system.rest;
import cn.hutool.core.collection.CollectionUtil;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.config.DataScope;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;

View File

@ -7,8 +7,7 @@
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
*/
package co.yixiang.modules.system.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.system.domain.Dict;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.system.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.system.domain.DictDetail;
import co.yixiang.modules.system.service.DictDetailService;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.system.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.config.DataScope;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.modules.system.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.shop.domain.YxSystemConfig;

View File

@ -9,7 +9,7 @@
package co.yixiang.modules.system.rest;
import cn.hutool.core.lang.Dict;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.system.domain.Role;

View File

@ -10,7 +10,7 @@ package co.yixiang.modules.system.rest;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.config.DataScope;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.modules.system.service.dto.UserDto;

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>yshop</artifactId>
<groupId>co.yixiang</groupId>
<version>2.1</version>
<version>2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -23,7 +23,7 @@
<dependency>
<groupId>co.yixiang</groupId>
<artifactId>yshop-logging</artifactId>
<version>2.1</version>
<version>2.2</version>
</dependency>
<!--邮件依赖-->

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.tools.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.tools.service.AlipayConfigService;
import co.yixiang.tools.utils.AliPayStatusEnum;
import io.swagger.annotations.Api;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.tools.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.tools.service.EmailConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

View File

@ -10,7 +10,7 @@ package co.yixiang.tools.rest;
import java.util.Arrays;
import co.yixiang.dozer.service.IGenerator;
import lombok.AllArgsConstructor;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.tools.domain.LocalStorage;
import co.yixiang.tools.service.LocalStorageService;
import co.yixiang.tools.service.dto.LocalStorageQueryCriteria;

View File

@ -9,7 +9,7 @@
package co.yixiang.tools.rest;
import co.yixiang.tools.service.dto.PictureDto;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.dozer.service.IGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

View File

@ -8,7 +8,7 @@
*/
package co.yixiang.tools.rest;
import co.yixiang.aop.log.Log;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.tools.domain.QiniuConfig;
import co.yixiang.tools.domain.QiniuContent;
import co.yixiang.tools.service.QiNiuService;