启动报错

This commit is contained in:
fengtianyangyang 2022-08-09 20:26:40 +08:00
parent 26dd8ed13a
commit 05f29a264e
15 changed files with 117 additions and 277 deletions

View File

@ -7,6 +7,7 @@
Source Host : 192.168.0.116:3306 Source Host : 192.168.0.116:3306
Source Schema : lilishop Source Schema : lilishop
Target Server Type : MySQL Target Server Type : MySQL
Target Server Version : 80023 Target Server Version : 80023
File Encoding : 65001 File Encoding : 65001

View File

@ -16,9 +16,6 @@ spring.mail.username=1814994716@qq.com
spring.mail.password=abcdefg123456!@#$%^ spring.mail.password=abcdefg123456!@#$%^
# 日志文件路径 # 日志文件路径
logging.file.path=lili-logs/admin logging.file.path=lili-logs/admin
<<<<<<< HEAD
lili.data.logstash.server=106.124.130.167:4560 lili.data.logstash.server=106.124.130.167:4560
=======
>>>>>>> ae0c4aea12996d3d72eca7c6ccdc97922373e4d7
# 文件格式 # 文件格式
logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx

View File

@ -29,7 +29,7 @@ spring:
type: redis type: redis
# Redis # Redis
redis: redis:
host: 127.0.0.1 host: 101.43.251.145
port: 6379 port: 6379
password: lilishop password: lilishop
lettuce: lettuce:
@ -60,8 +60,7 @@ spring:
default-datasource: default-datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.116:3306/clerk?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://101.43.251.145:3306/clerk?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&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root username: root
password: lilishop password: lilishop
maxActive: 50 maxActive: 50
@ -270,7 +269,7 @@ lili:
data: data:
elasticsearch: elasticsearch:
cluster-name: elasticsearch cluster-name: elasticsearch
cluster-nodes: 127.0.0.1:9200 cluster-nodes: 101.43.251.145:9200
index: index:
number-of-replicas: 0 number-of-replicas: 0
number-of-shards: 3 number-of-shards: 3
@ -281,7 +280,7 @@ lili:
# password: LiLiShopES # password: LiLiShopES
logstash: logstash:
server: 127.0.0.1:4560 server: 101.43.251.145:4560
rocketmq: rocketmq:
promotion-topic: lili_promotion_topic promotion-topic: lili_promotion_topic
promotion-group: lili_promotion_group promotion-group: lili_promotion_group
@ -302,7 +301,7 @@ lili:
after-sale-topic: lili_after_sale_topic after-sale-topic: lili_after_sale_topic
after-sale-group: lili_after_sale_group after-sale-group: lili_after_sale_group
rocketmq: rocketmq:
name-server: 127.0.0.1:9876 name-server: 101.43.251.145:9876
isVIPChannel: false isVIPChannel: false
producer: producer:
group: lili_group group: lili_group
@ -311,7 +310,7 @@ rocketmq:
xxl: xxl:
job: job:
admin: admin:
addresses: http://127.0.0.1:9001/xxl-job-admin addresses: http://101.43.251.145:9001/xxl-job-admin
executor: executor:
appname: xxl-job-executor-lilishop appname: xxl-job-executor-lilishop
address: address:

View File

