licailing 3 years ago
parent
commit
4d159d0dfa

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

@@ -122,4 +122,10 @@ public class User extends BaseEntity implements Serializable {
     private String invitorPhone;
 
     private String inviteCode;
+
+    @ApiModelProperty("分享藏品邀请者")
+    private Long collectionInvitor;
+
+    @ApiModelProperty("藏品Id")
+    private Long collectionId;
 }

+ 7 - 0
src/main/java/com/izouma/nineth/dto/UserRegister.java

@@ -3,6 +3,7 @@ package com.izouma.nineth.dto;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.izouma.nineth.security.Authority;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -42,4 +43,10 @@ public class UserRegister {
     private String invitorPhone;
 
     private String inviteCode;
+
+    @ApiModelProperty("分享藏品邀请者")
+    private Long collectionInvitor;
+
+    @ApiModelProperty("藏品Id")
+    private Long collectionId;
 }

+ 2 - 0
src/main/java/com/izouma/nineth/repo/UserRepo.java

@@ -173,4 +173,6 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
 
     //每日普通用户新增
     long countAllByCreatedAtAfterAndAuthoritiesContainsAndDelFalse(LocalDateTime createdAt, Authority authority);
+
+    List<User> findAllByCollectionIdAndCollectionInvitor(Long collectionId, Long collectionInvitor);
 }

