zhangwei 2 anni fa
parent
commit
7961268a83

+ 32 - 0
src/main/java/com/winhc/repal/controller/RepalVipController.java

@@ -0,0 +1,32 @@
+package com.winhc.repal.controller;
+
+import com.winhc.common.base.BeanResponse;
+import com.winhc.common.enums.CodeMsg;
+import com.winhc.repal.entity.RepalVip;
+import com.winhc.repal.model.vo.RepalVipVO;
+import com.winhc.repal.service.RepalVipService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Aaron
+ * @date 2022/6/7 15:54
+ * @description
+ */
+@Api(tags = "账号套餐信息")
+@RestController
+@RequestMapping(value = "/repalVip")
+public class RepalVipController {
+    @Autowired
+    private RepalVipService repalVipService;
+
+    @ApiOperation("查询当前账号所属组织的套餐信息")
+    @GetMapping
+    public BeanResponse<RepalVipVO> queryRepalVip(){
+        return BeanResponse.success(CodeMsg.SUCCESS,repalVipService.queryRepalVip());
+    }
+}

+ 19 - 0
src/main/java/com/winhc/repal/enums/RepalVipEnum.java

@@ -0,0 +1,19 @@
+package com.winhc.repal.enums;
+
+/**
+ * @author Aaron
+ * @date 2022/6/7 16:01
+ * @description
+ */
+public enum RepalVipEnum {
+    普通("normal"),标准("standard"),高级("premium");
+    private String code;
+
+    RepalVipEnum(String code) {
+        this.code = code;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}

+ 3 - 0
src/main/java/com/winhc/repal/model/dto/ReturnedBillDTO.java

@@ -28,4 +28,7 @@ public class ReturnedBillDTO extends PageRequest {
     @ApiModelProperty(value = "账本id", required = true)
     private Long repalBookId;
 
+    @ApiModelProperty("排序类型。1日期升序。2日期降序。3总金额升序。4总金额降序")
+    private Integer sortedType;
+
 }

+ 7 - 0
src/main/java/com/winhc/repal/service/RepalVipService.java

@@ -3,6 +3,7 @@ package com.winhc.repal.service;
 import com.winhc.repal.entity.RepalVip;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.winhc.repal.model.dto.ReplyDTO;
+import com.winhc.repal.model.vo.RepalVipVO;
 
 
 /**
@@ -12,4 +13,10 @@ import com.winhc.repal.model.dto.ReplyDTO;
  */
 public interface RepalVipService extends IService<RepalVip> {
     Boolean reply(ReplyDTO dto);
+
+    /**
+     * 查询当前账号所属组织的vip信息
+     * @return
+     */
+    RepalVipVO queryRepalVip();
 }

+ 10 - 0
src/main/java/com/winhc/repal/service/impl/RepalGroupServiceImpl.java

@@ -10,6 +10,8 @@ import com.winhc.common.model.base.VOPage;
 import com.winhc.repal.constant.Constant;
 import com.winhc.repal.entity.*;
 import com.winhc.repal.enums.DeletedStatusEnum;
+import com.winhc.repal.enums.RepalVipEnum;
+import com.winhc.repal.enums.RepalVipSignEnum;
 import com.winhc.repal.enums.RoleTypeEnum;
 import com.winhc.repal.model.bo.UserContextBO;
 import com.winhc.repal.model.dto.InitGroupDTO;
@@ -105,6 +107,14 @@ public class RepalGroupServiceImpl extends ServiceImpl<RepalGroupMapper, RepalGr
             repalBook.setRepalBookName(dto.getGroupName());
             repalBook.setUserId(dto.getUserId());
             repalBookService.save(repalBook);
+            //初始化 vip为普通版
+            RepalVip repalVip = new RepalVip();
+            repalVip.setRepalGroupId(repalGroup.getId());
+            repalVip.setRepalVipSign(RepalVipSignEnum.无特权.getCode());
+            repalVip.setCurrentOrder(RepalVipEnum.普通.getCode());
+            repalVip.setSmsRemainCount(5);
+            repalVip.setSmsTotalCount(5);
+            repalVipService.save(repalVip);
         } else {
             // 直接添加到管理员
             repalGroupMemberService.addGroupMember(dto.getUserId(), userExt.getUserName(), repalGroup.getId(), 1L, RoleTypeEnum.SYSTEM.getCode());

+ 24 - 0
src/main/java/com/winhc/repal/service/impl/RepalVipServiceImpl.java

@@ -8,14 +8,17 @@ import com.winhc.repal.entity.RepalGroupMember;
 import com.winhc.repal.entity.RepalVip;
 import com.winhc.repal.enums.Dict;
 import com.winhc.repal.enums.RepalDynamicTypeEnum;
+import com.winhc.repal.enums.RepalVipEnum;
 import com.winhc.repal.enums.RepalVipSignEnum;
 import com.winhc.repal.model.bo.UserContextBO;
 import com.winhc.repal.model.dto.ReplyDTO;
+import com.winhc.repal.model.vo.RepalVipVO;
 import com.winhc.repal.repository.RepalVipMapper;
 import com.winhc.repal.service.RepalGroupMemberService;
 import com.winhc.repal.service.RepalVipService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.winhc.repal.util.UserContextUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -53,4 +56,25 @@ public class RepalVipServiceImpl extends ServiceImpl<RepalVipMapper, RepalVip> i
 
         return count > 0;
     }
+
+    @Override
+    public RepalVipVO queryRepalVip() {
+        UserContextBO userContextBO = UserContextUtil.getUser();
+        //用户->组织
+        RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
+                .eq(RepalGroupMember::getUserId,userContextBO.getUserId())
+                .eq(RepalGroupMember::getDeleted, Dict.DeletedStatusEnunm.否.getCode()),false);
+        if(repalGroupMember == null){
+            throw new CommonException(CodeMsg.FAILED,"组织不存在");
+        }
+        //查找vip记录
+        RepalVip repalVip = getOne(Wrappers.lambdaQuery(RepalVip.class).eq(RepalVip::getRepalGroupId,repalGroupMember.getRepalGroupId()),false);
+        RepalVipVO result = new RepalVipVO();
+        if(repalVip != null) {
+            BeanUtils.copyProperties(repalVip, result);
+        }else {
+            result.setCurrentOrder(RepalVipEnum.普通.getCode());
+        }
+        return result;
+    }
 }

+ 17 - 1
src/main/resources/mapper/RepalChangeRecordMapper.xml

@@ -44,7 +44,23 @@
         <if test="param2.keyword != null and param2.keyword != ''">
             AND bill.CUSTOMER_NAME LIKE concat('%', #{param2.keyword}, '%')
         </if>
-        ORDER BY recordDate DESC, record.ID DESC
+        <if test="param2.sortedType != null">
+            <if test="param2.sortedType == 1">
+                ORDER BY recordDate, record.ID
+            </if>
+            <if test="param2.sortedType == 2">
+                ORDER BY recordDate DESC, record.ID DESC
+            </if>
+            <if test="param2.sortedType == 3">
+                ORDER BY money, record.ID
+            </if>
+            <if test="param2.sortedType == 4">
+                ORDER BY money DESC, record.ID DESC
+            </if>
+        </if>
+        <if test="param2.sortedType == null">
+            ORDER BY recordDate DESC, record.ID DESC
+        </if>
     </select>
 
 </mapper>