fix XSS and BAC, improve code style

This commit is contained in:
paulGao 2021-09-09 16:47:14 +08:00
parent d470192ac6
commit d3e1de5620
175 changed files with 858 additions and 678 deletions

View File

@ -21,7 +21,7 @@ import java.util.List;
* 买家端,商品分类接口 * 买家端,商品分类接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/16 10:05 下午 * @since 2020/11/16 10:05 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,商品分类接口") @Api(tags = "买家端,商品分类接口")

View File

@ -19,7 +19,7 @@ import java.util.List;
* 买家端,浏览历史接口 * 买家端,浏览历史接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/16 10:06 下午 * @since 2020/11/16 10:06 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,浏览历史接口") @Api(tags = "买家端,浏览历史接口")

View File

@ -20,7 +20,7 @@ import javax.validation.Valid;
* 买家端,会员地址接口 * 买家端,会员地址接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,会员地址接口") @Api(tags = "买家端,会员地址接口")

View File

@ -18,7 +18,7 @@ import javax.validation.constraints.NotNull;
* 买家端,会员收藏接口 * 买家端,会员收藏接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/17 2:32 下午 * @since 2020/11/17 2:32 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,会员收藏接口") @Api(tags = "买家端,会员收藏接口")

View File

@ -1,8 +1,8 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.enums.SwitchEnum; import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.dto.EvaluationQueryParams; import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
@ -24,7 +24,7 @@ import javax.validation.constraints.NotNull;
* 买家端,会员商品评价接口 * 买家端,会员商品评价接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/16 10:08 下午 * @since 2020/11/16 10:08 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,会员商品评价接口") @Api(tags = "买家端,会员商品评价接口")

View File

@ -4,8 +4,8 @@ import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.message.entity.enums.MessageStatusEnum;
import cn.lili.modules.message.entity.dos.MemberMessage; import cn.lili.modules.message.entity.dos.MemberMessage;
import cn.lili.modules.message.entity.enums.MessageStatusEnum;
import cn.lili.modules.message.entity.vos.MemberMessageQueryVO; import cn.lili.modules.message.entity.vos.MemberMessageQueryVO;
import cn.lili.modules.message.service.MemberMessageService; import cn.lili.modules.message.service.MemberMessageService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
* 买家端,会员站内消息接口 * 买家端,会员站内消息接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,会员站内消息接口") @Api(tags = "买家端,会员站内消息接口")

View File

@ -1,8 +1,8 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.vo.MemberReceiptAddVO; import cn.lili.modules.member.entity.vo.MemberReceiptAddVO;
@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
* 买家端,会员发票接口 * 买家端,会员发票接口
* *
* @author paulG * @author paulG
* @since: 2021-03-29 14:10:16 * @since 2021-03-29 14:10:16
*/ */
@RestController @RestController
@Api(tags = "买家端,会员发票接口") @Api(tags = "买家端,会员发票接口")

View File

@ -18,7 +18,7 @@ import java.util.List;
* 会员签到控制器 * 会员签到控制器
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端会员签到API") @Api(tags = "买家端会员签到API")

View File

@ -1,18 +1,18 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.ResultUtil;
import cn.lili.modules.verification.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberWallet; import cn.lili.modules.member.entity.dos.MemberWallet;
import cn.lili.modules.member.entity.vo.MemberWalletVO; import cn.lili.modules.member.entity.vo.MemberWalletVO;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.member.service.MemberWalletService; import cn.lili.modules.member.service.MemberWalletService;
import cn.lili.modules.verification.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -30,7 +30,7 @@ import javax.validation.constraints.Pattern;
* 买家端,会员余额接口 * 买家端,会员余额接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,会员余额接口") @Api(tags = "买家端,会员余额接口")

View File

@ -1,8 +1,8 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.MemberWithdrawApply; import cn.lili.modules.member.entity.dos.MemberWithdrawApply;
@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,余额提现记录接口 * 买家端,余额提现记录接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,余额提现记录接口") @Api(tags = "买家端,余额提现记录接口")

View File

@ -1,7 +1,7 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.trade.entity.dos.Recharge; import cn.lili.modules.order.trade.entity.dos.Recharge;
@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,预存款充值记录接口 * 买家端,预存款充值记录接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,预存款充值记录接口") @Api(tags = "买家端,预存款充值记录接口")

View File

@ -1,11 +1,11 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.entity.dos.ServiceNotice; import cn.lili.modules.system.entity.dos.ServiceNotice;
import cn.lili.modules.system.service.ServiceNoticeService; import cn.lili.modules.system.service.ServiceNoticeService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,会员站服务消息接口 * 买家端,会员站服务消息接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/17 2:31 下午 * @since 2020/11/17 2:31 下午
*/ */
@RestController @RestController
@RequestMapping("/service/notice") @RequestMapping("/service/notice")

View File

@ -1,11 +1,11 @@
package cn.lili.controller.other; package cn.lili.controller.other;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.entity.dos.AppVersion; import cn.lili.modules.system.entity.dos.AppVersion;
import cn.lili.modules.system.service.AppVersionService; import cn.lili.modules.system.service.AppVersionService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,APP版本 * 买家端,APP版本
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/21 11:15 上午 * @since 2021/5/21 11:15 上午
*/ */
@RestController @RestController
@Api(tags = "买家端,APP版本") @Api(tags = "买家端,APP版本")

View File

@ -25,7 +25,7 @@ import java.util.List;
* 买家端,文章接口 * 买家端,文章接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/16 10:02 下午 * @since 2020/11/16 10:02 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,文章接口") @Api(tags = "买家端,文章接口")

View File

@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,直播间接口 * 买家端,直播间接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 12:03 下午 * @since 2021/5/20 12:03 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,直播间接口") @Api(tags = "买家端,直播间接口")

View File

@ -1,7 +1,6 @@
package cn.lili.controller.other.distribution; package cn.lili.controller.other.distribution;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.distribution.entity.dos.Distribution; import cn.lili.modules.distribution.entity.dos.Distribution;
import cn.lili.modules.distribution.entity.dos.DistributionOrder; import cn.lili.modules.distribution.entity.dos.DistributionOrder;
@ -12,7 +11,6 @@ import cn.lili.modules.distribution.service.DistributionService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -22,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
* 买家端,分销员接口 * 买家端,分销员接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:03 下午 * @since 2020/11/16 10:03 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,分销员接口") @Api(tags = "买家端,分销员接口")

View File

@ -28,7 +28,7 @@ import javax.validation.constraints.NotNull;
* 买家端,分销商品佣金提现接口 * 买家端,分销商品佣金提现接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:03 下午 * @since 2020/11/16 10:03 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,分销商品佣金提现接口") @Api(tags = "买家端,分销商品佣金提现接口")

View File

@ -25,7 +25,7 @@ import javax.validation.constraints.NotNull;
* 买家端,分销商品接口 * 买家端,分销商品接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/16 10:06 下午 * @since 2020/11/16 10:06 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,分销商品接口") @Api(tags = "买家端,分销商品接口")

View File

@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,分销商品佣金提现接口 * 买家端,分销商品佣金提现接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:03 下午 * @since 2020/11/16 10:03 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,分销订单接口") @Api(tags = "买家端,分销订单接口")

View File

@ -1,15 +1,15 @@
package cn.lili.controller.passport; package cn.lili.controller.passport;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.modules.system.sms.SmsUtil;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.modules.verification.enums.VerificationEnums; import cn.lili.common.exception.ServiceException;
import cn.lili.modules.verification.service.VerificationService;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dto.MemberEditDTO; import cn.lili.modules.member.entity.dto.MemberEditDTO;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.system.sms.SmsUtil;
import cn.lili.modules.verification.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@ -23,7 +23,7 @@ import javax.validation.constraints.NotNull;
* 买家端,会员接口 * 买家端,会员接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,会员接口") @Api(tags = "买家端,会员接口")

View File

@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull;
* 买家端,采购接口 * 买家端,采购接口
* *
* @author Chopper * @author Chopper
* @since: 2020/11/16 10:06 下午 * @since 2020/11/16 10:06 下午
*/ */
@Api(tags = "买家端,采购接口") @Api(tags = "买家端,采购接口")
@RestController @RestController

View File

@ -18,7 +18,7 @@ import java.util.List;
* 买家端,采购报价接口 * 买家端,采购报价接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/16 10:06 下午 * @since 2020/11/16 10:06 下午
*/ */
@Api(tags = "买家端,采购报价接口") @Api(tags = "买家端,采购报价接口")
@RestController @RestController

View File

@ -27,7 +27,7 @@ import java.util.List;
* 买家端,店铺接口 * 买家端,店铺接口
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/17 2:32 下午 * @since 2020/11/17 2:32 下午
*/ */
@RestController @RestController
@RequestMapping("/buyer/store") @RequestMapping("/buyer/store")

View File

@ -21,7 +21,7 @@ import javax.validation.constraints.Min;
* 买家端,预存款充值记录接口 * 买家端,预存款充值记录接口
* *
* @author paulG * @author paulG
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,预存款充值记录接口") @Api(tags = "买家端,预存款充值记录接口")

View File

@ -1,13 +1,13 @@
package cn.lili.controller.trade; package cn.lili.controller.trade;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.trade.entity.dos.WalletLog; import cn.lili.modules.order.trade.entity.dos.WalletLog;
import cn.lili.modules.order.trade.service.WalletLogService; import cn.lili.modules.order.trade.service.WalletLogService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
* 买家端,预存款变动日志记录接口 * 买家端,预存款变动日志记录接口
* *
* @author pikachu * @author pikachu
* @since: 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@RestController @RestController
@Api(tags = "买家端,预存款变动日志记录接口") @Api(tags = "买家端,预存款变动日志记录接口")

View File

