Sfoglia il codice sorgente

首页新增担保确认弹窗接口

mac 2 anni fa
parent
commit
666c920c68

+ 38 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/dto/kxsapp/storeCredit/StoreCreditStatusDTO.java

@@ -0,0 +1,38 @@
+package com.kxs.store.api.dto.kxsapp.storeCredit;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 担保弹窗列表 VO
+ *
+ * @author 没秃顶的码农
+ * @date 2024-06-25
+ */
+@Data
+public class StoreCreditStatusDTO {
+
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @NotNull(message = "ID不能为空")
+    private Integer id;
+
+
+    /**
+     * 状态 1确认 2拒绝
+     */
+    @Schema(description = "状态 1确认 2拒绝")
+    @NotNull(message = "状态不能为空")
+    private Integer status;
+
+}

+ 2 - 2
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsWarehouseCreditAmount.java

@@ -96,14 +96,14 @@ public class KxsWarehouseCreditAmount extends Model<KxsWarehouseCreditAmount> im
      * 被担保人姓名
      * 被担保人姓名
      */
      */
     @Schema(description = "被担保人姓名")
     @Schema(description = "被担保人姓名")
-    private Object username;
+    private String username;
 
 
 
 
     /**
     /**
      * 被担保人编号
      * 被担保人编号
      */
      */
     @Schema(description = "被担保人编号")
     @Schema(description = "被担保人编号")
-    private Object userCode;
+    private String userCode;
 
 
     /**
     /**
      * 操作人
      * 操作人

+ 53 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeCredit/StoreCreditListVO.java

@@ -0,0 +1,53 @@
+package com.kxs.store.api.vo.kxsapp.storeCredit;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 担保弹窗列表 VO
+ *
+ * @author 没秃顶的码农
+ * @date 2024-06-25
+ */
+@Data
+public class StoreCreditListVO {
+
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 担保金额
+     */
+    @Schema(description = "担保金额")
+    private BigDecimal creditAmount;
+
+
+    /**
+     * 被担保人姓名
+     */
+    @Schema(description = "被担保人姓名")
+    private String username;
+
+
+    /**
+     * 被担保人编号
+     */
+    @Schema(description = "被担保人编号")
+    private String userCode;
+
+}

+ 24 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/constant/enums/StoreStatusEnum.java

@@ -0,0 +1,24 @@
+package com.kxs.store.biz.constant.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 兑换券状态
+ *
+ * @author Lxq
+ * @date 2023-10-25
+ */
+@Getter
+@AllArgsConstructor
+public enum StoreStatusEnum {
+
+    C_NEED_CFM(0, "待确认"),
+    C_ON_CFM(1, "已确认"),
+    C_RETURN(2, "已拒绝");
+
+    //状态码
+    private final Integer type;
+    //状态码码描述
+    private final String description;
+}

+ 55 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreCreditController.java

@@ -0,0 +1,55 @@
+package com.kxs.store.biz.controller.kxsapp;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.common.core.util.R;
+import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.store.api.dto.kxsapp.storeCredit.StoreCreditStatusDTO;
+import com.kxs.store.api.model.KxsWarehouseCreditAmount;
+import com.kxs.store.api.vo.kxsapp.store.StoreAdvanceMachineVO;
+import com.kxs.store.biz.constant.enums.StoreStatusEnum;
+import com.kxs.store.biz.service.KxsWarehouseCreditAmountService;
+import lombok.RequiredArgsConstructor;
+import org.springdoc.core.annotations.ParameterObject;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 仓库担保模块控制层
+ *
+ * @author 系统
+ * @since 2024-01-08 10:33:20
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("storeCredit")
+public class StoreCreditController {
+
+    private final KxsWarehouseCreditAmountService storeCreditService;
+
+
+    /**
+     * 弹窗列表
+     *
+     * @return {@link R}
+     */
+    @GetMapping("/list")
+    public R list(){
+
+        return R.ok(storeCreditService.getByList());
+    }
+
+    /**
+     * 确认担保
+     *
+     * @param param 参数
+     * @return {@link R}
+     */
+    @PostMapping("/changeStatus")
+    public R changeStatus(@RequestBody StoreCreditStatusDTO param){
+
+        return R.ok(storeCreditService.changeStatus(param));
+    }
+
+}

+ 10 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsWarehouseCreditAmountMapper.java

@@ -2,8 +2,11 @@ package com.kxs.store.biz.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.store.api.model.KxsWarehouseCreditAmount;
 import com.kxs.store.api.model.KxsWarehouseCreditAmount;
