添加全局异常处理校验

This commit is contained in:
macro 2020-02-29 16:36:50 +08:00
parent a308c69968
commit 1dfa644911
16 changed files with 160 additions and 62 deletions

View File

@ -45,6 +45,15 @@ public class CommonResult<T> {
return new CommonResult<T>(errorCode.getCode(), errorCode.getMessage(), null); return new CommonResult<T>(errorCode.getCode(), errorCode.getMessage(), null);
} }
/**
* 失败返回结果
* @param errorCode 错误码
* @param message 错误信息
*/
public static <T> CommonResult<T> failed(IErrorCode errorCode,String message) {
return new CommonResult<T>(errorCode.getCode(), message, null);
}
/** /**
* 失败返回结果 * 失败返回结果
* @param message 提示信息 * @param message 提示信息

View File

@ -0,0 +1,32 @@
package com.macro.mall.common.exception;
import com.macro.mall.common.api.IErrorCode;
/**
* 自定义API异常
* Created by macro on 2020/2/27.
*/
public class ApiException extends RuntimeException {
private IErrorCode errorCode;
public ApiException(IErrorCode errorCode) {
super(errorCode.getMessage());
this.errorCode = errorCode;
}
public ApiException(String message) {
super(message);
}
public ApiException(Throwable cause) {
super(cause);
}
public ApiException(String message, Throwable cause) {
super(message, cause);
}
public IErrorCode getErrorCode() {
return errorCode;
}
}

View File

@ -0,0 +1,17 @@
package com.macro.mall.common.exception;
import com.macro.mall.common.api.IErrorCode;
/**
* 断言处理类用于抛出各种API异常
* Created by macro on 2020/2/27.
*/
public class Asserts {
public static void fail(String message) {
throw new ApiException(message);
}
public static void fail(IErrorCode errorCode) {
throw new ApiException(errorCode);
}
}

View File

@ -0,0 +1,23 @@
package com.macro.mall.common.exception;
import com.macro.mall.common.api.CommonResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 全局异常处理
* Created by macro on 2020/2/27.
*/
@ControllerAdvice
public class GlobalExceptionHandler {
@ResponseBody
@ExceptionHandler(value = ApiException.class)
public CommonResult handle(ApiException e) {
if (e.getErrorCode() != null) {
return CommonResult.failed(e.getErrorCode());
}
return CommonResult.failed(e.getMessage());
}
}

View File

