国家区域前端功能更新
This commit is contained in:
@@ -59,6 +59,7 @@ public class ShiroConfig {
|
||||
filterMap.put("/pay/aliPay/notify","anon"); // 支付宝回调接口
|
||||
filterMap.put("/pay/payNotify","anon"); // 微信回调接口
|
||||
filterMap.put("/weChat/**","anon");
|
||||
filterMap.put("/book/baseArea/getAllBaseArea","anon");//登录前获取全部区域
|
||||
// filterMap.put("/book/bookchaptercontent/**","anon");
|
||||
filterMap.put("/book/user/**","anon");
|
||||
filterMap.put("/webjars/**", "anon");
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@@ -66,5 +67,15 @@ public class BaseAreaController {
|
||||
return R.ok().put("page",baseAreas);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取全部国家领域
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/getAllBaseArea")
|
||||
public R getAllBaseArea(){
|
||||
List<BaseAreaEntity> list = baseAreaService.list();
|
||||
return R.ok().put("baseAreas",list);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -165,86 +165,88 @@ public class BuyOrderController {
|
||||
@RequestMapping("/buySave")
|
||||
@Transactional
|
||||
public R buySave(@RequestBody BuyOrder buyOrder) throws IOException {
|
||||
|
||||
return R.error("app版本太低请升级后再购买!!");
|
||||
// 获取订单详情
|
||||
List<BuyOrderDetail> buyOrderDetails = buyOrder.getProducts();
|
||||
// 订单总金额
|
||||
BigDecimal totalPrice = new BigDecimal(0);
|
||||
// 遍历商品总价计算
|
||||
for (BuyOrderDetail buyOrderDetail : buyOrderDetails) {
|
||||
Integer productId = buyOrderDetail.getProductId();
|
||||
int quantity = buyOrderDetail.getQuantity();
|
||||
ShopProduct product = shopProductService.getById(productId);
|
||||
BigDecimal price = getRealPrice(product);
|
||||
if (!handleStock(buyOrderDetail, product)) {
|
||||
return R.error(500, "库存不足");
|
||||
}
|
||||
totalPrice = totalPrice.add(price.multiply(BigDecimal.valueOf(quantity)));
|
||||
buyOrderDetail.setProductName(product.getProductName());
|
||||
buyOrderDetail.setProductPrice(product.getPrice());
|
||||
int originWeight = product.getWeight();
|
||||
int originWeightIntValue = originWeight / 100;
|
||||
int originWeightDecimalValue = originWeightIntValue % 100;
|
||||
buyOrderDetail.setWeight(BigDecimal.valueOf(originWeightIntValue).add(BigDecimal.valueOf(originWeightDecimalValue).divide(new BigDecimal(100),
|
||||
MathContext.DECIMAL64)));
|
||||
buyOrderDetail.setProductUrl(product.getProductImages());
|
||||
buyOrderDetail.setOrderStatus(Constants.ORDER_STATUS_TO_BE_PAID);
|
||||
}
|
||||
|
||||
totalPrice = totalPrice.subtract(useCouponAmount(buyOrder));
|
||||
totalPrice = totalPrice.add(getShoppingAmount(buyOrder));
|
||||
String orderSn = IdWorker.getTimeId().substring(0, 32);
|
||||
buyOrder.setOrderSn(orderSn);
|
||||
buyOrder.setPaymentDate(new Date());
|
||||
QueryWrapper<UserAddress> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("id", buyOrder.getAddressId());
|
||||
UserAddress userAddress = userAddressService.getOne(queryWrapper);
|
||||
UserAddressVo vo = new UserAddressVo();
|
||||
vo = userAddressService.getAddressName(vo, userAddress.getRegionCode());
|
||||
buyOrder.setProvince(vo.getProvince());
|
||||
buyOrder.setCity(vo.getCity());
|
||||
buyOrder.setDistrict(vo.getCounty());
|
||||
buyOrder.setAddress(vo.getDetailAddress());
|
||||
buyOrderService.save(buyOrder);
|
||||
|
||||
for (BuyOrderDetail buyOrderDetail : buyOrderDetails) {
|
||||
buyOrderDetail.setOrderId(buyOrder.getOrderId());
|
||||
buyOrderDetail.setUserId(buyOrder.getUserId());
|
||||
if (Constants.BUY_TYPE_CART.equals(buyOrder.getBuyType())) {
|
||||
handleBuyCart(buyOrder, buyOrderDetail);
|
||||
}
|
||||
}
|
||||
buyOrderDetailService.saveBatch(buyOrderDetails);
|
||||
// 1. 虚拟币支付
|
||||
if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
|
||||
buyOrder.setOrderStatus(Constants.ORDER_STATUS_TO_BE_SHIPPED);
|
||||
MyUserEntity user = this.myUserService.getById(buyOrder.getUserId());
|
||||
if (usePeanutCoin(user, totalPrice)) {
|
||||
// 更新订单状态
|
||||
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "0");
|
||||
recordTransaction(buyOrder, user, totalPrice);
|
||||
addEbookToUser(buyOrderDetails, buyOrder);
|
||||
} else {
|
||||
return R.error(500, "花生币余额不足!");
|
||||
}
|
||||
}
|
||||
// 2. 微信支付
|
||||
if (Constants.PAYMENT_METHOD_WECHAT_PAY.equals(buyOrder.getPaymentMethod())) {
|
||||
rabbitTemplate.convertAndSend(
|
||||
DelayQueueConfig.ORDER_TO_BE_PAY_EXCHANGE,
|
||||
DelayQueueConfig.ORDER_TO_BE_PAY_ROUTING_KEY,
|
||||
buyOrder.getOrderId(),
|
||||
messagePostProcessor()
|
||||
);
|
||||
WechatPaymentInfo paymentInfo = new WechatPaymentInfo();
|
||||
paymentInfo.setOrderSn(orderSn);
|
||||
paymentInfo.setBuyOrderId(buyOrder.getOrderId());
|
||||
paymentInfo.setTotalAmount(totalPrice);
|
||||
wxpayService.prepay(paymentInfo);
|
||||
}
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("orderSn", buyOrder.getOrderSn());
|
||||
result.put("money", totalPrice);
|
||||
return R.ok(result);
|
||||
// List<BuyOrderDetail> buyOrderDetails = buyOrder.getProducts();
|
||||
// // 订单总金额
|
||||
// BigDecimal totalPrice = new BigDecimal(0);
|
||||
// // 遍历商品总价计算
|
||||
// for (BuyOrderDetail buyOrderDetail : buyOrderDetails) {
|
||||
// Integer productId = buyOrderDetail.getProductId();
|
||||
// int quantity = buyOrderDetail.getQuantity();
|
||||
// ShopProduct product = shopProductService.getById(productId);
|
||||
// BigDecimal price = getRealPrice(product);
|
||||
// if (!handleStock(buyOrderDetail, product)) {
|
||||
// return R.error(500, "库存不足");
|
||||
// }
|
||||
// totalPrice = totalPrice.add(price.multiply(BigDecimal.valueOf(quantity)));
|
||||
// buyOrderDetail.setProductName(product.getProductName());
|
||||
// buyOrderDetail.setProductPrice(product.getPrice());
|
||||
// int originWeight = product.getWeight();
|
||||
// int originWeightIntValue = originWeight / 100;
|
||||
// int originWeightDecimalValue = originWeightIntValue % 100;
|
||||
// buyOrderDetail.setWeight(BigDecimal.valueOf(originWeightIntValue).add(BigDecimal.valueOf(originWeightDecimalValue).divide(new BigDecimal(100),
|
||||
// MathContext.DECIMAL64)));
|
||||
// buyOrderDetail.setProductUrl(product.getProductImages());
|
||||
// buyOrderDetail.setOrderStatus(Constants.ORDER_STATUS_TO_BE_PAID);
|
||||
// }
|
||||
//
|
||||
// totalPrice = totalPrice.subtract(useCouponAmount(buyOrder));
|
||||
// totalPrice = totalPrice.add(getShoppingAmount(buyOrder));
|
||||
// String orderSn = IdWorker.getTimeId().substring(0, 32);
|
||||
// buyOrder.setOrderSn(orderSn);
|
||||
// buyOrder.setPaymentDate(new Date());
|
||||
// QueryWrapper<UserAddress> queryWrapper = new QueryWrapper<>();
|
||||
// queryWrapper.eq("id", buyOrder.getAddressId());
|
||||
// UserAddress userAddress = userAddressService.getOne(queryWrapper);
|
||||
// UserAddressVo vo = new UserAddressVo();
|
||||
// vo = userAddressService.getAddressName(vo, userAddress.getRegionCode());
|
||||
// buyOrder.setProvince(vo.getProvince());
|
||||
// buyOrder.setCity(vo.getCity());
|
||||
// buyOrder.setDistrict(vo.getCounty());
|
||||
// buyOrder.setAddress(vo.getDetailAddress());
|
||||
// buyOrderService.save(buyOrder);
|
||||
//
|
||||
// for (BuyOrderDetail buyOrderDetail : buyOrderDetails) {
|
||||
// buyOrderDetail.setOrderId(buyOrder.getOrderId());
|
||||
// buyOrderDetail.setUserId(buyOrder.getUserId());
|
||||
// if (Constants.BUY_TYPE_CART.equals(buyOrder.getBuyType())) {
|
||||
// handleBuyCart(buyOrder, buyOrderDetail);
|
||||
// }
|
||||
// }
|
||||
// buyOrderDetailService.saveBatch(buyOrderDetails);
|
||||
// // 1. 虚拟币支付
|
||||
// if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
|
||||
// buyOrder.setOrderStatus(Constants.ORDER_STATUS_TO_BE_SHIPPED);
|
||||
// MyUserEntity user = this.myUserService.getById(buyOrder.getUserId());
|
||||
// if (usePeanutCoin(user, totalPrice)) {
|
||||
// // 更新订单状态
|
||||
// buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "0");
|
||||
// recordTransaction(buyOrder, user, totalPrice);
|
||||
// addEbookToUser(buyOrderDetails, buyOrder);
|
||||
// } else {
|
||||
// return R.error(500, "花生币余额不足!");
|
||||
// }
|
||||
// }
|
||||
// // 2. 微信支付
|
||||
// if (Constants.PAYMENT_METHOD_WECHAT_PAY.equals(buyOrder.getPaymentMethod())) {
|
||||
// rabbitTemplate.convertAndSend(
|
||||
// DelayQueueConfig.ORDER_TO_BE_PAY_EXCHANGE,
|
||||
// DelayQueueConfig.ORDER_TO_BE_PAY_ROUTING_KEY,
|
||||
// buyOrder.getOrderId(),
|
||||
// messagePostProcessor()
|
||||
// );
|
||||
// WechatPaymentInfo paymentInfo = new WechatPaymentInfo();
|
||||
// paymentInfo.setOrderSn(orderSn);
|
||||
// paymentInfo.setBuyOrderId(buyOrder.getOrderId());
|
||||
// paymentInfo.setTotalAmount(totalPrice);
|
||||
// wxpayService.prepay(paymentInfo);
|
||||
// }
|
||||
// Map<String, Object> result = new HashMap<>();
|
||||
// result.put("orderSn", buyOrder.getOrderSn());
|
||||
// result.put("money", totalPrice);
|
||||
// return R.ok(result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -166,7 +166,7 @@ public class MyUserController {
|
||||
* 常规注册 发短信验证码
|
||||
*/
|
||||
@RequestMapping("/sms/sendcode")
|
||||
public R registerSms(@RequestParam("phone") String phone) throws Exception {
|
||||
public R registerSms(@RequestParam("phone") String phone,@RequestParam Integer areaCode) throws Exception {
|
||||
|
||||
//验证一分钟内是否已经发过
|
||||
String redisCode = redisTemplate.opsForValue().get("RegistCode" + phone);
|
||||
@@ -192,7 +192,7 @@ public class MyUserController {
|
||||
redisTemplate.opsForValue().set("RegistCode"+phone,code,5, TimeUnit.MINUTES);
|
||||
|
||||
//发送
|
||||
userService.sendCodeForRegister(phone,code);
|
||||
userService.sendCodeForRegister(phone,code,areaCode);
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public interface MyUserService extends IService<MyUserEntity> {
|
||||
|
||||
PageUtils queryPage(Map<String, Object> params);
|
||||
|
||||
void sendCodeForRegister(String phone, String code) throws Exception;
|
||||
void sendCodeForRegister(String phone, String code,Integer areaCode) throws Exception;
|
||||
//电子书鉴权
|
||||
boolean bookAuthenticate(Integer bookId,Integer userId);
|
||||
|
||||
|
||||
@@ -70,9 +70,9 @@ public class MyUserServiceImpl extends ServiceImpl<MyUserDao, MyUserEntity> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCodeForRegister(String phone, String code) throws Exception {
|
||||
public void sendCodeForRegister(String phone, String code,Integer areaCode) throws Exception {
|
||||
String scode = code.split("_")[0];
|
||||
sendCode(phone,scode);
|
||||
sendCode(phone,scode,areaCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -392,9 +392,15 @@ public class MyUserServiceImpl extends ServiceImpl<MyUserDao, MyUserEntity> impl
|
||||
}
|
||||
|
||||
|
||||
private void sendCode(String phone, String code) throws Exception {
|
||||
private void sendCode(String phone, String code,Integer areaCode) throws Exception {
|
||||
com.aliyun.dysmsapi20170525.Client client = Sample.createClient(smsConfig.getAccessKeyId(),smsConfig.getAccessKeySecret());
|
||||
String tem = TelUtil.isPhone(phone)?smsConfig.getTemplateCode():smsConfig.getSTemplateCode();//通过手机号判断是否为国内手机号,并设置模版
|
||||
String tem;
|
||||
if(areaCode!=null&&areaCode>0&&areaCode!=86){
|
||||
tem = smsConfig.getSTemplateCode();
|
||||
phone = areaCode+phone;
|
||||
}else{
|
||||
tem = smsConfig.getTemplateCode();
|
||||
}
|
||||
SendSmsRequest sendSmsRequest = new SendSmsRequest()
|
||||
.setSignName(smsConfig.getSingName())
|
||||
.setTemplateCode(tem)
|
||||
|
||||
Reference in New Issue
Block a user