Browse Source

feat:订单次数回复

zhangwei 2 years ago
parent
commit
7b13289ef4

+ 10 - 0
src/main/java/com/winhc/repal/controller/RepalManageController.java

@@ -12,11 +12,13 @@ import com.winhc.repal.model.vo.RepalManageBillPageVO;
 import com.winhc.repal.model.vo.RepalSmsTemplateVO;
 import com.winhc.repal.service.RepalBillService;
 import com.winhc.repal.service.RepalDynamicService;
+import com.winhc.repal.service.RepalVipService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
 
@@ -34,6 +36,8 @@ public class RepalManageController {
     private RepalBillService repalBillService;
     @Autowired
     private RepalDynamicService repalDynamicService;
+    @Autowired
+    private RepalVipService repalVipService;
 
     @ApiOperation("汇总")
     @GetMapping("/summary")
@@ -94,4 +98,10 @@ public class RepalManageController {
     public BeanResponse<Boolean> urgeByLawsuit(@RequestBody RepalLawDTO dto){
         return BeanResponse.success(CodeMsg.SUCCESS,repalDynamicService.urgeByLawsuit(dto));
     }
+
+    @ApiIgnore("取消订单后回复次数")
+    @PostMapping("/reply")
+    public BeanResponse<Boolean> reply(@RequestBody ReplyDTO dto){
+        return BeanResponse.success(CodeMsg.SUCCESS,repalVipService.reply(dto));
+    }
 }

+ 15 - 0
src/main/java/com/winhc/repal/model/dto/ReplyDTO.java

@@ -0,0 +1,15 @@
+package com.winhc.repal.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author Aaron
+ * @date 2022/6/7 9:24
+ * @description
+ */
+@Data
+@ApiModel("回复请求体")
+public class ReplyDTO {
+    private Integer code;
+}

+ 2 - 0
src/main/java/com/winhc/repal/repository/RepalVipMapper.java

@@ -13,4 +13,6 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface RepalVipMapper extends BaseMapper<RepalVip> {
     int updateSomeCount(@Param("id")Long id,@Param("code")Integer code);
+
+    int replySomeCount(@Param("id")Long id,@Param("code")Integer code);
 }

+ 2 - 1
src/main/java/com/winhc/repal/service/RepalVipService.java

@@ -2,6 +2,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;
 
 
 /**
@@ -10,5 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @date 2022-05-07
  */
 public interface RepalVipService extends IService<RepalVip> {
-
+    Boolean reply(ReplyDTO dto);
 }

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

@@ -1,9 +1,22 @@
 package com.winhc.repal.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.winhc.common.enums.CodeMsg;
+import com.winhc.common.exception.CommonException;
+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.RepalVipSignEnum;
+import com.winhc.repal.model.bo.UserContextBO;
+import com.winhc.repal.model.dto.ReplyDTO;
 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.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -13,6 +26,31 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class RepalVipServiceImpl extends ServiceImpl<RepalVipMapper, RepalVip> implements RepalVipService {
+    @Autowired
+    private RepalGroupMemberService repalGroupMemberService;
+    @Autowired
+    private RepalVipMapper repalVipMapper;
 
+    @Override
+    public Boolean reply(ReplyDTO dto) {
+        if(dto.getCode() == null){
+            throw new CommonException(CodeMsg.VALIDATE_PARAMETER,"参数有误");
+        }
+        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);
+        if(ObjectUtil.isNull(repalVip) || RepalVipSignEnum.无特权.getCode().equals(repalVip.getRepalVipSign())){
+            throw new CommonException(CodeMsg.FAILED,"特权过期或无特权,回复失败");
+        }
+        int count = repalVipMapper.replySomeCount(repalVip.getId(),dto.getCode());
 
+        return count > 0;
+    }
 }

+ 13 - 0
src/main/resources/mapper/RepalVipMapper.xml

@@ -18,4 +18,17 @@
         </if>
         AND ID = #{id}
     </update>
+    <update id="replySomeCount">
+        update REPAL_VIP SET
+        <if test="code == 2">
+            LETTER_REMAIN_COUNT = LETTER_REMAIN_COUNT+1
+        </if>
+        <if test="code == 3">
+            CONSULT_REMAIN_COUNT = CONSULT_REMAIN_COUNT+1
+        </if>
+        <if test="code == 4">
+            LAWSUIT_REMAIN_COUNT = LAWSUIT_REMAIN_COUNT+1
+        </if>
+        WHERE ID = #{id}
+    </update>
 </mapper>