Просмотр исходного кода

新增费率和活动修改接口
用户信息字段添加

mac 2 лет назад
Родитель
Сommit
61badca71a
15 измененных файлов с 215 добавлено и 33 удалено
  1. 22 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/req/kxs/DepositSetReq.java
  2. 23 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/req/kxs/FeeSetReq.java
  3. 2 1
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MachineController.java
  4. 3 2
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MerchantController.java
  5. 9 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsMachineService.java
  6. 10 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsMerchantService.java
  7. 35 4
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMachineServiceImpl.java
  8. 48 6
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java
  9. 2 2
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/feign/RemoteOldService.java
  10. 4 8
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/UserInfoVO.java
  11. 10 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsLeaderMapper.java
  12. 11 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsPartnerMapper.java
  13. 12 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java
  14. 17 10
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsLeaderMapper.xml
  15. 7 0
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsPartnerMapper.xml

+ 22 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/req/kxs/DepositSetReq.java

@@ -0,0 +1,22 @@
+package com.kxs.product.api.req.kxs;
+
+import lombok.Builder;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 修改押金请求
+ *
+ * @author 没秃顶的码农
+ * @date 2024-06-06
+ */
+@Data
+@Builder
+public class DepositSetReq {
+
+    private  String posSn;
+    private  Integer brandId;
+    private BigDecimal deposit;
+    private  String callBackUrl;
+}

+ 23 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/req/kxs/FeeSetReq.java

@@ -0,0 +1,23 @@
+package com.kxs.product.api.req.kxs;
+
+import lombok.Builder;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 修改费率请求
+ *
+ * @author 没秃顶的码农
+ * @date 2024-06-06
+ */
+@Data
+@Builder
+public class FeeSetReq {
+
+    private  String posSn;
+    private  Integer brandId;
+    private  BigDecimal feeRate;
+    private  BigDecimal feeExtra;
+    private  String callBackUrl;
+}

+ 2 - 1
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MachineController.java

