licailing 5 жил өмнө
parent
commit
3774952c7f

+ 15 - 0
src/main/java/com/izouma/dingdong/domain/OrderInfo.java

@@ -1,6 +1,9 @@
 package com.izouma.dingdong.domain;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
+import com.izouma.dingdong.domain.merchant.Merchant;
+import com.izouma.dingdong.domain.merchant.MerchantSettings;
+import com.izouma.dingdong.dto.MerchantDTO;
 import com.izouma.dingdong.enums.MerchantStatus;
 import com.izouma.dingdong.enums.OrderStatus;
 import com.izouma.dingdong.enums.PayMethod;
@@ -130,4 +133,16 @@ public class OrderInfo extends BaseEntity {
     @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
     @JoinColumn(name = "orderId")
     List<OrderGoodsSpec> orderGoodsSpecs;
+
+    @ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.DETACH)
+    @JoinColumn(name = "userId", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+    private User user;
+
+    @ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.DETACH)
+    @JoinColumn(name = "merchantId", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+    private Merchant merchant;
+
+/*    @ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.DETACH)
+    @JoinColumn(name = "merchantId", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+    private MerchantSettings merchantSettings;*/
 }

+ 2 - 0
src/main/java/com/izouma/dingdong/domain/User.java

@@ -2,6 +2,7 @@ package com.izouma.dingdong.domain;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.izouma.dingdong.annotations.Searchable;
 import com.izouma.dingdong.config.Constants;
 import com.izouma.dingdong.enums.Identity;
@@ -29,6 +30,7 @@ import java.util.Set;
 @Builder
 @Where(clause = "enabled = 1")
 @ApiModel(value = "用户", description = "用户")
