浏览代码

代理人app开发

xuqiang 1 年之前
父节点
当前提交
0d56e08f4a

+ 14 - 1
src/main/java/com/ydtech/modules/partner/controller/PartnerUserController.java

@@ -8,6 +8,7 @@ import com.ydtech.modules.partner.model.PartnerUser;
 import com.ydtech.modules.partner.model.param.QueryVo;
 import com.ydtech.modules.partner.model.param.UserGradeParam;
 import com.ydtech.modules.partner.service.PartnerUserService;
+import com.ydtech.modules.partner.utils.ContactQrCodeUtils;
 import com.ydtech.modules.partner.utils.TimedTaskUtils;
 import io.swagger.annotations.Api;
 import lombok.RequiredArgsConstructor;
@@ -168,7 +169,19 @@ public class PartnerUserController extends BaseController {
      */
     @GetMapping("checkCommissionExpireTime")
     public void checkCommissionExpireTime() {
-         SpringUtil.getBean(TimedTaskUtils.class).updateOrderDateNoon();
+         SpringUtil.getBean(TimedTaskUtils.class).checkCommissionExpireTime();
     }
 
+
+
+    /**
+     * 联系客服
+     * @return
+     */
+    @GetMapping("contactCustomerService")
+    public HttpResult contactCustomerService() {
+        return HttpResult.ok(ContactQrCodeUtils.getContactQrCode());
+    }
+
+
 }

+ 5 - 2
src/main/java/com/ydtech/modules/partner/dao/PartnerUserMapper.java

@@ -146,7 +146,10 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user u ON u.id = p .user_id ${ew.customSqlSegment}")
     Page<PartnerUser> selectListVo(@Param("page") Page page ,@Param("ew") QueryWrapper<PartnerUser> queryWrapper);
 
-    @Update("UPDATE partner_user SET identity_status = #{identityStatus},upgrade_cycle_start_time = DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') WHERE user_id = #{userId} and grade = #{originalLevel} ")
+    @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user u ON u.id = p .user_id ${ew.customSqlSegment}")
+    List<PartnerUser> selectAllListVo(@Param("ew") QueryWrapper<PartnerUser> queryWrapper);
+
+    @Update("UPDATE partner_user SET identity_status = #{identityStatus},upgrade_time = DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00'),upgrade_cycle_start_time = DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') WHERE user_id = #{userId} and grade = #{originalLevel} ")
     void updateIdentityStatus(@Param("userId") String userId,@Param("originalLevel") String originalLevel,@Param("identityStatus")int identityStatus);
 
     UserRuleVo queryUserRuleVo(@Param("userId") String userId, @Param("grade")Integer grade,@Param("period") CommissionValidityPeriod period);
@@ -175,7 +178,7 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
 
 
     @Select("SELECT * FROM partner_user WHERE (grade,user_id)  IN ( " +
-            " SELECT MIN(grade) grade , user_id FROM partner_user WHERE grade IN('2','3','4') AND identity_status = 0  GROUP BY user_id " +
+            " SELECT MIN(grade) grade , user_id FROM partner_user WHERE grade IN('2','3','4') AND identity_status = 0 GROUP BY user_id " +
             ") ORDER BY create_time DESC")
     List<PartnerUser> queryDowngradedData();
 

+ 5 - 7
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerLiftingRecordServiceImpl.java

@@ -168,11 +168,10 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
         partnerUser.setReferrerId(referrerId);
         partnerUser.setGrade(value);
         partnerUser.setIdentityType(1);
-        Date currentTime = new Date();
-        Date date = PartnerDateUtils.addDaysToday(currentTime, 1);
-        partnerUser.setUpgradeCycleStartTime(date);
+        Date date = PartnerDateUtils.addDaysToday(new Date(), 0);
         partnerUser.setAssessmentTime(date);
-        partnerUser.setUpgradeTime(currentTime);
+        partnerUser.setUpgradeCycleStartTime(date);
+        partnerUser.setUpgradeTime(date);
         partnerUserMapper.insert(partnerUser);
 
         PartnerUser selectOne = partnerUserMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId, liftingRecord.getUserId()).eq(PartnerUser::getGrade, liftingRecord.getOriginalLevel()));
