From 00f9642f2b5cde1552ff5e7852046f85f2eb91ee Mon Sep 17 00:00:00 2001 From: "yan.y" Date: Mon, 6 Jan 2025 19:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=8A=9F=E8=83=BD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orders/controller/GoodsController.java | 14 +++- .../controller/OrderMainController.java | 18 +++++ .../com/linln/admin/orders/domain/Goods.java | 4 ++ .../linln/admin/orders/domain/OrderMain.java | 4 ++ .../linln/admin/orders/domain/PayOrder.java | 56 +++++++++++++++ .../admin/orders/domain/PetBaseInfo.java | 2 +- .../linln/admin/orders/domain/PetGoods.java | 3 + .../orders/repository/PayOrderRepository.java | 15 ++++ .../repository/PetBaseInfoRepository.java | 5 ++ .../orders/service/OrderMainService.java | 6 +- .../service/impl/OrderMainServiceImpl.java | 27 +++++++ .../service/impl/PetGoodsServiceImpl.java | 1 + .../users/service/PetBaseInfoService.java | 2 + .../service/impl/PetBaseInfoServiceImpl.java | 5 ++ .../orders/goods/goodsToLinkPet.html | 22 ++++++ .../templates/orders/orderMain/index.html | 4 ++ .../resources/templates/orders/pay/index.html | 72 +++++++++++++++++++ .../templates/orders/petGoods/index.html | 2 + .../component/thymeleaf/utility/DictUtil.java | 8 +++ 19 files changed, 264 insertions(+), 6 deletions(-) create mode 100644 admin/src/main/java/com/linln/admin/orders/domain/PayOrder.java create mode 100644 admin/src/main/java/com/linln/admin/orders/repository/PayOrderRepository.java create mode 100644 admin/src/main/resources/templates/orders/pay/index.html diff --git a/admin/src/main/java/com/linln/admin/orders/controller/GoodsController.java b/admin/src/main/java/com/linln/admin/orders/controller/GoodsController.java index 28a81f8..16aac6f 100644 --- a/admin/src/main/java/com/linln/admin/orders/controller/GoodsController.java +++ b/admin/src/main/java/com/linln/admin/orders/controller/GoodsController.java @@ -7,6 +7,8 @@ import com.linln.admin.orders.domain.PetGoods; import com.linln.admin.orders.service.GoodsService; import com.linln.admin.orders.service.PetGoodsService; import com.linln.admin.orders.validator.GoodsValid; +import com.linln.admin.users.service.PetBaseInfoService; +import com.linln.admin.users.service.PetService; import com.linln.common.enums.StatusEnum; import com.linln.common.utils.EntityBeanUtil; import com.linln.common.utils.ResultVoUtil; @@ -39,6 +41,9 @@ public class GoodsController { @Resource private PetGoodsService petGoodsService; + @Resource + private PetBaseInfoService petBaseInfoService; + /** * 列表页面 */ @@ -91,8 +96,12 @@ public class GoodsController { petList.add(cat); PetBaseInfo dog = new PetBaseInfo(); dog.setPetType(2); + List catPetBaseList = petBaseInfoService.findPetBaseList(1); + List dogPetBaseList = petBaseInfoService.findPetBaseList(2); model.addAttribute("goods", goods); model.addAttribute("petList", petList); + model.addAttribute("cats", catPetBaseList); + model.addAttribute("dogs", dogPetBaseList); return "/orders/goods/goodsToLinkPet"; } @@ -106,16 +115,19 @@ public class GoodsController { int petType = goods.getPetType(); int catWeight = goods.getCatWeight() == null ? 0 : goods.getCatWeight(); int dogWeight = goods.getDogWeight() == null ? 0 : goods.getDogWeight(); + int catPzId = goods.getCatWeight() == null ? 0 : goods.getCatPz(); + int dogPzId = goods.getDogWeight() == null ? 0 : goods.getDogPz(); int hair = goods.getHair(); goods = goodsService.getById(goods.getId()); PetGoods petGoods = new PetGoods(); - petGoods.setAssortment(0); petGoods.setSize(0); petGoods.setPetType(petType); if (petType == 1) { petGoods.setWeight(catWeight); + petGoods.setAssortment(catPzId); } else { petGoods.setWeight(dogWeight); + petGoods.setAssortment(dogPzId); } petGoods.setHair(hair); petGoods.setGoodsId(goods.getId()); diff --git a/admin/src/main/java/com/linln/admin/orders/controller/OrderMainController.java b/admin/src/main/java/com/linln/admin/orders/controller/OrderMainController.java index f8a3ebf..b91665d 100644 --- a/admin/src/main/java/com/linln/admin/orders/controller/OrderMainController.java +++ b/admin/src/main/java/com/linln/admin/orders/controller/OrderMainController.java @@ -70,6 +70,24 @@ public class OrderMainController { model.addAttribute("page", list); return "/orders/orderMain/index"; } + /** + * 列表页面 + */ + @GetMapping("/pay/index") + @RequiresPermissions("orders:orderMain:index") + public String payIndex(Model model, PayOrder payOrder) { + + // 创建匹配器,进行动态查询匹配 + ExampleMatcher matcher = ExampleMatcher.matching(); + + // 获取数据列表 + Example example = Example.of(payOrder, matcher); + Page list = orderMainService.getPayOrderPageList(example); + // 封装数据 + model.addAttribute("list", list.getContent()); + model.addAttribute("page", list); + return "/orders/pay/index"; + } /** * 跳转到添加页面 diff --git a/admin/src/main/java/com/linln/admin/orders/domain/Goods.java b/admin/src/main/java/com/linln/admin/orders/domain/Goods.java index 093c70c..c7bdcf6 100644 --- a/admin/src/main/java/com/linln/admin/orders/domain/Goods.java +++ b/admin/src/main/java/com/linln/admin/orders/domain/Goods.java @@ -63,5 +63,9 @@ public class Goods implements Serializable { @Transient private Integer catWeight; @Transient + private Integer catPz; + @Transient private Integer dogWeight; + @Transient + private Integer dogPz; } \ No newline at end of file diff --git a/admin/src/main/java/com/linln/admin/orders/domain/OrderMain.java b/admin/src/main/java/com/linln/admin/orders/domain/OrderMain.java index be59eeb..5c0ed47 100644 --- a/admin/src/main/java/com/linln/admin/orders/domain/OrderMain.java +++ b/admin/src/main/java/com/linln/admin/orders/domain/OrderMain.java @@ -31,6 +31,8 @@ public class OrderMain implements Serializable { private Long id; // 订单ID private String orderId; + // 支付订单ID + private String payOrderId; // 用户ID private Long uid; // 订单状态 @@ -108,6 +110,8 @@ public class OrderMain implements Serializable { private Long addrId; @Transient private String addr; + @Transient + private String payDj; public OrderMain() { } diff --git a/admin/src/main/java/com/linln/admin/orders/domain/PayOrder.java b/admin/src/main/java/com/linln/admin/orders/domain/PayOrder.java new file mode 100644 index 0000000..1351bd1 --- /dev/null +++ b/admin/src/main/java/com/linln/admin/orders/domain/PayOrder.java @@ -0,0 +1,56 @@ +package com.linln.admin.orders.domain; + +import com.linln.common.enums.StatusEnum; +import com.linln.common.utils.StatusUtil; +import lombok.Data; +import org.hibernate.annotations.Where; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +/** + * @author gion + * @date 2024/04/29 + */ +@Data +@Entity +@Table(name="pay_orders") +@EntityListeners(AuditingEntityListener.class) +@Where(clause = StatusUtil.NOT_DELETE) +public class PayOrder implements Serializable { + // 主键ID + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private Long id; + // 订单ID + private String orderId; + // 订单名称 + private String orderName; + //订单价格 + private Double orderPrice; + //订单状态 + private Byte orderStatus; + //三方支付ID + private String payId; + //充值ID + private Integer rechargeId; + //用户ID + private Long uid; + // 订单创建时间 + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + // 订单更新时间 + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + @CreatedDate + private Date createDate; + @LastModifiedDate + private Date updateDate; + // 数据状态 + private Byte status = StatusEnum.OK.getCode(); +} \ No newline at end of file diff --git a/admin/src/main/java/com/linln/admin/orders/domain/PetBaseInfo.java b/admin/src/main/java/com/linln/admin/orders/domain/PetBaseInfo.java index b6be625..04e8d3d 100644 --- a/admin/src/main/java/com/linln/admin/orders/domain/PetBaseInfo.java +++ b/admin/src/main/java/com/linln/admin/orders/domain/PetBaseInfo.java @@ -29,7 +29,7 @@ public class PetBaseInfo implements Serializable { private Long id; // 宠物类型 private Integer petType; - // 宠物名称 + // 宠物品种 private String assortment; // 长毛短毛 1长毛 2短毛 private Integer hair; diff --git a/admin/src/main/java/com/linln/admin/orders/domain/PetGoods.java b/admin/src/main/java/com/linln/admin/orders/domain/PetGoods.java index 16d1475..687a1fd 100644 --- a/admin/src/main/java/com/linln/admin/orders/domain/PetGoods.java +++ b/admin/src/main/java/com/linln/admin/orders/domain/PetGoods.java @@ -28,6 +28,9 @@ public class PetGoods implements Serializable { private Long id; // 品种ID private Integer assortment; + //品种描述 + @Transient + private String assortmentDesc; // 宠物类型 private Integer petType; // 宠物体重 diff --git a/admin/src/main/java/com/linln/admin/orders/repository/PayOrderRepository.java b/admin/src/main/java/com/linln/admin/orders/repository/PayOrderRepository.java new file mode 100644 index 0000000..fe77b59 --- /dev/null +++ b/admin/src/main/java/com/linln/admin/orders/repository/PayOrderRepository.java @@ -0,0 +1,15 @@ +package com.linln.admin.orders.repository; + +import com.linln.admin.orders.domain.CarOrder; +import com.linln.admin.orders.domain.PayOrder; +import com.linln.modules.system.repository.BaseRepository; + +/** + * @author gion + * @date 2024/04/29 + */ +public interface PayOrderRepository extends BaseRepository { + + PayOrder getPayOrdersByOrderId(String orderId); + +} \ No newline at end of file diff --git a/admin/src/main/java/com/linln/admin/orders/repository/PetBaseInfoRepository.java b/admin/src/main/java/com/linln/admin/orders/repository/PetBaseInfoRepository.java index d609ad8..b4a0280 100644 --- a/admin/src/main/java/com/linln/admin/orders/repository/PetBaseInfoRepository.java +++ b/admin/src/main/java/com/linln/admin/orders/repository/PetBaseInfoRepository.java @@ -3,9 +3,14 @@ package com.linln.admin.orders.repository; import com.linln.admin.orders.domain.PetBaseInfo; import com.linln.modules.system.repository.BaseRepository; +import java.util.List; + /** * @author gion * @date 2024/04/29 */ public interface PetBaseInfoRepository extends BaseRepository { + + List findAllByPetType(Integer petType); + } \ No newline at end of file diff --git a/admin/src/main/java/com/linln/admin/orders/service/OrderMainService.java b/admin/src/main/java/com/linln/admin/orders/service/OrderMainService.java index a5a58eb..6044a85 100644 --- a/admin/src/main/java/com/linln/admin/orders/service/OrderMainService.java +++ b/admin/src/main/java/com/linln/admin/orders/service/OrderMainService.java @@ -1,9 +1,6 @@ package com.linln.admin.orders.service; -import com.linln.admin.orders.domain.Car; -import com.linln.admin.orders.domain.OrderDetail; -import com.linln.admin.orders.domain.OrderMain; -import com.linln.admin.orders.domain.OrderSub; +import com.linln.admin.orders.domain.*; import com.linln.common.enums.StatusEnum; import org.springframework.data.domain.Example; import org.springframework.data.domain.Page; @@ -25,6 +22,7 @@ public interface OrderMainService { * @return 返回分页数据 */ Page getPageList(Example example); + Page getPayOrderPageList(Example example); /** * 根据ID查询数据 diff --git a/admin/src/main/java/com/linln/admin/orders/service/impl/OrderMainServiceImpl.java b/admin/src/main/java/com/linln/admin/orders/service/impl/OrderMainServiceImpl.java index 01c3793..69709a3 100644 --- a/admin/src/main/java/com/linln/admin/orders/service/impl/OrderMainServiceImpl.java +++ b/admin/src/main/java/com/linln/admin/orders/service/impl/OrderMainServiceImpl.java @@ -60,6 +60,9 @@ public class OrderMainServiceImpl implements OrderMainService { @Resource private UsersAmountRecordsService usersAmountRecordsService; + @Resource + private PayOrderRepository payOrderRepository; + /** * 根据ID查询数据 * @param id 主键ID @@ -96,6 +99,13 @@ public class OrderMainServiceImpl implements OrderMainService { return orderMainPage; } + @Override + public Page getPayOrderPageList(Example example) { + // 创建分页对象 + PageRequest page = PageSort.pageRequest("createTime", Sort.Direction.DESC); + return payOrderRepository.findAll(example, page); + } + private void getOrderMainInfo(OrderMain orderMain) { if (StrUtil.isNotBlank(orderMain.getPetInfos())) { return; @@ -158,6 +168,23 @@ public class OrderMainServiceImpl implements OrderMainService { } orderMain.setVipDiscountAmount(Math.max(vipDiscountAmount, 0)); } + if (orderMain.getPayOrderId() != null) { + PayOrder payOrder = payOrderRepository.getPayOrdersByOrderId(orderMain.getOrderId()); + if (payOrder != null) { + if (payOrder.getOrderStatus() == 1) { + orderMain.setPayDj("已支付"); + } else if (payOrder.getOrderStatus() == 2) { + orderMain.setPayDj("已退款"); + } else { + orderMain.setPayDj("未支付"); + } + } else { + orderMain.setPayDj("未支付"); + } + } else { + orderMain.setPayDj("未支付"); + } + orderMain.setGoodsDiscountAmount(couponsOriginPrice * 10 - orderSubs.stream().map(OrderSub::getGoodsDiscountAmount).reduce(0, Integer::sum)); orderMain.setUserServiceAddr("姓名:" + userServiceAddr.getName() + "
联系电话:" + userServiceAddr.getMobile() + "
地址:" + userServiceAddr.getAddr()); } diff --git a/admin/src/main/java/com/linln/admin/orders/service/impl/PetGoodsServiceImpl.java b/admin/src/main/java/com/linln/admin/orders/service/impl/PetGoodsServiceImpl.java index 3f4911b..4a91039 100644 --- a/admin/src/main/java/com/linln/admin/orders/service/impl/PetGoodsServiceImpl.java +++ b/admin/src/main/java/com/linln/admin/orders/service/impl/PetGoodsServiceImpl.java @@ -47,6 +47,7 @@ public class PetGoodsServiceImpl implements PetGoodsService { Page petGoodsPage = petGoodsRepository.findAll(example, page); List content = petGoodsPage.getContent(); for (PetGoods petGoods : content) { + petGoods.setAssortmentDesc(petGoods.getAssortment() == 0 ? "无" : InitLoadDataService.PET_BASE_INFO_MAP.get(Long.parseLong(petGoods.getAssortment().toString())).getAssortment()); petGoods.setGoods(InitLoadDataService.GOODS_MAP.get(petGoods.getGoodsId())); } return petGoodsPage; diff --git a/admin/src/main/java/com/linln/admin/users/service/PetBaseInfoService.java b/admin/src/main/java/com/linln/admin/users/service/PetBaseInfoService.java index 8ea31f2..a3c36d4 100644 --- a/admin/src/main/java/com/linln/admin/users/service/PetBaseInfoService.java +++ b/admin/src/main/java/com/linln/admin/users/service/PetBaseInfoService.java @@ -21,6 +21,8 @@ public interface PetBaseInfoService { */ Page getPageList(Example example); + List findPetBaseList(Integer petType); + /** * 根据ID查询数据 * @param id 主键ID diff --git a/admin/src/main/java/com/linln/admin/users/service/impl/PetBaseInfoServiceImpl.java b/admin/src/main/java/com/linln/admin/users/service/impl/PetBaseInfoServiceImpl.java index b444d6d..c95c9a8 100644 --- a/admin/src/main/java/com/linln/admin/users/service/impl/PetBaseInfoServiceImpl.java +++ b/admin/src/main/java/com/linln/admin/users/service/impl/PetBaseInfoServiceImpl.java @@ -47,6 +47,11 @@ public class PetBaseInfoServiceImpl implements PetBaseInfoService { return petBaseInfoRepository.findAll(example, page); } + @Override + public List findPetBaseList(Integer petType) { + return petBaseInfoRepository.findAllByPetType(petType); + } + /** * 保存数据 * @param petBaseInfo 实体对象 diff --git a/admin/src/main/resources/templates/orders/goods/goodsToLinkPet.html b/admin/src/main/resources/templates/orders/goods/goodsToLinkPet.html index 9fa2ccb..52e73a9 100644 --- a/admin/src/main/resources/templates/orders/goods/goodsToLinkPet.html +++ b/admin/src/main/resources/templates/orders/goods/goodsToLinkPet.html @@ -51,6 +51,24 @@ +
+ +
+ +
+
+
@@ -67,10 +85,14 @@ var petType = data.value if (petType === "1") { $("#catWeight").show() + $("#catPz").show() $("#dogWeight").hide() + $("#dogPz").hide() } else { $("#catWeight").hide() + $("#catPz").hide() $("#dogWeight").show() + $("#dogPz").show() } }); }); diff --git a/admin/src/main/resources/templates/orders/orderMain/index.html b/admin/src/main/resources/templates/orders/orderMain/index.html index b2bced3..5f2da8d 100644 --- a/admin/src/main/resources/templates/orders/orderMain/index.html +++ b/admin/src/main/resources/templates/orders/orderMain/index.html @@ -81,6 +81,7 @@ 洗护时长 付款状态 支付类型 + 定金付款状态 总金额 支付金额 会员折扣金额 @@ -89,6 +90,7 @@ 优惠券ID 优惠券名称 订单ID + 支付订单号 @@ -114,6 +116,7 @@ 洗护时长 付款状态 支付类型 + 定金付款状态 总金额 支付金额 会员折扣金额 @@ -122,6 +125,7 @@ 优惠券ID 优惠券名称 订单ID + 支付订单号 + +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
订单ID用户ID订单名称订单金额订单状态支付ID充值商品ID创建时间
订单ID用户ID订单名称订单金额订单状态订单名称充值商品ID订单创建时间
+
+
+ + + + + \ No newline at end of file diff --git a/admin/src/main/resources/templates/orders/petGoods/index.html b/admin/src/main/resources/templates/orders/petGoods/index.html index 46b7b89..89afbbc 100644 --- a/admin/src/main/resources/templates/orders/petGoods/index.html +++ b/admin/src/main/resources/templates/orders/petGoods/index.html @@ -43,6 +43,7 @@ id + 宠物品种 宠物类型 宠物体重 宠物毛发 @@ -59,6 +60,7 @@ id + 宠物品种 宠物类型 宠物体重 宠物体重 diff --git a/component/thymeleaf/src/main/java/com/linln/component/thymeleaf/utility/DictUtil.java b/component/thymeleaf/src/main/java/com/linln/component/thymeleaf/utility/DictUtil.java index 4c34870..e15ed53 100644 --- a/component/thymeleaf/src/main/java/com/linln/component/thymeleaf/utility/DictUtil.java +++ b/component/thymeleaf/src/main/java/com/linln/component/thymeleaf/utility/DictUtil.java @@ -242,6 +242,14 @@ public class DictUtil { String label = "USER_COUPONS_STATUS"; return DictUtil.keyValue(label, String.valueOf(status)); } + /** + * 封装数据状态字典 + * @param status 状态 + */ + public static String payOrderStatus(Byte status){ + String label = "PAY_ORDER_STATUS"; + return DictUtil.keyValue(label, String.valueOf(status)); + } /** * 清除缓存中指定的数据