+import com.kxs.store.api.vo.kxsapp.storeCredit.StoreCreditListVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
+import java.util.List;
+
 /**
 /**
  * 客小爽分仓担保明细记录表(KxsWarehousePromiss)表数据库访问层
  * 客小爽分仓担保明细记录表(KxsWarehousePromiss)表数据库访问层
  *
  *
@@ -13,5 +16,12 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface KxsWarehouseCreditAmountMapper extends BaseMapper<KxsWarehouseCreditAmount> {
 public interface KxsWarehouseCreditAmountMapper extends BaseMapper<KxsWarehouseCreditAmount> {
 
 
+    /**
+     * app查询列表
+     *
+     * @param userId 用户 ID
+     * @return {@link List}<{@link StoreCreditListVO}>
+     */
+    List<StoreCreditListVO> selectByList(Long userId);
 }
 }
 
 

+ 19 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsWarehouseCreditAmountService.java

@@ -1,7 +1,11 @@
 package com.kxs.store.biz.service;
 package com.kxs.store.biz.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.store.api.dto.kxsapp.storeCredit.StoreCreditStatusDTO;
 import com.kxs.store.api.model.KxsWarehouseCreditAmount;
 import com.kxs.store.api.model.KxsWarehouseCreditAmount;
+import com.kxs.store.api.vo.kxsapp.storeCredit.StoreCreditListVO;
+
+import java.util.List;
 
 
 /**
 /**
  * 客小爽分仓担保明细记录表(KxsWarehousePromiss)表服务接口
  * 客小爽分仓担保明细记录表(KxsWarehousePromiss)表服务接口
@@ -10,5 +14,20 @@ import com.kxs.store.api.model.KxsWarehouseCreditAmount;
  * @since 2024-01-08 09:46:03
  * @since 2024-01-08 09:46:03
  */
  */
 public interface KxsWarehouseCreditAmountService extends IService<KxsWarehouseCreditAmount> {
 public interface KxsWarehouseCreditAmountService extends IService<KxsWarehouseCreditAmount> {
+
+    /**
+     * 弹窗列表
+     *
+     * @return {@link StoreCreditListVO}
+     */
+    List<StoreCreditListVO> getByList();
+
+    /**
+     * 确认担保
+     *
+     * @param param 参数
+     * @return {@link Boolean}
+     */
+    Boolean changeStatus(StoreCreditStatusDTO param);
 }
 }
 
 

+ 54 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseCreditAmountServiceImpl.java

@@ -1,10 +1,26 @@
 package com.kxs.store.biz.service.impl;
 package com.kxs.store.biz.service.impl;
 
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.constant.enums.ErrorTypeEnum;
+import com.kxs.common.core.exception.GlobalCustomerException;
+import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.store.api.dto.kxsapp.storeCredit.StoreCreditStatusDTO;
 import com.kxs.store.api.model.KxsWarehouseCreditAmount;
 import com.kxs.store.api.model.KxsWarehouseCreditAmount;
+import com.kxs.store.api.model.KxsWarehouseLimit;
+import com.kxs.store.api.vo.kxsapp.storeCredit.StoreCreditListVO;
+import com.kxs.store.biz.constant.enums.StoreStatusEnum;
+import com.kxs.store.biz.constant.enums.WarehouseLimitTypeEnum;
 import com.kxs.store.biz.mapper.KxsWarehouseCreditAmountMapper;
 import com.kxs.store.biz.mapper.KxsWarehouseCreditAmountMapper;
+import com.kxs.store.biz.mapper.KxsWarehouseLimitMapper;
 import com.kxs.store.biz.service.KxsWarehouseCreditAmountService;
 import com.kxs.store.biz.service.KxsWarehouseCreditAmountService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
 
 
 /**
 /**
  * 客小爽分仓担保明细记录表(KxsWarehouseCredit)表服务实现类
  * 客小爽分仓担保明细记录表(KxsWarehouseCredit)表服务实现类
@@ -13,6 +29,44 @@ import org.springframework.stereotype.Service;
  * @since 2024-01-08 09:46:03
  * @since 2024-01-08 09:46:03
  */
  */
 @Service("kxsWarehouseCreditService")
 @Service("kxsWarehouseCreditService")