+ 15 - 15
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -60,21 +60,21 @@ public class CollectionService {
 
     private final Map<Long, ScheduledFuture<?>> tasks = new HashMap<>();
 
-    @PostConstruct
-    public void init() {
-        List<Collection> collections = collectionRepo.findByScheduleSaleTrueAndOnShelfFalseAndStartTimeBeforeAndDelFalse(LocalDateTime.now());
-        for (Collection collection : collections) {
-            onShelfTask(collection);
-        }
-        for (CollectionStockAndSale collection : collectionRepo.getStockAndSale()) {
-            if (redisTemplate.opsForValue().get("collectionStock::" + collection.getId()) == null) {
-                redisTemplate.opsForValue().set("collectionStock::" + collection.getId(), collection.getStock());
-            }
-            if (redisTemplate.opsForValue().get("collectionSale::" + collection.getId()) == null) {
-                redisTemplate.opsForValue().set("collectionSale::" + collection.getId(), collection.getSale());
-            }
-        }
-    }
+//    @PostConstruct
+//    public void init() {
+//        List<Collection> collections = collectionRepo.findByScheduleSaleTrueAndOnShelfFalseAndStartTimeBeforeAndDelFalse(LocalDateTime.now());
+//        for (Collection collection : collections) {
+//            onShelfTask(collection);
+//        }
+//        for (CollectionStockAndSale collection : collectionRepo.getStockAndSale()) {
+//            if (redisTemplate.opsForValue().get("collectionStock::" + collection.getId()) == null) {
+//                redisTemplate.opsForValue().set("collectionStock::" + collection.getId(), collection.getStock());
+//            }
+//            if (redisTemplate.opsForValue().get("collectionSale::" + collection.getId()) == null) {
+//                redisTemplate.opsForValue().set("collectionSale::" + collection.getId(), collection.getSale());
+//            }
+//        }
+//    }
 
     public Page<Collection> all(PageQuery pageQuery) {
         pageQuery.getQuery().put("del", false);

+ 4 - 3
src/main/java/com/izouma/nineth/service/MintOrderService.java

@@ -138,7 +138,7 @@ public class MintOrderService {
      * @param addressId      地址
      */
     @Transactional
-    public Long create(User user, List<Long> assetId, Long mintActivityId, Long addressId) {
+    public MintOrder create(User user, List<Long> assetId, Long mintActivityId, Long addressId) {
         // 参加的活动
         MintActivity mintActivity = mintActivityRepo.findByIdAndDelFalse(mintActivityId)
                 .orElseThrow(new BusinessException("无此铸造活动"));
@@ -230,7 +230,7 @@ public class MintOrderService {
         }
 
         // 铸造订单
-        mintOrderRepo.save(MintOrder.builder()
+        MintOrder mintOrder = mintOrderRepo.save(MintOrder.builder()
                 .userId(user.getId())
                 .phone(user.getPhone())
                 .material(materials)
@@ -248,7 +248,8 @@ public class MintOrderService {
 
         //库存
         mintActivity.setStock(mintActivity.getStock() - 1);
-        return mintActivityRepo.save(mintActivity).getId();
+        mintActivityRepo.save(mintActivity);
+        return mintOrder;
     }
 
     public Object payOrderWeixin(Long id, String tradeType, String openId) throws WxPayException, EncoderException {

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

@@ -31,7 +31,6 @@ import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
-import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -66,7 +65,6 @@ public class UserService {
     private FollowRepo         followRepo;
     private IdentityAuthRepo   identityAuthRepo;
     private SysConfigService   sysConfigService;
-    private CollectionService  collectionService;
     private AdapayService      adapayService;
     private UserBankCardRepo   userBankCardRepo;
     private InviteRepo         inviteRepo;
@@ -142,7 +140,7 @@ public class UserService {
         });
     }
 
-    public User phoneRegister(String phone, String code, String password, String inviteCode) {
+    public User phoneRegister(String phone, String code, String password, String inviteCode, Long invitor, Long collectionId) {
         String name = "9th_" + RandomStringUtils.randomAlphabetic(8);
         Invite invite = null;
         if (StringUtils.isNotBlank(inviteCode)) {
@@ -159,6 +157,8 @@ public class UserService {
                 .invitorPhone(Optional.ofNullable(invite).map(Invite::getPhone).orElse(null))
                 .invitorName(Optional.ofNullable(invite).map(Invite::getName).orElse(null))
                 .inviteCode(Optional.ofNullable(invite).map(Invite::getCode).orElse(null))
+                .collectionInvitor(invitor)
+                .collectionId(collectionId)
                 .build());
         if (invite != null) {
             inviteRepo.increaseNum(invite.getId());

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

@@ -64,8 +64,8 @@ public class AuthenticationController {
 
     @PostMapping("/phoneRegister")
     @ApiOperation(value = "手机号密码注册")
-    public String phonePwdLogin(String phone, String code, String password, String inviteCode) {
-        User user = userService.phoneRegister(phone, code, password, inviteCode);
+    public String phonePwdLogin(String phone, String code, String password, String inviteCode, Long invitor, Long collectionId) {
+        User user = userService.phoneRegister(phone, code, password, inviteCode, invitor, collectionId);
         return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
     }
 

+ 1 - 1
src/main/java/com/izouma/nineth/web/MintOrderController.java

@@ -83,7 +83,7 @@ public class MintOrderController extends BaseController {
     }
 
     @PostMapping("/create")
-    public Long create(@RequestParam String assets, @RequestParam Long mintActivityId, Long addressId) {
+    public MintOrder create(@RequestParam String assets, @RequestParam Long mintActivityId, Long addressId) {
         LongArrayConverter lc = new LongArrayConverter();
         List<Long> assetIds = lc.convertToEntityAttribute(assets);
         return mintOrderService.create(SecurityUtils.getAuthenticatedUser(), assetIds, mintActivityId, addressId);

+ 6 - 0
src/main/java/com/izouma/nineth/web/UserController.java

@@ -256,6 +256,12 @@ public class UserController extends BaseController {
     public Map<String, Object> invite(@RequestBody PageQuery pageQuery) {
         return userService.invite(pageQuery);
     }
+
+    @GetMapping("/collectionInvite")
+    public List<User> collectionInvite(@RequestParam Long collectionId) {
+        return userRepo.findAllByCollectionIdAndCollectionInvitor(collectionId, SecurityUtils.getAuthenticatedUser()
+                .getId());
+    }
 }
 
 

+ 50 - 32
src/main/vue/src/views/MintOrderEdit.vue

@@ -16,11 +16,14 @@
                     size="small"
                     style="max-width: 550px"
                 >
-                    <el-form-item prop="userId" label="用户ID">
-                        <el-input-number type="number" v-model="formData.userId" disabled></el-input-number>
+                    <el-form-item prop="id" label="订单ID">
+                        <el-input-number type="number" v-model="formData.id" disabled></el-input-number>
                     </el-form-item>
-                    <el-form-item prop="phone" label="手机号">
-                        <el-input v-model="formData.phone" disabled style="width: 180px"></el-input>
+                    <el-form-item prop="userId" label="用户信息">
+                        <el-input-number type="number" v-model="formData.userId" disabled></el-input-number>
+                    <!-- </el-form-item>
+                    <el-form-item prop="phone" label="手机号"> -->
+                        <el-input v-model="formData.phone" disabled style="margin-left:6px; width: 180px"></el-input>
                     </el-form-item>
                     <el-form-item prop="mintActivity" label="铸造活动">
                         <el-input v-model="formData.mintActivity" disabled></el-input>
@@ -42,14 +45,50 @@
                         </el-radio-group>
                     </el-form-item>
                     <el-form-item prop="gasPrice" label="gas费">
-                        <el-input-number type="number" v-model="formData.gasPrice"></el-input-number>
+                        <el-input-number type="number" v-model="formData.gasPrice" disabled></el-input-number>
                     </el-form-item>
+                    <div v-if="formData.status != 'CANCELLED' && formData.status != 'NOT_PAID'">
+                        <el-form-item prop="transactionId" label="交易订单号">
+                            <el-input v-model="formData.transactionId" disabled></el-input>
+                        </el-form-item>
+                        <el-form-item prop="payMethod" label="支付信息">
+                            <el-select
+                                v-model="formData.payMethod"
+                                clearable
+                                filterable
+                                placeholder="支付方式"
+                                disabled
+                            >
+                                <el-option
+                                    v-for="item in payMethodOptions"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                >
+                                </el-option>
+                            </el-select>
+                            <el-date-picker
+                                v-model="formData.payAt"
+                                type="datetime"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="支付时间"
+                                style="margin-left: 6px"
+                                disabled
+                            >
+                            </el-date-picker>
+                        </el-form-item>
+                    </div>
                     <el-form-item label="收货信息">
                         <el-input v-model="formData.contactName" style="width: 180px; margin-right: 6px"></el-input>
                         <el-input v-model="formData.contactPhone" style="width: 240px"></el-input>
-                        <el-input v-model="formData.address" style="margin-top: 6px"></el-input>
+                        <el-input
+                            type="textarea"
+                            size="2"
+                            v-model="formData.address"
+                            style="margin-top: 6px"
+                        ></el-input>
                     </el-form-item>
-                    <el-form-item prop="cancelTime" label="取消时间">
+                    <el-form-item prop="cancelTime" label="取消时间" v-if="formData.status == 'CANCELLED'">
                         <el-date-picker
                             v-model="formData.cancelTime"
                             type="datetime"
@@ -58,35 +97,14 @@
                         >
                         </el-date-picker>
                     </el-form-item>
-                    <el-form-item prop="payMethod" label="支付方式">
-                        <el-select v-model="formData.payMethod" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in payMethodOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    <!-- </el-form-item>
-                    <el-form-item prop="payAt" label="支付时间"> -->
-                        <el-date-picker
-                            v-model="formData.payAt"
-                            type="datetime"
-                            value-format="yyyy-MM-dd HH:mm:ss"
-                            placeholder="选择日期时间"
-                            style="margin-left: 6px"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-
                     <el-form-item prop="status" label="状态">
-                        <el-select v-model="formData.status" clearable filterable placeholder="请选择">
+                        <el-select v-model="formData.status" clearable filterable placeholder="请选择状态">
                             <el-option
                                 v-for="item in statusOptions"
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value"
+                                :disabled="item.disabled"
                             >
                             </el-option>
                         </el-select>
@@ -145,12 +163,12 @@ export default {
                 ]
             },
             statusOptions: [
-                { label: '未支付', value: 'NOT_PAID' },
+                { label: '未支付', value: 'NOT_PAID', disabled: true },
                 { label: '待发货', value: 'DELIVERY' },
                 { label: '待收货', value: 'RECEIVE' },
                 { label: '待空投', value: 'AIR_DROP' },
                 { label: '已完成', value: 'FINISH' },
-                { label: '已取消', value: 'CANCELLED' }
+                { label: '已取消', value: 'CANCELLED', disabled: true }
             ],
             payMethodOptions: [
                 { label: '微信', value: 'WEIXIN' },