@ -3,7 +3,7 @@ package com.macro.mall.portal;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication(scanBasePackages = "com.macro.mall")
public class MallPortalApplication { public class MallPortalApplication {
public static void main(String[] args) { public static void main(String[] args) {

View File

@ -1,6 +1,5 @@
package com.macro.mall.portal.component; package com.macro.mall.portal.component;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.portal.service.OmsPortalOrderService; import com.macro.mall.portal.service.OmsPortalOrderService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -24,7 +23,7 @@ public class OrderTimeOutCancelTask {
*/ */
@Scheduled(cron = "0 0/10 * ? * ?") @Scheduled(cron = "0 0/10 * ? * ?")
private void cancelTimeOutOrder(){ private void cancelTimeOutOrder(){
CommonResult result = portalOrderService.cancelTimeOutOrder(); Integer count = portalOrderService.cancelTimeOutOrder();
LOGGER.info("取消订单并根据sku编号释放锁定库存:{}",result); LOGGER.info("取消订单并根据sku编号释放锁定库存,取消订单数量:{}",count);
} }
} }

View File

@ -1,21 +1,27 @@
package com.macro.mall.portal.config; package com.macro.mall.portal.config;
import com.macro.mall.portal.service.UmsMemberService; import com.macro.mall.portal.service.UmsMemberService;
import com.macro.mall.security.component.DynamicSecurityService;
import com.macro.mall.security.config.SecurityConfig; import com.macro.mall.security.config.SecurityConfig;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* mall-security模块相关配置 * mall-security模块相关配置
* Created by macro on 2019/11/5. * Created by macro on 2019/11/5.
*/ */
@Configuration @Configuration
@EnableWebSecurity @EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true) @EnableGlobalMethodSecurity(prePostEnabled = true)
public class MallSecurityConfig extends SecurityConfig { public class MallSecurityConfig extends SecurityConfig {
@Autowired @Autowired

View File

@ -10,48 +10,55 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Map;
/** /**
* 订单管理Controller * 订单管理Controller
* Created by macro on 2018/8/30. * Created by macro on 2018/8/30.
*/ */
@Controller @Controller
@Api(tags = "OmsPortalOrderController",description = "订单管理") @Api(tags = "OmsPortalOrderController", description = "订单管理")
@RequestMapping("/order") @RequestMapping("/order")
public class OmsPortalOrderController { public class OmsPortalOrderController {
@Autowired @Autowired
private OmsPortalOrderService portalOrderService; private OmsPortalOrderService portalOrderService;
@ApiOperation("根据购物车信息生成确认单信息") @ApiOperation("根据购物车信息生成确认单信息")
@RequestMapping(value = "/generateConfirmOrder",method = RequestMethod.POST) @RequestMapping(value = "/generateConfirmOrder", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public CommonResult<ConfirmOrderResult> generateConfirmOrder(){ public CommonResult<ConfirmOrderResult> generateConfirmOrder() {
ConfirmOrderResult confirmOrderResult = portalOrderService.generateConfirmOrder(); ConfirmOrderResult confirmOrderResult = portalOrderService.generateConfirmOrder();
return CommonResult.success(confirmOrderResult); return CommonResult.success(confirmOrderResult);
} }
@ApiOperation("根据购物车信息生成订单") @ApiOperation("根据购物车信息生成订单")
@RequestMapping(value = "/generateOrder",method = RequestMethod.POST) @RequestMapping(value = "/generateOrder", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public Object generateOrder(@RequestBody OrderParam orderParam){ public CommonResult generateOrder(@RequestBody OrderParam orderParam) {
return portalOrderService.generateOrder(orderParam); Map<String, Object> result = portalOrderService.generateOrder(orderParam);
return CommonResult.success(result, "下单成功");
} }
@ApiOperation("支付成功的回调") @ApiOperation("支付成功的回调")
@RequestMapping(value = "/paySuccess",method = RequestMethod.POST) @RequestMapping(value = "/paySuccess", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public Object paySuccess(@RequestParam Long orderId){ public CommonResult paySuccess(@RequestParam Long orderId) {
return portalOrderService.paySuccess(orderId); Integer count = portalOrderService.paySuccess(orderId);
return CommonResult.success(count, "支付成功");
} }
@ApiOperation("自动取消超时订单") @ApiOperation("自动取消超时订单")
@RequestMapping(value = "/cancelTimeOutOrder",method = RequestMethod.POST) @RequestMapping(value = "/cancelTimeOutOrder", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public Object cancelTimeOutOrder(){ public CommonResult cancelTimeOutOrder() {
return portalOrderService.cancelTimeOutOrder(); portalOrderService.cancelTimeOutOrder();
return CommonResult.success(null);
} }
@ApiOperation("取消单个超时订单") @ApiOperation("取消单个超时订单")
@RequestMapping(value = "/cancelOrder",method = RequestMethod.POST) @RequestMapping(value = "/cancelOrder", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public CommonResult cancelOrder(Long orderId){ public CommonResult cancelOrder(Long orderId) {
portalOrderService.sendDelayMessageCancelOrder(orderId); portalOrderService.sendDelayMessageCancelOrder(orderId);
return CommonResult.success(null); return CommonResult.success(null);
} }

View File

@ -38,7 +38,8 @@ public class UmsMemberController {
@RequestParam String password, @RequestParam String password,
@RequestParam String telephone, @RequestParam String telephone,
@RequestParam String authCode) { @RequestParam String authCode) {
return memberService.register(username, password, telephone, authCode); memberService.register(username, password, telephone, authCode);
return CommonResult.success(null,"注册成功");
} }
@ApiOperation("会员登录") @ApiOperation("会员登录")
@ -60,7 +61,8 @@ public class UmsMemberController {
@RequestMapping(value = "/getAuthCode", method = RequestMethod.GET) @RequestMapping(value = "/getAuthCode", method = RequestMethod.GET)
@ResponseBody @ResponseBody
public CommonResult getAuthCode(@RequestParam String telephone) { public CommonResult getAuthCode(@RequestParam String telephone) {
return memberService.generateAuthCode(telephone); String authCode = memberService.generateAuthCode(telephone);
return CommonResult.success(authCode,"获取验证码成功");
} }
@ApiOperation("修改密码") @ApiOperation("修改密码")
@ -69,7 +71,8 @@ public class UmsMemberController {
public CommonResult updatePassword(@RequestParam String telephone, public CommonResult updatePassword(@RequestParam String telephone,
@RequestParam String password, @RequestParam String password,
@RequestParam String authCode) { @RequestParam String authCode) {
return memberService.updatePassword(telephone,password,authCode); memberService.updatePassword(telephone,password,authCode);
return CommonResult.success(null,"密码修改成功");
} }

View File

@ -35,7 +35,8 @@ public class UmsMemberCouponController {
@RequestMapping(value = "/add/{couponId}", method = RequestMethod.POST) @RequestMapping(value = "/add/{couponId}", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public CommonResult add(@PathVariable Long couponId) { public CommonResult add(@PathVariable Long couponId) {
return memberCouponService.add(couponId); memberCouponService.add(couponId);
return CommonResult.success(null,"领取成功");
} }
@ApiOperation("获取用户优惠券列表") @ApiOperation("获取用户优惠券列表")

View File

@ -1,10 +1,11 @@
package com.macro.mall.portal.service; package com.macro.mall.portal.service;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.portal.domain.ConfirmOrderResult; import com.macro.mall.portal.domain.ConfirmOrderResult;
import com.macro.mall.portal.domain.OrderParam; import com.macro.mall.portal.domain.OrderParam;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
/** /**
* 前台订单管理Service * 前台订单管理Service
* Created by macro on 2018/8/30. * Created by macro on 2018/8/30.
@ -19,19 +20,19 @@ public interface OmsPortalOrderService {
* 根据提交信息生成订单 * 根据提交信息生成订单
*/ */
@Transactional @Transactional
CommonResult generateOrder(OrderParam orderParam); Map<String, Object> generateOrder(OrderParam orderParam);
/** /**
* 支付成功后的回调 * 支付成功后的回调
*/ */
@Transactional @Transactional
CommonResult paySuccess(Long orderId); Integer paySuccess(Long orderId);
/** /**
* 自动取消超时订单 * 自动取消超时订单
*/ */
@Transactional @Transactional
CommonResult cancelTimeOutOrder(); Integer cancelTimeOutOrder();
/** /**
* 取消单个超时订单 * 取消单个超时订单

View File

@ -1,6 +1,5 @@
package com.macro.mall.portal.service; package com.macro.mall.portal.service;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.model.SmsCouponHistory; import com.macro.mall.model.SmsCouponHistory;
import com.macro.mall.portal.domain.CartPromotionItem; import com.macro.mall.portal.domain.CartPromotionItem;
import com.macro.mall.portal.domain.SmsCouponHistoryDetail; import com.macro.mall.portal.domain.SmsCouponHistoryDetail;
@ -17,7 +16,7 @@ public interface UmsMemberCouponService {
* 会员添加优惠券 * 会员添加优惠券
*/ */
@Transactional @Transactional
CommonResult add(Long couponId); void add(Long couponId);
/** /**
* 获取优惠券列表 * 获取优惠券列表

View File

@ -24,18 +24,18 @@ public interface UmsMemberService {
* 用户注册 * 用户注册
*/ */
@Transactional @Transactional
CommonResult register(String username, String password, String telephone, String authCode); void register(String username, String password, String telephone, String authCode);
/** /**
* 生成验证码 * 生成验证码
*/ */
CommonResult generateAuthCode(String telephone); String generateAuthCode(String telephone);
/** /**
* 修改密码 * 修改密码
*/ */
@Transactional @Transactional
CommonResult updatePassword(String telephone, String password, String authCode); void updatePassword(String telephone, String password, String authCode);
/** /**
* 获取当前登录会员 * 获取当前登录会员

View File

@ -1,6 +1,6 @@
package com.macro.mall.portal.service.impl; package com.macro.mall.portal.service.impl;
import com.macro.mall.common.api.CommonResult; import com.macro.mall.common.exception.Asserts;
import com.macro.mall.mapper.*; import com.macro.mall.mapper.*;
import com.macro.mall.model.*; import com.macro.mall.model.*;
import com.macro.mall.portal.component.CancelOrderSender; import com.macro.mall.portal.component.CancelOrderSender;
@ -83,7 +83,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
} }
@Override @Override
public CommonResult generateOrder(OrderParam orderParam) { public Map<String, Object> generateOrder(OrderParam orderParam) {
List<OmsOrderItem> orderItemList = new ArrayList<>(); List<OmsOrderItem> orderItemList = new ArrayList<>();
//获取购物车及优惠信息 //获取购物车及优惠信息
UmsMember currentMember = memberService.getCurrentMember(); UmsMember currentMember = memberService.getCurrentMember();
@ -110,7 +110,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
} }
//判断购物车中商品是否都有库存 //判断购物车中商品是否都有库存
if (!hasStock(cartPromotionItemList)) { if (!hasStock(cartPromotionItemList)) {
return CommonResult.failed("库存不足,无法下单"); Asserts.fail("库存不足,无法下单");
} }
//判断使用使用了优惠券 //判断使用使用了优惠券
if (orderParam.getCouponId() == null) { if (orderParam.getCouponId() == null) {
@ -122,7 +122,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
//使用优惠券 //使用优惠券
SmsCouponHistoryDetail couponHistoryDetail = getUseCoupon(cartPromotionItemList, orderParam.getCouponId()); SmsCouponHistoryDetail couponHistoryDetail = getUseCoupon(cartPromotionItemList, orderParam.getCouponId());
if (couponHistoryDetail == null) { if (couponHistoryDetail == null) {
return CommonResult.failed("该优惠券不可用"); Asserts.fail("该优惠券不可用");
} }
//对下单商品的优惠券进行处理 //对下单商品的优惠券进行处理
handleCouponAmount(orderItemList, couponHistoryDetail); handleCouponAmount(orderItemList, couponHistoryDetail);
@ -138,7 +138,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
BigDecimal totalAmount = calcTotalAmount(orderItemList); BigDecimal totalAmount = calcTotalAmount(orderItemList);
BigDecimal integrationAmount = getUseIntegrationAmount(orderParam.getUseIntegration(), totalAmount, currentMember, orderParam.getCouponId() != null); BigDecimal integrationAmount = getUseIntegrationAmount(orderParam.getUseIntegration(), totalAmount, currentMember, orderParam.getCouponId() != null);
if (integrationAmount.compareTo(new BigDecimal(0)) == 0) { if (integrationAmount.compareTo(new BigDecimal(0)) == 0) {
return CommonResult.failed("积分不可用"); Asserts.fail("积分不可用");
} else { } else {
//可用情况下分摊到可用商品中 //可用情况下分摊到可用商品中
for (OmsOrderItem orderItem : orderItemList) { for (OmsOrderItem orderItem : orderItemList) {
@ -226,11 +226,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put("order", order); result.put("order", order);
result.put("orderItemList", orderItemList); result.put("orderItemList", orderItemList);
return CommonResult.success(result, "下单成功"); return result;
} }
@Override @Override
public CommonResult paySuccess(Long orderId) { public Integer paySuccess(Long orderId) {
//修改订单支付状态 //修改订单支付状态
OmsOrder order = new OmsOrder(); OmsOrder order = new OmsOrder();
order.setId(orderId); order.setId(orderId);
@ -240,16 +240,17 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
//恢复所有下单商品的锁定库存扣减真实库存 //恢复所有下单商品的锁定库存扣减真实库存
OmsOrderDetail orderDetail = portalOrderDao.getDetail(orderId); OmsOrderDetail orderDetail = portalOrderDao.getDetail(orderId);
int count = portalOrderDao.updateSkuStock(orderDetail.getOrderItemList()); int count = portalOrderDao.updateSkuStock(orderDetail.getOrderItemList());
return CommonResult.success(count,"支付成功"); return count;
} }
@Override @Override
public CommonResult cancelTimeOutOrder() { public Integer cancelTimeOutOrder() {
Integer count=0;
OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L);
//查询超时未支付的订单及订单详情 //查询超时未支付的订单及订单详情
List<OmsOrderDetail> timeOutOrders = portalOrderDao.getTimeOutOrders(orderSetting.getNormalOrderOvertime()); List<OmsOrderDetail> timeOutOrders = portalOrderDao.getTimeOutOrders(orderSetting.getNormalOrderOvertime());
if (CollectionUtils.isEmpty(timeOutOrders)) { if (CollectionUtils.isEmpty(timeOutOrders)) {
return CommonResult.failed("暂无超时订单"); return count;
} }
//修改订单状态为交易取消 //修改订单状态为交易取消
List<Long> ids = new ArrayList<>(); List<Long> ids = new ArrayList<>();
@ -268,7 +269,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
memberService.updateIntegration(timeOutOrder.getMemberId(), member.getIntegration() + timeOutOrder.getUseIntegration()); memberService.updateIntegration(timeOutOrder.getMemberId(), member.getIntegration() + timeOutOrder.getUseIntegration());
} }
} }
return CommonResult.success(null); return timeOutOrders.size();
} }
@Override @Override

View File

@ -1,6 +1,6 @@
package com.macro.mall.portal.service.impl; package com.macro.mall.portal.service.impl;
import com.macro.mall.common.api.CommonResult; import com.macro.mall.common.exception.Asserts;
import com.macro.mall.mapper.SmsCouponHistoryMapper; import com.macro.mall.mapper.SmsCouponHistoryMapper;
import com.macro.mall.mapper.SmsCouponMapper; import com.macro.mall.mapper.SmsCouponMapper;
import com.macro.mall.model.*; import com.macro.mall.model.*;
@ -13,7 +13,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
/** /**
* 会员优惠券管理Service实现类 * 会员优惠券管理Service实现类
@ -30,26 +33,26 @@ public class UmsMemberCouponServiceImpl implements UmsMemberCouponService {
@Autowired @Autowired
private SmsCouponHistoryDao couponHistoryDao; private SmsCouponHistoryDao couponHistoryDao;
@Override @Override
public CommonResult add(Long couponId) { public void add(Long couponId) {
UmsMember currentMember = memberService.getCurrentMember(); UmsMember currentMember = memberService.getCurrentMember();
//获取优惠券信息判断数量 //获取优惠券信息判断数量
SmsCoupon coupon = couponMapper.selectByPrimaryKey(couponId); SmsCoupon coupon = couponMapper.selectByPrimaryKey(couponId);
if(coupon==null){ if(coupon==null){
return CommonResult.failed("优惠券不存在"); Asserts.fail("优惠券不存在");
} }
if(coupon.getCount()<=0){ if(coupon.getCount()<=0){
return CommonResult.failed("优惠券已经领完了"); Asserts.fail("优惠券已经领完了");
} }
Date now = new Date(); Date now = new Date();
if(now.before(coupon.getEnableTime())){ if(now.before(coupon.getEnableTime())){
return CommonResult.failed("优惠券还没到领取时间"); Asserts.fail("优惠券还没到领取时间");
} }
//判断用户领取的优惠券数量是否超过限制 //判断用户领取的优惠券数量是否超过限制
SmsCouponHistoryExample couponHistoryExample = new SmsCouponHistoryExample(); SmsCouponHistoryExample couponHistoryExample = new SmsCouponHistoryExample();
couponHistoryExample.createCriteria().andCouponIdEqualTo(couponId).andMemberIdEqualTo(currentMember.getId()); couponHistoryExample.createCriteria().andCouponIdEqualTo(couponId).andMemberIdEqualTo(currentMember.getId());
long count = couponHistoryMapper.countByExample(couponHistoryExample); long count = couponHistoryMapper.countByExample(couponHistoryExample);
if(count>=coupon.getPerLimit()){ if(count>=coupon.getPerLimit()){
return CommonResult.failed("您已经领取过该优惠券"); Asserts.fail("您已经领取过该优惠券");
} }
//生成领取优惠券历史 //生成领取优惠券历史
SmsCouponHistory couponHistory = new SmsCouponHistory(); SmsCouponHistory couponHistory = new SmsCouponHistory();
@ -67,7 +70,6 @@ public class UmsMemberCouponServiceImpl implements UmsMemberCouponService {
coupon.setCount(coupon.getCount()-1); coupon.setCount(coupon.getCount()-1);
coupon.setReceiveCount(coupon.getReceiveCount()==null?1:coupon.getReceiveCount()+1); coupon.setReceiveCount(coupon.getReceiveCount()==null?1:coupon.getReceiveCount()+1);
couponMapper.updateByPrimaryKey(coupon); couponMapper.updateByPrimaryKey(coupon);
return CommonResult.success(null,"领取成功");
} }
/** /**

View File

@ -1,6 +1,6 @@
package com.macro.mall.portal.service.impl; package com.macro.mall.portal.service.impl;
import com.macro.mall.common.api.CommonResult; import com.macro.mall.common.exception.Asserts;
import com.macro.mall.mapper.UmsMemberLevelMapper; import com.macro.mall.mapper.UmsMemberLevelMapper;
import com.macro.mall.mapper.UmsMemberMapper; import com.macro.mall.mapper.UmsMemberMapper;
import com.macro.mall.model.UmsMember; import com.macro.mall.model.UmsMember;
@ -71,10 +71,10 @@ public class UmsMemberServiceImpl implements UmsMemberService {
} }
@Override @Override
public CommonResult register(String username, String password, String telephone, String authCode) { public void register(String username, String password, String telephone, String authCode) {
//验证验证码 //验证验证码
if(!verifyAuthCode(authCode,telephone)){ if(!verifyAuthCode(authCode,telephone)){
return CommonResult.failed("验证码错误"); Asserts.fail("验证码错误");
} }
//查询是否已有该用户 //查询是否已有该用户
UmsMemberExample example = new UmsMemberExample(); UmsMemberExample example = new UmsMemberExample();
@ -82,7 +82,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
example.or(example.createCriteria().andPhoneEqualTo(telephone)); example.or(example.createCriteria().andPhoneEqualTo(telephone));
List<UmsMember> umsMembers = memberMapper.selectByExample(example); List<UmsMember> umsMembers = memberMapper.selectByExample(example);
if (!CollectionUtils.isEmpty(umsMembers)) { if (!CollectionUtils.isEmpty(umsMembers)) {
return CommonResult.failed("该用户已经存在"); Asserts.fail("该用户已经存在");
} }
//没有该用户进行添加操作 //没有该用户进行添加操作
UmsMember umsMember = new UmsMember(); UmsMember umsMember = new UmsMember();
@ -100,11 +100,10 @@ public class UmsMemberServiceImpl implements UmsMemberService {
} }
memberMapper.insert(umsMember); memberMapper.insert(umsMember);
umsMember.setPassword(null); umsMember.setPassword(null);
return CommonResult.success(null,"注册成功");
} }
@Override @Override
public CommonResult generateAuthCode(String telephone) { public String generateAuthCode(String telephone) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
Random random = new Random(); Random random = new Random();
for(int i=0;i<6;i++){ for(int i=0;i<6;i++){
@ -113,25 +112,24 @@ public class UmsMemberServiceImpl implements UmsMemberService {
//验证码绑定手机号并存储到redis //验证码绑定手机号并存储到redis
redisService.set(REDIS_KEY_PREFIX_AUTH_CODE+telephone,sb.toString()); redisService.set(REDIS_KEY_PREFIX_AUTH_CODE+telephone,sb.toString());
redisService.expire(REDIS_KEY_PREFIX_AUTH_CODE+telephone,AUTH_CODE_EXPIRE_SECONDS); redisService.expire(REDIS_KEY_PREFIX_AUTH_CODE+telephone,AUTH_CODE_EXPIRE_SECONDS);
return CommonResult.success(sb.toString(),"获取验证码成功"); return sb.toString();
} }
@Override @Override
public CommonResult updatePassword(String telephone, String password, String authCode) { public void updatePassword(String telephone, String password, String authCode) {
UmsMemberExample example = new UmsMemberExample(); UmsMemberExample example = new UmsMemberExample();
example.createCriteria().andPhoneEqualTo(telephone); example.createCriteria().andPhoneEqualTo(telephone);
List<UmsMember> memberList = memberMapper.selectByExample(example); List<UmsMember> memberList = memberMapper.selectByExample(example);
if(CollectionUtils.isEmpty(memberList)){ if(CollectionUtils.isEmpty(memberList)){
return CommonResult.failed("该账号不存在"); Asserts.fail("该账号不存在");
} }
//验证验证码 //验证验证码
if(!verifyAuthCode(authCode,telephone)){ if(!verifyAuthCode(authCode,telephone)){
return CommonResult.failed("验证码错误"); Asserts.fail("验证码错误");
} }
UmsMember umsMember = memberList.get(0); UmsMember umsMember = memberList.get(0);
umsMember.setPassword(passwordEncoder.encode(password)); umsMember.setPassword(passwordEncoder.encode(password));
memberMapper.updateByPrimaryKeySelective(umsMember); memberMapper.updateByPrimaryKeySelective(umsMember);
return CommonResult.success(null,"密码修改成功");
} }
@Override @Override