+@RequiredArgsConstructor
 public class KxsWarehouseCreditAmountServiceImpl extends ServiceImpl<KxsWarehouseCreditAmountMapper, KxsWarehouseCreditAmount> implements KxsWarehouseCreditAmountService {
 public class KxsWarehouseCreditAmountServiceImpl extends ServiceImpl<KxsWarehouseCreditAmountMapper, KxsWarehouseCreditAmount> implements KxsWarehouseCreditAmountService {
+
+    private final KxsWarehouseLimitMapper warehouseLimitMapper;
+
+    @Override
+    public List<StoreCreditListVO> getByList() {
+
+        Long userId = SecurityUtils.getUser().getId();
+
+        return baseMapper.selectByList(userId);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean changeStatus(StoreCreditStatusDTO param) {
+
+        KxsWarehouseCreditAmount creditAmount = getById(param.getId());
+        Optional.ofNullable(creditAmount).orElseThrow(() -> new RuntimeException(ErrorTypeEnum.PARAM_ERROR.getDescription()));
+
+        if(!Objects.equals(creditAmount.getStatus(), StoreStatusEnum.C_NEED_CFM.getType())){
+            throw new GlobalCustomerException("该记录已操作,请勿重复点击");
+        }
+        creditAmount.setStatus(param.getStatus());
+
+        baseMapper.updateById(creditAmount);
+
+        if(Objects.equals(param.getStatus(), StoreStatusEnum.C_ON_CFM.getType())){
+
+            KxsWarehouseLimit warehouseLimit = warehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
+                    .eq(KxsWarehouseLimit::getUserId, creditAmount.getToCreditUserId())
+                    .eq(KxsWarehouseLimit::getWarehouseType, WarehouseLimitTypeEnum.FC.getType()));
+            Optional.ofNullable(warehouseLimit).orElseThrow(() -> new GlobalCustomerException("被担保人分仓不存在"));
+            warehouseLimit.setCreditAmount(warehouseLimit.getCreditAmount().add(creditAmount.getCreditAmount()));
+            warehouseLimitMapper.updateById(warehouseLimit);
+        }
+
+        return Boolean.TRUE;
+    }
 }
 }
 
 

+ 2 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseLimitServiceImpl.java

@@ -20,6 +20,7 @@ import com.kxs.store.api.vo.kxsapp.storeAdvance.AdvanceUserDetailVO;
 import com.kxs.store.api.vo.kxsapp.storeLimit.WarehouseAmountVO;
 import com.kxs.store.api.vo.kxsapp.storeLimit.WarehouseAmountVO;
 import com.kxs.store.api.vo.kxsapp.userAdvance.AdvanceAmountVO;
 import com.kxs.store.api.vo.kxsapp.userAdvance.AdvanceAmountVO;
 import com.kxs.store.biz.constant.enums.StoreErrorTypeEnum;
 import com.kxs.store.biz.constant.enums.StoreErrorTypeEnum;
+import com.kxs.store.biz.constant.enums.StoreStatusEnum;
 import com.kxs.store.biz.constant.enums.WarehouseLimitTypeEnum;
 import com.kxs.store.biz.constant.enums.WarehouseLimitTypeEnum;
 import com.kxs.store.biz.mapper.KxsMachineAdvanceMapper;
 import com.kxs.store.biz.mapper.KxsMachineAdvanceMapper;
 import com.kxs.store.biz.mapper.KxsWarehouseCreditAmountMapper;
 import com.kxs.store.biz.mapper.KxsWarehouseCreditAmountMapper;
@@ -117,6 +118,7 @@ public class KxsWarehouseLimitServiceImpl extends ServiceImpl<KxsWarehouseLimitM
         //统计为他人担保额度
         //统计为他人担保额度
         KxsWarehouseCreditAmount creditUserAmount = kxsWarehouseCreditAmountMapper.selectOne(Wrappers.query(KxsWarehouseCreditAmount.class)
         KxsWarehouseCreditAmount creditUserAmount = kxsWarehouseCreditAmountMapper.selectOne(Wrappers.query(KxsWarehouseCreditAmount.class)
                 .select("IFNULL(SUM(credit_amount), 0) as creditAmount")
                 .select("IFNULL(SUM(credit_amount), 0) as creditAmount")
+                .eq("status", StoreStatusEnum.C_ON_CFM.getType())
                 .eq("credit_user_id", userId));
                 .eq("credit_user_id", userId));
         if(creditUserAmount != null){
         if(creditUserAmount != null){
             warehouseAmountVO.setToCreditAmount(creditUserAmount.getCreditAmount());
             warehouseAmountVO.setToCreditAmount(creditUserAmount.getCreditAmount());

+ 9 - 0
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsWarehouseCreditAmountMapper.xml

@@ -18,5 +18,14 @@
         <result column="remark" property="remark" />
         <result column="remark" property="remark" />
 
 
     </resultMap>
     </resultMap>
+    <select id="selectByList" resultType="com.kxs.store.api.vo.kxsapp.storeCredit.StoreCreditListVO">
+        select id, credit_user_id, credit_amount, username, user_code, create_time
+        from kxs_warehouse_credit_amount
+        <where>
+            and del_flag = 0
+            and status = 0
+            and credit_user_id =  #{userId}
+        </where>
+    </select>
 
 
 </mapper>
 </mapper>