+@JsonIgnoreProperties(value = {"hibernateLazyInitializer"})
 public class User extends BaseEntity implements Serializable {
 
     @Pattern(regexp = Constants.Regex.USERNAME)

+ 11 - 7
src/main/java/com/izouma/dingdong/domain/merchant/Merchant.java

@@ -1,5 +1,6 @@
 package com.izouma.dingdong.domain.merchant;
 
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.izouma.dingdong.annotations.Searchable;
 import com.izouma.dingdong.domain.BaseEntity;
 import com.izouma.dingdong.enums.ApplyStatus;
@@ -18,7 +19,7 @@ import java.time.LocalDateTime;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-//@JsonIgnoreProperties(value = { "hibernateLazyInitializer"})
+@JsonIgnoreProperties(value = { "hibernateLazyInitializer"})
 @Where(clause = "enabled = true")
 @ApiModel(value = "商户信息", description = "商户信息")
 public class Merchant extends BaseEntity implements Serializable {
@@ -38,14 +39,17 @@ public class Merchant extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "商户电话", name = "phone")
     private String phone;
 
-/*    @ApiModelProperty(value = "密码", name = "password")
-    private String password;*/
+    @ApiModelProperty(value = "logo", name = "logo")
+    private String logo;
 
-    @ApiModelProperty(value = "图片", name = "img")
-    private String img;
+    @ApiModelProperty(value = "商户地址", name = "address")
+    private String address;
 
-    @ApiModelProperty(value = "横幅", name = "banner")
-    private String banner;
+//    @ApiModelProperty(value = "图片", name = "img")
+//    private String img;
+
+//    @ApiModelProperty(value = "横幅", name = "banner")
+//    private String banner;
 
     @Builder.Default
     @Column(nullable = false)

+ 8 - 2
src/main/java/com/izouma/dingdong/domain/merchant/MerchantSettings.java

@@ -31,11 +31,17 @@ public class MerchantSettings extends BaseEntity {
     @ApiModelProperty(value = "商户ID", name = "merchantId")
     private Long merchantId;
 
-    @ApiModelProperty(value = "logo", name = "logo")
+/*    @ApiModelProperty(value = "logo", name = "logo")
     private String logo;
 
     @ApiModelProperty(value = "商户地址", name = "address")
-    private String address;
+    private String address;*/
+
+    @ApiModelProperty(value = "图片", name = "img")
+    private String img;
+
+    @ApiModelProperty(value = "横幅", name = "banner")
+    private String banner;
 
     @ApiModelProperty(value = "公告",name = "proclamation")
     private String proclamation;

+ 4 - 4
src/main/java/com/izouma/dingdong/dto/MerchantDTO.java

@@ -24,7 +24,7 @@ import java.util.Set;
 @Builder
 public class MerchantDTO {
     public MerchantDTO(Merchant merchant, MerchantSettings merchantSettings) {
-        address = merchantSettings.getAddress();
+        address = merchant.getAddress();
         aliAccount = merchant.getAliAccount();
         aliName = merchant.getAliName();
         blacklist = merchant.getBlacklist();
@@ -34,7 +34,7 @@ public class MerchantDTO {
         endTime = merchantSettings.getEndTime();
         firstOrder = merchantSettings.getFirstOrder();
         mid = merchant.getId();
-        img = merchant.getImg();
+        img = merchantSettings.getImg();
         introduction = merchantSettings.getIntroduction();
         name = merchant.getName();
         newUser = merchantSettings.getNewUser();
@@ -47,8 +47,8 @@ public class MerchantDTO {
         status = merchant.getStatus();
         establishTime = merchant.getEstablishTime();
         week = merchantSettings.getWeek();
-        banner = merchant.getBanner();
-        logo = merchantSettings.getLogo();
+        banner = merchantSettings.getBanner();
+        logo = merchant.getLogo();
         proclamation = merchantSettings.getProclamation();
         userId = merchant.getUserId();
 //        money = merchant.getMoney();

+ 7 - 0
src/main/java/com/izouma/dingdong/dto/OrderDTO.java

@@ -1,6 +1,7 @@
 package com.izouma.dingdong.dto;
 
 import com.izouma.dingdong.domain.OrderGoodsSpec;
+import com.izouma.dingdong.domain.User;
 import com.izouma.dingdong.enums.MerchantStatus;
 import com.izouma.dingdong.enums.OrderStatus;
 import com.izouma.dingdong.enums.PayMethod;
@@ -78,4 +79,10 @@ public class OrderDTO {
 
     @ApiModelProperty(value = "商品及规格")
     private List<OrderGoodsSpec> orderGoodsSpecs;
+
+    private MerchantDTO merchantDTO;
+
+    private User user;
+
+
 }

+ 2 - 2
src/main/java/com/izouma/dingdong/service/OrderInfoService.java

@@ -322,9 +322,9 @@ public class OrderInfoService {
         dto.setAvatar(user.getAvatar());
 
         Merchant merchant = merchantRepo.findById(orderInfo.getMerchantId()).orElseThrow(new BusinessException("无商家"));
-        MerchantSettings merchantSettings = merchantSettingsRepo.findByMerchantId(orderInfo.getMerchantId()).orElseThrow(new BusinessException("无商家"));
+        //MerchantSettings merchantSettings = merchantSettingsRepo.findByMerchantId(orderInfo.getMerchantId()).orElseThrow(new BusinessException("无商家"));
         dto.setMerchantName(merchant.getShowName());
-        dto.setLogo(merchantSettings.getLogo());
+        dto.setLogo(merchant.getLogo());
 
         List<OrderGoodsSpec> specs = orderGoodsSpecRepo.findAllByOrderId(orderInfo.getId());
         dto.setOrderGoodsSpecs(specs);

+ 2 - 2
src/main/java/com/izouma/dingdong/web/OrderInfoController.java

@@ -76,8 +76,8 @@ public class OrderInfoController extends BaseController {
 
     @GetMapping("/my")
     @ApiOperation("个人订单")
-    public Page<OrderDTO> my(PageQuery pageQuery) {
-        List<OrderDTO> collect = orderInfoService.my(SecurityUtils.getAuthenticatedUser().getId()).stream().map(orderInfoService::toDTO).collect(Collectors.toList());
+    public Page<OrderInfo> my(PageQuery pageQuery) {
+        List<OrderInfo> collect = orderInfoService.my(SecurityUtils.getAuthenticatedUser().getId());
         return new PageImpl<>(collect, toPageRequest(pageQuery), pageQuery.getSize());
     }
 

+ 1 - 1
src/main/vue/src/views/OrderInfoList.vue

@@ -23,7 +23,7 @@
             </el-table-column>
             <el-table-column prop="id" label="ID" width="100">
             </el-table-column>
-            <el-table-column prop="userId" label="用户"
+            <el-table-column prop="user.nickname" label="用户"
             >
             </el-table-column>
             <el-table-column prop="userAddress" label="配送地址"