支持后台取消商品,订单号改为时间关联
This commit is contained in:
@@ -270,7 +270,7 @@ dubbo:
|
||||
bxg:
|
||||
shop:
|
||||
# API_URL: http://192.168.10.113:48080/bxgApp
|
||||
API_URL: http://5205b509.r5.cpolar.top
|
||||
API_URL: http://7c539556.r5.cpolar.top
|
||||
SITE_URL: http://192.168.10.113:48080/bxgApp
|
||||
UNI_SITE_URL: http://192.168.10.113:48080/bxgApp
|
||||
ADMIN_API_URL: http://192.168.10.113:48080/bxg
|
||||
|
||||
+4
-1
@@ -63,9 +63,12 @@ public class YxStoreCombinationDto implements Serializable {
|
||||
// 简介
|
||||
private String info;
|
||||
|
||||
// 价格
|
||||
// 拼团价格
|
||||
private BigDecimal price;
|
||||
|
||||
//售价
|
||||
private BigDecimal productPrice;
|
||||
|
||||
// 排序
|
||||
private Integer sort;
|
||||
|
||||
|
||||
@@ -60,6 +60,10 @@ public interface YxStoreHotListService extends BaseService<YxStoreHotList> {
|
||||
*/
|
||||
List<YxStoreProduct> getList(YxStoreHotListRecordQueryParam QueryParam);
|
||||
|
||||
|
||||
/**
|
||||
* 首页榜单显示
|
||||
*/
|
||||
List<HotListDTO> getList();
|
||||
|
||||
}
|
||||
|
||||
+5
-2
@@ -248,6 +248,7 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
|
||||
pageList.getRecords().forEach(yxStoreHotListRecord -> {
|
||||
YxStoreProduct yxStoreProduct=storeProductMapper.selectById(yxStoreHotListRecord.getProductId());
|
||||
if (ObjectUtil.isNotNull(yxStoreProduct)){
|
||||
yxStoreProduct.setHotSales(yxStoreHotListRecord.getHotSales());
|
||||
list.add(yxStoreProduct);
|
||||
}
|
||||
});
|
||||
@@ -267,7 +268,8 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
|
||||
//获取月份
|
||||
LinkedHashSet<String> mouthList=new LinkedHashSet<>();
|
||||
list.forEach(yxStoreHotListRecord -> mouthList.add(yxStoreHotListRecord.getMouth()));
|
||||
String mouth=Collections.max(mouthList);
|
||||
String mouth=Collections.max(mouthList);//设定月份为最近的月份
|
||||
//获取当前月份的榜单记录
|
||||
List<YxStoreHotListRecord> recordList=yxStoreHotListRecordMapper.selectList(wrapper.eq(YxStoreHotListRecord::getMouth,mouth));
|
||||
LinkedHashSet<Integer> hotIdList=new LinkedHashSet<>();
|
||||
//获得不重复的榜单id
|
||||
@@ -282,6 +284,7 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
|
||||
ArrayList <Integer> list1=new ArrayList<>();
|
||||
yxStoreHotListMapper.selectList(wrapperList).forEach(yxHotList->list1.add(yxHotList.getId()));
|
||||
ArrayList<HotListDTO> hotListDTOS=new ArrayList<>();
|
||||
//已经排序过的榜单
|
||||
list1.forEach(hotId->{
|
||||
LambdaQueryWrapper<YxStoreHotListRecord> wrapper1= SerializationUtils.clone(wrapper);
|
||||
//查出当前月份当前榜单的记录
|
||||
@@ -295,7 +298,7 @@ public class YxStoreHotListServiceImpl extends BaseServiceImpl<YxStoreHotListMap
|
||||
if(ObjectUtil.isNotNull(storeCategoryMapper.selectById(cate.getCateId()))){
|
||||
cateIdList.add(cate.getCateId());
|
||||
}
|
||||
productInfo.add(storeProductMapper.selectById(cate.getProductId()));
|
||||
productInfo.add(storeProductMapper.selectById(cate.getProductId()).setHotSales(cate.getHotSales()));
|
||||
});
|
||||
ArrayList<CateDto> cateDtos=new ArrayList<>();
|
||||
//把该榜单下的分类封为一个数组
|
||||
|
||||
@@ -215,7 +215,7 @@ public class StoreOrderController {
|
||||
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "通过审核,准备发货")
|
||||
@ApiOperation(value = "通过审核,可以进行发货")
|
||||
@PutMapping(value = "/ordercheck")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT')")
|
||||
public ResponseEntity checkdate(@Validated @RequestBody YxStoreOrder resources) {
|
||||
@@ -223,6 +223,15 @@ public class StoreOrderController {
|
||||
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "未付款订单进行取消")
|
||||
@PutMapping(value = "/orderCancel")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT')")
|
||||
public ResponseEntity canceldate(@Validated @RequestBody YxStoreOrder resources) {
|
||||
yxStoreOrderService.cancelOrder(resources.getOrderId(), resources.getUid());
|
||||
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "修改快递单号")
|
||||
@PutMapping(value = "/yxStoreOrder/updateDelivery")
|
||||
|
||||
+51
-11
@@ -39,6 +39,8 @@ import co.yixiang.modules.cart.domain.YxStoreCart;
|
||||
import co.yixiang.modules.cart.service.YxStoreCartService;
|
||||
import co.yixiang.modules.cart.service.mapper.StoreCartMapper;
|
||||
import co.yixiang.modules.cart.vo.YxStoreCartQueryVo;
|
||||
import co.yixiang.modules.category.domain.YxStoreCategory;
|
||||
import co.yixiang.modules.category.service.YxStoreCategoryService;
|
||||
import co.yixiang.modules.order.domain.YxExpress;
|
||||
import co.yixiang.modules.order.domain.YxStoreOrder;
|
||||
import co.yixiang.modules.order.domain.YxStoreOrderCartInfo;
|
||||
@@ -51,6 +53,7 @@ import co.yixiang.modules.order.service.YxStoreOrderStatusService;
|
||||
import co.yixiang.modules.order.service.dto.*;
|
||||
import co.yixiang.modules.order.service.mapper.StoreOrderMapper;
|
||||
import co.yixiang.modules.order.vo.*;
|
||||
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||
import co.yixiang.modules.product.domain.YxStoreProductReply;
|
||||
import co.yixiang.modules.product.service.YxStoreProductReplyService;
|
||||
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||
@@ -61,6 +64,7 @@ import co.yixiang.modules.shop.domain.YxSystemStore;
|
||||
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||
import co.yixiang.modules.shop.service.YxSystemStoreService;
|
||||
import co.yixiang.modules.shop.service.YxSystemStoreStaffService;
|
||||
import co.yixiang.modules.store.service.YxStoreBrandService;
|
||||
import co.yixiang.modules.template.domain.YxShippingTemplates;
|
||||
import co.yixiang.modules.template.domain.YxShippingTemplatesFree;
|
||||
import co.yixiang.modules.template.domain.YxShippingTemplatesRegion;
|
||||
@@ -103,6 +107,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -198,6 +203,15 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
@Autowired
|
||||
private YxStoreOrderService yxStoreOrderService;
|
||||
|
||||
@Autowired
|
||||
private YxStoreBrandService yxStoreBrandService;
|
||||
|
||||
@Autowired
|
||||
private YxStoreCategoryService yxStoreCategoryService;
|
||||
|
||||
@Autowired
|
||||
private YxStoreProductService yxStoreProductService;
|
||||
|
||||
/**
|
||||
* 返回订单确认数据
|
||||
*
|
||||
@@ -486,8 +500,13 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
gainIntegral = BigDecimal.ZERO;
|
||||
isIntegral = true;
|
||||
}
|
||||
SimpleDateFormat dmDate = new SimpleDateFormat("yyyyMMddHHmmss"); // 获取当前时间
|
||||
Date date = new Date();
|
||||
String dateran = dmDate.format(date);
|
||||
int ran=(int)((Math.random() * 9 + 1) * 10000); //生成随机数防止重复
|
||||
//生成分布式唯一值
|
||||
String orderSn = IdUtil.getSnowflake(0, 0).nextIdStr();
|
||||
// String orderSn = IdUtil.getSnowflake(0, 0).nextIdStr();
|
||||
String orderSn=dateran+ran;
|
||||
//组合数据
|
||||
YxStoreOrder storeOrder = new YxStoreOrder();
|
||||
storeOrder.setUid(Long.valueOf(String.valueOf(uid)));
|
||||
@@ -696,7 +715,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
YxStoreOrder storeOrder = new YxStoreOrder();
|
||||
//修改状态
|
||||
storeOrder.setId(orderQueryVo.getId());
|
||||
if (ShopCommonEnum.AGREE_2.getValue().equals(type)) {
|
||||
if (ShopCommonEnum.AGREE_2.getValue().equals(type)) {//同意退款
|
||||
storeOrder.setRefundStatus(OrderInfoEnum.REFUND_STATUS_0.getValue());
|
||||
yxStoreOrderMapper.updateById(storeOrder);
|
||||
StoreAfterSales storeAfterSales = storeAfterSalesService.lambdaQuery()
|
||||
@@ -1158,15 +1177,18 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
orderStatusService.create(order.getId(),
|
||||
OrderLogEnum.REFUND_ORDER_APPLY.getValue(),
|
||||
"用户申请退款,原因:" + text);
|
||||
//模板消息发布事件
|
||||
TemplateBean templateBean = TemplateBean.builder()
|
||||
.orderId(order.getOrderId())
|
||||
.price(order.getPayPrice().toString())
|
||||
.uid(order.getUid())
|
||||
.templateType(TemplateListenEnum.TYPE_9.getValue())
|
||||
.time(DateUtil.formatTime(new Date()))
|
||||
.build();
|
||||
publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||
//这里调用退款方法,直接进行退款
|
||||
yxStoreOrderService.orderRefund(order.getOrderId(),order.getPayPrice(),
|
||||
ShopCommonEnum.AGREE_1.getValue());
|
||||
//取消拼团不进行模板消息发布事件
|
||||
// TemplateBean templateBean = TemplateBean.builder()
|
||||
// .orderId(order.getOrderId())
|
||||
// .price(order.getPayPrice().toString())
|
||||
// .uid(order.getUid())
|
||||
// .templateType(TemplateListenEnum.TYPE_9.getValue())
|
||||
// .time(DateUtil.formatTime(new Date()))
|
||||
// .build();
|
||||
// publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||
|
||||
}
|
||||
|
||||
@@ -2495,6 +2517,8 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
map.put("订单号", yxStoreOrder.getOrderId());
|
||||
map.put("用户id", yxStoreOrder.getUid());
|
||||
StringBuilder pname = new StringBuilder();
|
||||
StringBuilder pBrand=new StringBuilder();
|
||||
StringBuilder pCate=new StringBuilder();
|
||||
yxStoreOrder.getCartInfoList().forEach(c->{
|
||||
Object info = c.getCartInfoMap().get("productInfo");
|
||||
YxStoreProductQueryVo vo = JSONUtil.toBean(info.toString(), YxStoreProductQueryVo.class);
|
||||
@@ -2505,10 +2529,26 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
.append(ObjectUtil.isNotEmpty(vo.getAttrInfo()) ? vo.getAttrInfo().getSku() : "")
|
||||
.append(" ,\r\n");
|
||||
}
|
||||
|
||||
Integer productId=Integer.valueOf(c.getCartInfoMap().get("productId").toString());
|
||||
YxStoreProduct yxStoreProduct=yxStoreProductService.getById(productId);
|
||||
if (ObjectUtil.isNotNull(yxStoreBrandService.getById(yxStoreProduct.getBrandId()))){
|
||||
pBrand.append(yxStoreBrandService.getById(yxStoreProduct.getBrandId()).getBrandName());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(yxStoreCategoryService.getById(yxStoreProduct.getCateId()))){
|
||||
YxStoreCategory yxStoreCategory=yxStoreCategoryService.getById(yxStoreProduct.getCateId());
|
||||
pCate.append(yxStoreCategoryService.getById(yxStoreProduct.getCateId()).getCateName());
|
||||
}
|
||||
});
|
||||
map.put("商品名称",pname);
|
||||
map.put("商品品牌",pBrand);
|
||||
map.put("商品分类",pCate);
|
||||
map.put("用户id",yxStoreOrder.getUid());
|
||||
map.put("用户姓名", yxStoreOrder.getRealName());
|
||||
map.put("用户电话", yxStoreOrder.getUserPhone());
|
||||
map.put("省",yxStoreOrder.getUserAddress().split(" ")[0]);
|
||||
map.put("市",yxStoreOrder.getUserAddress().split(" ")[1]);
|
||||
map.put("区",yxStoreOrder.getUserAddress().split(" ")[2]);
|
||||
map.put("详细地址", yxStoreOrder.getUserAddress());
|
||||
map.put("购物车id", yxStoreOrder.getCartId());
|
||||
map.put("运费金额", yxStoreOrder.getFreightPrice());
|
||||
|
||||
+13
@@ -16,6 +16,8 @@ import co.yixiang.exception.ErrorRequestException;
|
||||
import co.yixiang.modules.cart.vo.YxStoreCartQueryVo;
|
||||
import co.yixiang.modules.order.domain.YxStoreOrder;
|
||||
import co.yixiang.modules.order.domain.YxStoreOrderCartInfo;
|
||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||
import co.yixiang.modules.order.service.impl.YxStoreOrderServiceImpl;
|
||||
import co.yixiang.modules.order.service.mapper.StoreOrderCartInfoMapper;
|
||||
import co.yixiang.modules.order.service.mapper.StoreOrderMapper;
|
||||
import co.yixiang.modules.sales.domain.StoreAfterSales;
|
||||
@@ -72,11 +74,15 @@ public class StoreAfterSalesServiceImpl extends BaseServiceImpl<StoreAfterSalesM
|
||||
@Autowired
|
||||
private ApplicationEventPublisher publisher;
|
||||
|
||||
@Autowired
|
||||
private YxStoreOrderServiceImpl yxStoreOrderService;
|
||||
|
||||
@Override
|
||||
public void applyForAfterSales(Long userId, String nickname, StoreAfterSalesParam storeAfterSalesParam) {
|
||||
|
||||
YxStoreOrder yxStoreOrder = storeOrderMapper.selectOne(Wrappers.<YxStoreOrder>lambdaQuery().eq(YxStoreOrder::getOrderId, storeAfterSalesParam.getOrderCode()).eq(YxStoreOrder::getUid, userId));
|
||||
checkOrder(yxStoreOrder);
|
||||
|
||||
//商品除去优惠后的总价格
|
||||
BigDecimal totalPrice = BigDecimal.ZERO;
|
||||
//拿到所有的商品
|
||||
@@ -97,6 +103,7 @@ public class StoreAfterSalesServiceImpl extends BaseServiceImpl<StoreAfterSalesM
|
||||
|
||||
}
|
||||
}
|
||||
Integer status=yxStoreOrder.getStatus(); //储存一下申请订单的状态,用于后面判断
|
||||
//更新订单状态
|
||||
yxStoreOrder.setStatus(OrderInfoEnum.STATUS_NE1.getValue());
|
||||
yxStoreOrder.setRefundStatus(OrderInfoEnum.REFUND_STATUS_1.getValue());
|
||||
@@ -139,6 +146,11 @@ public class StoreAfterSalesServiceImpl extends BaseServiceImpl<StoreAfterSalesM
|
||||
storeAfterSalesStatus.setChangeTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||
storeAfterSalesStatus.setOperator(nickname);
|
||||
storeAfterSalesStatusMapper.insert(storeAfterSalesStatus);
|
||||
//如果订单未发货,直接调用退款方法
|
||||
if (yxStoreOrder.getStatus().equals(OrderInfoEnum.STATUS_0)|yxStoreOrder.getStatus().equals(OrderInfoEnum.STATUS_5)){
|
||||
yxStoreOrderService.orderRefund(yxStoreOrder.getOrderId(),yxStoreOrder.getPayPrice(),
|
||||
ShopCommonEnum.AGREE_1.getValue());
|
||||
}else {
|
||||
//模板消息发布事件
|
||||
TemplateBean templateBean = TemplateBean.builder()
|
||||
.orderId(yxStoreOrder.getOrderId())
|
||||
@@ -149,6 +161,7 @@ public class StoreAfterSalesServiceImpl extends BaseServiceImpl<StoreAfterSalesM
|
||||
.build();
|
||||
publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<YxStoreOrderCartInfoVo> checkOrderDetails(String key) {
|
||||
|
||||
Reference in New Issue
Block a user