Quellcode durchsuchen

1 添加查询条件用户提现

wuhp vor 2 Jahren
Ursprung
Commit
407f977d69

+ 3 - 3
src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java

@@ -56,10 +56,10 @@ public class SysUserAccountController extends BaseController {
         SysUserAccountVo result = sysUserAccountService.getSysAllAmount(userId);
         return  HttpResult.ok("success", result);
     }
-    @GetMapping("getInsOrders")
+    @PostMapping("getInsOrders")
     @ApiOperation("获取子订单号")
-    public HttpResult<SysUserAccountVo>  getInsOrders(@PathVariable("ids") String  ids){
-        SysUserAccountVo result =sysUserAccountService.getInsOrders(ids);
+    public HttpResult<SysUserAccountVo>  getInsOrders(@RequestBody SysUserAccountVo sysUserAccountVo){
+        SysUserAccountVo result =sysUserAccountService.getInsOrders(sysUserAccountVo);
         return  HttpResult.ok("success", result);
     }
 

+ 8 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java

@@ -86,7 +86,7 @@ public class SysAmountAuditingVo {
     private LocalDate endTime;
 
     @ApiModelProperty("审批时间")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM")
     private Date auditingTime;
 
     @ApiModelProperty("审核人")
@@ -96,4 +96,11 @@ public class SysAmountAuditingVo {
     private String auditingUserName;
 
 
+    @ApiModelProperty("时间条件")
+    private String  timeFiltering;
+
+
+
+
+
 }

+ 3 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountVo.java

@@ -126,7 +126,9 @@ public class SysUserAccountVo {
     @ApiModelProperty(value = "已提现中推广费")
     private BigDecimal approvedPromotion;
     @ApiModelProperty(value = "报价id")
-    private String setIds;
+    private String ids;
+    @ApiModelProperty("时间条件")
+    private String  timeFiltering;
     @ApiModelProperty("子订单数组")
     private List<InsFeeOrderNew> insFeeOrderNewList;
 

+ 2 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java

@@ -26,5 +26,6 @@ public interface SysUserAccountService extends IService<SysUserAccount> {
 
     SysUserAccountVo getSysAllAmount(String userId);
 
-    SysUserAccountVo getInsOrders(String ids);
+    SysUserAccountVo getInsOrders(SysUserAccountVo sysUserAccountVo);
+
 }

+ 1 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;

+ 46 - 25
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -254,15 +254,14 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         BigDecimal  willPromotion =BigDecimal.ZERO;   //预收 推广
         StringBuffer stringBuffer = new StringBuffer();
 
-        this.willPromotion(willPromotion,userId);  // 佣金
+        willPromotion =   this.willPromotion(willPromotion,userId);  // 佣金
         List<InsOrders> willList = insAreaCompanyService.getByUserId(userId);
         if(!CollectionUtils.isEmpty(willList)){
            for (InsOrders item : willList){
                String quoteno = item.getQuoteno();
                stringBuffer.append(quoteno).append(",");
                if(StringUtils.isNotEmpty(quoteno)){
-
-                  this.willAmount(quoteno,willHalding,willDocumentary);  // 推广 非跟单
+                  this.willAmount(quoteno,willHalding,willDocumentary,sysUserAccountVo);  // 推广 非跟单
                }
            }
 
@@ -278,33 +277,35 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         params.put("userId",userId);
         List<SysAmountAuditingEntity>  sysAmountAuditingApproved=  sysAmountAuditingService.getProgressIng(params);
         this.judgeSysAmountAuditing(sysAmountAuditingApproved,sysUserAccountVo);
-        sysUserAccountVo.setWillHalding(willHalding);
-        sysUserAccountVo.setWillDocumentary(willDocumentary);
         sysUserAccountVo.setWillPromotion(willPromotion);
         String ids = stringBuffer.toString();
         if (ids.endsWith(",")) {
             ids = ids.substring(0, ids.length() - 1);  // 去掉末尾的逗号
         }
-        sysUserAccountVo.setSetIds(ids);
+        sysUserAccountVo.setIds(ids);
         return sysUserAccountVo;
     }
 
     @Override
-    public SysUserAccountVo getInsOrders(String ids) {
-        SysUserAccountVo sysUserAccountVo = new SysUserAccountVo();
+    public SysUserAccountVo getInsOrders(SysUserAccountVo sysUserAccountVo) {
         ArrayList<InsFeeOrderNew> resultList = new ArrayList<>();
-        if(StringUtils.isNotEmpty(ids)){
-            for (String insOrderNo : ids.split(",")) {
-                InsAreaCompany byInsOrderNo = insAreaCompanyService.getByInsOrderNo(insOrderNo);
-                String id = byInsOrderNo.getId();
-                InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(id);
-                resultList.add(insFeeOrderNew);
+        if(StringUtils.isNotEmpty(sysUserAccountVo.getIds())){
+            for (String insOrderNo : sysUserAccountVo.getIds().split(",")) {
+
+                InsAreaCompany byInsOrderNo = insAreaCompanyService.getByInsOrderNoNew(insOrderNo,sysUserAccountVo.getTimeFiltering());
+                if(ObjectUtils.isNotEmpty(byInsOrderNo)){
+                    String id = byInsOrderNo.getId();
+                    InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(id);
+                    resultList.add(insFeeOrderNew);
+                }
             }
         }
         sysUserAccountVo.setInsFeeOrderNewList(resultList);
         return sysUserAccountVo;
     }
 
+
+
     private void judgeSysAmountAuditing(List<SysAmountAuditingEntity> sysAmountAuditingApproved, SysUserAccountVo sysUserAccountVo) {
         if(!CollectionUtils.isEmpty(sysAmountAuditingApproved)){
             for (SysAmountAuditingEntity  item:   sysAmountAuditingApproved){
@@ -346,20 +347,32 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
     }
 
-    private void willPromotion(BigDecimal willPromotion, String userId) {
-        InsOrders   InsOrders = insAreaCompanyService.selectPromotionBy(userId);
-        if(ObjectUtils.isNotEmpty(InsOrders)){
-            BigDecimal willFirstPremiums = InsOrders.getWillFirstPremiums();
-            BigDecimal willSecondPremiums = InsOrders.getWillSecondPremiums();
-            BigDecimal willThreePremiums = InsOrders.getWillThreePremiums();
-            willPromotion.add(willFirstPremiums).add(willThreePremiums).add(willSecondPremiums);
-
-
+    private BigDecimal willPromotion(BigDecimal willPromotion, String userId) {
+        for (int i = 1; i <4 ; i++) {
+
+            InsOrders   InsOrders = insAreaCompanyService.selectPromotionBy(userId,i);
+            if(ObjectUtils.isNotEmpty(InsOrders)){
+                BigDecimal willFirstPremiums = InsOrders.getWillFirstPremiums();
+                BigDecimal willSecondPremiums = InsOrders.getWillSecondPremiums();
+                BigDecimal willThreePremiums = InsOrders.getWillThreePremiums();
+                if(ObjectUtils.isNotEmpty(InsOrders)){
+                    if(willFirstPremiums==null){
+                        willFirstPremiums=BigDecimal.ZERO;
+                    }
+                    if(willSecondPremiums==null){
+                        willSecondPremiums=BigDecimal.ZERO;
+                    }
+                    if(willThreePremiums==null){
+                        willThreePremiums=BigDecimal.ZERO;
+                    }
+                 return   willPromotion.add(willFirstPremiums).add(willThreePremiums).add(willSecondPremiums);
+                }
+            }
         }
-
+        return null;
     }
 
-    private void willAmount(String quoteno, BigDecimal willHalding, BigDecimal willDocumentary) {
+    private void willAmount(String quoteno, BigDecimal willHalding, BigDecimal willDocumentary,SysUserAccountVo sysUserAccountVo) {
         InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(quoteno);
         //交强手续费出口比例
         BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
@@ -369,6 +382,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         //用户出口手续费
         willHalding = willHalding.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
+        if(sysUserAccountVo.getWillHalding()==null){
+            sysUserAccountVo.setWillHalding(willHalding);
+        }
+        sysUserAccountVo.setWillHalding(sysUserAccountVo.getWillHalding().add(willHalding));
 
         //非车出口比例
         //总机构 交强管理比例
@@ -422,6 +439,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                         .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         //用户出口跟单费
         willDocumentary = willDocumentary.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
+        if(sysUserAccountVo.getWillDocumentary()==null){
+            sysUserAccountVo.setWillDocumentary(willDocumentary);
+        }
+        sysUserAccountVo.setWillDocumentary(sysUserAccountVo.getWillDocumentary().add(willDocumentary));
 
     }
 

+ 6 - 1
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -56,7 +56,12 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
 
     List<InsOrders> getByUserId(HashMap<String, Object> params);
 
-    InsOrders selectPromotionBy(HashMap<String, Object> params);
+
+    InsOrders selectFirstPromotionBy(HashMap<String, Object> params);
+
+    InsOrders selectSecondPromotionBy(HashMap<String, Object> params);
+
+    InsOrders selectThirdPromotionBy(HashMap<String, Object> params);
 }
 
 

+ 4 - 1
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -89,5 +89,8 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
 
     List<InsOrders> getByUserId(String userId);
 
-    InsOrders selectPromotionBy(String userId);
+    InsOrders selectPromotionBy(String userId, int i);
+
+    InsAreaCompany getByInsOrderNoNew(String insOrderNo, String timeFiltering);
+
 }

+ 30 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -18,6 +18,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import java.time.LocalDate;
+import java.time.YearMonth;
 import java.util.HashMap;
 import java.util.List;
 
@@ -131,10 +133,35 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     }
 
     @Override
-    public InsOrders selectPromotionBy(String userId) {
+    public InsOrders selectPromotionBy(String userId, int i) {
         HashMap<String, Object> params = new HashMap<>();
-        params.put("userId",userId);
-        return baseMapper.selectPromotionBy(params);
+        if(i==1){
+            params.put("firstUserId",userId);
+            return baseMapper.selectFirstPromotionBy(params);
+
+        }
+        if(i==2){
+            params.put("secondUserId",userId);
+            return baseMapper.selectSecondPromotionBy(params);
+
+        }
+        if(i==3){
+            params.put("thirdUserId",userId);
+            return baseMapper.selectThirdPromotionBy(params);
+
+        }
+        return null;
+    }
+
+    @Override
+    public InsAreaCompany getByInsOrderNoNew(String insOrderNo, String timeFiltering) {
+        LambdaQueryWrapper<InsAreaCompany> queryWrapper = new LambdaQueryWrapper<>();
+        YearMonth targetYearMonth = YearMonth.parse(timeFiltering); // 假设timeFiltering是形如"2024-04"的字符串
+        LocalDate startOfMonth = targetYearMonth.atDay(1); // 当月第一天
+        LocalDate endOfMonth = targetYearMonth.atEndOfMonth(); // 当月最后一天
+        queryWrapper.between(InsAreaCompany::getSigningTime, startOfMonth, endOfMonth);
+        queryWrapper.eq(InsAreaCompany::getId, insOrderNo);
+        return baseMapper.selectOne(queryWrapper);
     }
 
 

+ 3 - 0
src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml

@@ -127,6 +127,9 @@
             <if test="startDate !=null and startDate != ''  and  endDate !=null  and  endDate!= '' ">
                 and DATE_FORMAT( a.auditing_time, '%Y-%m-%d')  between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')
             </if>
+            <if test="timeFiltering !=null and timeFiltering != '' ">
+             AND   DATE_FORMAT(a.auditing_time, '%Y-%m') = #{timeFiltering}
+            </if>
         </where>
 
     </select>

+ 63 - 5
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -206,11 +206,62 @@
     </select>
 
 
-    <select id="selectPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
+    <select id="selectFirstPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
+        SELECT
+        sum(a.first_detail_premiums) as  "willFirstPremiums"
+        FROM
+        ins_fee_order_new  a
+        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        WHERE
+        a.id NOT IN (
+        SELECT
+        ins_order_no
+        FROM
+        ins_fee_audit
+        )
+        AND   iac.orderstatus =3
+        <if test="firstUserId != null and firstUserId != ''">
+             AND  a.first_level_user_id = #{firstUserId}
+        </if>
+        <if test="secondUserId != null and secondUserId != ''">
+             AND  a.two_level_user_id = #{secondUserId}
+        </if>
+
+        <if test="thirdUserId != null and thirdUserId != ''">
+             AND  a.three_level_user_id = #{thirdUserId}
+        </if>
+
+    </select>
+    <select id="selectSecondPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
+        SELECT
+        sum(a.second_detail_premiums) as  "willSecondPremiums"
+        FROM
+        ins_fee_order_new  a
+        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        WHERE
+        a.id NOT IN (
+        SELECT
+        ins_order_no
+        FROM
+        ins_fee_audit
+        )
+        AND   iac.orderstatus =3
+        <if test="firstUserId != null and firstUserId != ''">
+             AND  a.first_level_user_id = #{firstUserId}
+        </if>
+        <if test="secondUserId != null and secondUserId != ''">
+             AND  a.two_level_user_id = #{secondUserId}
+        </if>
+
+        <if test="thirdUserId != null and thirdUserId != ''">
+             AND  a.three_level_user_id = #{thirdUserId}
+        </if>
+
+    </select>
+    <select id="selectThirdPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.first_detail_premiums) as  "willFirstPremiums",
-        sum(a.second_detail_premiums) as  "willSecondPremiums",
         sum(a.third_detail_premiums) as  "willThreePremiums"
+
         FROM
         ins_fee_order_new  a
         LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
@@ -222,8 +273,15 @@
         ins_fee_audit
         )
         AND   iac.orderstatus =3
-        <if test="userId != null and userId != ''">
-             AND  (a.first_level_user_id = #{userId}  or a.two_level_user_id =#{userId}   or   a.three_level_user_id=#{userId})
+        <if test="firstUserId != null and firstUserId != ''">
+             AND  a.first_level_user_id = #{firstUserId}
+        </if>
+        <if test="secondUserId != null and secondUserId != ''">
+             AND  a.two_level_user_id = #{secondUserId}
+        </if>
+
+        <if test="thirdUserId != null and thirdUserId != ''">
+             AND  a.three_level_user_id = #{thirdUserId}
         </if>
 
     </select>