xiongzhu 4 gadi atpakaļ
vecāks
revīzija
bb80c32286

+ 3 - 0
src/main/java/com/izouma/nineth/domain/Order.java

@@ -145,4 +145,7 @@ public class Order extends BaseEntity {
     private boolean hide;
 
     private Long couponId;
+
+    private Long invitor;
+
 }

+ 5 - 0
src/main/java/com/izouma/nineth/domain/User.java

@@ -22,6 +22,7 @@ import javax.persistence.*;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -106,4 +107,8 @@ public class User extends BaseEntity implements Serializable {
     private String tradeCode;
 
     private boolean admin;
+
+    @ApiModelProperty("分成比例")
+    @Column(precision = 10, scale = 2)
+    private BigDecimal shareRatio;
 }

+ 2 - 1
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -68,7 +68,7 @@ public class OrderService {
     }
 
     @Transactional
-    public Order create(Long userId, Long collectionId, int qty, Long addressId, Long userCouponId) {
+    public Order create(Long userId, Long collectionId, int qty, Long addressId, Long userCouponId, Long invitor) {
         if (qty <= 0) throw new BusinessException("数量必须大于0");
         User user = userRepo.findByIdAndDelFalse(userId).orElseThrow(new BusinessException("用户不存在"));
         Collection collection = collectionRepo.findById(collectionId).orElseThrow(new BusinessException("藏品不存在"));
@@ -135,6 +135,7 @@ public class OrderService {
                 .status(OrderStatus.NOT_PAID)
                 .assetId(collection.getAssetId())
                 .couponId(userCouponId)
+                .invitor(invitor)
                 .build();
         if (coupon != null) {
             coupon.setUsed(true);

+ 2 - 0
src/main/java/com/izouma/nineth/service/UserService.java

@@ -59,6 +59,7 @@ public class UserService {
     private FollowService    followService;
     private FollowRepo       followRepo;
     private IdentityAuthRepo identityAuthRepo;
+    private SysConfigService sysConfigService;
 
     @CacheEvict(value = "user", key = "#user.username")
     public User update(User user) {
@@ -102,6 +103,7 @@ public class UserService {
         }
         User user = new User();
         BeanUtils.copyProperties(userRegister, user);
+        user.setShareRatio(sysConfigService.getBigDecimal("share_ratio"));
         user.setAuthStatus(AuthStatus.NOT_AUTH);
         if (StringUtils.isNotBlank(userRegister.getPassword())) {
             user.setPassword(new BCryptPasswordEncoder().encode(userRegister.getPassword()));

+ 5 - 2
src/main/java/com/izouma/nineth/web/OrderController.java

@@ -73,9 +73,12 @@ public class OrderController extends BaseController {
     }
 
     @PostMapping("/create")
-    public Order create(@RequestParam Long collectionId, @RequestParam int qty, @RequestParam(required = false) Long addressId, @RequestParam(required = false) Long couponId) {
+    public Order create(@RequestParam Long collectionId, @RequestParam int qty,
+                        @RequestParam(required = false) Long addressId,
+                        @RequestParam(required = false) Long couponId,
+                        @RequestParam(required = false) Long invitor) {
         return orderService.create(SecurityUtils.getAuthenticatedUser().getId(),
-                collectionId, qty, addressId, couponId);
+                collectionId, qty, addressId, couponId, invitor);
     }
 
     @PostMapping("/hide")

+ 4 - 1
src/main/vue/src/views/UserEdit.vue

@@ -17,7 +17,7 @@
                     :model="formData"
                     :rules="rules"
                     ref="form"
-                    label-width="80px"
+                    label-width="90px"
                     label-position="right"
                     style="max-width: 500px"
                 >
@@ -54,6 +54,9 @@
                             </el-option>
                         </el-select>
                     </el-form-item>
+                    <el-form-item prop="shareRatio" label="分成比例(%)">
+                        <el-input-number :min="0" :max="99" v-model="formData.shareRatio"></el-input-number>
+                    </el-form-item>
                     <el-form-item>
                         <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
                         <el-button @click="del" :disabled="saving" type="danger" v-if="formData.id && formData.id !== 1"

+ 1 - 1
src/test/java/com/izouma/nineth/service/OrderServiceTest.java

@@ -14,7 +14,7 @@ public class OrderServiceTest extends ApplicationTests {
 
     @Test
     public void create() throws EncoderException, WxPayException {
-        Order order = orderService.create(1110L, 1777L, 1, null, 1896L);
+        Order order = orderService.create(1110L, 1777L, 1, null, 1896L, null);
         assert order.getStatus() == OrderStatus.FINISH;
     }