@@ -127,7 +127,8 @@ public class MachineController {
      */
     @PostMapping("/updatePledge")
     public R updatePledge(@RequestBody MachineUpdatePledgeDTO param) {
-        return R.ok();
+
+        return kxsMachineService.updatePledge(param);
     }
 
 

+ 3 - 2
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MerchantController.java

@@ -77,9 +77,10 @@ public class MerchantController {
      * @param param 实体对象
      * @return 费率调整
      */
-    @PutMapping("/machineRatio")
+    @PostMapping("/machineRatio")
     public R machineRatio(@RequestBody MachineRatioDTO param) {
-        return R.ok();
+
+        return kxsMerchantService.changeMachineRatio(param);
     }
 
 

+ 9 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsMachineService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.dto.kxsapp.machine.*;
+import com.kxs.product.api.dto.kxsapp.merchant.MachineRatioDTO;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.vo.kxsapp.machine.*;
 import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
@@ -155,5 +156,13 @@ public interface KxsMachineService extends IService<KxsMachine> {
     GetActivityStatByIdAndTimeVO getActivityMachineByIdAndTime(GetActivityMachineByIdAndTimeDTO param);
 
 
+    /**
+     * 机具修改活动
+     *
+     * @param param 参数
+     * @return {@link R}
+     */
+    R updatePledge(MachineUpdatePledgeDTO param);
+
 }
 

+ 10 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsMerchantService.java

@@ -3,6 +3,7 @@ package com.kxs.product.biz.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
+import com.kxs.product.api.dto.kxsapp.merchant.MachineRatioDTO;
 import com.kxs.product.api.dto.kxsapp.merchant.MerchantListDTO;
 import com.kxs.product.api.dto.kxsapp.merchant.ToMerchantMakerDTO;
 import com.kxs.product.api.model.KxsMerchant;
@@ -52,5 +53,14 @@ public interface KxsMerchantService extends IService<KxsMerchant> {
      * @return {@link R}
      */
     R changeToMchUser(KxsMerchant param);
+
+
+    /**
+     * 更换机器费率
+     *
+     * @param param 参数
+     * @return {@link R}
+     */
+    R changeMachineRatio(MachineRatioDTO param);
 }
 

+ 35 - 4
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMachineServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.constant.enums.ErrorTypeEnum;
 import com.kxs.common.core.exception.GlobalCustomerException;
@@ -16,7 +17,9 @@ import com.kxs.common.core.util.RetOps;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.dto.kxsapp.machine.*;
+import com.kxs.product.api.dto.kxsapp.merchant.MachineRatioDTO;
 import com.kxs.product.api.model.*;
+import com.kxs.product.api.req.kxs.DepositSetReq;
 import com.kxs.product.api.vo.kxsapp.machine.*;
 import com.kxs.common.core.constant.enums.MachineTypeEnum;
 import com.kxs.product.biz.constant.enums.ProductErrorTypeEnum;
@@ -40,10 +43,7 @@ import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -355,6 +355,37 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
         return getActivityStatByIdAndTimeVO;
     }
 
+    @Override
+    public R updatePledge(MachineUpdatePledgeDTO param) {
+
+        List<String> snList = param.getSnList();
+        Set<String> errorMsg = new HashSet<>();
+        for (String sn : snList) {
+            KxsMachine kxsMachine = baseMapper.selectOne(Wrappers.<KxsMachine>lambdaQuery().eq(KxsMachine::getPosSn, sn));
+            if(kxsMachine == null){
+                throw new GlobalCustomerException("该机具不存在");
+            }
+            DepositSetReq req = DepositSetReq.builder()
+                    .posSn(kxsMachine.getPosSn())
+                    .deposit(param.getCashPledge())
+                    .brandId(kxsMachine.getBrandId())
+                    .build();
+            HashMap<String, Object> reqParam = new HashMap<>();
+            reqParam.put("value", JSON.toJSONString(req));
+            R res = remoteOldService.depositSet(req);
+            if(res.getStatus() == CommonConstants.SUCCESS){
+                kxsMachine.setCashPledge(param.getCashPledge());
+                baseMapper.updateById(kxsMachine);
+            }else{
+                errorMsg.add(sn + "修改活动失败");
+            }
+
+        }
+
+        return  R.ok(errorMsg);
+
+    }
+
 
 }
 

+ 48 - 6
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java

@@ -15,17 +15,22 @@ import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.dto.kxsapp.merchant.MachineRatioDTO;
 import com.kxs.product.api.dto.kxsapp.merchant.MerchantListDTO;
 import com.kxs.product.api.dto.kxsapp.merchant.ToMerchantMakerDTO;
 import com.kxs.product.api.model.KxsMachine;
+import com.kxs.product.api.model.KxsMachineRatio;
 import com.kxs.product.api.model.KxsMachineTrack;
+import com.kxs.product.api.req.kxs.FeeSetReq;
 import com.kxs.product.api.vo.kxsapp.merchant.MerchantDetailVO;
 import com.kxs.product.api.vo.kxsapp.merchant.MerchantListVO;
 import com.kxs.product.api.vo.kxsapp.merchant.MerchantTotalVO;
 import com.kxs.product.biz.mapper.KxsMachineMapper;
+import com.kxs.product.biz.mapper.KxsMachineRatioMapper;
 import com.kxs.product.biz.mapper.KxsMerchantMapper;
 import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.product.biz.service.KxsMerchantService;
+import com.kxs.system.api.feign.RemoteOldService;
 import com.kxs.user.api.feign.RemoteKxsUserService;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUserReal;