@ -473,6 +473,10 @@ public enum CachePrefix {
* 店铺分类 * 店铺分类
*/ */
STORE_CATEGORY, STORE_CATEGORY,
/**
* 用户菜单
*/
MENU_USER_ID,
/** /**
* 用户菜单 * 用户菜单
* <p> * <p>

View File

@ -74,7 +74,7 @@ public class GlobalControllerExceptionHandler {
} }
return ResultUtil.error(ResultCode.ERROR.code(), errorMsg); return ResultUtil.error(ResultCode.ERROR.code(), errorMsg);
} }
/*
@ExceptionHandler(ConstraintViolationException.class) @ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(value = HttpStatus.BAD_REQUEST) @ResponseStatus(value = HttpStatus.BAD_REQUEST)
public ResultMessage<Object> constraintExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) { public ResultMessage<Object> constraintExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) {
@ -82,7 +82,7 @@ public class GlobalControllerExceptionHandler {
log.error("全局异常[RuntimeException]:", e); log.error("全局异常[RuntimeException]:", e);
return ResultUtil.error(001, e.getMessage()); return ResultUtil.error(001, e.getMessage());
} }*/
@ExceptionHandler(RuntimeException.class) @ExceptionHandler(RuntimeException.class)
@ResponseStatus(value = HttpStatus.BAD_REQUEST) @ResponseStatus(value = HttpStatus.BAD_REQUEST)

View File

@ -7,6 +7,7 @@ import cn.hutool.json.JSONUtil;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.modules.goods.entity.dto.GoodsOperationDTO; import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
import cn.lili.modules.goods.entity.dto.GoodsOperationFuLuDTO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsSalesModeEnum; import cn.lili.modules.goods.entity.enums.GoodsSalesModeEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;

View File

@ -59,14 +59,6 @@ public interface GoodsService extends IService<Goods> {
*/ */
void addGoods(GoodsOperationDTO goodsOperationDTO); void addGoods(GoodsOperationDTO goodsOperationDTO);
/**
* 添加福禄商品
*
* @param goodsOperationFuLuDTO 商品查询条件
*/
void fuLuAddGoods(GoodsOperationFuLuDTO goodsOperationFuLuDTO);
/** /**
* 修改商品 * 修改商品
* *
@ -75,14 +67,6 @@ public interface GoodsService extends IService<Goods> {
*/ */
void editGoods(GoodsOperationDTO goodsOperationDTO, String goodsId); void editGoods(GoodsOperationDTO goodsOperationDTO, String goodsId);
/**
* 修改商品
*
* @param goodsOperationDTO 商品查询条件
* @param goodsId 商品ID
*/
void fuLuEditGoods(GoodsOperationFuLuDTO goodsOperationFuLuDTO, String goodsId);
/** /**
* 查询商品VO * 查询商品VO
* *

View File

@ -181,30 +181,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void fuLuAddGoods(GoodsOperationFuLuDTO goodsOperationDTO) {
Goods goods = new Goods(goodsOperationDTO);
//检查商品
this.checkGoods(goods);
//向goods加入图片
if (goodsOperationDTO.getGoodsGalleryList().size() > 0 ) {
this.setGoodsGalleryParam(goodsOperationDTO.getGoodsGalleryList().get(0), goods);
}
//添加商品参数
if (goodsOperationDTO.getGoodsParamsDTOList() != null && !goodsOperationDTO.getGoodsParamsDTOList().isEmpty()) {
//给商品参数填充值
goods.setParams(JSONUtil.toJsonStr(goodsOperationDTO.getGoodsParamsDTOList()));
}
//添加商品
this.save(goods);
//添加商品sku信息
this.goodsSkuService.add(goodsOperationDTO.getSkuList(), goods);
//添加相册
if (goodsOperationDTO.getGoodsGalleryList() != null && !goodsOperationDTO.getGoodsGalleryList().isEmpty()) {
this.goodsGalleryService.add(goodsOperationDTO.getGoodsGalleryList(), goods.getId());
}
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -234,32 +210,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
} }
@Override
public void fuLuEditGoods(GoodsOperationFuLuDTO goodsOperationFuLuDTO, String goodsId) {
Goods goods = new Goods(goodsOperationFuLuDTO);
goods.setId(goodsId);
//检查商品信息
this.checkGoods(goods);
//向goods加入图片
this.setGoodsGalleryParam(goodsOperationFuLuDTO.getGoodsGalleryList().get(0), goods);
//添加商品参数
if (goodsOperationFuLuDTO.getGoodsParamsDTOList() != null && !goodsOperationFuLuDTO.getGoodsParamsDTOList().isEmpty()) {
goods.setParams(JSONUtil.toJsonStr(goodsOperationFuLuDTO.getGoodsParamsDTOList()));
}
//修改商品
this.updateById(goods);
//修改商品sku信息
this.goodsSkuService.update(goodsOperationFuLuDTO.getSkuList(), goods, goodsOperationFuLuDTO.getRegeneratorSkuFlag());
//添加相册
if (goodsOperationFuLuDTO.getGoodsGalleryList() != null && !goodsOperationFuLuDTO.getGoodsGalleryList().isEmpty()) {
this.goodsGalleryService.add(goodsOperationFuLuDTO.getGoodsGalleryList(), goods.getId());
}
if (GoodsAuthEnum.TOBEAUDITED.name().equals(goods.getAuthFlag())) {
this.deleteEsGoods(Collections.singletonList(goodsId));
}
cache.remove(CachePrefix.GOODS.getPrefix() + goodsId);
}
@Override @Override
public GoodsVO getGoodsVO(String goodsId) { public GoodsVO getGoodsVO(String goodsId) {
//缓存获取如果没有则读取缓存 //缓存获取如果没有则读取缓存

View File

@ -4,7 +4,6 @@ import cn.lili.mybatis.BaseIdEntity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -33,8 +32,5 @@ public class StoreClerkRole extends BaseIdEntity {
this.roleId = roleId; this.roleId = roleId;
} }
public StoreClerkRole() {
}
} }

View File

@ -24,6 +24,10 @@ public class ManagerMemberEditDTO {
@NotNull(message = "用户ID不能为空") @NotNull(message = "用户ID不能为空")
private String id; private String id;
@ApiModelProperty(value = "会员用户名,用户名不能进行修改", required = true)
@NotNull(message = "会员用户名不能为空")
private String username;
@ApiModelProperty(value = "会员密码") @ApiModelProperty(value = "会员密码")
private String password; private String password;

View File

@ -24,7 +24,6 @@ import java.util.Map;
* @since 2020-02-25 14:10:16 * @since 2020-02-25 14:10:16
*/ */
public interface MemberService extends IService<Member> { public interface MemberService extends IService<Member> {
/** /**
* 默认密码 * 默认密码
*/ */
@ -97,6 +96,16 @@ public interface MemberService extends IService<Member> {
*/ */
Member modifyPass(String memberId, String oldPassword, String newPassword); Member modifyPass(String memberId, String oldPassword, String newPassword);
/**
* 注册会员
*
* @param userName 会员
* @param password 密码
* @param mobilePhone mobilePhone
* @return 处理结果
*/
Token register(String userName, String password, String mobilePhone);
/** /**
* 是否可以初始化密码 * 是否可以初始化密码
* *
@ -119,17 +128,6 @@ public interface MemberService extends IService<Member> {
* @return 操作结果 * @return 操作结果
*/ */
void cancellation(String password); void cancellation(String password);
/**
* 注册会员
*
* @param userName 会员
* @param password 密码
* @param mobilePhone mobilePhone
* @return 处理结果
*/
Token register(String userName, String password, String mobilePhone);
/** /**
* 修改当前会员的手机号 * 修改当前会员的手机号
* *
@ -268,7 +266,7 @@ public interface MemberService extends IService<Member> {
*/ */
void resetPassword(List<String> ids); void resetPassword(List<String> ids);
/* /**
* 获取所有会员的手机号 * 获取所有会员的手机号
* *
* @return 所有会员的手机号 * @return 所有会员的手机号
@ -283,9 +281,8 @@ public interface MemberService extends IService<Member> {
*/ */
boolean updateMemberLoginTime(String memberId); boolean updateMemberLoginTime(String memberId);
/** /**
* 获取用户VO * 获取用户VO
*
* @param id 会员id * @param id 会员id
* @return 用户VO * @return 用户VO
*/ */

View File

@ -5,11 +5,9 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.cache.Cache; import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix; import cn.lili.cache.CachePrefix;
import cn.lili.common.aop.annotation.DemoSite;
import cn.lili.common.context.ThreadContextHolder; import cn.lili.common.context.ThreadContextHolder;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.SwitchEnum; import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.event.TransactionCommitSendMQEvent;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
@ -17,7 +15,11 @@ import cn.lili.common.security.context.UserContext;
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;
import cn.lili.common.sensitive.SensitiveWordsFilter; import cn.lili.common.sensitive.SensitiveWordsFilter;
import cn.lili.common.utils.*; import cn.lili.common.utils.BeanUtil;
import cn.lili.common.utils.CookieUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.utils.SnowFlake;
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;
import cn.lili.modules.connect.entity.Connect; import cn.lili.modules.connect.entity.Connect;
@ -37,6 +39,7 @@ import cn.lili.modules.store.entity.dos.Store;
import cn.lili.modules.store.entity.enums.StoreStatusEnum; import cn.lili.modules.store.entity.enums.StoreStatusEnum;
import cn.lili.modules.store.service.StoreService; import cn.lili.modules.store.service.StoreService;
import cn.lili.mybatis.util.PageUtil; import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum; import cn.lili.rocketmq.tags.MemberTagsEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -44,8 +47,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -89,9 +92,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
*/ */
@Autowired @Autowired
private RocketmqCustomProperties rocketmqCustomProperties; private RocketmqCustomProperties rocketmqCustomProperties;
/**
* RocketMQ
*/
@Autowired @Autowired
private ApplicationEventPublisher applicationEventPublisher; private RocketMQTemplate rocketMQTemplate;
/** /**
* 缓存 * 缓存
*/ */
@ -116,18 +121,13 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
@Override @Override
public boolean findByMobile(String uuid, String mobile) { public Member findByMobile(String mobile) {
QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("mobile", mobile); queryWrapper.eq("mobile", mobile);
Member member = this.baseMapper.selectOne(queryWrapper); return this.baseMapper.selectOne(queryWrapper);
if (member == null) {
throw new ServiceException(ResultCode.USER_NOT_PHONE);
}
cache.put(CachePrefix.FIND_MOBILE + uuid, mobile, 300L);
return true;
} }
@Override @Override
public Token usernameLogin(String username, String password) { public Token usernameLogin(String username, String password) {
Member member = this.findMember(username); Member member = this.findMember(username);
@ -181,7 +181,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
@Override @Override
@Transactional
public Token autoRegister(ConnectAuthUser authUser) { public Token autoRegister(ConnectAuthUser authUser) {
if (CharSequenceUtil.isEmpty(authUser.getNickname())) { if (CharSequenceUtil.isEmpty(authUser.getNickname())) {
@ -195,12 +194,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
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); registerHandler(member);
member.setPassword(DEFAULT_PASSWORD);
//绑定登录方式 //绑定登录方式
loginBindUser(member, authUser.getUuid(), authUser.getSource()); loginBindUser(member, authUser.getUuid(), authUser.getSource());
return memberTokenGenerate.createToken(member, false); return memberTokenGenerate.createToken(member, false);
} catch (ServiceException e) { } catch (ServiceException e) {
log.error("自动注册服务出异常:", e); log.error("自动注册服务出异常:", e);
throw e; throw e;
} catch (Exception e) { } catch (Exception e) {
log.error("自动注册异常:", e); log.error("自动注册异常:", e);
@ -225,7 +223,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
@Override @Override
@Transactional
public Token mobilePhoneLogin(String mobilePhone) { public Token mobilePhoneLogin(String mobilePhone) {
QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("mobile", mobilePhone); queryWrapper.eq("mobile", mobilePhone);
@ -244,46 +241,13 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
* *
* @param member * @param member
*/ */
@Transactional private void registerHandler(Member member) {
public void registerHandler(Member member) {
member.setId(SnowFlake.getIdStr()); member.setId(SnowFlake.getIdStr());
//保存会员 //保存会员
this.save(member); this.save(member);
// 发送会员注册信息 String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_REGISTER.name();
applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("new member register", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_REGISTER.name(), member)); rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback());
} }
@Override
public Member editOwn(MemberEditDTO memberEditDTO) {
//查询会员信息
Member member = this.findByUsername(Objects.requireNonNull(UserContext.getCurrentUser()).getUsername());
//传递修改会员信息
BeanUtil.copyProperties(memberEditDTO, member);
//修改会员
this.updateById(member);
return member;
}
@Override
@DemoSite
public Member modifyPass(String oldPassword, String newPassword) {
AuthUser tokenUser = UserContext.getCurrentUser();
if (tokenUser == null) {
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
}
Member member = this.getById(tokenUser.getId());
//判断旧密码输入是否正确
if (!new BCryptPasswordEncoder().matches(oldPassword, member.getPassword())) {
throw new ServiceException(ResultCode.USER_OLD_PASSWORD_ERROR);
}
//修改会员密码
LambdaUpdateWrapper<Member> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.eq(Member::getId, member.getId());
lambdaUpdateWrapper.set(Member::getPassword, new BCryptPasswordEncoder().encode(newPassword));
this.update(lambdaUpdateWrapper);
return member;
}
@Override @Override
public boolean canInitPass() { public boolean canInitPass() {
AuthUser tokenUser = UserContext.getCurrentUser(); AuthUser tokenUser = UserContext.getCurrentUser();
@ -342,8 +306,34 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
this.updateById(member); this.updateById(member);
} }
@Override
@Transactional @Transactional
@Override
public Member editOwn(MemberEditDTO memberEditDTO) {
//查询会员信息
Member member = this.findByUsername(Objects.requireNonNull(UserContext.getCurrentUser()).getUsername());
//传递修改会员信息
BeanUtil.copyProperties(memberEditDTO, member);
//修改会员
this.updateById(member);
return member;
}
@Override
public Member modifyPass(String memberId, String oldPassword, String newPassword) {
Member member = this.getById(memberId);
//判断旧密码输入是否正确
if (!new BCryptPasswordEncoder().matches(oldPassword, member.getPassword())) {
throw new ServiceException(ResultCode.USER_OLD_PASSWORD_ERROR);
}
//修改会员密码
LambdaUpdateWrapper<Member> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.eq(Member::getId, member.getId());
lambdaUpdateWrapper.set(Member::getPassword, new BCryptPasswordEncoder().encode(newPassword));
this.update(lambdaUpdateWrapper);
return member;
}
@Override
public Token register(String userName, String password, String mobilePhone) { public Token register(String userName, String password, String mobilePhone) {
//检测会员信息 //检测会员信息
checkMember(userName, mobilePhone); checkMember(userName, mobilePhone);
@ -351,7 +341,8 @@ 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);
//注册成功后用户自动登录 //注册成功后用户自动登录
registerHandler(member); registerHandler(member);
return memberTokenGenerate.createToken(member, false); Token token = memberTokenGenerate.createToken(member, false);
return token;
} }
@Override @Override
@ -388,7 +379,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
@Override @Override
@Transactional
public Member addMember(MemberAddDTO memberAddDTO) { public Member addMember(MemberAddDTO memberAddDTO) {
//检测会员信息 //检测会员信息
@ -402,16 +392,21 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override @Override
public Member updateMember(ManagerMemberEditDTO managerMemberEditDTO) { public Member updateMember(ManagerMemberEditDTO managerMemberEditDTO) {
//判断是否用户登录并且会员ID为当前登录会员ID
AuthUser tokenUser = UserContext.getCurrentUser();
if (tokenUser == null) {
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
}
//过滤会员昵称敏感词 //过滤会员昵称敏感词
if (StringUtils.isNotBlank(managerMemberEditDTO.getNickName())) { if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(managerMemberEditDTO.getNickName())) {
managerMemberEditDTO.setNickName(SensitiveWordsFilter.filter(managerMemberEditDTO.getNickName())); managerMemberEditDTO.setNickName(SensitiveWordsFilter.filter(managerMemberEditDTO.getNickName()));
} }
//如果密码不为空则加密密码 //如果密码不为空则加密密码
if (StringUtils.isNotBlank(managerMemberEditDTO.getPassword())) { if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(managerMemberEditDTO.getPassword())) {
managerMemberEditDTO.setPassword(new BCryptPasswordEncoder().encode(managerMemberEditDTO.getPassword())); managerMemberEditDTO.setPassword(new BCryptPasswordEncoder().encode(managerMemberEditDTO.getPassword()));
} }
//查询会员信息 //查询会员信息
Member member = this.getById(managerMemberEditDTO.getId()); Member member = this.findByUsername(managerMemberEditDTO.getUsername());
//传递修改会员信息 //传递修改会员信息
BeanUtil.copyProperties(managerMemberEditDTO, member); BeanUtil.copyProperties(managerMemberEditDTO, member);
this.updateById(member); this.updateById(member);
@ -464,7 +459,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
memberPointMessage.setPoint(point); memberPointMessage.setPoint(point);
memberPointMessage.setType(type); memberPointMessage.setType(type);
memberPointMessage.setMemberId(memberId); memberPointMessage.setMemberId(memberId);
applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("update member point", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_POINT_CHANGE.name(), memberPointMessage)); String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_POINT_CHANGE.name();
rocketMQTemplate.asyncSend(destination, memberPointMessage, RocketmqSendCallbackBuilder.commonCallback());
return true; return true;
} }
return false; return false;
@ -488,10 +484,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
* @param mobilePhone 手机号 * @param mobilePhone 手机号
* @return 会员 * @return 会员
*/ */
private Long findMember(String mobilePhone, String userName) { private Long findMember(String userName,String mobilePhone) {
QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("mobile", mobilePhone) queryWrapper.eq("mobile", mobilePhone)
.or().eq("username", userName); .eq("username", userName);
return this.baseMapper.selectCount(queryWrapper); return this.baseMapper.selectCount(queryWrapper);
} }
@ -641,6 +637,31 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
} }
@Override
public void updateHaveShop(Boolean haveStore, String storeId, List<String> memberIds) {
List<Member> members = this.baseMapper.selectBatchIds(memberIds);
if (members.size() > 0) {
members.forEach(member -> {
member.setHaveStore(haveStore);
if (haveStore) {
member.setStoreId(storeId);
} else {
member.setStoreId(null);
}
});
this.updateBatchById(members);
}
}
@Override
public void resetPassword(List<String> ids) {
String password = new BCryptPasswordEncoder().encode(StringUtils.md5("123456"));
LambdaUpdateWrapper<Member> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.in(Member::getId, ids);
lambdaUpdateWrapper.set(Member::getPassword, password);
this.update(lambdaUpdateWrapper);
}
/** /**
* 获取所有会员的手机号 * 获取所有会员的手机号
* *
@ -678,8 +699,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
*/ */
private void checkMember(String userName, String mobilePhone) { private void checkMember(String userName, String mobilePhone) {
//判断手机号是否存在 //判断手机号是否存在
if (findMember(mobilePhone, userName) > 0) { if (findMember(userName, mobilePhone) > 0) {
throw new ServiceException(ResultCode.USER_EXIST); throw new ServiceException(ResultCode.USER_EXIST);
} }
} }
} }

View File

@ -43,13 +43,6 @@ public interface OrderService extends IService<Order> {
*/ */
Order getBySn(String orderSn); Order getBySn(String orderSn);
/**
* 获取订单
*
* @param receivableNo 微信支付单号
* @return 订单信息
*/
Order getOrderByReceivableNo(String receivableNo);
/** /**
* 订单查询 * 订单查询
@ -293,10 +286,4 @@ public interface OrderService extends IService<Order> {
*/ */
boolean checkFictitiousOrder(String pintuanId, Integer requiredNum, Boolean fictitious); boolean checkFictitiousOrder(String pintuanId, Integer requiredNum, Boolean fictitious);
/**
* 验证福禄订单进行处理
* @param tradeNo 第三方流水
*
*/
void fuluOrder(String tradeNo);
} }

View File

@ -336,6 +336,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
return this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getSn, orderSn)); return this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getSn, orderSn));
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void payOrder(String orderSn, String paymentMethod, String receivableNo) { public void payOrder(String orderSn, String paymentMethod, String receivableNo) {

View File

@ -178,107 +178,4 @@ public class GoodsStoreController {
return ResultUtil.success(); return ResultUtil.success();
} }
@ApiOperation(value = "新增商品(minShengLotteryRecordService商品迁移")
@PostMapping(value = "/fuluCreate")
public ResultMessage<GoodsOperationDTO> fuluSave() throws Exception {
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
GoodsOperationFuLuDTO goodsOperationDTO = new GoodsOperationFuLuDTO();
FuLuConfigureDTO fuLuConfigureDTO = storeDetailService.getFuLuConfigureDTO();
//获取并解析福禄商品数据
Map maps = (Map) JSON.parse(Test.getGoodsInfoList(fuLuConfigureDTO));
if (!maps.get("code").toString().equals("0")) {
return ResultUtil.error(201, "商品不存在或配置参数错误");
}
int i = 0;
List<Map<String, String>> listObjectSec = JSONArray.parseObject(maps.get("result").toString(), List.class);
for (Map<String, String> mapList : listObjectSec) {
if (listObjectSec.size() <= 0) {
break;
}
for (Map.Entry entry : mapList.entrySet()) {
if (entry.getKey().equals("product_id")) {
Map map1 = (Map) JSON.parse(Test.productInfoGetTest(fuLuConfigureDTO, entry.getValue().toString()).get("result").toString());
if (map1.get("product_type").toString().equals("直充")) {
goodsOperationDTO.setCategoryPath("1496301573515636737");//分类path
} else if (map1.get("product_type").toString().equals("卡密")) {
goodsOperationDTO.setCategoryPath("1496301573515636737");//分类path
} else {
//不是直充也不是卡密需要修改代码
continue;
}
List<Goods> goodsList = goodsService.list(
new LambdaQueryWrapper<Goods>()
.eq(Goods::getStoreId, storeId)
.eq(Goods::getSn, map1.get("product_id").toString())
.eq(Goods::getDeleteFlag, false)
);
goodsOperationDTO.setStoreCategoryPath("");//店铺分类id
goodsOperationDTO.setBrandId("1496301301183672321");//品牌ID
goodsOperationDTO.setGoodsName(map1.get("product_name").toString());//商品名称
goodsOperationDTO.setSn(map1.get("product_id").toString());//商品编号
goodsOperationDTO.setPrice(Double.valueOf(map1.get("purchase_price").toString()));//商品价格
goodsOperationDTO.setCost(Double.valueOf(map1.get("purchase_price").toString()));//市场价格
goodsOperationDTO.setWeight(Double.valueOf("0"));//重量
goodsOperationDTO.setIntro(map1.get("product_name").toString());//详情
goodsOperationDTO.setMobileIntro(map1.get("product_name").toString());//移动端详情
goodsOperationDTO.setQuantity(99999999);//库存
goodsOperationDTO.setRelease(true);//是否立即发布
goodsOperationDTO.setRecommend(true);//是否是推荐商品
goodsOperationDTO.setGoodsParamsDTOList(new ArrayList<>());//商品参数
List<String> goodsGalleryList = new ArrayList<>();
if (map1.containsKey("four_category_icon") && map1.get("four_category_icon") != null) {
goodsGalleryList.add(map1.get("four_category_icon").toString());
}
goodsOperationDTO.setGoodsGalleryList(goodsGalleryList);
goodsOperationDTO.setTemplateId("0");//运费模板id,不需要运费模板时值是0
goodsOperationDTO.setSellingPoint(map1.get("product_name").toString());
goodsOperationDTO.setSalesModel("RETAIL");//销售模式
// goodsOperationDTO.setHaveSpec();//是否有规格
goodsOperationDTO.setGoodsUnit("");//销售模式1471044596808024065
goodsOperationDTO.setInfo(map1.get("product_name").toString());//商品描述
goodsOperationDTO.setGoodsType("VIRTUAL_GOODS");//商品类型
// goodsOperationDTO.setGoodsVideo();//商品视频
List<Map<String, Object>> mapArrayList = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("sn", goodsOperationDTO.getSn());
map.put("price", goodsOperationDTO.getPrice());
map.put("cost", goodsOperationDTO.getCost());
map.put("weight", goodsOperationDTO.getWeight());
map.put("quantity", goodsOperationDTO.getQuantity());
map.put("category_path", "1496301573515636737");
if (map1.containsKey("four_category_icon") && map1.get("four_category_icon") != null) {
List<Map<String, String>> images = new ArrayList<>();
Map<String, String> map2 = new HashMap<>();
map2.put("url", map1.get("four_category_icon").toString());
images.add(map2);
map.put("images", images);
}
mapArrayList.add(map);
goodsOperationDTO.setSkuList(mapArrayList);//sku列表
if (goodsList.size() > 0) {
goodsService.fuLuEditGoods(goodsOperationDTO, goodsList.get(0).getId());
} else {
goodsService.fuLuAddGoods(goodsOperationDTO);
}
i += 1;
break;
}
if (i == 1) {
break;
}
}
}
return ResultUtil.success();
}
} }