fix XSS and BAC, improve code style
This commit is contained in:
parent
d470192ac6
commit
d3e1de5620
@ -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 = "买家端,商品分类接口")
|
||||||
|
@ -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 = "买家端,浏览历史接口")
|
||||||
|
@ -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 = "买家端,会员地址接口")
|
||||||
|
@ -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 = "买家端,会员收藏接口")
|
||||||
|
@ -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 = "买家端,会员商品评价接口")
|
||||||
|
@ -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 = "买家端,会员站内消息接口")
|
||||||
|
@ -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 = "买家端,会员发票接口")
|
||||||
|
@ -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")
|
||||||
|
@ -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 = "买家端,会员余额接口")
|
||||||
|
@ -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 = "买家端,余额提现记录接口")
|
||||||
|
@ -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 = "买家端,预存款充值记录接口")
|
||||||
|
@ -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")
|
||||||
|
@ -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版本")
|
||||||
|
@ -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 = "买家端,文章接口")
|
||||||
|
@ -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 = "买家端,直播间接口")
|
||||||
|
@ -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 = "买家端,分销员接口")
|
||||||
|
@ -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 = "买家端,分销商品佣金提现接口")
|
||||||
|
@ -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 = "买家端,分销商品接口")
|
||||||
|
@ -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 = "买家端,分销订单接口")
|
||||||
|
@ -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 = "买家端,会员接口")
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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")
|
||||||
|
@ -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 = "买家端,预存款充值记录接口")
|
||||||
|
@ -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 = "买家端,预存款变动日志记录接口")
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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)
|
||||||
|
@ -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, "当前模版不存在"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算单
|
* 结算单
|
||||||
|
@ -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("<", "<").replaceAll(">", ">");
|
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
|
||||||
value = value.replaceAll("\\(", "(").replaceAll("\\)", ")");
|
//根据key获取value
|
||||||
value = value.replaceAll("'", "'");
|
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("expression\\((.*?)\\)", 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("");
|
|
||||||
// //避免 expression(...) 表达式
|
|
||||||
// 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;
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
/**
|
/**
|
||||||
|
@ -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 {
|
||||||
|
@ -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);
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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")
|
||||||
|
@ -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 = "直播间")
|
||||||
|
@ -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 = "直播商品")
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取直播间列表
|
* 获取直播间列表
|
||||||
|
@ -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"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
|
@ -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 {
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
@ -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 {
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
//修改会员手机号
|
//修改会员手机号
|
||||||
|
@ -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
|
||||||
|
@ -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")
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
//判断是否为唯一的页面
|
//判断是否为唯一的页面
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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());
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除商家自提点
|
* 删除商家自提点
|
||||||
|
@ -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()) {
|
||||||
//如果模板不为空则查询子模板信息
|
//如果模板不为空则查询子模板信息
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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 {
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user