!117 压测期间对代码进行性能优化,以及部分代码优化

Merge pull request !117 from chopper711/test
This commit is contained in:
chopper711 2022-01-19 02:03:47 +00:00 committed by Gitee
commit 0c234e78af
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
132 changed files with 320 additions and 220 deletions

View File

@ -26,7 +26,6 @@ import javax.validation.constraints.Min;
@RestController @RestController
@Api(tags = "买家端,预存款充值记录接口") @Api(tags = "买家端,预存款充值记录接口")
@RequestMapping("/buyer/trade/recharge") @RequestMapping("/buyer/trade/recharge")
@Transactional(rollbackFor = Exception.class)
public class RechargeTradeBuyerController { public class RechargeTradeBuyerController {
@Autowired @Autowired

View File

@ -27,7 +27,6 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Api(tags = "买家端,余额提现记录接口") @Api(tags = "买家端,余额提现记录接口")
@RequestMapping("/buyer/member/withdrawApply") @RequestMapping("/buyer/member/withdrawApply")
@Transactional(rollbackFor = Exception.class)
public class MemberWithdrawApplyBuyerController { public class MemberWithdrawApplyBuyerController {
@Autowired @Autowired
private MemberWithdrawApplyService memberWithdrawApplyService; private MemberWithdrawApplyService memberWithdrawApplyService;

View File

@ -25,7 +25,6 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Api(tags = "买家端,预存款充值记录接口") @Api(tags = "买家端,预存款充值记录接口")
@RequestMapping("/buyer/member/recharge") @RequestMapping("/buyer/member/recharge")
@Transactional(rollbackFor = Exception.class)
public class RechargeBuyerController { public class RechargeBuyerController {
@Autowired @Autowired

View File

@ -3,12 +3,19 @@ server:
servlet: servlet:
context-path: / context-path: /
#
tomcat: # tomcat:
uri-encoding: UTF-8 # #最大链接数默认不设置默认是10000
threads: # max-connections: 6500
min-spare: 50 # #最大等待队列长度允许HTTP请求缓存到请求队列的最大个数默认不限制
max: 1000 # accept-count: 1000
# threads:
# #最少闲置
# min-spare: 50
# #最大线程数 默认是200
# max: 800
netty:
connection-timeout:
# 与Spring Boot 2一样默认情况下大多数端点都不通过http公开我们公开了所有端点。对于生产您应该仔细选择要公开的端点。 # 与Spring Boot 2一样默认情况下大多数端点都不通过http公开我们公开了所有端点。对于生产您应该仔细选择要公开的端点。
management: management:
@ -69,10 +76,10 @@ spring:
url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root username: root
password: lilishop password: lilishop
maxActive: 20 maxActive: 50
initialSize: 5 initialSize: 10
maxWait: 60000 maxWait: 60000
minIdle: 5 minIdle: 10
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000 minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
@ -110,7 +117,7 @@ spring:
props: props:
#是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭 #是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭
sql: sql:
show: true show: false
# 忽略TOKEN 鉴权 的url # 忽略TOKEN 鉴权 的url
ignored: ignored:
@ -176,8 +183,7 @@ logging:
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
# 输出级别 # 输出级别
level: level:
cn.lili: debug root: error
org.hibernate: debug
# org.springframework: debug # org.springframework: debug
file: file:
# 指定路径 # 指定路径

View File

@ -52,9 +52,6 @@ public class UploadController {
@Autowired @Autowired
private Cache cache; private Cache cache;
@Autowired
private SystemSettingProperties systemSettingProperties;
@ApiOperation(value = "文件上传") @ApiOperation(value = "文件上传")
@PostMapping(value = "/file") @PostMapping(value = "/file")
public ResultMessage<Object> upload(MultipartFile file, public ResultMessage<Object> upload(MultipartFile file,

View File

@ -108,7 +108,7 @@ spring:
props: props:
#是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭 #是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭
sql: sql:
show: true show: false
# 忽略鉴权url # 忽略鉴权url
ignored: ignored:
@ -176,7 +176,7 @@ logging:
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
# 输出级别 # 输出级别
level: level:
cn.lili: info root: error
# org.hibernate: debug # org.hibernate: debug
# org.springframework: debug # org.springframework: debug
file: file:

View File

@ -72,8 +72,8 @@ spring:
url: jdbc:mysql://192.168.0.116:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://192.168.0.116:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root username: root
password: lilishop password: lilishop
maxActive: 20 maxActive: 50
initialSize: 5 initialSize: 20
maxWait: 60000 maxWait: 60000
minIdle: 5 minIdle: 5
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
@ -183,7 +183,7 @@ mybatis-plus:
logging: logging:
# 输出级别 # 输出级别
level: level:
cn.lili: info root: error
# org.hibernate: debug # org.hibernate: debug
# org.springframework: debug # org.springframework: debug
# org.springframework.data.mongodb.core: debug # org.springframework.data.mongodb.core: debug

View File

@ -0,0 +1,19 @@
package cn.lili.event;
import cn.lili.modules.member.entity.dos.Member;
/**
* 会员登录消息
*
* @author Chopper
* @since 2020/11/17 7:13 下午
*/
public interface MemberLoginEvent {
/**
* 会员登录
*
* @param member 会员
*/
void memberLogin(Member member);
}

View File

@ -11,7 +11,7 @@ import cn.lili.modules.member.entity.dos.Member;
public interface MemberRegisterEvent { public interface MemberRegisterEvent {
/** /**
* 会员登录 * 会员注册
* *
* @param member 会员 * @param member 会员
*/ */

View File

@ -0,0 +1,25 @@
package cn.lili.event.impl;
import cn.lili.event.MemberLoginEvent;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 会员自身业务
*
* @author Chopper
* @version v1.0
* 2022-01-11 11:08
*/
@Service
public class MemberExecute implements MemberLoginEvent {
@Autowired
private MemberService memberService;
@Override
public void memberLogin(Member member) {
memberService.updateById(member);
}
}

View File

@ -1,6 +1,7 @@
package cn.lili.listener; package cn.lili.listener;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.event.MemberLoginEvent;
import cn.lili.event.MemberPointChangeEvent; import cn.lili.event.MemberPointChangeEvent;
import cn.lili.event.MemberRegisterEvent; import cn.lili.event.MemberRegisterEvent;
import cn.lili.event.MemberWithdrawalEvent; import cn.lili.event.MemberWithdrawalEvent;
@ -51,6 +52,12 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
@Autowired @Autowired
private List<MemberRegisterEvent> memberSignEvents; private List<MemberRegisterEvent> memberSignEvents;
/**
* 会员注册
*/
@Autowired
private List<MemberLoginEvent> memberLoginEvents;
@Override @Override
public void onMessage(MessageExt messageExt) { public void onMessage(MessageExt messageExt) {
@ -69,6 +76,21 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
} }
} }
break; break;
case MEMBER_LOGIN:
for (MemberLoginEvent memberLoginEvent : memberLoginEvents) {
try {
Member member = JSONUtil.toBean(new String(messageExt.getBody()), Member.class);
memberLoginEvent.memberLogin(member);
} catch (Exception e) {
log.error("会员{},在{}业务中,状态修改事件执行异常",
new String(messageExt.getBody()),
memberLoginEvent.getClass().getName(),
e);
}
}
break;
//会员签到 //会员签到
case MEMBER_SING: case MEMBER_SING:
MemberSign memberSign = JSONUtil.toBean(new String(messageExt.getBody()), MemberSign.class); MemberSign memberSign = JSONUtil.toBean(new String(messageExt.getBody()), MemberSign.class);

View File

@ -111,7 +111,7 @@ spring:
props: props:
#是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭 #是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭
sql: sql:
show: true show: false
# 忽略鉴权url # 忽略鉴权url
ignored: ignored:
@ -179,7 +179,7 @@ logging:
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
# 输出级别 # 输出级别
level: level:
cn.lili: info root: error
# org.hibernate: debug # org.hibernate: debug
# org.springframework: debug # org.springframework: debug
file: file:

View File

@ -211,6 +211,14 @@ public interface Cache<T> {
* @return 计数器结果 * @return 计数器结果
*/ */
Long incr(String key, long liveTime); Long incr(String key, long liveTime);
/**
* redis 计数器 累加
* 到达liveTime之后该次增加取消即自动-1而不是redis值为空
*
* @param key 为累计的key同一key每次调用则值 +1
* @return 计数器结果
*/
Long incr(String key);
//-----------------------------------------------redis计数--------------------------------------------- //-----------------------------------------------redis计数---------------------------------------------
/** /**

View File

@ -80,7 +80,7 @@ public class RedisCache implements Cache {
@Override @Override
public Boolean remove(Object key) { public Boolean remove(Object key) {
return redisTemplate.delete(key); return redisTemplate.delete(key);
} }
/** /**
@ -207,13 +207,19 @@ public class RedisCache implements Cache {
RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory()); RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
Long increment = entityIdCounter.getAndIncrement(); Long increment = entityIdCounter.getAndIncrement();
//初始设置过期时间 //初始设置过期时间
if ((null == increment || increment == 0) && liveTime > 0) { if (increment == 0 && liveTime > 0) {
entityIdCounter.expire(liveTime, TimeUnit.SECONDS); entityIdCounter.expire(liveTime, TimeUnit.SECONDS);
} }
return increment; return increment;
} }
@Override
public Long incr(String key) {
RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
return entityIdCounter.getAndIncrement();
}
/** /**
* 使用Sorted Set记录keyword * 使用Sorted Set记录keyword
* zincrby命令对于一个Sorted Set存在的就把分数加x(x可自行设定)不存在就创建一个分数为1的成员 * zincrby命令对于一个Sorted Set存在的就把分数加x(x可自行设定)不存在就创建一个分数为1的成员

View File

@ -115,8 +115,7 @@ public enum ResultCode {
USER_AUTH_EXPIRED(20004, "用户已退出,请重新登录"), USER_AUTH_EXPIRED(20004, "用户已退出,请重新登录"),
USER_AUTHORITY_ERROR(20005, "权限不足"), USER_AUTHORITY_ERROR(20005, "权限不足"),
USER_CONNECT_LOGIN_ERROR(20006, "未找到登录信息"), USER_CONNECT_LOGIN_ERROR(20006, "未找到登录信息"),
USER_NAME_EXIST(20007, "该用户名已被注册"), USER_EXIST(20008, "该用户名或手机号已被注册"),
USER_PHONE_EXIST(20008, "该手机号已被注册"),
USER_PHONE_NOT_EXIST(20009, "手机号不存在"), USER_PHONE_NOT_EXIST(20009, "手机号不存在"),
USER_PASSWORD_ERROR(20010, "密码不正确"), USER_PASSWORD_ERROR(20010, "密码不正确"),
USER_NOT_PHONE(20011, "非当前用户的手机号"), USER_NOT_PHONE(20011, "非当前用户的手机号"),

View File

@ -37,6 +37,20 @@ public class UserContext {
return null; return null;
} }
/**
* 根据request获取用户信息
*
* @return 授权用户
*/
public static String getUuid() {
if (RequestContextHolder.getRequestAttributes() != null) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String uuid = request.getHeader(SecurityEnum.UUID.getValue());
return uuid;
}
return null;
}
/** /**
* 根据jwt获取token重的用户信息 * 根据jwt获取token重的用户信息

View File

@ -10,7 +10,7 @@ public enum SecurityEnum {
/** /**
* 存在与header中的token参数头 * 存在与header中的token参数头
*/ */
HEADER_TOKEN("accessToken"), USER_CONTEXT("userContext"), JWT_SECRET("secret"); HEADER_TOKEN("accessToken"), USER_CONTEXT("userContext"), JWT_SECRET("secret"), UUID("uuid");
String value; String value;

View File

@ -11,16 +11,16 @@ import cn.lili.common.security.token.Token;
* @version v1.0 * @version v1.0
* 2020-11-13 10:13 * 2020-11-13 10:13
*/ */
public abstract class AbstractTokenGenerate { public abstract class AbstractTokenGenerate<T> {
/** /**
* 生成token * 生成token
* *
* @param username 用户名 * @param user 用户名
* @param longTerm 是否长时间有效 * @param longTerm 是否长时间有效
* @return TOKEN对象 * @return TOKEN对象
*/ */
public abstract Token createToken(String username, Boolean longTerm); public abstract Token createToken(T user, Boolean longTerm);
/** /**
* 刷新token * 刷新token

View File

@ -2,6 +2,7 @@ package cn.lili.common.utils;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import lombok.extern.slf4j.Slf4j;
import java.util.Date; import java.util.Date;
@ -10,18 +11,30 @@ import java.util.Date;
* *
* @author Chopper * @author Chopper
*/ */
@Slf4j
public class SnowFlake { public class SnowFlake {
/** // /**
* 机器id // * 机器id
*/ // */
private static long workerId = 0L; // private static long workerId = 0L;
/** // /**
* 机房id // * 机房id
*/ // */
private static long datacenterId = 0L; // public static long datacenterId = 0L;
private static Snowflake snowflake = IdUtil.createSnowflake(workerId, datacenterId); private static Snowflake snowflake;
/**
* 初始化配置
*
* @param workerId
* @param datacenterId
*/
public static void initialize(long workerId, long datacenterId) {
snowflake = IdUtil.getSnowflake(workerId, datacenterId);
log.error(workerId+""+datacenterId);
}
public static long getId() { public static long getId() {
return snowflake.nextId(); return snowflake.nextId();
@ -29,12 +42,14 @@ public class SnowFlake {
/** /**
* 生成字符带有前缀 * 生成字符带有前缀
*
* @param prefix * @param prefix
* @return * @return
*/ */
public static String createStr(String prefix) { public static String createStr(String prefix) {
return prefix + DateUtil.toString(new Date(), "yyyyMMdd") + SnowFlake.getId(); return prefix + DateUtil.toString(new Date(), "yyyyMMdd") + SnowFlake.getId();
} }
public static String getIdStr() { public static String getIdStr() {
return snowflake.nextId() + ""; return snowflake.nextId() + "";
} }

View File

@ -0,0 +1,58 @@
package cn.lili.common.utils;
import cn.lili.cache.Cache;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.concurrent.TimeUnit;
/**
* SnowflakeInitiator
*
* @author Chopper
* @version v1.0
* 2022-01-14 14:04
*/
@Component
@Slf4j
public class SnowflakeInitiator {
/**
* 缓存前缀
*/
private static String KEY = "{Snowflake}";
@Autowired
private Cache cache;
/**
* 尝试初始化
*
* @return
*/
@PostConstruct
public void init() {
Long num = cache.incr(KEY);
long dataCenter = num / 32;
long workedId = num % 32;
//如果数据中心大于32则抹除缓存从头开始
if (dataCenter >= 32) {
cache.remove(KEY);
num = cache.incr(KEY);
dataCenter = num / 32;
workedId = num % 32;
}
SnowFlake.initialize(workedId, dataCenter);
}
public static void main(String[] args) {
SnowFlake.initialize(0, 8);
System.out.println(SnowFlake.getId());
}
}

View File

@ -87,7 +87,7 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
this.remove(queryWrapper); this.remove(queryWrapper);
throw new NoPermissionException("未绑定用户"); throw new NoPermissionException("未绑定用户");
} }
return memberTokenGenerate.createToken(member.getUsername(), longTerm); return memberTokenGenerate.createToken(member, longTerm);
} catch (NoPermissionException e) { } catch (NoPermissionException e) {
throw e; throw e;
} }
@ -222,7 +222,7 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
//如果不存在会员则进行绑定微信openid unionid并且登录 //如果不存在会员则进行绑定微信openid unionid并且登录
if (member != null) { if (member != null) {
bindMpMember(openId, unionId, member); bindMpMember(openId, unionId, member);
return memberTokenGenerate.createToken(member.getUsername(), true); return memberTokenGenerate.createToken(member, true);
} }
//如果没有会员则根据手机号注册会员 //如果没有会员则根据手机号注册会员
@ -230,7 +230,7 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
memberService.save(newMember); memberService.save(newMember);
newMember = memberService.findByUsername(newMember.getUsername()); newMember = memberService.findByUsername(newMember.getUsername());
bindMpMember(openId, unionId, newMember); bindMpMember(openId, unionId, newMember);
return memberTokenGenerate.createToken(newMember.getUsername(), true); return memberTokenGenerate.createToken(newMember, true);
} }
@Override @Override

View File

@ -40,7 +40,6 @@ import java.util.Date;
* @since 2020-03-126 18:04:56 * @since 2020-03-126 18:04:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DistributionCashServiceImpl extends ServiceImpl<DistributionCashMapper, DistributionCash> implements DistributionCashService { public class DistributionCashServiceImpl extends ServiceImpl<DistributionCashMapper, DistributionCash> implements DistributionCashService {
/** /**
* 分销员 * 分销员

View File

@ -34,7 +34,6 @@ import java.util.Objects;
* @since 2020-03-24 23:04:56 * @since 2020-03-24 23:04:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DistributionGoodsServiceImpl extends ServiceImpl<DistributionGoodsMapper, DistributionGoods> implements DistributionGoodsService { public class DistributionGoodsServiceImpl extends ServiceImpl<DistributionGoodsMapper, DistributionGoods> implements DistributionGoodsService {
/** /**

View File

@ -42,7 +42,6 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderMapper, DistributionOrder> implements DistributionOrderService { public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderMapper, DistributionOrder> implements DistributionOrderService {
/** /**

View File

@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020-03-24 23:04:56 * @since 2020-03-24 23:04:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DistributionSelectedGoodsServiceImpl extends ServiceImpl<DistributionSelectedGoodsMapper, DistributionSelectedGoods> implements DistributionSelectedGoodsService { public class DistributionSelectedGoodsServiceImpl extends ServiceImpl<DistributionSelectedGoodsMapper, DistributionSelectedGoods> implements DistributionSelectedGoodsService {
/** /**

View File

@ -38,7 +38,6 @@ import java.util.concurrent.TimeUnit;
* @since 2020-03-14 23:04:56 * @since 2020-03-14 23:04:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DistributionServiceImpl extends ServiceImpl<DistributionMapper, Distribution> implements DistributionService { public class DistributionServiceImpl extends ServiceImpl<DistributionMapper, Distribution> implements DistributionService {
/** /**

View File

@ -29,7 +29,6 @@ import java.util.List;
* @since 2020/11/26 17:50 * @since 2020/11/26 17:50
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements FileService { public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements FileService {
@Autowired @Autowired

View File

@ -4,7 +4,11 @@ package cn.lili.modules.goods.service;
import cn.lili.modules.goods.entity.dos.Category; import cn.lili.modules.goods.entity.dos.Category;
import cn.lili.modules.goods.entity.vos.CategoryVO; import cn.lili.modules.goods.entity.vos.CategoryVO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import java.io.Serializable;
import java.util.List; import java.util.List;
/** /**
@ -13,6 +17,7 @@ import java.util.List;
* @author pikachu * @author pikachu
* @since 2020-03-02 16:44:56 * @since 2020-03-02 16:44:56
*/ */
@CacheConfig(cacheNames = "{category}")
public interface CategoryService extends IService<Category> { public interface CategoryService extends IService<Category> {
@ -25,6 +30,15 @@ public interface CategoryService extends IService<Category> {
*/ */
List<Category> dbList(String parentId); List<Category> dbList(String parentId);
/**
* 获取分类
*
* @param id
* @return
*/
@Cacheable(key = "#id")
Category getCategoryById(String id);
/** /**
* 根据分类id集合获取所有分类根据层级排序 * 根据分类id集合获取所有分类根据层级排序
* *
@ -86,6 +100,7 @@ public interface CategoryService extends IService<Category> {
* @param category 商品分类信息 * @param category 商品分类信息
* @return 修改结果 * @return 修改结果
*/ */
@CacheEvict(key = "#category.id")
void updateCategory(Category category); void updateCategory(Category category);
/** /**

View File

@ -34,7 +34,6 @@ import java.util.stream.Collectors;
* @since 2020-02-18 16:18:56 * @since 2020-02-18 16:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class BrandServiceImpl extends ServiceImpl<BrandMapper, Brand> implements BrandService { public class BrandServiceImpl extends ServiceImpl<BrandMapper, Brand> implements BrandService {
/** /**

View File

@ -20,7 +20,6 @@ import java.util.List;
* @since 2020-02-18 16:18:56 * @since 2020-02-18 16:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class CategoryBrandServiceImpl extends ServiceImpl<CategoryBrandMapper, CategoryBrand> implements CategoryBrandService { public class CategoryBrandServiceImpl extends ServiceImpl<CategoryBrandMapper, CategoryBrand> implements CategoryBrandService {
@Override @Override

View File

@ -37,7 +37,6 @@ import java.util.stream.Collectors;
* 2020-03-02 16:45:03 * 2020-03-02 16:45:03
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class CategoryParameterGroupServiceImpl extends ServiceImpl<CategoryParameterGroupMapper, CategoryParameterGroup> implements CategoryParameterGroupService { public class CategoryParameterGroupServiceImpl extends ServiceImpl<CategoryParameterGroupMapper, CategoryParameterGroup> implements CategoryParameterGroupService {
/** /**
* 商品参数 * 商品参数

View File

@ -36,7 +36,6 @@ import java.util.stream.Collectors;
* @since 2020-02-23 15:18:56 * @since 2020-02-23 15:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService { public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService {
private static final String DELETE_FLAG_COLUMN = "delete_flag"; private static final String DELETE_FLAG_COLUMN = "delete_flag";
@ -60,6 +59,11 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
return this.list(new LambdaQueryWrapper<Category>().eq(Category::getParentId, parentId)); return this.list(new LambdaQueryWrapper<Category>().eq(Category::getParentId, parentId));
} }
@Override
public Category getCategoryById(String id) {
return this.getById(id);
}
/** /**
* 根据分类id集合获取所有分类根据层级排序 * 根据分类id集合获取所有分类根据层级排序
* *

View File

@ -18,7 +18,6 @@ import java.util.List;
* @since 2020-02-23 15:18:56 * @since 2020-02-23 15:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class CategorySpecificationServiceImpl extends ServiceImpl<CategorySpecificationMapper, CategorySpecification> implements CategorySpecificationService { public class CategorySpecificationServiceImpl extends ServiceImpl<CategorySpecificationMapper, CategorySpecification> implements CategorySpecificationService {
@Override @Override

View File

@ -33,7 +33,6 @@ import java.util.*;
* @since 2020/12/19 * @since 2020/12/19
**/ **/
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DraftGoodsServiceImpl extends ServiceImpl<DraftGoodsMapper, DraftGoods> implements DraftGoodsService { public class DraftGoodsServiceImpl extends ServiceImpl<DraftGoodsMapper, DraftGoods> implements DraftGoodsService {
/** /**
* 分类 * 分类

View File

@ -27,7 +27,6 @@ import java.util.List;
* 2020-02-23 15:18:56 * 2020-02-23 15:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class GoodsGalleryServiceImpl extends ServiceImpl<GoodsGalleryMapper, GoodsGallery> implements GoodsGalleryService { public class GoodsGalleryServiceImpl extends ServiceImpl<GoodsGalleryMapper, GoodsGallery> implements GoodsGalleryService {
/** /**
* 设置 * 设置

View File

@ -63,7 +63,6 @@ import java.util.*;
* @since 2020-02-23 15:18:56 * @since 2020-02-23 15:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements GoodsService { public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements GoodsService {

View File

@ -63,7 +63,6 @@ import java.util.stream.Collectors;
* @since 2020-02-23 15:18:56 * @since 2020-02-23 15:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> implements GoodsSkuService { public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> implements GoodsSkuService {
/** /**

View File

@ -14,6 +14,5 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/10/15 * @since 2020/10/15
**/ **/
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class GoodsWordsServiceImpl extends ServiceImpl<GoodsWordsMapper, GoodsWords> implements GoodsWordsService { public class GoodsWordsServiceImpl extends ServiceImpl<GoodsWordsMapper, GoodsWords> implements GoodsWordsService {
} }

View File

@ -30,7 +30,6 @@ import java.util.List;
* @since 2020-03-07 16:18:56 * @since 2020-03-07 16:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class StoreGoodsLabelServiceImpl extends ServiceImpl<StoreGoodsLabelMapper, StoreGoodsLabel> implements StoreGoodsLabelService { public class StoreGoodsLabelServiceImpl extends ServiceImpl<StoreGoodsLabelMapper, StoreGoodsLabel> implements StoreGoodsLabelService {
/** /**

View File

@ -34,8 +34,9 @@ public interface FootprintMapper extends BaseMapper<FootPrint> {
* *
* @param memberId 会员ID * @param memberId 会员ID
*/ */
@Delete("DELETE FROM li_foot_print WHERE (SELECT COUNT(b.id) FROM ( SELECT * FROM li_foot_print WHERE member_id = #{memberId} ) b) >100 " + @Delete("DELETE FROM li_foot_print l1 WHERE l1.id IN (" +
" AND id =(SELECT a.id FROM ( SELECT * FROM li_foot_print WHERE member_id = #{memberId} ORDER BY create_time ASC LIMIT 1 ) AS a)") "SELECT l2.id FROM (" +
"SELECT l3.id FROM li_foot_print l3 WHERE l3.member_id=${memberId} ORDER BY id DESC LIMIT 100,100) l2)")
void deleteLastFootPrint(String memberId); void deleteLastFootPrint(String memberId);
} }

View File

@ -27,7 +27,6 @@ import java.util.Objects;
* @since 2020/11/18 10:46 上午 * @since 2020/11/18 10:46 上午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class FootprintServiceImpl extends ServiceImpl<FootprintMapper, FootPrint> implements FootprintService { public class FootprintServiceImpl extends ServiceImpl<FootprintMapper, FootPrint> implements FootprintService {
/** /**

View File

@ -26,7 +26,6 @@ import java.util.Optional;
* @since 2020/11/18 2:25 下午 * @since 2020/11/18 2:25 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class GoodsCollectionServiceImpl extends ServiceImpl<GoodsCollectionMapper, GoodsCollection> implements GoodsCollectionService { public class GoodsCollectionServiceImpl extends ServiceImpl<GoodsCollectionMapper, GoodsCollection> implements GoodsCollectionService {

View File

@ -23,7 +23,6 @@ import java.util.Objects;
* @since 2020/11/18 9:44 上午 * @since 2020/11/18 9:44 上午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class MemberAddressServiceImpl extends ServiceImpl<MemberAddressMapper, MemberAddress> implements MemberAddressService { public class MemberAddressServiceImpl extends ServiceImpl<MemberAddressMapper, MemberAddress> implements MemberAddressService {
@Override @Override

View File

@ -56,7 +56,6 @@ import java.util.Map;
* @since 2020-02-25 14:10:16 * @since 2020-02-25 14:10:16
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMapper, MemberEvaluation> implements MemberEvaluationService { public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMapper, MemberEvaluation> implements MemberEvaluationService {
/** /**

View File

@ -17,6 +17,7 @@ import cn.lili.common.security.token.Token;
import cn.lili.common.sensitive.SensitiveWordsFilter; import cn.lili.common.sensitive.SensitiveWordsFilter;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.common.utils.CookieUtil; import cn.lili.common.utils.CookieUtil;
import cn.lili.common.utils.SnowFlake;
import cn.lili.common.utils.UuidUtils; import cn.lili.common.utils.UuidUtils;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.connect.config.ConnectAuthEnum; import cn.lili.modules.connect.config.ConnectAuthEnum;
@ -62,7 +63,6 @@ import java.util.Objects;
* @since 2021-03-29 14:10:16 * @since 2021-03-29 14:10:16
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements MemberService { public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements MemberService {
/** /**
@ -143,7 +143,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
throw new ServiceException(ResultCode.USER_PASSWORD_ERROR); throw new ServiceException(ResultCode.USER_PASSWORD_ERROR);
} }
loginBindUser(member); loginBindUser(member);
return memberTokenGenerate.createToken(member.getUsername(), false); return memberTokenGenerate.createToken(member, false);
} }
@Override @Override
@ -168,7 +168,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
throw new ServiceException(ResultCode.USER_NOT_EXIST); throw new ServiceException(ResultCode.USER_NOT_EXIST);
} }
return storeTokenGenerate.createToken(member.getUsername(), false); return storeTokenGenerate.createToken(member, false);
} }
/** /**
@ -196,12 +196,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
String username = UuidUtils.getUUID(); String username = UuidUtils.getUUID();
Member member = new Member(username, UuidUtils.getUUID(), authUser.getAvatar(), authUser.getNickname(), Member member = new Member(username, UuidUtils.getUUID(), authUser.getAvatar(), authUser.getNickname(),
authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0); authUser.getGender() != null ? Convert.toInt(authUser.getGender().getCode()) : 0);
//保存会员 registerHandler(member);
this.save(member);
Member loadMember = this.findByUsername(username);
//绑定登录方式 //绑定登录方式
loginBindUser(loadMember, authUser.getUuid(), authUser.getSource()); loginBindUser(member, authUser.getUuid(), authUser.getSource());
return memberTokenGenerate.createToken(username, false); return memberTokenGenerate.createToken(member, false);
} catch (ServiceException e) { } catch (ServiceException e) {
log.error("自动注册服务泡出异常:", e); log.error("自动注册服务泡出异常:", e);
throw e; throw e;
@ -235,13 +233,23 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
//如果手机号不存在则自动注册用户 //如果手机号不存在则自动注册用户
if (member == null) { if (member == null) {
member = new Member(mobilePhone, UuidUtils.getUUID(), mobilePhone); member = new Member(mobilePhone, UuidUtils.getUUID(), mobilePhone);
//保存会员 registerHandler(member);
this.save(member);
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_REGISTER.name();
rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback());
} }
loginBindUser(member); loginBindUser(member);
return memberTokenGenerate.createToken(member.getUsername(), false); return memberTokenGenerate.createToken(member, false);
}
/**
* 注册方法抽象
*
* @param member
*/
private void registerHandler(Member member) {
member.setId(SnowFlake.getIdStr());
//保存会员
this.save(member);
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_REGISTER.name();
rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback());
} }
@Override @Override
@ -281,13 +289,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
//设置会员信息 //设置会员信息
Member member = new Member(userName, new BCryptPasswordEncoder().encode(password), mobilePhone); Member member = new Member(userName, new BCryptPasswordEncoder().encode(password), mobilePhone);
//注册成功后用户自动登录 //注册成功后用户自动登录
if (this.save(member)) { registerHandler(member);
Token token = memberTokenGenerate.createToken(member.getUsername(), false); Token token = memberTokenGenerate.createToken(member, false);
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_REGISTER.name(); return token;
rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback());
return token;
}
return null;
} }
@Override @Override
@ -331,9 +335,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
//添加会员 //添加会员
Member member = new Member(memberAddDTO.getUsername(), new BCryptPasswordEncoder().encode(memberAddDTO.getPassword()), memberAddDTO.getMobile()); Member member = new Member(memberAddDTO.getUsername(), new BCryptPasswordEncoder().encode(memberAddDTO.getPassword()), memberAddDTO.getMobile());
this.save(member); registerHandler(member);
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_REGISTER.name();
rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback());
return member; return member;
} }
@ -430,10 +432,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
* @param mobilePhone 手机号 * @param mobilePhone 手机号
* @return 会员 * @return 会员
*/ */
private Member findByPhone(String mobilePhone) { private Long findMember(String mobilePhone, String userName) {
QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("mobile", mobilePhone); queryWrapper.eq("mobile", mobilePhone)
return this.baseMapper.selectOne(queryWrapper); .or().eq("username", userName);
return this.baseMapper.selectCount(queryWrapper);
} }
/** /**
@ -599,13 +602,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
* @param mobilePhone 手机号 * @param mobilePhone 手机号
*/ */
private void checkMember(String userName, String mobilePhone) { private void checkMember(String userName, String mobilePhone) {
//判断用户名是否存在
if (findByUsername(userName) != null) {
throw new ServiceException(ResultCode.USER_NAME_EXIST);
}
//判断手机号是否存在 //判断手机号是否存在
if (findByPhone(mobilePhone) != null) { if (findMember(userName, mobilePhone) > 0) {
throw new ServiceException(ResultCode.USER_PHONE_EXIST); throw new ServiceException(ResultCode.USER_EXIST);
} }
} }
} }

View File

@ -1,5 +1,6 @@
package cn.lili.modules.member.token; package cn.lili.modules.member.token;
import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.security.token.Token; import cn.lili.common.security.token.Token;
@ -9,6 +10,9 @@ import cn.lili.common.context.ThreadContextHolder;
import cn.lili.common.enums.ClientTypeEnum; import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -22,17 +26,17 @@ import java.util.Date;
* @since 2020/11/16 10:50 * @since 2020/11/16 10:50
*/ */
@Component @Component
public class MemberTokenGenerate extends AbstractTokenGenerate { public class MemberTokenGenerate extends AbstractTokenGenerate<Member> {
@Autowired
private MemberService memberService;
@Autowired @Autowired
private TokenUtil tokenUtil; private TokenUtil tokenUtil;
@Autowired
private RocketmqCustomProperties rocketmqCustomProperties;
@Autowired
private RocketMQTemplate rocketMQTemplate;
@Override @Override
public Token createToken(String username, Boolean longTerm) { public Token createToken(Member member, Boolean longTerm) {
Member member = memberService.findByUsername(username);
//获取客户端类型 //获取客户端类型
String clientType = ThreadContextHolder.getHttpRequest().getHeader("clientType"); String clientType = ThreadContextHolder.getHttpRequest().getHeader("clientType");
@ -50,11 +54,12 @@ public class MemberTokenGenerate extends AbstractTokenGenerate {
//记录最后登录时间客户端类型 //记录最后登录时间客户端类型
member.setLastLoginDate(new Date()); member.setLastLoginDate(new Date());
member.setClientEnum(clientTypeEnum.name()); member.setClientEnum(clientTypeEnum.name());
memberService.updateById(member); String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_LOGIN.name();
rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback());
AuthUser authUser = new AuthUser(member.getUsername(), member.getId(), member.getNickName(), member.getFace(), UserEnums.MEMBER); AuthUser authUser = new AuthUser(member.getUsername(), member.getId(), member.getNickName(), member.getFace(), UserEnums.MEMBER);
//登陆成功生成token //登陆成功生成token
return tokenUtil.createToken(username, authUser, longTerm, UserEnums.MEMBER); return tokenUtil.createToken(member.getUsername(), authUser, longTerm, UserEnums.MEMBER);
} }
@Override @Override

View File

@ -23,29 +23,25 @@ import org.springframework.stereotype.Component;
* @since 2020/11/16 10:51 * @since 2020/11/16 10:51
*/ */
@Component @Component
public class StoreTokenGenerate extends AbstractTokenGenerate { public class StoreTokenGenerate extends AbstractTokenGenerate<Member> {
@Autowired
private MemberService memberService;
@Autowired @Autowired
private StoreService storeService; private StoreService storeService;
@Autowired @Autowired
private TokenUtil tokenUtil; private TokenUtil tokenUtil;
@Override @Override
public Token createToken(String username, Boolean longTerm) { public Token createToken(Member member, Boolean longTerm) {
//生成token
Member member = memberService.findByUsername(username);
if (!member.getHaveStore()) { if (!member.getHaveStore()) {
throw new ServiceException(ResultCode.STORE_NOT_OPEN); throw new ServiceException(ResultCode.STORE_NOT_OPEN);
} }
LambdaQueryWrapper<Store> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Store> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Store::getMemberId, member.getId()); queryWrapper.eq(Store::getMemberId, member.getId());
Store store = storeService.getOne(queryWrapper); Store store = storeService.getOne(queryWrapper);
AuthUser user = new AuthUser(member.getUsername(), member.getId(), member.getNickName(), store.getStoreLogo(), UserEnums.STORE); AuthUser authUser = new AuthUser(member.getUsername(), member.getId(), member.getNickName(), store.getStoreLogo(), UserEnums.STORE);
user.setStoreId(store.getId()); authUser.setStoreId(store.getId());
user.setStoreName(store.getStoreName()); authUser.setStoreName(store.getStoreName());
return tokenUtil.createToken(username, user, longTerm, UserEnums.STORE); return tokenUtil.createToken(member.getUsername(), authUser, longTerm, UserEnums.STORE);
} }
@Override @Override

View File

@ -23,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/11/17 3:48 下午 * @since 2020/11/17 3:48 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements MessageService { public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements MessageService {
@Autowired @Autowired

View File

@ -16,7 +16,6 @@ import java.util.List;
* @author Chopper * @author Chopper
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class ShortLinkServiceImpl extends ServiceImpl<ShortLinkMapper, ShortLink> implements ShortLinkService { public class ShortLinkServiceImpl extends ServiceImpl<ShortLinkMapper, ShortLink> implements ShortLinkService {
@Override @Override

View File

@ -18,7 +18,6 @@ import java.util.List;
* @since 2020/11/17 7:37 下午 * @since 2020/11/17 7:37 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class AfterSaleLogServiceImpl extends ServiceImpl<AfterSaleLogMapper, AfterSaleLog> implements AfterSaleLogService { public class AfterSaleLogServiceImpl extends ServiceImpl<AfterSaleLogMapper, AfterSaleLog> implements AfterSaleLogService {
@Override @Override

View File

@ -19,7 +19,6 @@ import java.util.List;
* @since 2020/11/17 7:38 下午 * @since 2020/11/17 7:38 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class AfterSaleReasonServiceImpl extends ServiceImpl<AfterSaleReasonMapper, AfterSaleReason> implements AfterSaleReasonService { public class AfterSaleReasonServiceImpl extends ServiceImpl<AfterSaleReasonMapper, AfterSaleReason> implements AfterSaleReasonService {

View File

@ -65,7 +65,6 @@ import java.util.stream.Collectors;
* @since 2020/11/17 7:38 下午 * @since 2020/11/17 7:38 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale> implements AfterSaleService { public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale> implements AfterSaleService {
/** /**

View File

@ -106,6 +106,7 @@ public class TradeDTO implements Serializable {
*/ */
private MemberAddress memberAddress; private MemberAddress memberAddress;
/** /**
* 客户端类型 * 客户端类型
*/ */

View File

@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -85,19 +86,17 @@ public class TradeBuilder {
* 1.构造交易 * 1.构造交易
* 2.创建交易 * 2.创建交易
* *
* @param checkedWay 购物车类 * @param tradeDTO 交易模
* @return 交易信息 * @return 交易信息
*/ */
public Trade createTrade(CartTypeEnum checkedWay) { public Trade createTrade(TradeDTO tradeDTO) {
//读取对应购物车的商品信息
TradeDTO tradeDTO = cartService.readDTO(checkedWay);
//需要对购物车渲染 //需要对购物车渲染
if (isSingle(checkedWay)) { if (isSingle(tradeDTO.getCartTypeEnum())) {
renderCartBySteps(tradeDTO, RenderStepStatement.singleTradeRender); renderCartBySteps(tradeDTO, RenderStepStatement.singleTradeRender);
} else if (checkedWay.equals(CartTypeEnum.PINTUAN)) { } else if (tradeDTO.getCartTypeEnum().equals(CartTypeEnum.PINTUAN)) {
renderCartBySteps(tradeDTO, RenderStepStatement.pintuanTradeRender); renderCartBySteps(tradeDTO, RenderStepStatement.pintuanTradeRender);
} else { } else {
renderCartBySteps(tradeDTO, RenderStepStatement.tradeRender); renderCartBySteps(tradeDTO, RenderStepStatement.tradeRender);
} }

View File

@ -66,7 +66,7 @@ public class CommissionRender implements CartRenderStep {
String categoryId = cartSkuVO.getGoodsSku().getCategoryPath() String categoryId = cartSkuVO.getGoodsSku().getCategoryPath()
.substring(cartSkuVO.getGoodsSku().getCategoryPath().lastIndexOf(",") + 1); .substring(cartSkuVO.getGoodsSku().getCategoryPath().lastIndexOf(",") + 1);
if (CharSequenceUtil.isNotEmpty(categoryId)) { if (CharSequenceUtil.isNotEmpty(categoryId)) {
Double commissionRate = categoryService.getById(categoryId).getCommissionRate(); Double commissionRate = categoryService.getCategoryById(categoryId).getCommissionRate();
priceDetailDTO.setPlatFormCommissionPoint(commissionRate); priceDetailDTO.setPlatFormCommissionPoint(commissionRate);
} }

View File

@ -537,10 +537,8 @@ public class CartServiceImpl implements CartService {
if (tradeDTO.getMemberAddress() == null) { if (tradeDTO.getMemberAddress() == null) {
throw new ServiceException(ResultCode.MEMBER_ADDRESS_NOT_EXIST); throw new ServiceException(ResultCode.MEMBER_ADDRESS_NOT_EXIST);
} }
//将购物车信息写入缓存后续逻辑调用校验
this.resetTradeDTO(tradeDTO);
//构建交易 //构建交易
Trade trade = tradeBuilder.createTrade(cartTypeEnum); Trade trade = tradeBuilder.createTrade(tradeDTO);
this.cleanChecked(tradeDTO); this.cleanChecked(tradeDTO);
return trade; return trade;
} }

View File

@ -24,7 +24,6 @@ import java.util.List;
* @since 2020/11/17 7:38 下午 * @since 2020/11/17 7:38 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem> implements OrderItemService { public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem> implements OrderItemService {
@Override @Override

View File

@ -30,7 +30,6 @@ import java.util.List;
* @since 2020/11/17 7:36 下午 * @since 2020/11/17 7:36 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class OrderPriceServiceImpl implements OrderPriceService { public class OrderPriceServiceImpl implements OrderPriceService {
/** /**

View File

@ -85,7 +85,6 @@ import java.util.stream.Collectors;
* @since 2020/11/17 7:38 下午 * @since 2020/11/17 7:38 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService { public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
private static final String ORDER_SN_COLUMN = "order_sn"; private static final String ORDER_SN_COLUMN = "order_sn";
@ -145,6 +144,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
private TradeService tradeService; private TradeService tradeService;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void intoDB(TradeDTO tradeDTO) { public void intoDB(TradeDTO tradeDTO) {
//检查TradeDTO信息 //检查TradeDTO信息
checkTradeDTO(tradeDTO); checkTradeDTO(tradeDTO);

View File

@ -44,7 +44,6 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class StoreFlowServiceImpl extends ServiceImpl<StoreFlowMapper, StoreFlow> implements StoreFlowService { public class StoreFlowServiceImpl extends ServiceImpl<StoreFlowMapper, StoreFlow> implements StoreFlowService {
/** /**

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,6 @@ import java.util.List;
* @since 2020-05-5 15:10:16 * @since 2020-05-5 15:10:16
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class ArticleCategoryServiceImpl extends ServiceImpl<ArticleCategoryMapper, ArticleCategory> implements ArticleCategoryService { public class ArticleCategoryServiceImpl extends ServiceImpl<ArticleCategoryMapper, ArticleCategory> implements ArticleCategoryService {
/** /**

View File

@ -30,7 +30,6 @@ import java.util.List;
* @since 2020/11/18 11:40 上午 * @since 2020/11/18 11:40 上午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class ArticleServiceImpl extends ServiceImpl<ArticleMapper, Article> implements ArticleService { public class ArticleServiceImpl extends ServiceImpl<ArticleMapper, Article> implements ArticleService {
@Override @Override

View File

@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/11/18 11:40 上午 * @since 2020/11/18 11:40 上午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> implements FeedbackService { public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> implements FeedbackService {
} }

View File

@ -19,7 +19,6 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class PaymentServiceImpl implements PaymentService { public class PaymentServiceImpl implements PaymentService {
@Autowired @Autowired

View File

@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020-12-19 09:25 * @since 2020-12-19 09:25
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class RefundLogServiceImpl extends ServiceImpl<RefundLogMapper, RefundLog> implements RefundLogService { public class RefundLogServiceImpl extends ServiceImpl<RefundLogMapper, RefundLog> implements RefundLogService {
@Override @Override

View File

@ -42,7 +42,6 @@ import java.util.stream.Collectors;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser> implements AdminUserService { public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser> implements AdminUserService {
@Autowired @Autowired
private UserRoleService userRoleService; private UserRoleService userRoleService;
@ -119,7 +118,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
throw new ServiceException(ResultCode.USER_PASSWORD_ERROR); throw new ServiceException(ResultCode.USER_PASSWORD_ERROR);
} }
try { try {
return managerTokenGenerate.createToken(username, false); return managerTokenGenerate.createToken(adminUser, false);
} catch (Exception e) { } catch (Exception e) {
log.error("管理员登录错误", e); log.error("管理员登录错误", e);
} }

View File

@ -17,7 +17,6 @@ import java.util.List;
* @since 2020/11/22 12:08 * @since 2020/11/22 12:08
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DepartmentRoleServiceImpl extends ServiceImpl<DepartmentRoleMapper, DepartmentRole> implements DepartmentRoleService { public class DepartmentRoleServiceImpl extends ServiceImpl<DepartmentRoleMapper, DepartmentRole> implements DepartmentRoleService {

View File

@ -27,7 +27,6 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService { public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService {
/** /**

View File

@ -26,7 +26,6 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements RoleMenuService { public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements RoleMenuService {
/** /**

View File

@ -23,7 +23,6 @@ import java.util.List;
* @since 2020/11/17 3:50 下午 * @since 2020/11/17 3:50 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService { public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
/** /**

View File

@ -34,7 +34,6 @@ import java.util.stream.Collectors;
* @since 2020/11/17 3:45 下午 * @since 2020/11/17 3:45 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class SystemLogServiceImpl implements SystemLogService { public class SystemLogServiceImpl implements SystemLogService {
@Autowired @Autowired

View File

@ -20,7 +20,6 @@ import java.util.List;
* @since 2020/11/17 3:52 下午 * @since 2020/11/17 3:52 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService { public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService {
@Override @Override

View File

@ -31,7 +31,6 @@ import java.util.*;
* @author paulG * @author paulG
* @since 2021/11/30 * @since 2021/11/30
**/ **/
@Transactional(rollbackFor = Exception.class)
public abstract class AbstractPromotionsServiceImpl<M extends BaseMapper<T>, T extends BasePromotions> extends ServiceImpl<M, T> implements AbstractPromotionsService<T> { public abstract class AbstractPromotionsServiceImpl<M extends BaseMapper<T>, T extends BasePromotions> extends ServiceImpl<M, T> implements AbstractPromotionsService<T> {
/** /**

View File

@ -42,7 +42,6 @@ import java.util.stream.Collectors;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMapper, Coupon> implements CouponService { public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMapper, Coupon> implements CouponService {
/** /**

View File

@ -33,7 +33,6 @@ import java.util.List;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class FullDiscountServiceImpl extends AbstractPromotionsServiceImpl<FullDiscountMapper, FullDiscount> implements FullDiscountService { public class FullDiscountServiceImpl extends AbstractPromotionsServiceImpl<FullDiscountMapper, FullDiscount> implements FullDiscountService {
/** /**

View File

@ -43,7 +43,6 @@ import java.util.List;
* @since 2021/7/1 * @since 2021/7/1
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImpl<KanJiaActivityGoodsMapper, KanjiaActivityGoods> implements KanjiaActivityGoodsService { public class KanjiaActivityGoodsServiceImpl extends AbstractPromotionsServiceImpl<KanJiaActivityGoodsMapper, KanjiaActivityGoods> implements KanjiaActivityGoodsService {
/** /**

View File

@ -33,7 +33,6 @@ import org.springframework.transaction.annotation.Transactional;
* @date 2021/7/1 * @date 2021/7/1
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class KanjiaActivityLogServiceImpl extends ServiceImpl<KanJiaActivityLogMapper, KanjiaActivityLog> implements KanjiaActivityLogService { public class KanjiaActivityLogServiceImpl extends ServiceImpl<KanJiaActivityLogMapper, KanjiaActivityLog> implements KanjiaActivityLogService {
@Autowired @Autowired

View File

@ -48,7 +48,6 @@ import java.util.Objects;
* @since 2021/7/1 * @since 2021/7/1
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class KanjiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper, KanjiaActivity> implements KanjiaActivityService { public class KanjiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper, KanjiaActivity> implements KanjiaActivityService {
@Autowired @Autowired

View File

@ -40,7 +40,6 @@ import java.util.*;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
@CacheConfig(cacheNames = "{MemberCoupon}") @CacheConfig(cacheNames = "{MemberCoupon}")
public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, MemberCoupon> implements MemberCouponService { public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, MemberCoupon> implements MemberCouponService {

View File

@ -47,7 +47,6 @@ import java.util.List;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class PintuanServiceImpl extends AbstractPromotionsServiceImpl<PintuanMapper, Pintuan> implements PintuanService { public class PintuanServiceImpl extends AbstractPromotionsServiceImpl<PintuanMapper, Pintuan> implements PintuanService {
/** /**

View File

@ -21,7 +21,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/8/21 * @since 2020/8/21
**/ **/
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class PointsGoodsCategoryServiceImpl extends ServiceImpl<PointsGoodsCategoryMapper, PointsGoodsCategory> implements PointsGoodsCategoryService { public class PointsGoodsCategoryServiceImpl extends ServiceImpl<PointsGoodsCategoryMapper, PointsGoodsCategory> implements PointsGoodsCategoryService {
/** /**

View File

@ -37,7 +37,6 @@ import java.util.*;
* @since 2020/8/21 * @since 2020/8/21
**/ **/
@Service @Service
@Transactional(rollbackFor = Exception.class)
@Slf4j @Slf4j
public class PointsGoodsServiceImpl extends AbstractPromotionsServiceImpl<PointsGoodsMapper, PointsGoods> implements PointsGoodsService { public class PointsGoodsServiceImpl extends AbstractPromotionsServiceImpl<PointsGoodsMapper, PointsGoods> implements PointsGoodsService {

View File

@ -41,7 +41,6 @@ import java.util.List;
* @since 2021/3/18 9:22 上午 * @since 2021/3/18 9:22 上午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper, PromotionGoods> implements PromotionGoodsService { public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper, PromotionGoods> implements PromotionGoodsService {
private static final String SKU_ID_COLUMN = "sku_id"; private static final String SKU_ID_COLUMN = "sku_id";

View File

@ -26,7 +26,6 @@ import java.util.Map;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class PromotionServiceImpl implements PromotionService { public class PromotionServiceImpl implements PromotionService {
/** /**
* 秒杀 * 秒杀

View File

@ -48,7 +48,6 @@ import java.util.stream.Collectors;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
@Slf4j @Slf4j
public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, SeckillApply> implements SeckillApplyService { public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, SeckillApply> implements SeckillApplyService {

View File

@ -50,7 +50,6 @@ import java.util.Map;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
@Slf4j @Slf4j
public class SeckillServiceImpl extends AbstractPromotionsServiceImpl<SeckillMapper, Seckill> implements SeckillService { public class SeckillServiceImpl extends AbstractPromotionsServiceImpl<SeckillMapper, Seckill> implements SeckillService {

View File

@ -37,8 +37,6 @@ public class PageViewInterceptor {
@Autowired @Autowired
private Cache cache; private Cache cache;
@Autowired
private HttpServletRequest request;
@AfterReturning(returning = "rvt", pointcut = "@annotation(cn.lili.modules.statistics.aop.PageViewPoint)") @AfterReturning(returning = "rvt", pointcut = "@annotation(cn.lili.modules.statistics.aop.PageViewPoint)")

View File

@ -22,7 +22,6 @@ import java.util.Objects;
* @since 2020/11/17 4:28 下午 * @since 2020/11/17 4:28 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class BillStatisticsServiceImpl extends ServiceImpl<BillStatisticsMapper, Bill> implements BillStatisticsService { public class BillStatisticsServiceImpl extends ServiceImpl<BillStatisticsMapper, Bill> implements BillStatisticsService {

View File

@ -18,7 +18,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020-03-126 18:04:56 * @since 2020-03-126 18:04:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class DistributionCashStatisticsServiceImpl extends ServiceImpl<DistributionCashStatisticsMapper, DistributionCash> public class DistributionCashStatisticsServiceImpl extends ServiceImpl<DistributionCashStatisticsMapper, DistributionCash>
implements DistributionCashStatisticsService { implements DistributionCashStatisticsService {

View File

@ -24,7 +24,6 @@ import java.util.Objects;
* @since 2020-02-25 14:10:16 * @since 2020-02-25 14:10:16
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class MemberEvaluationStatisticsServiceImpl extends ServiceImpl<MemberEvaluationStatisticsMapper, MemberEvaluation> implements MemberEvaluationStatisticsService { public class MemberEvaluationStatisticsServiceImpl extends ServiceImpl<MemberEvaluationStatisticsMapper, MemberEvaluation> implements MemberEvaluationStatisticsService {

View File

@ -18,7 +18,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/8/21 * @since 2020/8/21
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class SeckillStatisticsServiceImpl extends ServiceImpl<SeckillStatisticsMapper, Seckill> implements SeckillStatisticsService { public class SeckillStatisticsServiceImpl extends ServiceImpl<SeckillStatisticsMapper, Seckill> implements SeckillStatisticsService {

View File

@ -5,6 +5,9 @@ import cn.lili.modules.store.entity.dos.FreightTemplate;
import cn.lili.modules.store.entity.vos.FreightTemplateVO; import cn.lili.modules.store.entity.vos.FreightTemplateVO;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import java.util.List; import java.util.List;
@ -14,6 +17,7 @@ import java.util.List;
* @author Bulbasaur * @author Bulbasaur
* @since 2020-03-07 09:24:33 * @since 2020-03-07 09:24:33
*/ */
@CacheConfig(cacheNames = "{freightTemplate}")
public interface FreightTemplateService extends IService<FreightTemplate> { public interface FreightTemplateService extends IService<FreightTemplate> {
/** /**
@ -38,6 +42,7 @@ public interface FreightTemplateService extends IService<FreightTemplate> {
* @param id 运费模板ID * @param id 运费模板ID
* @return 运费模板 * @return 运费模板
*/ */
@Cacheable(key = "#id")
FreightTemplateVO getFreightTemplate(String id); FreightTemplateVO getFreightTemplate(String id);
/** /**
@ -55,6 +60,7 @@ public interface FreightTemplateService extends IService<FreightTemplate> {
* @param freightTemplateVO 运费模板 * @param freightTemplateVO 运费模板
* @return 运费模板 * @return 运费模板
*/ */
@CacheEvict(key = "#freightTemplateVO.id")
FreightTemplateVO editFreightTemplate(FreightTemplateVO freightTemplateVO); FreightTemplateVO editFreightTemplate(FreightTemplateVO freightTemplateVO);
/** /**
@ -64,6 +70,7 @@ public interface FreightTemplateService extends IService<FreightTemplate> {
* @param id 运费模板ID * @param id 运费模板ID
* @return 操作状态 * @return 操作状态
*/ */
@CacheEvict(key = "#freightTemplateVO.id")
boolean removeFreightTemplate(String id); boolean removeFreightTemplate(String id);
} }

View File

@ -48,7 +48,6 @@ import java.util.List;
* @since 2020/11/17 4:28 下午 * @since 2020/11/17 4:28 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements BillService { public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements BillService {
/** /**

View File

@ -18,7 +18,6 @@ import java.util.List;
* @since 2020-03-07 09:24:33 * @since 2020-03-07 09:24:33
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class FreightTemplateServiceChildImpl extends ServiceImpl<FreightTemplateChildMapper, FreightTemplateChild> implements FreightTemplateChildService { public class FreightTemplateServiceChildImpl extends ServiceImpl<FreightTemplateChildMapper, FreightTemplateChild> implements FreightTemplateChildService {
@Override @Override

View File

@ -34,7 +34,6 @@ import java.util.List;
* @since 2020/11/22 16:00 * @since 2020/11/22 16:00
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class FreightTemplateServiceImpl extends ServiceImpl<FreightTemplateMapper, FreightTemplate> implements FreightTemplateService { public class FreightTemplateServiceImpl extends ServiceImpl<FreightTemplateMapper, FreightTemplate> implements FreightTemplateService {
/** /**
* 配送子模板 * 配送子模板

View File

@ -19,7 +19,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/11/22 16:00 * @since 2020/11/22 16:00
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class StoreAddressServiceImpl extends ServiceImpl<StoreAddressMapper, StoreAddress> implements StoreAddressService { public class StoreAddressServiceImpl extends ServiceImpl<StoreAddressMapper, StoreAddress> implements StoreAddressService {
@Override @Override

View File

@ -43,7 +43,6 @@ import java.util.*;
* @since 2020-03-07 16:18:56 * @since 2020-03-07 16:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, StoreDetail> implements StoreDetailService { public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, StoreDetail> implements StoreDetailService {
/** /**

View File

@ -42,7 +42,6 @@ import java.util.Optional;
* @since 2020-03-07 16:18:56 * @since 2020-03-07 16:18:56
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements StoreService { public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements StoreService {
/** /**

View File

@ -19,7 +19,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2020/11/17 8:02 下午 * @since 2020/11/17 8:02 下午
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class)
public class AppVersionServiceImpl extends ServiceImpl<AppVersionMapper, AppVersion> implements AppVersionService { public class AppVersionServiceImpl extends ServiceImpl<AppVersionMapper, AppVersion> implements AppVersionService {
@Override @Override

Some files were not shown because too many files have changed in this diff Show More