licailing 4 سال پیش
والد
کامیت
2e0e155a9a

+ 1 - 0
src/main/java/com/izouma/jiashanxia/domain/UserCoupon.java

@@ -34,4 +34,5 @@ public class UserCoupon extends BaseEntity {
     @ApiModelProperty(value = "有效期")
     private LocalDateTime period;
 
+
 }

+ 1 - 0
src/main/java/com/izouma/jiashanxia/domain/WxFee.java

@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Where;
 
 import javax.persistence.Entity;
 import java.math.BigDecimal;

+ 50 - 0
src/main/java/com/izouma/jiashanxia/dto/UserCouponDTO.java

@@ -0,0 +1,50 @@
+package com.izouma.jiashanxia.dto;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.izouma.jiashanxia.domain.BaseEntity;
+import com.izouma.jiashanxia.domain.UserCoupon;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@ApiModel("用户优惠券")
+public class UserCouponDTO {
+    private Long id;
+
+    private Long userId;
+
+    private String username;
+
+    private Long couponId;
+
+    private String couponName;
+
+    @ApiModelProperty(value = "是否已使用")
+    private boolean isUse;
+
+    private LocalDateTime useTime;
+
+    @ApiModelProperty(value = "核销人")
+    private Long writeOffUserId;
+
+    private String writeOffUsername;
+
+    @ApiModelProperty(value = "有效期")
+    private LocalDateTime period;
+
+    public UserCouponDTO(UserCoupon userCoupon, String username, String writeOffUsername, String couponName) {
+        BeanUtil.copyProperties(userCoupon, this);
+        this.username = username;
+        this.couponName = couponName;
+        this.writeOffUsername = writeOffUsername;
+    }
+}

+ 1 - 1
src/main/java/com/izouma/jiashanxia/repo/WxFeeRepo.java

@@ -12,7 +12,7 @@ import java.util.Optional;
 
 public interface WxFeeRepo extends JpaRepository<WxFee, String>, JpaSpecificationExecutor<WxFee> {
 
-    @Query(nativeQuery = true, value = "SELECT SUM(amount) FROM wx_fee WHERE is_refund=false")
+    @Query(nativeQuery = true, value = "SELECT SUM(amount) FROM wx_fee WHERE action=0 and del = 0")
     BigDecimal sumByAmount();
 
     List<WxFee> findAllByCreatedAtBetween(LocalDateTime createdAt, LocalDateTime createdAt2);

+ 22 - 1
src/main/java/com/izouma/jiashanxia/service/UserCouponService.java

@@ -5,6 +5,7 @@ import com.izouma.jiashanxia.domain.Coupon;
 import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.domain.UserCoupon;
 import com.izouma.jiashanxia.dto.PageQuery;
+import com.izouma.jiashanxia.dto.UserCouponDTO;
 import com.izouma.jiashanxia.exception.BusinessException;
 import com.izouma.jiashanxia.repo.CouponRepo;
 import com.izouma.jiashanxia.repo.UserCouponRepo;
@@ -13,8 +14,13 @@ import com.izouma.jiashanxia.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
@@ -28,6 +34,21 @@ public class UserCouponService {
         return userCouponRepo.findAll(JpaUtils.toSpecification(pageQuery, UserCoupon.class), JpaUtils.toPageRequest(pageQuery));
     }
 
+    public Page<UserCouponDTO> backAll(@RequestBody PageQuery pageQuery) {
+        Map<Long, String> couponName = couponRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(Coupon::getId, Coupon::getName));
+        Page<UserCoupon> all = this.all(pageQuery);
+        List<UserCoupon> list = all.getContent();
+        Set<Long> ids = list.stream().map(UserCoupon::getUserId).collect(Collectors.toSet());
+        ids.addAll(list.stream().map(UserCoupon::getWriteOffUserId).collect(Collectors.toSet()));
+        Map<Long, String> userMap = userRepo.findAllById(ids)
+                .stream()
+                .collect(Collectors.toMap(User::getId, User::getNickname));
+        return all.map(userCoupon -> new UserCouponDTO(userCoupon, userMap.get(userCoupon.getUserId()), userMap.get(userCoupon
+                .getWriteOffUserId()), couponName.get(userCoupon.getCouponId())));
+    }
+
     /*
     获得优惠券
      */
@@ -53,7 +74,7 @@ public class UserCouponService {
         }
 
         LocalDateTime now = LocalDateTime.now();
-        if (now.isBefore(userCoupon.getPeriod())) {
+        if (now.isAfter(userCoupon.getPeriod())) {
             throw new BusinessException("已过期");
         }
 

+ 18 - 2
src/main/java/com/izouma/jiashanxia/web/UserCouponController.java

@@ -1,6 +1,11 @@
 package com.izouma.jiashanxia.web;
 
+import com.izouma.jiashanxia.domain.Coupon;
+import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.domain.UserCoupon;
+import com.izouma.jiashanxia.dto.UserCouponDTO;
+import com.izouma.jiashanxia.repo.CouponRepo;
+import com.izouma.jiashanxia.repo.UserRepo;
 import com.izouma.jiashanxia.service.UserCouponService;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.exception.BusinessException;
@@ -17,13 +22,18 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/userCoupon")
 @AllArgsConstructor
 public class UserCouponController extends BaseController {
-    private UserCouponService userCouponService;
-    private UserCouponRepo    userCouponRepo;
+    private final UserCouponService userCouponService;
+    private final UserCouponRepo    userCouponRepo;
+    private final UserRepo          userRepo;
+    private final CouponRepo        couponRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -43,6 +53,12 @@ public class UserCouponController extends BaseController {
         return userCouponService.all(pageQuery);
     }
 
+    @PostMapping("/backAll")
+    public Page<UserCouponDTO> backAll(@RequestBody PageQuery pageQuery) {
+        return userCouponService.backAll(pageQuery);
+    }
+
+
     @GetMapping("/get/{id}")
     public UserCoupon get(@PathVariable Long id) {
         return userCouponRepo.findById(id).orElseThrow(new BusinessException("无记录"));

+ 8 - 2
src/main/vue/src/views/UserCouponList.vue

@@ -27,7 +27,7 @@
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="userId" label="用户id"> </el-table-column>
             <el-table-column prop="couponId" label="优惠券id"> </el-table-column>
-            <el-table-column prop="isUse" label="是否已使用"> </el-table-column>
+            <!-- <el-table-column prop="isUse" label="是否已使用"> </el-table-column> -->
             <el-table-column prop="useTime" label="使用时间"> </el-table-column>
             <el-table-column prop="writeOffUserId" label="核销人"> </el-table-column>
             <el-table-column prop="period" label="有效期"> </el-table-column>
@@ -83,7 +83,13 @@ export default {
     },
     methods: {
         beforeGetData() {
-            return { search: this.search };
+            return {
+                sort: 'createdAt,desc',
+                search: this.search,
+                query: {
+                    isUse: true
+                }
+            };
         },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;

+ 5 - 0
src/test/java/com/izouma/jiashanxia/service/UserCouponServiceTest.java

@@ -14,4 +14,9 @@ public class UserCouponServiceTest extends ApplicationTests {
     public void getCoupon() {
         userCouponService.getCoupon(916L,1124L);
     }
+
+    @Test
+    public void writeOff(){
+        userCouponService.writeOff(1142L,2L);
+    }
 }