@ -24,7 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
* 会员经验值 * 会员经验值
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/16 11:16 下午 * @since 2021/5/16 11:16 下午
*/ */
//@Service //@Service
public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent, OrderStatusChangeEvent { public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent, OrderStatusChangeEvent {

View File

@ -16,7 +16,7 @@ import java.util.List;
* 注册赠券活动 * 注册赠券活动
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/24 10:48 上午 * @since 2021/5/24 10:48 上午
*/ */
@Component @Component
public class RegisteredCouponActivityExecute implements MemberRegisterEvent { public class RegisteredCouponActivityExecute implements MemberRegisterEvent {

View File

@ -1,7 +1,6 @@
package cn.lili.event.impl; package cn.lili.event.impl;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.lili.common.utils.CommonUtil;
import cn.lili.event.OrderStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dos.OrderItem;
@ -13,7 +12,6 @@ import cn.lili.modules.order.order.service.OrderItemService;
import cn.lili.modules.order.order.service.OrderService; import cn.lili.modules.order.order.service.OrderService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -21,7 +19,7 @@ import org.springframework.stereotype.Component;
* 虚拟商品 * 虚拟商品
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/29 9:17 上午 * @since 2021/5/29 9:17 上午
*/ */
@Component @Component
public class VerificationOrderExecute implements OrderStatusChangeEvent { public class VerificationOrderExecute implements OrderStatusChangeEvent {

View File

@ -9,7 +9,7 @@ import org.springframework.stereotype.Component;
* 小程序直播状态获取 * 小程序直播状态获取
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 2:52 下午 * @since 2021/5/20 2:52 下午
*/ */
@Component @Component
public class BroadcastExecute implements EveryHourExecute { public class BroadcastExecute implements EveryHourExecute {

View File

@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
* 优惠券状态监测 * 优惠券状态监测
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/24 10:08 上午 * @since 2021/5/24 10:08 上午
*/ */
@Component @Component
public class CouponExecute implements EveryDayExecute { public class CouponExecute implements EveryDayExecute {

View File

@ -1,10 +1,10 @@
package cn.lili.trigger.executor; package cn.lili.trigger.executor;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.trigger.message.BroadcastMessage;
import cn.lili.trigger.model.TimeExecuteConstant;
import cn.lili.modules.goods.service.StudioService; import cn.lili.modules.goods.service.StudioService;
import cn.lili.trigger.TimeTriggerExecutor; import cn.lili.trigger.TimeTriggerExecutor;
import cn.lili.trigger.message.BroadcastMessage;
import cn.lili.trigger.model.TimeExecuteConstant;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
* 直播间事件触发 * 直播间事件触发
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/6/1 5:02 下午 * @since 2021/6/1 5:02 下午
*/ */
@Slf4j @Slf4j
@Component(TimeExecuteConstant.BROADCAST_EXECUTOR) @Component(TimeExecuteConstant.BROADCAST_EXECUTOR)

View File

@ -360,6 +360,7 @@ public enum ResultCode {
STORE_NOT_OPEN(50004, "该会员未开通店铺"), STORE_NOT_OPEN(50004, "该会员未开通店铺"),
STORE_NOT_LOGIN_ERROR(50005, "未登录店铺"), STORE_NOT_LOGIN_ERROR(50005, "未登录店铺"),
STORE_CLOSE_ERROR(50006, "店铺关闭,请联系管理员"), STORE_CLOSE_ERROR(50006, "店铺关闭,请联系管理员"),
FREIGHT_TEMPLATE_NOT_EXIST(50010, "当前模版不存在"),
/** /**
* 结算单 * 结算单

View File

@ -2,10 +2,20 @@ package cn.lili.common.security.filter;
import cn.hutool.http.HtmlUtil; import cn.hutool.http.HtmlUtil;
import cn.hutool.json.JSONUtil;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletRequestWrapper;
import java.util.regex.Pattern; import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/** /**
* 防止Xss * 防止Xss
@ -15,15 +25,10 @@ import java.util.regex.Pattern;
* 2021-06-04 10:39 * 2021-06-04 10:39
*/ */
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
private HttpServletRequest request;
public XssHttpServletRequestWrapper(HttpServletRequest request) { public XssHttpServletRequestWrapper(HttpServletRequest request) {
super(request); super(request);
this.request = request;
} }
/** /**
@ -61,8 +66,8 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
@Override @Override
public Object getAttribute(String name) { public Object getAttribute(String name) {
Object value = super.getAttribute(name); Object value = super.getAttribute(name);
if (value != null && value instanceof String) { if (value instanceof String) {
cleanXSS((String) value); value = cleanXSS((String) value);
} }
return value; return value;
} }
@ -79,56 +84,104 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
return cleanXSS(value); return cleanXSS(value);
} }
/** @Override
* 转义字符,使用该方法存在一定的弊端 public Map<String, String[]> getParameterMap() {
* Map<String, String[]> parameterMap = super.getParameterMap();
* @param value //因为super.getParameterMap()返回的是Map,所以我们需要定义Map的实现类对数据进行封装
* @return Map<String, String[]> params = new LinkedHashMap<>();
*/ //如果参数不为空
private String cleanXSS2(String value) { if (parameterMap != null) {
//移除特殊标签 //对map进行遍历
value = value.replaceAll("<", "&lt;").replaceAll(">", "&gt;"); for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
value = value.replaceAll("\\(", "&#40;").replaceAll("\\)", "&#41;"); //根据key获取value
value = value.replaceAll("'", "&#39;"); String[] values = entry.getValue();
value = value.replaceAll("eval\\((.*)\\)", ""); //遍历数组
value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\""); for (int i = 0; i < values.length; i++) {
value = value.replaceAll("script", ""); String value = values[i];
return value; value = cleanXSS(value);
//将转义后的数据放回数组中
values[i] = value;
}
//将转义后的数组put到linkMap当中
params.put(entry.getKey(), values);
}
}
return params;
} }
/**
* 获取输入流
*
* @return
* @throws IOException
*/
@Override
public ServletInputStream getInputStream() throws IOException {
//获取输入流
ServletInputStream in = super.getInputStream();
//用于存储输入流
StringBuffer body = new StringBuffer();
InputStreamReader reader = new InputStreamReader(in, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader);
//按行读取输入流
String line = bufferedReader.readLine();
while (line != null) {
//将获取到的第一行数据append到StringBuffer中
body.append(line);
//继续读取下一行流直到line为空
line = bufferedReader.readLine();
}
//关闭流
bufferedReader.close();
reader.close();
in.close();
private static final Pattern SCRIPT_PATTERN1 = Pattern.compile("<script>(.*?)</script>", Pattern.CASE_INSENSITIVE); //将body转换为map
private static final Pattern SCRIPT_PATTERN2 = Pattern.compile("</script>", Pattern.CASE_INSENSITIVE); Map<String, Object> map = JSONUtil.parseObj(body.toString());
private static final Pattern SCRIPT_PATTERN3 = Pattern.compile("<script(.*?)>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); //创建空的map用于存储结果
private static final Pattern SCRIPT_PATTERN4 = Pattern.compile("javascript:", Pattern.CASE_INSENSITIVE); Map<String, Object> resultMap = new HashMap<>(map.size());
private static final Pattern SRC_PATTERN = Pattern.compile("src[\r\n]*=[\r\n]*\\\'(.*?)\\\'", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); //遍历数组
private static final Pattern EVAL_PATTERN = Pattern.compile("eval\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); for (Map.Entry<String, Object> entry : map.entrySet()) {
private static final Pattern E_­_XPRESSION_PATTERN = Pattern.compile("e­xpression\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); //如果map.get(key)获取到的是字符串就需要进行转义如果不是直接存储resultMap
private static final Pattern VB_SCRIPT_PATTERN = Pattern.compile("vbscript:", Pattern.CASE_INSENSITIVE); if (map.get(entry.getKey()) instanceof String) {
private static final Pattern ONLOAD_PATTERN = Pattern.compile("onload(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); resultMap.put(entry.getKey(), cleanXSS(entry.getValue().toString()));
} else {
resultMap.put(entry.getKey(), entry.getValue());
}
}
//将resultMap转换为json字符串
String resultStr = JSONUtil.toJsonStr(resultMap);
//将json字符串转换为字节
final ByteArrayInputStream bis = new ByteArrayInputStream(resultStr.getBytes());
//实现接口
return new ServletInputStream() {
@Override
public boolean isFinished() {
return false;
}
@Override
public boolean isReady() {
return false;
}
@Override
public void setReadListener(ReadListener readListener) {
}
@Override
public int read() {
return bis.read();
}
};
}
private String cleanXSS(String value) { private String cleanXSS(String value) {
if (value != null) { if (value != null) {
// //推荐使用ESAPI库来避免脚本攻击,value = ESAPI.encoder().canonicalize(value); value = HtmlUtil.escape(value);
// //避免script 标签
// value = SCRIPT_PATTERN1.matcher(value).replaceAll("");
// //删除单个的 </script> 标签
// value = SCRIPT_PATTERN2.matcher(value).replaceAll("");
// //删除单个的<script ...> 标签
// value = SCRIPT_PATTERN3.matcher(value).replaceAll("");
// //避免 javascript: 表达式
// value = SCRIPT_PATTERN4.matcher(value).replaceAll("");
// //避免src形式的表达式
// value = SRC_PATTERN.matcher(value).replaceAll("");
// //避免 eval(...) 形式表达式
// value = EVAL_PATTERN.matcher(value).replaceAll("");
// //避免 e­xpression(...) 表达式
// value = E_­_XPRESSION_PATTERN.matcher(value).replaceAll("");
// //避免 vbscript:表达式
// value = VB_SCRIPT_PATTERN.matcher(value).replaceAll("");
// //避免 onload= 表达式
// value = ONLOAD_PATTERN.matcher(value).replaceAll("");
value = HtmlUtil.filter(value);
} }
return value; return value;
} }

View File

@ -6,7 +6,7 @@ import java.math.BigDecimal;
* 金额计算工具 * 金额计算工具
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:40 上午 * @since 2021/7/9 1:40 上午
*/ */
public final class CurrencyUtil { public final class CurrencyUtil {
/** /**

View File

@ -35,7 +35,7 @@ import java.util.Map;
* HttpClientUtils * HttpClientUtils
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:40 上午 * @since 2021/7/9 1:40 上午
*/ */
@Slf4j @Slf4j
public class HttpClientUtils { public class HttpClientUtils {

View File

@ -12,7 +12,7 @@ import java.util.regex.Pattern;
* 支持手机号+电话同时校验 * 支持手机号+电话同时校验
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:41 上午 * @since 2021/7/9 1:41 上午
*/ */
public class MobileValidator implements ConstraintValidator<Mobile, String> { public class MobileValidator implements ConstraintValidator<Mobile, String> {
@ -23,7 +23,6 @@ public class MobileValidator implements ConstraintValidator<Mobile, String> {
@Override @Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
Matcher m = null; Matcher m = null;
Pattern pattern = null;
// 验证手机号 // 验证手机号
if (value.length() == 11) { if (value.length() == 11) {
m = PHONE.matcher(value); m = PHONE.matcher(value);

View File

@ -11,11 +11,11 @@ import java.util.regex.Pattern;
* 手机号校验 * 手机号校验
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:42 上午 * @since 2021/7/9 1:42 上午
*/ */
public class PhoneValidator implements ConstraintValidator<Phone, String> { public class PhoneValidator implements ConstraintValidator<Phone, String> {
private static Pattern pattern = Pattern.compile("^0?(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])[0-9]{8}$"); private static final Pattern pattern = Pattern.compile("^0?(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])[0-9]{8}$");
@Override @Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {

View File

@ -9,7 +9,7 @@ import javax.validation.constraints.Size;
/** /**
* 分销员申请DTO * 分销员申请DTO
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/6/30 11:07 上午 * @since 2021/6/30 11:07 上午
* *
*/ */
@Data @Data

View File

@ -54,8 +54,9 @@ public interface DistributionGoodsService extends IService<DistributionGoods> {
* *
* @param skuId SKU ID * @param skuId SKU ID
* @param commission 佣金 * @param commission 佣金
* @param storeId 店铺id
* @return * @return
*/ */
DistributionGoods checked(String skuId, Double commission); DistributionGoods checked(String skuId, Double commission, String storeId);
} }

View File

@ -4,7 +4,6 @@ import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.modules.distribution.entity.dos.Distribution; import cn.lili.modules.distribution.entity.dos.Distribution;
import cn.lili.modules.distribution.entity.dos.DistributionGoods; import cn.lili.modules.distribution.entity.dos.DistributionGoods;
import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams; import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams;
@ -14,6 +13,7 @@ import cn.lili.modules.distribution.service.DistributionGoodsService;
import cn.lili.modules.distribution.service.DistributionService; import cn.lili.modules.distribution.service.DistributionService;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.mybatis.util.PageUtil;
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;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
@ -50,7 +51,7 @@ public class DistributionGoodsServiceImpl extends ServiceImpl<DistributionGoodsM
@Override @Override
public IPage<DistributionGoodsVO> goodsPage(DistributionGoodsSearchParams searchParams) { public IPage<DistributionGoodsVO> goodsPage(DistributionGoodsSearchParams searchParams) {
//获取商家的分销商品列表 //获取商家的分销商品列表
if (UserContext.getCurrentUser().getRole().equals(UserEnums.STORE)) { if (Objects.requireNonNull(UserContext.getCurrentUser()).getRole().equals(UserEnums.STORE)) {
return this.baseMapper.getDistributionGoodsVO(PageUtil.initPage(searchParams), searchParams.storeQueryWrapper()); return this.baseMapper.getDistributionGoodsVO(PageUtil.initPage(searchParams), searchParams.storeQueryWrapper());
} else if (UserContext.getCurrentUser().getRole().equals(UserEnums.MEMBER)) { } else if (UserContext.getCurrentUser().getRole().equals(UserEnums.MEMBER)) {
//判断当前登录用户是否为分销员 //判断当前登录用户是否为分销员
@ -86,7 +87,7 @@ public class DistributionGoodsServiceImpl extends ServiceImpl<DistributionGoodsM
} }
@Override @Override
public DistributionGoods checked(String skuId, Double commission) { public DistributionGoods checked(String skuId, Double commission, String storeId) {
//检查分销功能开关 //检查分销功能开关
distributionService.checkDistributionSetting(); distributionService.checkDistributionSetting();
@ -98,6 +99,9 @@ public class DistributionGoodsServiceImpl extends ServiceImpl<DistributionGoodsM
throw new ServiceException(ResultCode.DISTRIBUTION_GOODS_DOUBLE); throw new ServiceException(ResultCode.DISTRIBUTION_GOODS_DOUBLE);
} }
GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(skuId); GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(skuId);
if (!goodsSku.getStoreId().equals(storeId)) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
DistributionGoods distributionGoods = new DistributionGoods(goodsSku, commission); DistributionGoods distributionGoods = new DistributionGoods(goodsSku, commission);
this.save(distributionGoods); this.save(distributionGoods);
return distributionGoods; return distributionGoods;

View File

@ -10,7 +10,7 @@ import lombok.Data;
/** /**
* 小程序直播商品 * 小程序直播商品
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 9:34 上午 * @since 2021/5/17 9:34 上午
* *
*/ */
@Data @Data

View File

@ -2,12 +2,12 @@ package cn.lili.modules.goods.entity.dos;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.mybatis.BaseEntity;
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.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.mybatis.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xkcoding.http.util.StringUtil; import com.xkcoding.http.util.StringUtil;
@ -221,7 +221,7 @@ public class Goods extends BaseEntity {
this.params = JSONUtil.toJsonStr(goodsOperationDTO.getGoodsParamsDTOList()); this.params = JSONUtil.toJsonStr(goodsOperationDTO.getGoodsParamsDTOList());
} }
//如果立即上架则 //如果立即上架则
this.marketEnable = goodsOperationDTO.getRelease() ? GoodsStatusEnum.UPPER.name() : GoodsStatusEnum.DOWN.name(); this.marketEnable = Boolean.TRUE.equals(goodsOperationDTO.getRelease()) ? GoodsStatusEnum.UPPER.name() : GoodsStatusEnum.DOWN.name();
this.goodsType = goodsOperationDTO.getGoodsType(); this.goodsType = goodsOperationDTO.getGoodsType();
this.grade = 100D; this.grade = 100D;
@ -238,11 +238,9 @@ public class Goods extends BaseEntity {
throw new ServiceException(ResultCode.GOODS_SKU_COST_ERROR); throw new ServiceException(ResultCode.GOODS_SKU_COST_ERROR);
} }
//虚拟商品没有重量字段 //虚拟商品没有重量字段
if (sku.containsKey("weight")) { if (sku.containsKey("weight") && (StringUtil.isEmpty(sku.get("weight").toString()) || Convert.toDouble(sku.get("weight").toString()) < 0)) {
if (StringUtil.isEmpty(sku.get("weight").toString()) || Convert.toDouble(sku.get("weight").toString()) < 0) {
throw new ServiceException(ResultCode.GOODS_SKU_WEIGHT_ERROR); throw new ServiceException(ResultCode.GOODS_SKU_WEIGHT_ERROR);
} }
}
if (StringUtil.isEmpty(sku.get("quantity").toString()) || Convert.toInt(sku.get("quantity").toString()) < 0) { if (StringUtil.isEmpty(sku.get("quantity").toString()) || Convert.toInt(sku.get("quantity").toString()) < 0) {
throw new ServiceException(ResultCode.GOODS_SKU_QUANTITY_ERROR); throw new ServiceException(ResultCode.GOODS_SKU_QUANTITY_ERROR);
} }

View File

@ -12,7 +12,7 @@ import javax.validation.constraints.NotEmpty;
* 商品计量单位 * 商品计量单位
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/26 16:08 * @since 2020/11/26 16:08
*/ */
@Data @Data
@TableName("li_goods_unit") @TableName("li_goods_unit")

View File

@ -11,7 +11,7 @@ import lombok.Data;
* 小程序直播间 * 小程序直播间
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 9:47 上午 * @since 2021/5/17 9:47 上午
*/ */
@Data @Data
@ApiModel(value = "直播间") @ApiModel(value = "直播间")

View File

@ -12,7 +12,7 @@ import lombok.NoArgsConstructor;
* 直播商品 * 直播商品
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/18 5:42 下午 * @since 2021/5/18 5:42 下午
*/ */
@Data @Data
@ApiModel(value = "直播商品") @ApiModel(value = "直播商品")

View File

@ -7,7 +7,7 @@ import lombok.Data;
* 用于获取直播商品状态时使用 * 用于获取直播商品状态时使用
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/25 12:12 下午 * @since 2021/5/25 12:12 下午
*/ */
@Data @Data
public class CommodityDTO { public class CommodityDTO {

View File

@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* 微信小程序直播商品DTO * 微信小程序直播商品DTO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 11:03 上午 * @since 2021/5/17 11:03 上午
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor

View File

@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
* 用于直播间前台使用的直播间商品DTO * 用于直播间前台使用的直播间商品DTO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 2:34 下午 * @since 2021/5/20 2:34 下午
*/ */
public class SimpleCommodity { public class SimpleCommodity {

View File

@ -4,7 +4,7 @@ package cn.lili.modules.goods.entity.enums;
* 商品类型 * 商品类型
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/28 4:23 下午 * @since 2021/5/28 4:23 下午
*/ */
public enum GoodsTypeEnum { public enum GoodsTypeEnum {

View File

@ -5,7 +5,7 @@ package cn.lili.modules.goods.entity.enums;
* 直播间状态 * 直播间状态
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/31 10:32 上午 * @since 2021/5/31 10:32 上午
*/ */
public enum StudioStatusEnum { public enum StudioStatusEnum {

View File

@ -8,7 +8,7 @@ import lombok.Data;
* 直播商品VO * 直播商品VO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/26 6:09 下午 * @since 2021/5/26 6:09 下午
*/ */
@Data @Data
public class CommodityVO extends Commodity { public class CommodityVO extends Commodity {

View File

@ -11,7 +11,7 @@ import java.util.List;
* 直播间VO * 直播间VO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/31 11:58 上午 * @since 2021/5/31 11:58 上午
*/ */
@Data @Data
public class StudioVO extends Studio { public class StudioVO extends Studio {

View File

@ -15,7 +15,7 @@ import java.util.List;
* 直播商品数据层 * 直播商品数据层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 9:56 上午 * @since 2021/5/17 9:56 上午
*/ */
public interface CommodityMapper extends BaseMapper<Commodity> { public interface CommodityMapper extends BaseMapper<Commodity> {

View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* 直播间-商品关联持久层 * 直播间-商品关联持久层
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 3:14 下午 * @since 2021/5/17 3:14 下午
* *
*/ */
public interface StudioCommodityMapper extends BaseMapper<StudioCommodity> { public interface StudioCommodityMapper extends BaseMapper<StudioCommodity> {

View File

@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* 直播间数据层 * 直播间数据层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 9:56 上午 * @since 2021/5/17 9:56 上午
*/ */
public interface StudioMapper extends BaseMapper<Studio> { public interface StudioMapper extends BaseMapper<Studio> {

View File

@ -12,7 +12,7 @@ import java.util.List;
* 直播商品业务层 * 直播商品业务层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 10:39 上午 * @since 2021/5/17 10:39 上午
*/ */
public interface CommodityService extends IService<Commodity> { public interface CommodityService extends IService<Commodity> {

View File

@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* 商品计量单位业务层 * 商品计量单位业务层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2020/11/26 16:12 * @since 2020/11/26 16:12
*/ */
public interface GoodsUnitService extends IService<GoodsUnit> { public interface GoodsUnitService extends IService<GoodsUnit> {

View File

@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* 直播间-商品关联业务层 * 直播间-商品关联业务层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 3:19 下午 * @since 2021/5/17 3:19 下午
*/ */
public interface StudioCommodityService extends IService<StudioCommodity> { public interface StudioCommodityService extends IService<StudioCommodity> {
} }

View File

@ -1,9 +1,9 @@
package cn.lili.modules.goods.service; package cn.lili.modules.goods.service;
import cn.lili.trigger.message.BroadcastMessage;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.goods.entity.dos.Studio; import cn.lili.modules.goods.entity.dos.Studio;
import cn.lili.modules.goods.entity.vos.StudioVO; import cn.lili.modules.goods.entity.vos.StudioVO;
import cn.lili.trigger.message.BroadcastMessage;
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;
@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* 直播间业务层 * 直播间业务层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 10:02 上午 * @since 2021/5/17 10:02 上午
*/ */
public interface StudioService extends IService<Studio> { public interface StudioService extends IService<Studio> {
@ -48,11 +48,12 @@ public interface StudioService extends IService<Studio> {
/** /**
* 推送商品 * 推送商品
* @param roomId 店铺ID * @param roomId 房间ID
* @param goodsId 商品ID * @param goodsId 商品ID
* @param storeId 店铺ID
* @return 操作结果 * @return 操作结果
*/ */
Boolean push(Integer roomId,Integer goodsId); Boolean push(Integer roomId,Integer goodsId, String storeId);
/** /**
* 删除商品 * 删除商品
@ -60,7 +61,7 @@ public interface StudioService extends IService<Studio> {
* @param goodsId 商品ID * @param goodsId 商品ID
* @return 操作结果 * @return 操作结果
*/ */
Boolean goodsDeleteInRoom(Integer roomId,Integer goodsId); Boolean goodsDeleteInRoom(Integer roomId,Integer goodsId, String storeId);
/** /**
* 获取直播间列表 * 获取直播间列表

View File

@ -6,19 +6,20 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; 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.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.goods.entity.dos.Commodity; import cn.lili.modules.goods.entity.dos.Commodity;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.dto.CommodityDTO; import cn.lili.modules.goods.entity.dto.CommodityDTO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.vos.CommodityVO; import cn.lili.modules.goods.entity.vos.CommodityVO;
import cn.lili.modules.goods.mapper.CommodityMapper; import cn.lili.modules.goods.mapper.CommodityMapper;
import cn.lili.modules.goods.service.CommodityService; import cn.lili.modules.goods.service.CommodityService;
import cn.lili.modules.goods.util.WechatLivePlayerUtil;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.goods.util.WechatLivePlayerUtil;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@ -28,12 +29,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 直播商品业务层实现 * 直播商品业务层实现
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 11:16 上午 * @since 2021/5/17 11:16 上午
*/ */
@Service @Service
public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity> implements CommodityService { public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity> implements CommodityService {
@ -45,9 +47,11 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
@Override @Override
public boolean addCommodity(List<Commodity> commodityList) { public boolean addCommodity(List<Commodity> commodityList) {
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
for (Commodity commodity : commodityList) { for (Commodity commodity : commodityList) {
//检测直播商品 //检测直播商品
checkCommodity(commodity); checkCommodity(commodity);
commodity.setStoreId(storeId);
//添加直播商品 //添加直播商品
JSONObject json = wechatLivePlayerUtil.addGoods(commodity); JSONObject json = wechatLivePlayerUtil.addGoods(commodity);
if(!"0".equals(json.getStr("errcode"))){ if(!"0".equals(json.getStr("errcode"))){
@ -56,7 +60,6 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
} }
commodity.setLiveGoodsId(Convert.toInt(json.getStr("goodsId"))); commodity.setLiveGoodsId(Convert.toInt(json.getStr("goodsId")));
commodity.setAuditId(json.getStr("auditId")); commodity.setAuditId(json.getStr("auditId"));
commodity.setStoreId(UserContext.getCurrentUser().getStoreId());
//默认为待审核状态 //默认为待审核状态
commodity.setAuditStatus("0"); commodity.setAuditStatus("0");
this.save(commodity); this.save(commodity);
@ -78,9 +81,13 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
@Override @Override
public boolean deleteCommodity(String goodsId) { public boolean deleteCommodity(String goodsId) {
AuthUser currentUser = UserContext.getCurrentUser();
if (currentUser == null || (currentUser.getRole().equals(UserEnums.STORE) && currentUser.getStoreId() == null)) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
JSONObject json = wechatLivePlayerUtil.deleteGoods(goodsId); JSONObject json = wechatLivePlayerUtil.deleteGoods(goodsId);
if ("0".equals(json.getStr("errcode"))) { if ("0".equals(json.getStr("errcode"))) {
return this.remove(new LambdaQueryWrapper<Commodity>().eq(Commodity::getLiveGoodsId, goodsId)); return this.remove(new LambdaQueryWrapper<Commodity>().eq(Commodity::getLiveGoodsId, goodsId).eq(Commodity::getStoreId, currentUser.getStoreId()));
} }
return false; return false;
} }
@ -108,7 +115,7 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
return this.baseMapper.commodityVOList(PageUtil.initPage(pageVO), return this.baseMapper.commodityVOList(PageUtil.initPage(pageVO),
new QueryWrapper<CommodityVO>().like(name != null, "c.name", name) new QueryWrapper<CommodityVO>().like(name != null, "c.name", name)
.eq(auditStatus != null, "c.audit_status", auditStatus) .eq(auditStatus != null, "c.audit_status", auditStatus)
.eq(UserContext.getCurrentUser().getRole().equals(UserEnums.STORE), "c.store_id", UserContext.getCurrentUser().getStoreId()) .eq(Objects.requireNonNull(UserContext.getCurrentUser()).getRole().equals(UserEnums.STORE), "c.store_id", UserContext.getCurrentUser().getStoreId())
.orderByDesc("create_time")); .orderByDesc("create_time"));
} }
} }

View File

@ -9,6 +9,7 @@ import cn.lili.cache.CachePrefix;
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.common.properties.RocketmqCustomProperties; import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; 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.utils.StringUtils; import cn.lili.common.utils.StringUtils;
@ -27,7 +28,9 @@ import cn.lili.modules.goods.service.*;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.enums.EvaluationGradeEnum; import cn.lili.modules.member.entity.enums.EvaluationGradeEnum;
import cn.lili.modules.member.service.MemberEvaluationService; import cn.lili.modules.member.service.MemberEvaluationService;
import cn.lili.modules.store.entity.dos.FreightTemplate;
import cn.lili.modules.store.entity.vos.StoreVO; import cn.lili.modules.store.entity.vos.StoreVO;
import cn.lili.modules.store.service.FreightTemplateService;
import cn.lili.modules.store.service.StoreService; import cn.lili.modules.store.service.StoreService;
import cn.lili.modules.system.entity.dos.Setting; import cn.lili.modules.system.entity.dos.Setting;
import cn.lili.modules.system.entity.dto.GoodsSetting; import cn.lili.modules.system.entity.dto.GoodsSetting;
@ -51,6 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 商品业务层实现 * 商品业务层实现
@ -109,6 +113,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
@Autowired @Autowired
private CategoryParameterGroupService categoryParameterGroupService; private CategoryParameterGroupService categoryParameterGroupService;
@Autowired
private FreightTemplateService freightTemplateService;
@Autowired @Autowired
private Cache<GoodsVO> cache; private Cache<GoodsVO> cache;
@ -276,10 +282,10 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
public Boolean updateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason) { public Boolean updateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason) {
boolean result; boolean result;
if (UserContext.getCurrentUser() == null || UserContext.getCurrentUser().getStoreId() == null) { AuthUser currentUser = UserContext.getCurrentUser();
throw new ServiceException(ResultCode.USER_NOT_LOGIN); if (currentUser == null || (currentUser.getRole().equals(UserEnums.STORE) && currentUser.getStoreId() == null)) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
} }
String storeId = UserContext.getCurrentUser().getStoreId();
//如果商品为空直接返回 //如果商品为空直接返回
if (goodsIds == null || goodsIds.isEmpty()) { if (goodsIds == null || goodsIds.isEmpty()) {
@ -289,12 +295,12 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
LambdaUpdateWrapper<Goods> updateWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<Goods> updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.set(Goods::getMarketEnable, goodsStatusEnum.name()); updateWrapper.set(Goods::getMarketEnable, goodsStatusEnum.name());
updateWrapper.set(Goods::getUnderMessage, underReason); updateWrapper.set(Goods::getUnderMessage, underReason);
updateWrapper.eq(Goods::getStoreId, storeId); updateWrapper.eq(Goods::getStoreId, currentUser.getStoreId());
updateWrapper.in(Goods::getId, goodsIds); updateWrapper.in(Goods::getId, goodsIds);
result = this.update(updateWrapper); result = this.update(updateWrapper);
//修改规格商品 //修改规格商品
List<Goods> goodsList = this.list(new LambdaQueryWrapper<Goods>().in(Goods::getId, goodsIds).eq(Goods::getStoreId, storeId)); List<Goods> goodsList = this.list(new LambdaQueryWrapper<Goods>().in(Goods::getId, goodsIds).eq(Goods::getStoreId, currentUser.getStoreId()));
for (Goods goods : goodsList) { for (Goods goods : goodsList) {
goodsSkuService.updateGoodsSkuStatus(goods); goodsSkuService.updateGoodsSkuStatus(goods);
} }
@ -304,14 +310,20 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
@Override @Override
public Boolean deleteGoods(List<String> goodsIds) { public Boolean deleteGoods(List<String> goodsIds) {
AuthUser currentUser = UserContext.getCurrentUser();
if (currentUser == null || (currentUser.getRole().equals(UserEnums.STORE) && currentUser.getStoreId() == null)) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
LambdaUpdateWrapper<Goods> updateWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<Goods> updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.set(Goods::getMarketEnable, GoodsStatusEnum.DOWN.name()); updateWrapper.set(Goods::getMarketEnable, GoodsStatusEnum.DOWN.name());
updateWrapper.set(Goods::getDeleteFlag, true); updateWrapper.set(Goods::getDeleteFlag, true);
updateWrapper.eq(Goods::getStoreId, currentUser.getStoreId());
updateWrapper.in(Goods::getId, goodsIds); updateWrapper.in(Goods::getId, goodsIds);
this.update(updateWrapper); this.update(updateWrapper);
//修改规格商品 //修改规格商品
List<Goods> goodsList = this.list(new LambdaQueryWrapper<Goods>().in(Goods::getId, goodsIds)); List<Goods> goodsList = this.list(new LambdaQueryWrapper<Goods>().in(Goods::getId, goodsIds).eq(Goods::getStoreId, currentUser.getStoreId()));
for (Goods goods : goodsList) { for (Goods goods : goodsList) {
//修改SKU状态 //修改SKU状态
goodsSkuService.updateGoodsSkuStatus(goods); goodsSkuService.updateGoodsSkuStatus(goods);
@ -326,6 +338,19 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
@Override @Override
public Boolean freight(List<String> goodsIds, String templateId) { public Boolean freight(List<String> goodsIds, String templateId) {
AuthUser currentUser = UserContext.getCurrentUser();
if (currentUser == null || (currentUser.getRole().equals(UserEnums.STORE) && currentUser.getStoreId() == null)) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
FreightTemplate freightTemplate = freightTemplateService.getById(templateId);
if (freightTemplate == null) {
throw new ServiceException(ResultCode.FREIGHT_TEMPLATE_NOT_EXIST);
}
if (!freightTemplate.getStoreId().equals(currentUser.getStoreId())) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
LambdaUpdateWrapper<Goods> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<Goods> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.set(Goods::getTemplateId, templateId); lambdaUpdateWrapper.set(Goods::getTemplateId, templateId);
lambdaUpdateWrapper.in(Goods::getId, goodsIds); lambdaUpdateWrapper.in(Goods::getId, goodsIds);
@ -419,7 +444,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
//是否需要审核 //是否需要审核
goods.setIsAuth(Boolean.TRUE.equals(goodsSetting.getGoodsCheck()) ? GoodsAuthEnum.TOBEAUDITED.name() : GoodsAuthEnum.PASS.name()); goods.setIsAuth(Boolean.TRUE.equals(goodsSetting.getGoodsCheck()) ? GoodsAuthEnum.TOBEAUDITED.name() : GoodsAuthEnum.PASS.name());
//判断当前用户是否为店铺 //判断当前用户是否为店铺
if (UserContext.getCurrentUser().getRole().equals(UserEnums.STORE)) { if (Objects.requireNonNull(UserContext.getCurrentUser()).getRole().equals(UserEnums.STORE)) {
StoreVO storeDetail = this.storeService.getStoreDetail(); StoreVO storeDetail = this.storeService.getStoreDetail();
if (storeDetail.getSelfOperated() != null) { if (storeDetail.getSelfOperated() != null) {
goods.setSelfOperated(storeDetail.getSelfOperated()); goods.setSelfOperated(storeDetail.getSelfOperated());

View File

@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
* 直播间-商品关联业务层实现 * 直播间-商品关联业务层实现
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 3:20 下午 * @since 2021/5/17 3:20 下午
*/ */
@Service @Service
public class StudioCommodityServiceImpl extends ServiceImpl<StudioCommodityMapper, StudioCommodity> implements StudioCommodityService { public class StudioCommodityServiceImpl extends ServiceImpl<StudioCommodityMapper, StudioCommodity> implements StudioCommodityService {

View File

@ -2,30 +2,32 @@ package cn.lili.modules.goods.serviceimpl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.trigger.message.BroadcastMessage;
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.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.trigger.enums.DelayTypeEnums;
import cn.lili.trigger.interfaces.TimeTrigger;
import cn.lili.trigger.model.TimeExecuteConstant;
import cn.lili.trigger.model.TimeTriggerMsg;
import cn.lili.trigger.util.DelayQueueTools;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.common.utils.DateUtil; import cn.lili.common.utils.DateUtil;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dos.Studio; import cn.lili.modules.goods.entity.dos.Studio;
import cn.lili.modules.goods.entity.dos.StudioCommodity; import cn.lili.modules.goods.entity.dos.StudioCommodity;
import cn.lili.modules.goods.entity.enums.StudioStatusEnum; import cn.lili.modules.goods.entity.enums.StudioStatusEnum;
import cn.lili.modules.goods.entity.vos.StudioVO; import cn.lili.modules.goods.entity.vos.StudioVO;
import cn.lili.modules.goods.mapper.CommodityMapper; import cn.lili.modules.goods.mapper.CommodityMapper;
import cn.lili.modules.goods.mapper.StudioMapper; import cn.lili.modules.goods.mapper.StudioMapper;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.goods.service.StudioCommodityService; import cn.lili.modules.goods.service.StudioCommodityService;
import cn.lili.modules.goods.service.StudioService; import cn.lili.modules.goods.service.StudioService;
import cn.lili.modules.goods.util.WechatLivePlayerUtil; import cn.lili.modules.goods.util.WechatLivePlayerUtil;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.trigger.enums.DelayTypeEnums;
import cn.lili.trigger.interfaces.TimeTrigger;
import cn.lili.trigger.message.BroadcastMessage;
import cn.lili.trigger.model.TimeExecuteConstant;
import cn.lili.trigger.model.TimeTriggerMsg;
import cn.lili.trigger.util.DelayQueueTools;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@ -36,12 +38,13 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* 小程序直播间业务层实现 * 小程序直播间业务层实现
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 10:04 上午 * @since 2021/5/17 10:04 上午
*/ */
@Service @Service
public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> implements StudioService { public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> implements StudioService {
@ -56,14 +59,16 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
private TimeTrigger timeTrigger; private TimeTrigger timeTrigger;
@Autowired @Autowired
private RocketmqCustomProperties rocketmqCustomProperties; private RocketmqCustomProperties rocketmqCustomProperties;
@Autowired
private GoodsService goodsService;
@Override @Override
public Boolean create(Studio studio) { public Boolean create(Studio studio) {
studio.setStoreId(Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId());
//创建小程序直播 //创建小程序直播
Map<String, String> roomMap = wechatLivePlayerUtil.create(studio); Map<String, String> roomMap = wechatLivePlayerUtil.create(studio);
studio.setRoomId(Convert.toInt(roomMap.get("roomId"))); studio.setRoomId(Convert.toInt(roomMap.get("roomId")));
studio.setQrCodeUrl(roomMap.get("qrcodeUrl")); studio.setQrCodeUrl(roomMap.get("qrcodeUrl"));
studio.setStoreId(UserContext.getCurrentUser().getStoreId());
studio.setStatus(StudioStatusEnum.NEW.name()); studio.setStatus(StudioStatusEnum.NEW.name());
//直播间添加成功发送直播间开启关闭延时任务 //直播间添加成功发送直播间开启关闭延时任务
if (this.save(studio)) { if (this.save(studio)) {
@ -125,8 +130,9 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
@Override @Override
public StudioVO getStudioVO(String id) { public StudioVO getStudioVO(String id) {
StudioVO studioVO = new StudioVO(); StudioVO studioVO = new StudioVO();
Studio studio = this.getById(id);
//获取直播间信息 //获取直播间信息
BeanUtil.copyProperties(this.getById(id), studioVO); BeanUtil.copyProperties(studio, studioVO);
//获取直播间商品信息 //获取直播间商品信息
studioVO.setCommodityList(commodityMapper.getCommodityByRoomId(studioVO.getRoomId())); studioVO.setCommodityList(commodityMapper.getCommodityByRoomId(studioVO.getRoomId()));
return studioVO; return studioVO;
@ -147,7 +153,7 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
} }
@Override @Override
public Boolean push(Integer roomId, Integer goodsId) { public Boolean push(Integer roomId, Integer goodsId, String storeId) {
//判断直播间是否已添加商品 //判断直播间是否已添加商品
if (studioCommodityService.getOne( if (studioCommodityService.getOne(
@ -156,8 +162,13 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
throw new ServiceException(ResultCode.STODIO_GOODS_EXIST_ERROR); throw new ServiceException(ResultCode.STODIO_GOODS_EXIST_ERROR);
} }
Goods goods = goodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getId, goodsId).eq(Goods::getStoreId, storeId));
if (goods == null) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
//调用微信接口添加直播间商品并进行记录 //调用微信接口添加直播间商品并进行记录
if (wechatLivePlayerUtil.pushGoods(roomId, goodsId)) { if (Boolean.TRUE.equals(wechatLivePlayerUtil.pushGoods(roomId, goodsId))) {
studioCommodityService.save(new StudioCommodity(roomId, goodsId)); studioCommodityService.save(new StudioCommodity(roomId, goodsId));
//添加直播间商品数量 //添加直播间商品数量
Studio studio = this.getByRoomId(roomId); Studio studio = this.getByRoomId(roomId);
@ -172,9 +183,13 @@ public class StudioServiceImpl extends ServiceImpl<StudioMapper, Studio> impleme
} }
@Override @Override
public Boolean goodsDeleteInRoom(Integer roomId, Integer goodsId) { public Boolean goodsDeleteInRoom(Integer roomId, Integer goodsId, String storeId) {
Goods goods = goodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getId, goodsId).eq(Goods::getStoreId, storeId));
if (goods == null) {
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
}
//调用微信接口删除直播间商品并进行记录 //调用微信接口删除直播间商品并进行记录
if (wechatLivePlayerUtil.goodsDeleteInRoom(roomId, goodsId)) { if (Boolean.TRUE.equals(wechatLivePlayerUtil.goodsDeleteInRoom(roomId, goodsId))) {
studioCommodityService.remove(new QueryWrapper<StudioCommodity>().eq("room_id", roomId).eq("goods_id", goodsId)); studioCommodityService.remove(new QueryWrapper<StudioCommodity>().eq("room_id", roomId).eq("goods_id", goodsId));
//减少直播间商品数量 //减少直播间商品数量
Studio studio = this.getByRoomId(roomId); Studio studio = this.getByRoomId(roomId);

View File

@ -1,8 +1,8 @@
package cn.lili.modules.goods.util; package cn.lili.modules.goods.util;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.enums.ClientTypeEnum; import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.common.exception.ServiceException;
import cn.lili.modules.goods.entity.dos.Commodity; import cn.lili.modules.goods.entity.dos.Commodity;
import cn.lili.modules.goods.entity.dos.Studio; import cn.lili.modules.goods.entity.dos.Studio;
import cn.lili.modules.goods.entity.dto.GoodsInfo; import cn.lili.modules.goods.entity.dto.GoodsInfo;
@ -20,7 +20,7 @@ import java.util.Map;
* 微信小程序直播工具类 * 微信小程序直播工具类
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/17 10:16 上午 * @since 2021/5/17 10:16 上午
*/ */
@Slf4j @Slf4j
@Component @Component

View File

@ -1,9 +1,9 @@
package cn.lili.modules.goods.util; package cn.lili.modules.goods.util;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.lili.common.enums.ClientTypeEnum;
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.common.enums.ClientTypeEnum;
import cn.lili.modules.message.util.WechatAccessTokenUtil; import cn.lili.modules.message.util.WechatAccessTokenUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -17,7 +17,7 @@ import java.net.URL;
* 微信媒体工具 * 微信媒体工具
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/19 8:02 下午 * @since 2021/5/19 8:02 下午
*/ */
@Slf4j @Slf4j
@Component @Component

View File

@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* 会员等级数据层 * 会员等级数据层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/14 5:57 下午 * @since 2021/5/14 5:57 下午
*/ */
public interface MemberGradeMapper extends BaseMapper<MemberGrade> { public interface MemberGradeMapper extends BaseMapper<MemberGrade> {

View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* 会员等级业务层 * 会员等级业务层
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/14 5:57 下午 * @since 2021/5/14 5:57 下午
* *
*/ */
public interface MemberGradeService extends IService<MemberGrade> { public interface MemberGradeService extends IService<MemberGrade> {

View File

@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
* 会员等级业务层实现 * 会员等级业务层实现
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/14 5:58 下午 * @since 2021/5/14 5:58 下午
*/ */
@Service @Service
public class MemberGradeServiceImpl extends ServiceImpl<MemberGradeMapper, MemberGrade> implements MemberGradeService { public class MemberGradeServiceImpl extends ServiceImpl<MemberGradeMapper, MemberGrade> implements MemberGradeService {

View File

@ -4,22 +4,18 @@ package cn.lili.modules.member.serviceimpl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.lili.cache.Cache; import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix; import cn.lili.cache.CachePrefix;
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.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.modules.member.entity.enums.PointTypeEnum; import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.token.Token; import cn.lili.common.security.token.Token;
import cn.lili.modules.member.token.MemberTokenGenerate; import cn.lili.common.utils.BeanUtil;
import cn.lili.modules.member.token.StoreTokenGenerate; import cn.lili.common.utils.CookieUtil;
import cn.lili.common.utils.*; import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.context.ThreadContextHolder;
import cn.lili.common.properties.RocketmqCustomProperties;
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;
import cn.lili.modules.connect.entity.dto.ConnectAuthUser; import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
@ -31,15 +27,21 @@ import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO;
import cn.lili.modules.member.entity.dto.MemberAddDTO; import cn.lili.modules.member.entity.dto.MemberAddDTO;
import cn.lili.modules.member.entity.dto.MemberEditDTO; import cn.lili.modules.member.entity.dto.MemberEditDTO;
import cn.lili.modules.member.entity.dto.MemberPointMessage; import cn.lili.modules.member.entity.dto.MemberPointMessage;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.entity.vo.MemberDistributionVO; import cn.lili.modules.member.entity.vo.MemberDistributionVO;
import cn.lili.modules.member.entity.vo.MemberSearchVO; import cn.lili.modules.member.entity.vo.MemberSearchVO;
import cn.lili.modules.member.mapper.MemberMapper; import cn.lili.modules.member.mapper.MemberMapper;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.member.token.MemberTokenGenerate;
import cn.lili.modules.member.token.StoreTokenGenerate;
import cn.lili.modules.store.entity.dos.Store; 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.modules.system.utils.CharacterConstant; import cn.lili.modules.system.utils.CharacterConstant;
import cn.lili.modules.system.utils.SensitiveWordsFilter; import cn.lili.modules.system.utils.SensitiveWordsFilter;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@ -54,6 +56,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 会员接口业务层实现 * 会员接口业务层实现
@ -229,7 +232,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override @Override
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);
Member member = this.baseMapper.selectOne(queryWrapper); Member member = this.baseMapper.selectOne(queryWrapper);
//如果手机号不存在则自动注册用户 //如果手机号不存在则自动注册用户
@ -247,7 +250,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override @Override
public Member editOwn(MemberEditDTO memberEditDTO) { public Member editOwn(MemberEditDTO memberEditDTO) {
//查询会员信息 //查询会员信息
Member member = this.findByUsername(UserContext.getCurrentUser().getUsername()); Member member = this.findByUsername(Objects.requireNonNull(UserContext.getCurrentUser()).getUsername());
//传递修改会员信息 //传递修改会员信息
BeanUtil.copyProperties(memberEditDTO, member); BeanUtil.copyProperties(memberEditDTO, member);
//修改会员 //修改会员
@ -292,11 +295,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override @Override
public boolean changeMobile(String mobile) { public boolean changeMobile(String mobile) {
AuthUser tokenUser = UserContext.getCurrentUser(); AuthUser tokenUser = Objects.requireNonNull(UserContext.getCurrentUser());
Member member = this.findByUsername(tokenUser.getUsername()); Member member = this.findByUsername(tokenUser.getUsername());
//判断是否用户登录并且会员ID为当前登录会员ID //判断是否用户登录并且会员ID为当前登录会员ID
if (tokenUser == null || tokenUser.getId() != member.getId()) { if (!Objects.equals(tokenUser.getId(), member.getId())) {
throw new ServiceException(ResultCode.USER_NOT_LOGIN); throw new ServiceException(ResultCode.USER_NOT_LOGIN);
} }
//修改会员手机号 //修改会员手机号

View File

@ -21,7 +21,7 @@ import java.util.Map;
* 订单操作日志 * 订单操作日志
* *
* @author Chopper * @author Chopper
* @since: 2020/11/17 7:22 下午 * @since 2020/11/17 7:22 下午
*/ */
@Slf4j @Slf4j
@Aspect @Aspect

View File

@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull;
* 售后原因 * 售后原因
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:39 上午 * @since 2021/7/9 1:39 上午
*/ */
@Data @Data
@TableName("li_after_sale_reason") @TableName("li_after_sale_reason")

View File

@ -6,7 +6,7 @@ import lombok.Data;
/** /**
* 订单批量发货DTO * 订单批量发货DTO
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/26 4:21 下午 * @since 2021/5/26 4:21 下午
* *
*/ */
@Data @Data

View File

@ -13,7 +13,7 @@ import java.util.Date;
/** /**
* 订单导出DTO * 订单导出DTO
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/6/3 6:36 下午 * @since 2021/6/3 6:36 下午
* *
*/ */
@Data @Data

View File

@ -1,7 +1,7 @@
package cn.lili.modules.order.order.serviceimpl; package cn.lili.modules.order.order.serviceimpl;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; 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;
@ -12,7 +12,6 @@ import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.common.utils.CurrencyUtil; import cn.lili.common.utils.CurrencyUtil;
import cn.lili.common.utils.SnowFlake; import cn.lili.common.utils.SnowFlake;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.order.order.aop.AfterSaleLogPoint; import cn.lili.modules.order.order.aop.AfterSaleLogPoint;
import cn.lili.modules.order.order.entity.dos.AfterSale; import cn.lili.modules.order.order.entity.dos.AfterSale;
@ -60,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 售后业务层实现 * 售后业务层实现
@ -202,7 +202,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
//如果售后类型为退款审核状态为已通过并且退款方式为原路退回售后单状态为已完成 //如果售后类型为退款审核状态为已通过并且退款方式为原路退回售后单状态为已完成
//如果售后类型为退款审核状态已通过并且退款方式为线下退回售后单状态为待退款 //如果售后类型为退款审核状态已通过并且退款方式为线下退回售后单状态为待退款
//如果售后类型不为退款售后单状态为已通过 //如果售后类型不为退款售后单状态为已通过
AfterSaleStatusEnum afterSaleStatusEnum = null; AfterSaleStatusEnum afterSaleStatusEnum;
if (serviceStatus.equals(AfterSaleStatusEnum.PASS.name())) { if (serviceStatus.equals(AfterSaleStatusEnum.PASS.name())) {
if (afterSale.getServiceType().equals(AfterSaleTypeEnum.RETURN_MONEY.name())) { if (afterSale.getServiceType().equals(AfterSaleTypeEnum.RETURN_MONEY.name())) {
if (afterSale.getRefundWay().equals(AfterSaleRefundWayEnum.ORIGINAL.name())) { if (afterSale.getRefundWay().equals(AfterSaleRefundWayEnum.ORIGINAL.name())) {
@ -285,7 +285,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
if (!afterSale.getServiceStatus().equals(AfterSaleStatusEnum.BUYER_RETURN.name())) { if (!afterSale.getServiceStatus().equals(AfterSaleStatusEnum.BUYER_RETURN.name())) {
throw new ServiceException(ResultCode.AFTER_STATUS_ERROR); throw new ServiceException(ResultCode.AFTER_STATUS_ERROR);
} }
AfterSaleStatusEnum afterSaleStatusEnum = null; AfterSaleStatusEnum afterSaleStatusEnum;
String pass = "PASS"; String pass = "PASS";
//判断审核状态 //判断审核状态
//在线支付 则直接进行退款 //在线支付 则直接进行退款
@ -360,17 +360,18 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
@Override @Override
public Integer applyNum(String serviceType) { public Integer applyNum(String serviceType) {
AuthUser authUser = Objects.requireNonNull(UserContext.getCurrentUser());
LambdaQueryWrapper<AfterSale> queryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<AfterSale> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(AfterSale::getServiceStatus, AfterSaleStatusEnum.APPLY.name()); queryWrapper.eq(AfterSale::getServiceStatus, AfterSaleStatusEnum.APPLY.name());
queryWrapper.eq(StringUtils.isNotEmpty(serviceType), AfterSale::getServiceType, serviceType); queryWrapper.eq(CharSequenceUtil.isNotEmpty(serviceType), AfterSale::getServiceType, serviceType);
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()), queryWrapper.eq(CharSequenceUtil.equals(authUser.getRole().name(), UserEnums.STORE.name()),
AfterSale::getStoreId, UserContext.getCurrentUser().getStoreId()); AfterSale::getStoreId, authUser.getStoreId());
return this.count(queryWrapper); return this.count(queryWrapper);
} }
@Override @Override
public StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO(String sn) { public StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO(String sn) {
return storeDetailService.getStoreAfterSaleAddressDTO(this.getBySn(sn).getStoreId()); return storeDetailService.getStoreAfterSaleAddressDTO(OperationalJudgment.judgment(this.getBySn(sn)).getStoreId());
} }
@Override @Override
@ -379,7 +380,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
LambdaQueryWrapper<AfterSale> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<AfterSale> queryWrapper = new LambdaQueryWrapper<>();
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam); Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
queryWrapper.between(AfterSale::getCreateTime, dates[0], dates[1]); queryWrapper.between(AfterSale::getCreateTime, dates[0], dates[1]);
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()), AfterSale::getStoreId, statisticsQueryParam.getStoreId()); queryWrapper.eq(CharSequenceUtil.isNotEmpty(statisticsQueryParam.getStoreId()), AfterSale::getStoreId, statisticsQueryParam.getStoreId());
return this.page(PageUtil.initPage(pageVO), queryWrapper); return this.page(PageUtil.initPage(pageVO), queryWrapper);
} }
@ -392,7 +393,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
*/ */
private AfterSale addAfterSale(AfterSaleDTO afterSaleDTO) { private AfterSale addAfterSale(AfterSaleDTO afterSaleDTO) {
//写入其他属性 //写入其他属性
AuthUser tokenUser = UserContext.getCurrentUser(); AuthUser tokenUser = Objects.requireNonNull(UserContext.getCurrentUser());
AfterSale afterSale = new AfterSale(); AfterSale afterSale = new AfterSale();
BeanUtil.copyProperties(afterSaleDTO, afterSale); BeanUtil.copyProperties(afterSaleDTO, afterSale);
@ -437,7 +438,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
afterSale.setApplyRefundPrice(orderItem.getFlowPrice()); afterSale.setApplyRefundPrice(orderItem.getFlowPrice());
} else { } else {
//单价计算 //单价计算
Double utilPrice = CurrencyUtil.div(orderItem.getPriceDetailDTO().getFlowPrice(), orderItem.getNum()); double utilPrice = CurrencyUtil.div(orderItem.getPriceDetailDTO().getFlowPrice(), orderItem.getNum());
afterSale.setApplyRefundPrice(CurrencyUtil.mul(afterSale.getNum(), utilPrice)); afterSale.setApplyRefundPrice(CurrencyUtil.mul(afterSale.getNum(), utilPrice));
} }
//添加售后 //添加售后
@ -457,7 +458,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
private void checkAfterSaleType(AfterSaleDTO afterSaleDTO) { private void checkAfterSaleType(AfterSaleDTO afterSaleDTO) {
//判断数据是否为空 //判断数据是否为空
if (null == afterSaleDTO || StringUtils.isEmpty(afterSaleDTO.getOrderItemSn())) { if (null == afterSaleDTO || CharSequenceUtil.isEmpty(afterSaleDTO.getOrderItemSn())) {
throw new ServiceException(ResultCode.ORDER_NOT_EXIST); throw new ServiceException(ResultCode.ORDER_NOT_EXIST);
} }
@ -482,7 +483,7 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
break; break;
case RETURN_GOODS: case RETURN_GOODS:
//是否为有效状态 //是否为有效状态
boolean availableStatus = StrUtil.equalsAny(order.getOrderStatus(), OrderStatusEnum.DELIVERED.name(), OrderStatusEnum.COMPLETED.name()); boolean availableStatus = CharSequenceUtil.equalsAny(order.getOrderStatus(), OrderStatusEnum.DELIVERED.name(), OrderStatusEnum.COMPLETED.name());
if (!PayStatusEnum.PAID.name().equals(order.getPayStatus()) && availableStatus) { if (!PayStatusEnum.PAID.name().equals(order.getPayStatus()) && availableStatus) {
throw new ServiceException(ResultCode.AFTER_SALES_BAN); throw new ServiceException(ResultCode.AFTER_SALES_BAN);
} }
@ -496,14 +497,14 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
/** /**
* 检测售后-退款参数 * 检测售后-退款参数
* *
* @param afterSaleDTO * @param afterSaleDTO 售后DTO
*/ */
private void checkAfterSaleReturnMoneyParam(AfterSaleDTO afterSaleDTO) { private void checkAfterSaleReturnMoneyParam(AfterSaleDTO afterSaleDTO) {
//如果为线下支付银行信息不能为空 //如果为线下支付银行信息不能为空
if (AfterSaleRefundWayEnum.OFFLINE.name().equals(afterSaleDTO.getRefundWay())) { if (AfterSaleRefundWayEnum.OFFLINE.name().equals(afterSaleDTO.getRefundWay())) {
boolean emptyBankParam = StringUtils.isEmpty(afterSaleDTO.getBankDepositName()) boolean emptyBankParam = CharSequenceUtil.isEmpty(afterSaleDTO.getBankDepositName())
|| StringUtils.isEmpty(afterSaleDTO.getBankAccountName()) || CharSequenceUtil.isEmpty(afterSaleDTO.getBankAccountName())
|| StringUtils.isEmpty(afterSaleDTO.getBankAccountNumber()); || CharSequenceUtil.isEmpty(afterSaleDTO.getBankAccountNumber());
if (emptyBankParam) { if (emptyBankParam) {
throw new ServiceException(ResultCode.RETURN_MONEY_OFFLINE_BANK_ERROR); throw new ServiceException(ResultCode.RETURN_MONEY_OFFLINE_BANK_ERROR);
} }

View File

@ -80,6 +80,7 @@ import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 子订单业务层实现 * 子订单业务层实现
@ -396,9 +397,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Override @Override
public Order getOrderByVerificationCode(String verificationCode) { public Order getOrderByVerificationCode(String verificationCode) {
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
return this.getOne(new LambdaQueryWrapper<Order>() return this.getOne(new LambdaQueryWrapper<Order>()
.eq(Order::getOrderStatus, OrderStatusEnum.TAKE.name()) .eq(Order::getOrderStatus, OrderStatusEnum.TAKE.name())
.eq(Order::getStoreId, UserContext.getCurrentUser().getStoreId()) .eq(Order::getStoreId, storeId)
.eq(Order::getVerificationCode, verificationCode)); .eq(Order::getVerificationCode, verificationCode));
} }

View File

@ -1,10 +1,9 @@
package cn.lili.modules.page.entity.dos; package cn.lili.modules.page.entity.dos;
import cn.lili.mybatis.BaseEntity;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.enums.ClientTypeEnum; import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.modules.page.entity.enums.PageEnum; import cn.lili.modules.page.entity.enums.PageEnum;
import cn.lili.mybatis.BaseEntity;
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;
@ -54,10 +53,11 @@ public class PageData extends BaseEntity {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private String num; private String num;
public PageData(String name, String pageClientType, String pageData) { public PageData(String name, String pageClientType, String pageData, String num) {
this.name = name;
this.pageClientType = pageClientType; this.pageClientType = pageClientType;
this.pageData = pageData; this.pageData = pageData;
this.num = UserContext.getCurrentUser().getStoreId(); this.num = num;
this.pageShow = SwitchEnum.CLOSE.name(); this.pageShow = SwitchEnum.CLOSE.name();
this.pageType = PageEnum.STORE.name(); this.pageType = PageEnum.STORE.name();
} }

View File

@ -58,7 +58,7 @@ public class PageDataServiceImpl extends ServiceImpl<PageDataMapper, PageData> i
public PageData addPageData(PageData pageData) { public PageData addPageData(PageData pageData) {
//如果页面为发布则关闭其他页面开启此页面 //如果页面为发布则关闭其他页面开启此页面
//演示站点不可以开启楼层 //演示站点不可以开启楼层
if (!systemSettingProperties.getIsDemoSite() && pageData.getPageShow().equals(SwitchEnum.OPEN.name())) { if (!Boolean.TRUE.equals(systemSettingProperties.getIsDemoSite()) && pageData.getPageShow().equals(SwitchEnum.OPEN.name())) {
LambdaUpdateWrapper<PageData> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<PageData> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.eq(PageData::getPageType, pageData.getPageType()); lambdaUpdateWrapper.eq(PageData::getPageType, pageData.getPageType());
lambdaUpdateWrapper.eq(PageData::getPageClientType, pageData.getPageClientType()); lambdaUpdateWrapper.eq(PageData::getPageClientType, pageData.getPageClientType());
@ -123,7 +123,7 @@ public class PageDataServiceImpl extends ServiceImpl<PageDataMapper, PageData> i
public boolean removePageData(String id) { public boolean removePageData(String id) {
PageData pageData = this.getById(id); PageData pageData = this.getById(id);
//专题则直接进行删除 //专题则直接进行删除
if (pageData.getPageType().equals(PageEnum.SPECIAL)) { if (pageData.getPageType().equals(PageEnum.SPECIAL.name())) {
return this.removeById(id); return this.removeById(id);
} }
//店铺平台首页需要判断是否开启开启则无法删除 //店铺平台首页需要判断是否开启开启则无法删除
@ -135,7 +135,7 @@ public class PageDataServiceImpl extends ServiceImpl<PageDataMapper, PageData> i
queryWrapper.eq(pageData.getPageType() != null, "page_type", pageData.getPageType()); queryWrapper.eq(pageData.getPageType() != null, "page_type", pageData.getPageType());
queryWrapper.eq(pageData.getPageClientType() != null, "page_client_type", pageData.getPageClientType()); queryWrapper.eq(pageData.getPageClientType() != null, "page_client_type", pageData.getPageClientType());
//如果为店铺页面需要设置店铺ID //如果为店铺页面需要设置店铺ID
if (pageData.getPageType().equals(PageEnum.STORE)) { if (pageData.getPageType().equals(PageEnum.STORE.name())) {
queryWrapper.eq(pageData.getNum() != null, "num", pageData.getNum()); queryWrapper.eq(pageData.getNum() != null, "num", pageData.getNum());
} }
//判断是否为唯一的页面 //判断是否为唯一的页面

View File

@ -11,7 +11,7 @@ import java.util.List;
* 优惠券活动DTO * 优惠券活动DTO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/21 7:16 下午 * @since 2021/5/21 7:16 下午
*/ */
@Data @Data
public class CouponActivityDTO extends CouponActivity { public class CouponActivityDTO extends CouponActivity {

View File

@ -4,7 +4,7 @@ package cn.lili.modules.promotion.entity.enums;
* 优惠券活动发送类型枚举 * 优惠券活动发送类型枚举
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 5:47 下午 * @since 2021/5/20 5:47 下午
*/ */
public enum CouponActivitySendTypeEnum { public enum CouponActivitySendTypeEnum {

View File

@ -4,7 +4,7 @@ package cn.lili.modules.promotion.entity.enums;
* 优惠券活动类型枚举 * 优惠券活动类型枚举
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 5:47 下午 * @since 2021/5/20 5:47 下午
*/ */
public enum CouponActivityTypeEnum { public enum CouponActivityTypeEnum {

View File

@ -4,7 +4,7 @@ package cn.lili.modules.promotion.entity.enums;
* 优惠券时间范围枚举 * 优惠券时间范围枚举
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/24 8:31 上午 * @since 2021/5/24 8:31 上午
*/ */
public enum CouponRangeDayEnum { public enum CouponRangeDayEnum {

View File

@ -8,7 +8,7 @@ import lombok.Data;
* 优惠券活动的优惠券VO * 优惠券活动的优惠券VO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/6/18 11:00 上午 * @since 2021/6/18 11:00 上午
*/ */
@Data @Data
public class CouponActivityItemVO extends CouponActivityItem { public class CouponActivityItemVO extends CouponActivityItem {

View File

@ -12,7 +12,7 @@ import java.util.List;
* 优惠券活动VO * 优惠券活动VO
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/21 7:01 下午 * @since 2021/5/21 7:01 下午
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor

View File

@ -26,6 +26,9 @@ public class PromotionGoodsSearchParams {
@ApiModelProperty(value = "促销状态") @ApiModelProperty(value = "促销状态")
private String promotionStatus; private String promotionStatus;
@ApiModelProperty(value = "促销活动id")
private String storeId;
@ApiModelProperty(value = "商品名称") @ApiModelProperty(value = "商品名称")
private String goodsName; private String goodsName;
@ -62,6 +65,9 @@ public class PromotionGoodsSearchParams {
if (endTime != null) { if (endTime != null) {
queryWrapper.ge(PromotionGoods::getEndTime, new Date(endTime)); queryWrapper.ge(PromotionGoods::getEndTime, new Date(endTime));
} }
if (CharSequenceUtil.isNotEmpty(storeId)) {
queryWrapper.eq(PromotionGoods::getStoreId, storeId);
}
queryWrapper.eq(PromotionGoods::getDeleteFlag, false); queryWrapper.eq(PromotionGoods::getDeleteFlag, false);
return queryWrapper; return queryWrapper;
} }

View File

@ -11,7 +11,7 @@ import java.util.List;
* 优惠券活动 * 优惠券活动
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 6:11 下午 * @since 2021/5/20 6:11 下午
*/ */
public interface CouponActivityItemMapper extends BaseMapper<CouponActivityItem> { public interface CouponActivityItemMapper extends BaseMapper<CouponActivityItem> {

View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* 优惠券活动 * 优惠券活动
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 6:11 下午 * @since 2021/5/20 6:11 下午
* *
*/ */
public interface CouponActivityMapper extends BaseMapper<CouponActivity> { public interface CouponActivityMapper extends BaseMapper<CouponActivity> {

View File

@ -10,7 +10,7 @@ import java.util.List;
* 优惠券活动-优惠券业务层 * 优惠券活动-优惠券业务层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 6:10 下午 * @since 2021/5/20 6:10 下午
*/ */
public interface CouponActivityItemService extends IService<CouponActivityItem> { public interface CouponActivityItemService extends IService<CouponActivityItem> {

View File

@ -13,7 +13,7 @@ import java.util.List;
* 优惠券活动业务层 * 优惠券活动业务层
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 6:10 下午 * @since 2021/5/20 6:10 下午
*/ */
public interface CouponActivityService extends IService<CouponActivity> { public interface CouponActivityService extends IService<CouponActivity> {

View File

@ -14,7 +14,7 @@ import java.util.List;
* 优惠券活动关联优惠券业务层实现 * 优惠券活动关联优惠券业务层实现
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/21 6:42 下午 * @since 2021/5/21 6:42 下午
*/ */
@Service @Service
public class CouponActivityItemServiceImpl extends ServiceImpl<CouponActivityItemMapper, CouponActivityItem> implements CouponActivityItemService { public class CouponActivityItemServiceImpl extends ServiceImpl<CouponActivityItemMapper, CouponActivityItem> implements CouponActivityItemService {

View File

@ -1,16 +1,11 @@
package cn.lili.modules.promotion.serviceimpl; package cn.lili.modules.promotion.serviceimpl;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.common.enums.PromotionTypeEnum;
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.trigger.enums.DelayTypeEnums;
import cn.lili.trigger.interfaces.TimeTrigger;
import cn.lili.trigger.message.PromotionMessage;
import cn.lili.trigger.model.TimeExecuteConstant;
import cn.lili.trigger.model.TimeTriggerMsg;
import cn.lili.trigger.util.DelayQueueTools;
import cn.lili.common.utils.DateUtil;
import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.utils.DateUtil;
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.modules.promotion.entity.dos.Coupon; import cn.lili.modules.promotion.entity.dos.Coupon;
@ -21,7 +16,6 @@ import cn.lili.modules.promotion.entity.dto.CouponActivityDTO;
import cn.lili.modules.promotion.entity.enums.CouponActivitySendTypeEnum; import cn.lili.modules.promotion.entity.enums.CouponActivitySendTypeEnum;
import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum; import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.common.enums.PromotionTypeEnum;
import cn.lili.modules.promotion.entity.vos.CouponActivityVO; import cn.lili.modules.promotion.entity.vos.CouponActivityVO;
import cn.lili.modules.promotion.mapper.CouponActivityMapper; import cn.lili.modules.promotion.mapper.CouponActivityMapper;
import cn.lili.modules.promotion.service.CouponActivityItemService; import cn.lili.modules.promotion.service.CouponActivityItemService;
@ -29,6 +23,12 @@ import cn.lili.modules.promotion.service.CouponActivityService;
import cn.lili.modules.promotion.service.CouponService; import cn.lili.modules.promotion.service.CouponService;
import cn.lili.modules.promotion.service.MemberCouponService; import cn.lili.modules.promotion.service.MemberCouponService;
import cn.lili.modules.promotion.tools.PromotionTools; import cn.lili.modules.promotion.tools.PromotionTools;
import cn.lili.trigger.enums.DelayTypeEnums;
import cn.lili.trigger.interfaces.TimeTrigger;
import cn.lili.trigger.message.PromotionMessage;
import cn.lili.trigger.model.TimeExecuteConstant;
import cn.lili.trigger.model.TimeTriggerMsg;
import cn.lili.trigger.util.DelayQueueTools;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -42,7 +42,7 @@ import java.util.*;
* 优惠券活动业务层实现 * 优惠券活动业务层实现
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/20 6:10 下午 * @since 2021/5/20 6:10 下午
*/ */
@Slf4j @Slf4j
@Service @Service

View File

@ -8,7 +8,7 @@ import java.lang.annotation.*;
* 埋点统计 * 埋点统计
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:47 上午 * @since 2021/7/9 1:47 上午
*/ */
@Target({ElementType.PARAMETER, ElementType.METHOD}) @Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)

View File

@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* 首页统计数据业务层实现 * 首页统计数据业务层实现
@ -190,6 +191,7 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
@Override @Override
public StoreIndexStatisticsVO storeIndexStatistics() { public StoreIndexStatisticsVO storeIndexStatistics() {
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
StoreIndexStatisticsVO storeIndexStatisticsVO = new StoreIndexStatisticsVO(); StoreIndexStatisticsVO storeIndexStatisticsVO = new StoreIndexStatisticsVO();
//商品总数量 //商品总数量
@ -202,7 +204,7 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
//访问量 //访问量
StatisticsQueryParam queryParam = new StatisticsQueryParam(); StatisticsQueryParam queryParam = new StatisticsQueryParam();
queryParam.setSearchType(SearchTypeEnum.TODAY.name()); queryParam.setSearchType(SearchTypeEnum.TODAY.name());
queryParam.setStoreId(UserContext.getCurrentUser().getStoreId()); queryParam.setStoreId(storeId);
PlatformViewVO platformViewVO = platformViewDataService.list(queryParam).get(0); PlatformViewVO platformViewVO = platformViewDataService.list(queryParam).get(0);
storeIndexStatisticsVO.setStoreUV(platformViewVO.getUvNum().intValue()); storeIndexStatisticsVO.setStoreUV(platformViewVO.getUvNum().intValue());

View File

@ -19,7 +19,7 @@ public interface StoreAddressService extends IService<StoreAddress> {
* @param pageVo 分页 * @param pageVo 分页
* @return 自提点列表 * @return 自提点列表
*/ */
IPage<StoreAddress> getStoreAddress(PageVO pageVo); IPage<StoreAddress> getStoreAddress(String storeId, PageVO pageVo);
/** /**
* 添加商家自提点 * 添加商家自提点
@ -27,7 +27,7 @@ public interface StoreAddressService extends IService<StoreAddress> {
* @param storeAddress 自提点 * @param storeAddress 自提点
* @return 自提点 * @return 自提点
*/ */
StoreAddress addStoreAddress(StoreAddress storeAddress); StoreAddress addStoreAddress(String storeId, StoreAddress storeAddress);
/** /**
* 修改商家自提点 * 修改商家自提点
@ -35,7 +35,7 @@ public interface StoreAddressService extends IService<StoreAddress> {
* @param storeAddress 自提点 * @param storeAddress 自提点
* @return 自提点 * @return 自提点
*/ */
StoreAddress editStoreAddress(StoreAddress storeAddress); StoreAddress editStoreAddress(String storeId, StoreAddress storeAddress);
/** /**
* 删除商家自提点 * 删除商家自提点

View File

@ -7,7 +7,6 @@ import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.store.entity.dos.FreightTemplate; import cn.lili.modules.store.entity.dos.FreightTemplate;
import cn.lili.modules.store.entity.dos.FreightTemplateChild; import cn.lili.modules.store.entity.dos.FreightTemplateChild;
@ -15,6 +14,7 @@ import cn.lili.modules.store.entity.vos.FreightTemplateVO;
import cn.lili.modules.store.mapper.FreightTemplateMapper; import cn.lili.modules.store.mapper.FreightTemplateMapper;
import cn.lili.modules.store.service.FreightTemplateChildService; import cn.lili.modules.store.service.FreightTemplateChildService;
import cn.lili.modules.store.service.FreightTemplateService; import cn.lili.modules.store.service.FreightTemplateService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@ -58,7 +58,7 @@ public class FreightTemplateServiceImpl extends ServiceImpl<FreightTemplateMappe
list = new ArrayList<>(); list = new ArrayList<>();
//查询运费模板 //查询运费模板
LambdaQueryWrapper<FreightTemplate> lambdaQueryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<FreightTemplate> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(FreightTemplate::getStoreId, UserContext.getCurrentUser().getStoreId()); lambdaQueryWrapper.eq(FreightTemplate::getStoreId, storeId);
List<FreightTemplate> freightTemplates = this.baseMapper.selectList(lambdaQueryWrapper); List<FreightTemplate> freightTemplates = this.baseMapper.selectList(lambdaQueryWrapper);
if (!freightTemplates.isEmpty()) { if (!freightTemplates.isEmpty()) {
//如果模板不为空则查询子模板信息 //如果模板不为空则查询子模板信息

View File

@ -1,12 +1,10 @@
package cn.lili.modules.store.serviceimpl; package cn.lili.modules.store.serviceimpl;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.store.entity.dos.StoreAddress; import cn.lili.modules.store.entity.dos.StoreAddress;
import cn.lili.modules.store.mapper.StoreAddressMapper; import cn.lili.modules.store.mapper.StoreAddressMapper;
import cn.lili.modules.store.service.StoreAddressService; import cn.lili.modules.store.service.StoreAddressService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@ -25,27 +23,26 @@ import org.springframework.transaction.annotation.Transactional;
public class StoreAddressServiceImpl extends ServiceImpl<StoreAddressMapper, StoreAddress> implements StoreAddressService { public class StoreAddressServiceImpl extends ServiceImpl<StoreAddressMapper, StoreAddress> implements StoreAddressService {
@Override @Override
public IPage<StoreAddress> getStoreAddress(PageVO pageVo) { public IPage<StoreAddress> getStoreAddress(String storeId, PageVO pageVo) {
//获取当前登录商家账号 //获取当前登录商家账号
LambdaQueryWrapper<StoreAddress> lambdaQueryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<StoreAddress> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(StoreAddress::getStoreId, UserContext.getCurrentUser().getStoreId()); lambdaQueryWrapper.eq(StoreAddress::getStoreId, storeId);
return this.page(PageUtil.initPage(pageVo), lambdaQueryWrapper); return this.page(PageUtil.initPage(pageVo), lambdaQueryWrapper);
} }
@Override @Override
public StoreAddress addStoreAddress(StoreAddress storeAddress) { public StoreAddress addStoreAddress(String storeId, StoreAddress storeAddress) {
//获取当前登录商家账号 //获取当前登录商家账号
storeAddress.setStoreId(UserContext.getCurrentUser().getStoreId()); storeAddress.setStoreId(storeId);
//添加自提点 //添加自提点
this.save(storeAddress); this.save(storeAddress);
return storeAddress; return storeAddress;
} }
@Override @Override
public StoreAddress editStoreAddress(StoreAddress storeAddress) { public StoreAddress editStoreAddress(String storeId, StoreAddress storeAddress) {
//获取当前登录商家账号 //获取当前登录商家账号
AuthUser tokenUser = UserContext.getCurrentUser(); storeAddress.setStoreId(storeId);
storeAddress.setStoreId(tokenUser.getId());
//添加自提点 //添加自提点
this.updateById(storeAddress); this.updateById(storeAddress);
return storeAddress; return storeAddress;

View File

@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 店铺详细业务层实现 * 店铺详细业务层实现
@ -67,7 +68,7 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
@Override @Override
public Boolean editStoreSetting(StoreSettingDTO storeSettingDTO) { public Boolean editStoreSetting(StoreSettingDTO storeSettingDTO) {
AuthUser tokenUser = UserContext.getCurrentUser(); AuthUser tokenUser = Objects.requireNonNull(UserContext.getCurrentUser());
//修改店铺 //修改店铺
Store store = storeService.getById(tokenUser.getStoreId()); Store store = storeService.getById(tokenUser.getStoreId());
BeanUtil.copyProperties(storeSettingDTO, store); BeanUtil.copyProperties(storeSettingDTO, store);
@ -81,7 +82,8 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
@Override @Override
public StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO() { public StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO() {
return this.baseMapper.getStoreAfterSaleAddressDTO(UserContext.getCurrentUser().getStoreId()); String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
return this.baseMapper.getStoreAfterSaleAddressDTO(storeId);
} }
@Override @Override
@ -95,21 +97,23 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
@Override @Override
public boolean editStoreAfterSaleAddressDTO(StoreAfterSaleAddressDTO storeAfterSaleAddressDTO) { public boolean editStoreAfterSaleAddressDTO(StoreAfterSaleAddressDTO storeAfterSaleAddressDTO) {
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
LambdaUpdateWrapper<StoreDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<StoreDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeName, storeAfterSaleAddressDTO.getSalesConsigneeName()); lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeName, storeAfterSaleAddressDTO.getSalesConsigneeName());
lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeAddressId, storeAfterSaleAddressDTO.getSalesConsigneeAddressId()); lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeAddressId, storeAfterSaleAddressDTO.getSalesConsigneeAddressId());
lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeAddressPath, storeAfterSaleAddressDTO.getSalesConsigneeAddressPath()); lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeAddressPath, storeAfterSaleAddressDTO.getSalesConsigneeAddressPath());
lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeDetail, storeAfterSaleAddressDTO.getSalesConsigneeDetail()); lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeDetail, storeAfterSaleAddressDTO.getSalesConsigneeDetail());
lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeMobile, storeAfterSaleAddressDTO.getSalesConsigneeMobile()); lambdaUpdateWrapper.set(StoreDetail::getSalesConsigneeMobile, storeAfterSaleAddressDTO.getSalesConsigneeMobile());
lambdaUpdateWrapper.eq(StoreDetail::getStoreId, UserContext.getCurrentUser().getStoreId()); lambdaUpdateWrapper.eq(StoreDetail::getStoreId, storeId);
return this.update(lambdaUpdateWrapper); return this.update(lambdaUpdateWrapper);
} }
@Override @Override
public boolean updateStockWarning(Integer stockWarning) { public boolean updateStockWarning(Integer stockWarning) {
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
LambdaUpdateWrapper<StoreDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<StoreDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
lambdaUpdateWrapper.set(StoreDetail::getStockWarning, stockWarning); lambdaUpdateWrapper.set(StoreDetail::getStockWarning, stockWarning);
lambdaUpdateWrapper.eq(StoreDetail::getStoreId, UserContext.getCurrentUser().getStoreId()); lambdaUpdateWrapper.eq(StoreDetail::getStoreId, storeId);
return this.update(lambdaUpdateWrapper); return this.update(lambdaUpdateWrapper);
} }
@ -119,13 +123,13 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
//获取顶部分类列表 //获取顶部分类列表
List<Category> categoryList = categoryService.firstCategory(); List<Category> categoryList = categoryService.firstCategory();
//获取店铺信息 //获取店铺信息
StoreDetail storeDetail = this.getOne(new LambdaQueryWrapper<StoreDetail>().eq(StoreDetail::getStoreId,storeId)); StoreDetail storeDetail = this.getOne(new LambdaQueryWrapper<StoreDetail>().eq(StoreDetail::getStoreId, storeId));
//获取店铺分类 //获取店铺分类
String[] storeCategoryList = storeDetail.getGoodsManagementCategory().split(","); String[] storeCategoryList = storeDetail.getGoodsManagementCategory().split(",");
List<StoreManagementCategoryVO> list = new ArrayList<>(); List<StoreManagementCategoryVO> list = new ArrayList<>();
for (Category category : categoryList) { for (Category category : categoryList) {
StoreManagementCategoryVO storeManagementCategoryVO = new StoreManagementCategoryVO(category); StoreManagementCategoryVO storeManagementCategoryVO = new StoreManagementCategoryVO(category);
for (String storeCategory:storeCategoryList) { for (String storeCategory : storeCategoryList) {
if (storeCategory.equals(category.getId())) { if (storeCategory.equals(category.getId())) {
storeManagementCategoryVO.setSelected(true); storeManagementCategoryVO.setSelected(true);
} }
@ -137,9 +141,7 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
@Override @Override
public StoreOtherVO getStoreOtherVO(String storeId) { public StoreOtherVO getStoreOtherVO(String storeId) {
return this.baseMapper.getLicencePhoto(storeId);
StoreOtherVO storeOtherVO=this.baseMapper.getLicencePhoto(storeId);
return storeOtherVO;
} }
} }

View File

@ -4,9 +4,9 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
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.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.utils.StringUtils; import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.goods.entity.dos.Goods; import cn.lili.modules.goods.entity.dos.Goods;
@ -28,6 +28,7 @@ import cn.lili.modules.store.entity.vos.StoreVO;
import cn.lili.modules.store.mapper.StoreMapper; import cn.lili.modules.store.mapper.StoreMapper;
import cn.lili.modules.store.service.StoreDetailService; import cn.lili.modules.store.service.StoreDetailService;
import cn.lili.modules.store.service.StoreService; import cn.lili.modules.store.service.StoreService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@ -88,8 +89,9 @@ public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements
@Override @Override
public StoreVO getStoreDetail() { public StoreVO getStoreDetail() {
StoreVO storeVO = this.baseMapper.getStoreDetail(UserContext.getCurrentUser().getStoreId()); AuthUser currentUser = UserContext.getCurrentUser();
storeVO.setNickName(UserContext.getCurrentUser().getNickName()); StoreVO storeVO = this.baseMapper.getStoreDetail(currentUser.getStoreId());
storeVO.setNickName(currentUser.getNickName());
return storeVO; return storeVO;
} }

View File

@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 演示站点注解 * 演示站点注解
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/7/9 1:40 上午 * @since 2021/7/9 1:40 上午
*/ */
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)

View File

@ -9,7 +9,7 @@ import java.io.Serializable;
* 经验值设置 * 经验值设置
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/16 11:10 下午 * @since 2021/5/16 11:10 下午
*/ */
@Data @Data
public class ExperienceSetting implements Serializable { public class ExperienceSetting implements Serializable {

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
* 秒杀活动设置 * 秒杀活动设置
* *
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/24 3:27 下午 * @since 2021/5/24 3:27 下午
*/ */
@Data @Data
public class SeckillSetting implements Serializable { public class SeckillSetting implements Serializable {

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