@@ -37,6 +42,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.HashMap;
 
 /**
  * 客小爽商户表(KxsMerchant)表服务实现类
@@ -50,6 +56,8 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
     private final KxsMachineMapper kxsMachineMapper;
     private final RemoteKxsUserService remoteKxsUserService;
     private final KxsMerchantMapper kxsMerchantMapper;
+    private final KxsMachineRatioMapper kxsMachineRatioMapper;
+    private final RemoteOldService remoteOldService;
     @Override
     public Object merchantList(Page<KxsMerchant> page, MerchantListDTO param) {
         Long userId = SecurityUtils.getUser().getId();
@@ -185,15 +193,49 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
         return R.ok();
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R changeMachineRatio(MachineRatioDTO param) {
 
+        KxsMerchant mchInfo = getById(param.getMerchantId());
+        if (mchInfo == null) {
+            throw new GlobalCustomerException("商户不存在");
+        }
+        KxsMachine kxsMachine = kxsMachineMapper.selectById(mchInfo.getMachineId());
+        if (kxsMachine == null) {
+            throw new GlobalCustomerException("商户机具不存在");
+        }
 
+        FeeSetReq req = FeeSetReq.builder()
+                .posSn(kxsMachine.getPosSn())
+                .brandId(kxsMachine.getBrandId())
+                .feeRate(param.getMachineRatio())
+                .build();
+        HashMap<String, Object> reqParam = new HashMap<>();
+        reqParam.put("value", JSON.toJSONString(req));
+        R res = remoteOldService.feeSet(reqParam);
+
+        if(res.getStatus() != CommonConstants.SUCCESS){
+            throw new GlobalCustomerException("修改费率失败");
+        }
+        kxsMachine.setMachineRatio(param.getMachineRatio());
+        kxsMachine.setDownFeeFlag(CommonConstants.SUCCESS);
+        //增加费率调整记录
+        KxsMachineRatio kxsMachineRatio = new KxsMachineRatio();
+        kxsMachineRatio.setMerchantId(mchInfo.getId());
+        kxsMachineRatio.setRatio(param.getMachineRatio());
+        kxsMachineRatio.setMachineId(kxsMachine.getId());
+        kxsMachineRatio.setStatus(CommonConstants.SUCCESS);
+        kxsMachineRatio.setBrandId(kxsMachine.getBrandId());
+        kxsMachineRatio.setPosUserId(kxsMachine.getUserId());
+        kxsMachineRatio.setPosSn(kxsMachine.getPosSn());
+        kxsMachineRatio.setUserId(SecurityUtils.getUser().getId().intValue());
+        kxsMachineRatio.setResult(JSON.toJSONString(res));
+        kxsMachineRatio.setRemark("设置成功");
+        kxsMachineRatioMapper.insert(kxsMachineRatio);
 
-
-
-
-
-
-
+        return R.ok();
+    }
 
 
 }

+ 2 - 2
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/feign/RemoteOldService.java

@@ -36,7 +36,7 @@ public interface RemoteOldService {
 	 * @param param 参数
 	 */
 	@PostExchange("/api/v1/deposit/set")
-	R depositSet(@RequestParam Object param);
+	R depositSet(@RequestBody Object  param);
 
 
 	/**
@@ -52,7 +52,7 @@ public interface RemoteOldService {
 	 * @return {@link R}
 	 */
 	@PostExchange("/api/v1/fee/set")
-	R feeSet(@RequestParam Object param);
+	R feeSet(@RequestParam Map<String, Object>  param);
 
 	/**
 	 * 团队开机统计-开机统计查询

+ 4 - 8
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/UserInfoVO.java

@@ -89,19 +89,15 @@ public class UserInfoVO implements Serializable {
     @Schema(description = "用户等级")
     private Integer userLevel;
 
-
     /**
-     * 预设等级
+     * 盟主类型 小盟主=1 大盟主=2
      */
-    @Schema(description = "预设等级")
-    private Integer presetLevel;
-
+    private Integer leaderType;
 
     /**
-     * 预设等级状态 0未预设 1已预设
+     * 合伙人 运营中心=0黄金合伙人=1钻石合伙人=2战略合伙人=3
      */
