bug fix 1018

This commit is contained in:
Cauchy
2023-10-18 16:37:58 +08:00
parent 5dee4b619e
commit c90ecfb7ce
33 changed files with 309 additions and 114 deletions

View File

@@ -745,18 +745,18 @@ public class BookController {
@RequestMapping("/file")
public String getFile() {
String filePath = "C:\\Users\\Administrator\\IdeaProjects\\peanut_book\\2020年8月中华人民共和国县以上行政区划代码.json";
List<ProvinceEntity> provinceList = ReadProvinceUtil.getFile(filePath);
List<Province> provinceList = ReadProvinceUtil.getFile(filePath);
// System.out.println(provinceList);
if (provinceList != null && provinceList.size() > 0) {
for (ProvinceEntity province : provinceList) {
for (Province province : provinceList) {
// ProvinceEntity provinceEntity = new ProvinceEntity();
// provinceEntity.setProvName(province.getProvName());
// provinceEntity.setCreateDate(province.getCreateDate());
// provinceEntity.setRegionCode(province.getRegionCode());
provinceService.save(province);
List<CityEntity> cityList = province.getCityList();
List<City> cityList = province.getCityList();
if (cityList != null && cityList.size() > 0) {
for (CityEntity city : cityList) {
for (City city : cityList) {
// CityEntity cityEntity = new CityEntity();
// cityEntity.setCreateDate(city.getCreateDate());
// cityEntity.setCityName(city.getCityName());
@@ -764,9 +764,9 @@ public class BookController {
// city.setProvId(province.getProvId());
city.setProvId(province.getProvId());
cityService.save(city);
List<CountyEntity> countyList = city.getCountyList();
List<County> countyList = city.getCountyList();
if (countyList != null && countyList.size() > 0) {
for (CountyEntity county : countyList) {
for (County county : countyList) {
// CountyEntity countyEntity = new CountyEntity();
county.setCityId(city.getCityId());
// countyEntity.setCountyName(county.getCountyName());

View File

@@ -10,10 +10,15 @@ import com.peanut.config.Constants;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.book.entity.*;
import com.peanut.modules.book.service.*;
import com.peanut.modules.book.vo.ExpressQueryResponseVo;
import com.peanut.modules.book.vo.request.ProductRequestVo;
import com.peanut.modules.book.vo.request.ProductTransportVo;
import com.peanut.modules.book.vo.response.ExpressQueryResponseVo;
import com.peanut.modules.book.vo.ShippingAddressRequestVo;
import com.peanut.modules.book.vo.UserAddressVo;
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
import com.peanut.modules.pay.weChatPay.service.WxpayService;
import com.peanut.modules.sys.entity.SysConfigEntity;
import com.peanut.modules.sys.service.SysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -24,6 +29,7 @@ import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -61,12 +67,16 @@ public class BuyOrderController {
private WxpayService wxpayService;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private ShopProductBookService shopProductBookService;
@Autowired
private ExpressOrderService expressOrderService;
@Autowired
private UserAddressService userAddressService;
@Autowired
private ExpressFeeService expressFeeService;
@Autowired
private SysConfigService sysConfigService;
/**
* 列表
@@ -91,11 +101,11 @@ public class BuyOrderController {
@Transactional
public R buySave(@RequestBody BuyOrder buyOrder) throws IOException {
// 获取订单详情
List<BuyOrderDetail> products = buyOrder.getProducts();
List<BuyOrderDetail> buyOrderDetails = buyOrder.getProducts();
// 订单总金额
BigDecimal totalPrice = new BigDecimal(0);
// 遍历商品总价计算
for (BuyOrderDetail buyOrderDetail : products) {
for (BuyOrderDetail buyOrderDetail : buyOrderDetails) {
Integer productId = buyOrderDetail.getProductId();
int quantity = buyOrderDetail.getQuantity();
ShopProductEntity product = shopProductService.getById(productId);
@@ -120,16 +130,24 @@ public class BuyOrderController {
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.getCity());
buyOrderService.save(buyOrder);
for (BuyOrderDetail buyOrderDetail : products) {
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(products);
buyOrderDetailService.saveBatch(buyOrderDetails);
// 1. 虚拟币支付
if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
buyOrder.setOrderStatus(Constants.ORDER_STATUS_TO_BE_SHIPPED);
@@ -138,7 +156,7 @@ public class BuyOrderController {
// 更新订单状态
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "0");
recordTransaction(buyOrder, user, totalPrice);
addEbookToUser(products, buyOrder);
addEbookToUser(buyOrderDetails, buyOrder);
} else {
return R.error(500, "花生币余额不足!");
}
@@ -163,6 +181,24 @@ public class BuyOrderController {
return R.ok(result);
}
@RequestMapping(path = "/calculateTransportPrice", method = RequestMethod.POST)
public R getTransportPrice(@RequestBody ProductTransportVo vo) {
String regionCode = vo.getRegionCode();
List<ProductRequestVo> products = vo.getProducts();
BigDecimal totalWeight = new BigDecimal(0);
for (ProductRequestVo product : products) {
ShopProductEntity shopProduct = shopProductService.getById(product.getProductId());
BigDecimal weight = BigDecimal.valueOf(Double.valueOf(shopProduct.getWeight()) / 1000.0);
totalWeight = totalWeight.add(weight.multiply(new BigDecimal(product.getQuantity())));
}
totalWeight = totalWeight.setScale(0, RoundingMode.UP);
QueryWrapper<SysConfigEntity> configQueryWrapper = new QueryWrapper<>();
configQueryWrapper.eq("param_key", "DEFAULT_EXPRESS");
SysConfigEntity config = sysConfigService.getOne(configQueryWrapper);
BigDecimal expressFee = expressFeeService.calculateExpressFee(config.getParamValue(), totalWeight, regionCode);
return R.ok().put("result", expressFee);
}
/**
* 修改

View File

@@ -4,9 +4,9 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.peanut.common.utils.R;
import com.peanut.modules.book.entity.CityEntity;
import com.peanut.modules.book.entity.CountyEntity;
import com.peanut.modules.book.entity.ProvinceEntity;
import com.peanut.modules.book.entity.City;
import com.peanut.modules.book.entity.County;
import com.peanut.modules.book.entity.Province;
import com.peanut.modules.book.service.CityService;
import com.peanut.modules.book.service.CountyService;
import com.peanut.modules.book.service.ProvinceService;
@@ -50,15 +50,15 @@ public class ProvinceController {
}
return R.ok().put("provinceEntity", listData);
}
List<ProvinceEntity> provinceEntityList = provinceService.getCity();
redisTemplate.opsForValue().set("Province", JSON.toJSONString(provinceEntityList));
return R.ok().put("provinceEntity", provinceEntityList);
List<Province> provinceList = provinceService.getCity();
redisTemplate.opsForValue().set("Province", JSON.toJSONString(provinceList));
return R.ok().put("provinceEntity", provinceList);
}
//获取省列表
@RequestMapping("/getProvinceList")
public R getProvinceList() {
List<ProvinceEntity> provinceList = provinceService.getBaseMapper().selectList(new QueryWrapper<ProvinceEntity>());
List<Province> provinceList = provinceService.getBaseMapper().selectList(new QueryWrapper<Province>());
return R.ok().put("provinceList", provinceList);
}
@@ -66,7 +66,7 @@ public class ProvinceController {
//获取市列表
@RequestMapping("/getCityList")
public R getCityList(@RequestParam("provId") Integer provId) {
List<CityEntity> prov = cityService.getBaseMapper().selectList(new QueryWrapper<CityEntity>()
List<City> prov = cityService.getBaseMapper().selectList(new QueryWrapper<City>()
.eq("prov_id", provId));
return R.ok().put("prov", prov);
}
@@ -74,7 +74,7 @@ public class ProvinceController {
//获取区列表
@RequestMapping("/getCountyList")
public R getCountyList(@RequestParam("cityId") Integer cityId) {
List<CountyEntity> countyList = countyService.getBaseMapper().selectList(new QueryWrapper<CountyEntity>().eq("city_id", cityId));
List<County> countyList = countyService.getBaseMapper().selectList(new QueryWrapper<County>().eq("city_id", cityId));
return R.ok().put("countyList", countyList);
}
}

View File

@@ -1,15 +1,16 @@
package com.peanut.modules.book.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.peanut.common.utils.PageUtils;
import com.peanut.common.utils.R;
import com.peanut.modules.book.entity.UserAddress;
import com.peanut.modules.book.service.UserAddressService;
import com.peanut.modules.book.vo.UserAddressVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@@ -18,19 +19,6 @@ public class UserAddressController {
@Autowired
private UserAddressService userAddressService;
/**
* 用户地址列表
*
* @param params param
* @return R
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params) {
PageUtils page = userAddressService.queryPage(params);
return R.ok().put("page", page);
}
/**
* 获取地址信息
*
@@ -40,18 +28,34 @@ public class UserAddressController {
@RequestMapping("/info/{addressId}")
public R info(@PathVariable("addressId") Integer addressId) {
UserAddress userAddress = userAddressService.getById(addressId);
return R.ok().put("userAddress", userAddress);
UserAddressVo vo = new UserAddressVo();
BeanUtil.copyProperties(userAddress, vo);
vo = userAddressService.getAddressName(vo, userAddress.getRegionCode());
return R.ok().put("result", vo);
}
/**
* 保存、更新
* 保存
*
* @param userAddress 用户地址
* @return R
*/
@RequestMapping("/save")
public R save(@RequestBody UserAddress userAddress) {
userAddressService.saveOrUpdate(userAddress);
// 判断是否已经有默认的地址了
if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) {
return R.error("已经存在默认地址");
}
userAddressService.save(userAddress);
return R.ok();
}
@RequestMapping("/update")
public R update(@RequestBody UserAddress userAddress) {
if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) {
return R.error("已经存在默认地址");
}
userAddressService.updateById(userAddress);
return R.ok();
}
@@ -79,6 +83,13 @@ public class UserAddressController {
queryWrapper.eq("user_id", userId);
queryWrapper.orderByDesc("is_default");
List<UserAddress> userAddressList = userAddressService.list(queryWrapper);
return R.ok().put("list", userAddressList);
List<UserAddressVo> result = new ArrayList<>();
for (UserAddress userAddress : userAddressList) {
UserAddressVo vo = new UserAddressVo();
BeanUtil.copyProperties(userAddress, vo);
vo = userAddressService.getAddressName(vo, userAddress.getRegionCode());
result.add(vo);
}
return R.ok().put("list", result);
}
}