@@ -303,11 +302,10 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
                 .eq(PartnerUser::getGrade, record.getAfterChange()));
         if (selectOne != null && selectOne.isIdentityStatus()){
             selectOne.setIdentityStatus(false);
-            Date currentTime = new Date();
-            Date date = PartnerDateUtils.addDaysToday(currentTime, 1);
+            Date date = PartnerDateUtils.addDaysToday(new Date(), 0);
             selectOne.setUpgradeCycleStartTime(date);
             selectOne.setAssessmentTime(date);
-            selectOne.setUpgradeTime(currentTime);
+            selectOne.setUpgradeTime(date);
             partnerUserMapper.updateById(selectOne);
             // 锁定上级佣金比例
             PartnerUser one = partnerUserMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId, record.getUserId())

+ 64 - 12
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -712,9 +712,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
                 .in(PartnerUser::getGrade, grades));
         Map<Integer, PartnerUser> userMap = partnerUsers.stream()
                 .collect(Collectors.toMap(PartnerUser::getGrade, Function.identity()));
-        List<PartnerRuleEntity> partnerRuleEntities = partnerRuleService.queryAll();
-        ExpiredCommissionUtils commissionUtils = SpringUtil.getBean(ExpiredCommissionUtils.class);
-
         for (TeamOverviewVo overviewVo : teamOverviewVos) {
             JSONObject map = new JSONObject();
             map.put("grade",overviewVo.getGrade());
@@ -730,12 +727,12 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
                     map.put("parentStatus", "0");
                 } else {
                     Page page = getLevelUser(partnerUser.getUserId(), partnerUser.getGrade(), partnerApp, rule);
-                    List<JSONObject> records = page != null ? page.getRecords() : Collections.emptyList();
-                    boolean hasRecords = CollectionUtil.isNotEmpty(records);
 
-                    hashMap.put("commission", hasRecords ? sumField(records, "commission") : BigDecimal.ZERO);
-                    hashMap.put("numberOrders", hasRecords ? records.size() : 0);
-                    hashMap.put("totalPremium", hasRecords ? sumField(records, "premium") : BigDecimal.ZERO);
+                    List<JSONObject> levelAllUser = getLevelAllUser(partnerUser.getUserId(), partnerUser.getGrade(), partnerApp, rule);
+                    boolean hasRecords = CollectionUtil.isNotEmpty(levelAllUser);
+                    hashMap.put("commission", hasRecords ? sumField(levelAllUser, "commission") : BigDecimal.ZERO);
+                    hashMap.put("numberOrders", hasRecords ? levelAllUser.size() : 0);
+                    hashMap.put("totalPremium", hasRecords ? sumField(levelAllUser, "premium") : BigDecimal.ZERO);
 
                     map.put("data", getPage(page));
                     map.put("total", hashMap);
@@ -777,10 +774,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     public JSONObject getPage(Page page){
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("total",page.getTotal());
+        jsonObject.put("pageNum",page.getCurrent());
         jsonObject.put("records",page.getRecords());
-        jsonObject.put("size",page.getSize());
-        jsonObject.put("current",page.getCurrent());
+        jsonObject.put("pageSize",page.getSize());
+        jsonObject.put("totalSize",page.getTotal());
+        jsonObject.put("totalPages",page.getPages());
         return jsonObject;
     }
 
@@ -818,7 +816,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         totalMap.put("numberOrders",datalist.size());
         totalMap.put("totalPremium",sumField(datalist,"premium"));
         totalMap.put("commission",sumField(datalist,"commission"));
-        hashMap.put("data",page);
+        hashMap.put("data",getPage(page));
         hashMap.put("total",totalMap);
         PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId,partnerApp.getUserId()).eq(PartnerUser::getGrade,partnerApp.getGrade()));
         if (null != partnerUser){
@@ -919,6 +917,60 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     }
 
 
+    public List<JSONObject> getLevelAllUser(String userId, Integer grade, PartnerApp partnerApp, Map<Integer, String> rule){
+        Integer sort = grade + 1;
+        QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("p.referrer_id",userId);
+        queryWrapper.eq("grade",sort);
+        queryWrapper.eq("u.`status`",1);
+        if (!Objects.isNull(partnerApp)){
+            if (StringUtils.isNotEmpty(partnerApp.getStartTime()) && StringUtils.isNotEmpty(partnerApp.getEndTime())){
+                queryWrapper.between("p.create_time", partnerApp.getStartTime() + " " + TimeConstants.START_TIME, partnerApp.getEndTime() + " " + TimeConstants.END_TIME);
+            }
+        }
+
+        List<PartnerUser> partnerUsers = baseMapper.selectAllListVo(queryWrapper);
+        // 添加空值检查
+        if (CollectionUtil.isEmpty(partnerUsers)) {
+            return  new ArrayList<>(0);
+        }
+
+        List<String> userIds = partnerUsers.stream().map(PartnerUser::getUserId).collect(Collectors.toList());
+
+        // 使用参数绑定防止SQL注入,合并查询条件
+        QueryWrapper<PartnerPremiumDetails> wrapper = new QueryWrapper<>();
+        wrapper.in("user_id", userIds);
+        wrapper.eq("source", sort);
+        wrapper.groupBy("user_id");
+
+        // 合并查询结果处理
+        List<Map<String, Object>> resultMapList = detailsMapper.selectCombinedStatistics(wrapper);
+
+        // 简化Map转换逻辑
+        Map<String, BigDecimal> premiumMapDict = new HashMap<>();
+        Map<String, BigDecimal> commissionMapDict = new HashMap<>();
+
+        for (Map<String, Object> map : resultMapList) {
+            String userIdTemp = String.valueOf(map.get("userId"));
+            BigDecimal premium = new BigDecimal(String.valueOf(map.get("premium")));
+            BigDecimal commission = new BigDecimal(String.valueOf(map.get("commission")));
+            premiumMapDict.put(userIdTemp, premium);
+            commissionMapDict.put(userIdTemp, commission);
+        }
+        List<JSONObject> jsonList = new ArrayList<>();
+        for (PartnerUser partnerUser : partnerUsers) {
+            JSONObject jsonObject = getJsonObject(rule, partnerUser);
+            jsonObject.put("number", countByUserIdLevel(partnerUser.getUserId(),partnerUser.getGrade() + 1));
+            String currentUserId = partnerUser.getUserId();
+            jsonObject.put("premium", premiumMapDict.getOrDefault(currentUserId, BigDecimal.ZERO));
+            jsonObject.put("commission", commissionMapDict.getOrDefault(currentUserId, BigDecimal.ZERO));
+            jsonList.add(jsonObject);
+        }
+        List<JSONObject> sort1 = getSort(jsonList);
+        return sort1;
+    }
+
+
     public Page getLevelUser(String userId,Integer grade,PartnerApp partnerApp, Map<Integer, String> rule){
         Integer sort = grade + 1;
         QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();

文件差异内容过多而无法显示
+ 10 - 0
src/main/java/com/ydtech/modules/partner/utils/ContactQrCodeUtils.java


+ 1 - 1
src/main/java/com/ydtech/modules/partner/utils/PartnerDateUtils.java

@@ -83,7 +83,7 @@ public class PartnerDateUtils {
         LocalDate compareLocalDate = date.toInstant()
                 .atZone(ZoneId.systemDefault())
                 .toLocalDate();
-        return !compareLocalDate.isBefore(currentDate);
+        return !currentDate.isBefore(compareLocalDate);
     }
 
 

+ 0 - 1
src/main/java/com/ydtech/modules/partner/utils/TimedTaskUtils.java

@@ -106,7 +106,6 @@ public class TimedTaskUtils {
         List<PartnerUser> partnerUsers = partnerUserMapper.queryDowngradedData();
         for (PartnerUser partnerUser : partnerUsers) {
             PartnerRuleEntity rule = getRule(String.valueOf(partnerUser.getGrade()), partnerRuleEntities);
-            rule.setKhDays(2);
             Integer khDays = rule.getKhDays();
             Date upgradeStartTime = getUpgradeStartTime(partnerUser);
             if (null == upgradeStartTime){

部分文件因为文件数量过多而无法显示