-    @Schema(description = "预设等级状态 0未预设 1已预设")
-    private Integer presetLevelStatus;
+    private Integer partnerType;
 
 
     /**

+ 10 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsLeaderMapper.java

@@ -3,6 +3,9 @@ package com.kxs.user.biz.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.user.api.model.KxsLeader;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
 
 /**
  * 盟主表(KxsLeader)表数据库访问层
@@ -13,5 +16,12 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KxsLeaderMapper extends BaseMapper<KxsLeader> {
 
+    /**
+     * 查询有效盟主
+     *
+     * @param userId 用户 ID
+     * @return {@link KxsLeader}
+     */
+    KxsLeader selectByLeader(@Param("userId") Integer userId, @Param("expiredDate") LocalDateTime expiredDate);
 }
 

+ 11 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsPartnerMapper.java

@@ -3,6 +3,9 @@ package com.kxs.user.biz.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.user.api.model.KxsPartner;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
 
 /**
  * 合伙人表(KxsPartner)表数据库访问层
@@ -13,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KxsPartnerMapper extends BaseMapper<KxsPartner> {
 
+    /**
+     * 查询合伙人状态
+     *
+     * @param userId      用户 ID
+     * @param expiredDate 到期日期
+     * @return {@link KxsPartner}
+     */
+    KxsPartner selectByPartner(@Param("userId") Integer userId, @Param("expiredDate") LocalDateTime expiredDate);
 }
 

+ 12 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -402,6 +402,10 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
 
         KxsUserReal userReal = kxsUserRealMapper.selectOne(Wrappers.<KxsUserReal>lambdaQuery().eq(KxsUserReal::getUserId, user.getId()));
 
+        KxsLeader leader = kxsLeaderMapper.selectByLeader(user.getId(), LocalDateTime.now());
+
+        KxsPartner partner = kxsPartnerMapper.selectByPartner(user.getId(), LocalDateTime.now());
+
         UserInfoVO userInfoVO = new UserInfoVO();
         BeanUtils.copyProperties(user, userInfoVO);
 
@@ -412,7 +416,15 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         if(userReal != null){
             userInfoVO.setRealTime(userReal.getCreateTime());
         }
+        if(leader != null){
+            userInfoVO.setLeaderType(leader.getLeaderType());
+        }
+        if(partner != null){
+            userInfoVO.setPartnerType(partner.getPartnerType());
+        }
 
+        Integer level = baseMapper.selectMaxLevel(SecurityUtils.getUser().getId());
+        userInfoVO.setUserLevel(level);
         return userInfoVO;
     }
 

+ 17 - 10
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsLeaderMapper.xml

@@ -3,17 +3,24 @@
 <mapper namespace="com.kxs.user.biz.mapper.KxsLeaderMapper">
 
     <resultMap type="com.kxs.user.api.model.KxsLeader" id="KxsLeaderMap">
-        <result column="id" property="id" />
-        <result column="create_time" property="createTime" />
-        <result column="update_time" property="updateTime" />
-        <result column="del_flag" property="delFlag" />
-        <result column="version" property="version" />
-        <result column="user_id" property="userId" />
-        <result column="leader_type" property="leaderType" />
-        <result column="expired_date" property="expiredDate" />
-        <result column="last_buy_date" property="lastBuyDate" />
-        <result column="leader_level" property="leaderLevel" />
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="del_flag" property="delFlag"/>
+        <result column="version" property="version"/>
+        <result column="user_id" property="userId"/>
+        <result column="leader_type" property="leaderType"/>
+        <result column="expired_date" property="expiredDate"/>
+        <result column="last_buy_date" property="lastBuyDate"/>
+        <result column="leader_level" property="leaderLevel"/>
 
     </resultMap>
+    <select id="selectByLeader" resultMap="KxsLeaderMap">
+        select *
+        from kxs_leader
+        where user_id = #{userId}
+          and expired_date > #{expiredDate}
+          and del_flag = 0
+    </select>
 
 </mapper>

+ 7 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsPartnerMapper.xml

@@ -17,5 +17,12 @@
         <result column="expired_date" property="expiredDate" />
 
     </resultMap>
+    <select id="selectByPartner" resultMap="KxsPartnerMap">
+        select *
+        from kxs_partner
+        where user_id = #{userId}
+          and expired_date > #{expiredDate}
+          and del_flag = 0
+    </select>
 
 </mapper>