package com.ibeetl.admin.console.api; import cn.hutool.core.date.format.FastDateFormat; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.ibeetl.admin.console.model.*; import com.ibeetl.admin.console.service.*; import com.ibeetl.admin.console.util.DateUtil; import com.ibeetl.admin.console.util.DoubleUtil; import com.ibeetl.admin.console.web.query.XzxUserRedpaperRuleQuery; import com.ibeetl.admin.core.entity.*; import com.ibeetl.admin.core.file.FileService; import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.web.JsonResult; import io.swagger.annotations.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.beetl.sql.core.engine.PageQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; @RestController @Api(value = "红包设置规则") public class XzxUserRedpaperRuleApi { private final Log log = LogFactory.getLog(this.getClass()); private static final String MODEL = "/admin/front/xzxUserRedpaperRule"; static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); static SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); @Autowired XzxUserRedpaperRuleService xzxUserRedpaperRuleService; @Autowired XzxUserRedpaperInfoService xzxUserRedpaperInfoService; @Autowired XzxRebateRulePriceService xzxRebateRulePriceService; @Autowired XzxUserShareInfoService xzxUserShareInfoService; @Autowired CorePlatformService platformService; @Autowired XzxCityPartnerService cityPartnerService; @Autowired FileService fileService; /* 页面 */ @PostMapping(MODEL + "/redRuleList.json") @ResponseBody @ApiOperation(value="红包记录-红包规则", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleType", value = "规则类型(1:红包规则,2:分享分利规则 3:阶梯返利5:物品返利,7:提成规则)", required = true, dataType = "String") }) public JsonResult> redRuleList(@RequestBody XzxUserRedpaperRuleQuery condtion) { CoreUser user = platformService.getCurrentUser(); XzxCityPartner partner = cityPartnerService.queryById(user.getId()); /*if(condtion.getRuleType().equals("7")){ if(null==partner){ return JsonResult.failMessage("提成规则只能由合伙人设置!"); } }*/ if(null!=partner){ condtion.setPartnerId(partner.getId()+""); } PageQuery page = condtion.getPageQuery(); Map map = xzxUserRedpaperRuleService.queryByCondition(page,condtion.getRuleType()); return JsonResult.success(map); } @PostMapping(MODEL + "/add.json") @ResponseBody @ApiOperation(value="红包规则-添加红包规则", notes="test: 仅0有正确返回") public JsonResult add(@RequestBody XzxUserRedpaperRuleModel model) { CoreUser user = platformService.getCurrentUser(); List partnerIds = cityPartnerService.queryPartnerByCurrent(); if(null!=partnerIds&&partnerIds.size()>0){ model.setPartnerId(partnerIds.get(0)); } List infoList = new ArrayList<>(); List queryList = xzxUserRedpaperRuleService.queryRedpaperListStartAndEnd(model.getStartTime(),model.getEndTime()); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("该时间段内不允许添加红包规则!"); } //限制红包金额是否有符合正态分布 if(model.getIssuanceRules().equals("0")){ String amount = model.getAmount(); String surplusNum = model.getRedEnvelopesNum(); BigDecimal avg = new BigDecimal(amount).divide(new BigDecimal(surplusNum), 2, RoundingMode.HALF_UP); String minMoney = model.getMinMoney(); if(minMoney!=null&&!"".equals(minMoney)){ if(new BigDecimal(minMoney).compareTo(avg)>=0){ return JsonResult.failMessage("平均金额必须大于最小金额!"); } }else{ minMoney = model.getRandomAmountAverage().split(",")[0]; if(new BigDecimal(minMoney).compareTo(avg)>=0){ return JsonResult.failMessage("平均金额必须大于最小金额!"); } } } //先保存规则 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxUserRedpaperRule rule = objectMapper.convertValue(model, XzxUserRedpaperRule.class); rule.setCreateTime(sdf.format(new Date())); rule.setDelFlag(0); rule.setRuleType("1"); xzxUserRedpaperRuleService.save(rule); //通过规则关联红包 String amount = model.getAmount(); String redEnvelopesNum = model.getRedEnvelopesNum(); //金额随机或者金额固定 String issuanceRules=model.getIssuanceRules(); String randomAmountAverage = model.getRandomAmountAverage(); //合伙人设置红包,需要扣除合伙人的环保币余额 String result1 = xzxUserRedpaperInfoService.subPartnerAccount(amount); if(null!=result1){ return new JsonResult().failMessage(result1); } if(issuanceRules.equals("0")){ //金额随机 String[] random = randomAmountAverage.split(","); String minRadom = random[0]; String maxRadom = random[1]; long[] result = DoubleUtil.generate(amount, Integer.parseInt(redEnvelopesNum), maxRadom, minRadom); double total = 0; for (int i = 0; i < result.length; i++) { System.out.println("result[" + i + "]:" + result[i]); double money = (double)result[i]/100.00; System.out.println(money); total += result[i]; if(rule.getId()!=null){ XzxUserRedpaperInfo info = saveRedPaperInfo(rule.getId(),amount,money); info.setCreateUserId(user.getId()+""); infoList.add(info); } } xzxUserRedpaperInfoService.batchInsertPaperInfo(infoList); total = total/100; }else if(issuanceRules.equals("1")){ int num = Integer.parseInt(redEnvelopesNum); //金额固定 for (int i = 0; i update(@RequestBody XzxUserRedpaperRuleModel model) { List queryList = xzxUserRedpaperRuleService.queryRedpaperListStartAndEnd(model.getStartTime(),model.getEndTime()); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("该时间段内不允许修改红包规则!"); } XzxUserRedpaperRule ru = xzxUserRedpaperRuleService.queryById(model.getId()); /*List infoList = new ArrayList<>(); //删除原有规则,重新创建规则生成红包 ru.setDelFlag(1); boolean success = xzxUserRedpaperRuleService.update(ru);*/ //先保存规则 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxUserRedpaperRule rule = objectMapper.convertValue(model, XzxUserRedpaperRule.class); rule.setUpdateTime(sdf.format(new Date())); rule.setDelFlag(0); //rule.setStatus(1); rule.setRuleType("1"); rule.setSharingProfitType("REDPAPER_TEXT"); rule.setId(ru.getId()); xzxUserRedpaperRuleService.update(rule); return new JsonResult().success(); //通过规则关联红包 /*String amount = model.getAmount(); String redEnvelopesNum = model.getRedEnvelopesNum(); //金额随机或者金额固定 String issuanceRules=model.getIssuanceRules(); String randomAmountAverage = model.getRandomAmountAverage(); if(issuanceRules.equals("0")){ //金额随机 String[] random = randomAmountAverage.split(","); String minRadom = random[0]; String maxRadom = random[1]; long[] result = DoubleUtil.generate(amount, Integer.parseInt(redEnvelopesNum), maxRadom, minRadom); double total = 0; for (int i = 0; i < result.length; i++) { System.out.println("result[" + i + "]:" + result[i]); double money = (double)result[i]/100.00; System.out.println(money); total += result[i]; if(rule.getId()!=null){ XzxUserRedpaperInfo info = saveRedPaperInfo(rule.getId(),amount,money); infoList.add(info); } } total = total/100; xzxUserRedpaperInfoService.batchInsertPaperInfo(infoList); }else if(issuanceRules.equals("1")){ int num = Integer.parseInt(redEnvelopesNum); //金额固定 for (int i = 0; i > queryRebateList(@RequestBody XzxPlatformCapitalInfoModel model) { Map map =xzxUserRedpaperRuleService.queryRebateList(model); return JsonResult.success(map); } @PostMapping(MODEL + "/addRebateRule.json") @ResponseBody @ApiOperation(value="阶梯返利-阶梯返利添加", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "rulePriceList", value = "阶梯价格列表", required = true, dataType = "List"), @ApiImplicitParam(paramType="query", name = "startTime", value = "有效开始时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "endTime", value = "有效结束时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "status", value = "开关0:关闭,1:正常", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "conversionPerUnit", value = "每台家电折算重量", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "conversionPerUnitFlag", value = "每台家电折算重量是否启用(0:不启用,1:启用)", required = true, dataType = "String") }) public JsonResult addRebateRule(@RequestBody XzxUserRebateRuleModel model){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); if(null!=partnerIds&&partnerIds.size()>0){ model.setPartnerId(partnerIds.get(0)); } List queryList = xzxUserRedpaperRuleService.queryRebateRuleList(model); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("只能添加一个阶梯规则"); } List rulePriceList = model.getRulePriceList(); List priceList = new ArrayList<>(); for (int i = 0; i rulePriceList = model.getRulePriceList(); if(rule.getRuleType().equals("5")){ rulePriceList = model.getWeightRateList(); } List priceList = new ArrayList<>(); for (int i = 0; i > queryShareInfoList(@RequestBody XzxUserShareInfoModel model) { Map map =xzxUserShareInfoService.queryShareInfoList(model); return JsonResult.success(map); } @PostMapping(MODEL + "/queryShareOrderList.json") @ResponseBody @ApiOperation(value="分享分利-下单详情", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "shareId", value = "分享ID", required = true, dataType = "String"), }) public JsonResult> queryShareOrderList(@RequestBody XzxPlatformCapitalInfoModel model) { Map map =xzxUserShareInfoService.queryShareOrderList(model); return JsonResult.success(map); } @PostMapping(MODEL + "/addShareRule.json") @ResponseBody @ApiOperation(value="分享分利-分享分利添加", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "startTime", value = "有效开始时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "endTime", value = "有效结束时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "status", value = "开关0:关闭,1:正常", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "sharingProfitType", value = "分享分利规则文案(SHARE_RATIO对应第一个文案,COMMISSION_FOR_INVITEES:第二个,DESIGNATED_USER:第三个,多个用逗号分割)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "shareRatio", value = "分享利益百分比", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "applicableObject", value = "指定用户1:全部用户,2:指定用户", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "designatedWeight", value = "指定用户规则(回收累计重量)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "issuanceRules", value = "发放规则(0:金额随机,1:金额固定)", required = true, dataType = "String") }) public JsonResult addShareRule(@RequestBody XzxUserRedpaperRuleModel model){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); if(null!=partnerIds&&partnerIds.size()>0){ model.setPartnerId(partnerIds.get(0)); } List queryList = xzxUserRedpaperRuleService.queryShareListByTime(model.getStartTime(),model.getEndTime()); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("该时间段内不允许添加分享分利规则!"); } XzxUserRedpaperRule rule = getRedpaperRule(model); boolean success = xzxUserRedpaperRuleService.save(rule); if (success) { return new JsonResult().success(); } else { return JsonResult.failMessage("添加失败"); } } @PostMapping(MODEL + "/updateShareRule.json") @ResponseBody @ApiOperation(value="分享分利-分享分利修改", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "startTime", value = "有效开始时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "endTime", value = "有效结束时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "status", value = "开关0:关闭,1:正常", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "sharingProfitType", value = "分享分利规则文案(SHARE_RATIO对应第一个文案,COMMISSION_FOR_INVITEES:第二个,DESIGNATED_USER:第三个,多个用逗号分割)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "shareRatio", value = "分享利益百分比", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "applicableObject", value = "指定用户1:全部用户,2:指定用户", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "designatedWeight", value = "指定用户规则(回收累计重量)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "id", value = "id", required = true, dataType = "String") }) public JsonResult updateShareRule(@RequestBody XzxUserRedpaperRuleModel model){ List queryList = xzxUserRedpaperRuleService.queryShareListByTime(model.getStartTime(),model.getEndTime()); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("该时间段内不允许修改分享分利规则!"); } XzxUserRedpaperRule rule = new XzxUserRedpaperRule(); rule = xzxUserRedpaperRuleService.queryById(model.getId()); if(rule!=null){ rule = getRedpaperRule(model); rule.setId(model.getId()); }else{ return JsonResult.failMessage("修改失败"); } boolean success = xzxUserRedpaperRuleService.update(rule); if (success) { return new JsonResult().success(); } else { return JsonResult.failMessage("修改失败"); } } private XzxUserRedpaperRule getRedpaperRule(XzxUserRedpaperRuleModel model){ XzxUserRedpaperRule rule = new XzxUserRedpaperRule(); rule.setId(model.getId()); rule.setStartTime(model.getStartTime()); rule.setEndTime(model.getEndTime()); rule.setRuleName(model.getRuleName()); if(model.getId()!=null){ rule.setUpdateTime(sdf.format(new Date())); }else{ rule.setCreateTime(sdf.format(new Date())); } rule.setDelFlag(0); if(null!=model.getRuleType()&&!"".equals(model.getRuleType())){ rule.setRuleType(model.getRuleType()); }else{ rule.setRuleType("2"); } rule.setSharingProfitType(model.getSharingProfitType()); rule.setShareRatio(model.getShareRatio()); rule.setStatus(model.getStatus()); rule.setRuleName(model.getRuleName()); rule.setApplicableObject(model.getApplicableObject()); rule.setDesignatedWeight(model.getDesignatedWeight()); rule.setIssuanceRules(model.getIssuanceRules()); return rule; } @PostMapping(MODEL + "/addWeightRule.json") @ResponseBody @ApiOperation(value="重量返利规则-重量返利规则添加", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "weightRateList", value = "阶梯重量列表(用户返利,合伙人,回收员的返利用逗号隔开)", required = true, dataType = "List"), @ApiImplicitParam(paramType="query", name = "startTime", value = "有效开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "有效结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "status", value = "开关0:关闭,1:正常", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "productType", value = "适用物品类型(1:废纸,2:杂纸(多选用逗号隔开))", required = true, dataType = "String") }) public JsonResult addWeightRule(@RequestBody XzxUserRebateRuleModel model){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); if(null!=partnerIds&&partnerIds.size()>0){ model.setPartnerId(partnerIds.get(0)); } List queryList = xzxUserRedpaperRuleService.queryWeightRuleList(model); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("只能添加一个重量返利规则"); } List rulePriceList = model.getWeightRateList(); List priceList = new ArrayList<>(); for (int i = 0; i > queryWeightOrderList(@RequestBody WeightOrderModel model) { Map map =xzxUserShareInfoService.queryWeightOrderList(model); return JsonResult.success(map); } @PostMapping(MODEL + "/addRoyaltyRule.json") @ResponseBody @ApiOperation(value="添加(修改)提成规则", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "royaltyRuleList", value = "提成规则", required = true, dataType = "List"), @ApiImplicitParam(paramType="query", name = "packageId", value = "打包员Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "productType", value = "3:人工审核,4:自动审核", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "timing", value = "定时执行时间(比如星期一 2点 格式为 1,2)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "id", value = "规则主键", required = true, dataType = "String") }) public JsonResult addRoyaltyRule(@RequestBody XzxUserRebateRuleModel model) { CoreUser user = platformService.getCurrentUser(); XzxCityPartner partner = cityPartnerService.queryById(user.getId()); List queryList =new ArrayList<>(); if(null!=partner){ queryList = xzxUserRedpaperRuleService.queryRoyalRuleList(user.getId()+"",model.getPackageId()); }else{ queryList = xzxUserRedpaperRuleService.queryRoyalRuleList(null,model.getPackageId()); } if(queryList!=null&&queryList.size()>0){ if(null!=model.getId()){ XzxUserRedpaperRule oldRule = queryList.get(0); List oldItemList = xzxUserShareInfoService.queryOldItemList(oldRule.getId()+""); for (RebateWeightPriceModel oldWp:oldItemList) { oldWp.setStartTime(oldRule.getStartTime()); oldWp.setEndTime(model.getStartTime()); } xzxUserShareInfoService.insertPriceHistory(oldItemList); xzxUserShareInfoService.deleteByRuleId(oldRule.getId()+""); //将老的规则写入历史数据 XzxUserRedpaperRule rule = new XzxUserRedpaperRule(); rule.setStartTime(model.getStartTime()); rule.setEndTime(model.getEndTime()); rule.setRuleName(model.getRuleName()); rule.setCreateTime(sdf.format(new Date())); rule.setDelFlag(0); rule.setRuleType("7"); rule.setStatus(model.getStatus()); rule.setApplicableObject("1"); rule.setProductType(model.getProductType()); rule.setPackageId(model.getPackageId()); rule.setPartnerId(user.getId()+""); rule.setId(model.getId()); rule.setTiming(model.getTiming()); xzxUserRedpaperRuleService.update(rule); List royaltyRuleList = model.getRoyaltyRuleList(); for (RebateWeightPriceModel model1:royaltyRuleList) { model1.setRuleId(oldRule.getId()+""); model1.setPackageId(model.getPackageId()); int count =xzxUserShareInfoService.addRoyaltyRule(model1); } return JsonResult.success("修改成功!"); }else { return JsonResult.failMessage("不能新增多条规则!"); } }else{ XzxUserRedpaperRule rule = new XzxUserRedpaperRule(); rule.setStartTime(model.getStartTime()); rule.setEndTime(model.getEndTime()); rule.setRuleName(model.getRuleName()); rule.setCreateTime(sdf.format(new Date())); rule.setDelFlag(0); rule.setRuleType("7"); rule.setStatus(model.getStatus()); rule.setApplicableObject("1"); rule.setProductType(model.getProductType()); rule.setPackageId(model.getPackageId()); rule.setPartnerId(user.getId()+""); rule.setTiming(model.getTiming()); xzxUserRedpaperRuleService.save(rule); List royaltyRuleList = model.getRoyaltyRuleList(); for (RebateWeightPriceModel model1:royaltyRuleList) { model1.setRuleId(rule.getId()+""); model1.setPackageId(model.getPackageId()); int count =xzxUserShareInfoService.addRoyaltyRule(model1); } return JsonResult.success("添加成功!"); } } @PostMapping(MODEL + "/queryRuleManage.json") @ResponseBody @ApiOperation(value="提成管理", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "name", value = "姓名或手机号", required = true, dataType = "String") }) public JsonResult> queryRoyaltyManage(@RequestBody SettlementModel model) { Map map =xzxUserShareInfoService.queryRoyaltyManage(model); return JsonResult.success(map); } @PostMapping(MODEL + "/updateRoyaltyRule.json") @ResponseBody @ApiOperation(value="提成明细批量审核", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "royaltyList", value = "传入id, status 审核状态(1:未审核,2:已审核 3:异常),price审核金额", required = true, dataType = "List"), @ApiImplicitParam(paramType="query", name = "royaltyMoney", value = "未结算提成", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "settlementMoney", value = "已结算提成", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "receiver", value = "回收员Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "flag", value = "是否可以人工审核(true,false)", required = true, dataType = "boolean") }) public JsonResult updateRoyaltyRule(@RequestBody SettlementModel model) { //判断是否有开启规则 List rule = xzxUserShareInfoService.queryRuleOpen(); if(rule.size()==0){ return JsonResult.failMessage("规则未生效,请重新设置启用后才能结算."); } int num = xzxUserShareInfoService.updateRoyaltyRule(model); if(num>0){ return JsonResult.success("结算成功!"); }else if(num==-1){ return JsonResult.failMessage("合伙人余额不足,结算失败!"); }else{ return JsonResult.failMessage("结算失败!"); } } @PostMapping(MODEL + "/queryPackageType.json") @ResponseBody @ApiOperation(value="查询打包站纸类别", notes="test: 仅0有正确返回") public JsonResult> queryPackageType() { Map map = xzxUserShareInfoService.queryPackageType(); return JsonResult.success(map); } @PostMapping(MODEL + "/addCommissionRule.json") @ResponseBody @ApiOperation(value="提佣规则添加", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "startTime", value = "有效开始时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "endTime", value = "有效结束时间", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "status", value = "开关0:关闭,1:正常", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "shareRatio", value = "每笔订单回收流水百分比", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "applicableObject", value = "指定用户1:全部合伙人", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "issuanceRules", value = "3:系统自动提佣", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleType", value = "规则类型:1:红包规则,2:分享分利规则,3:阶梯返利,5重量返利,7:提成规则,8:提佣规则", required = true, dataType = "String"), }) public JsonResult addCommissionRule(@RequestBody XzxUserRedpaperRuleModel model){ /*List queryList = xzxUserRedpaperRuleService.queryCommissioList(); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("只能添加一个提佣规则"); }*/ List queryList = xzxUserRedpaperRuleService.queryCommListByTime(model.getStartTime(),model.getEndTime(),null); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("该时间段内不允许添加提佣规则!"); } BigDecimal shareRatio = new BigDecimal(model.getShareRatio()); BigDecimal aa = shareRatio.divide(new BigDecimal("100")); model.setShareRatio(aa.toString()); XzxUserRedpaperRule rule = getRedpaperRule(model); boolean success = xzxUserRedpaperRuleService.save(rule); if (success) { return new JsonResult().success(); } else { return JsonResult.failMessage("添加失败"); } } @PostMapping(MODEL + "/updateCommissionRule.json") @ResponseBody @ApiOperation(value="提佣规则修改", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "规则Id", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "startTime", value = "有效开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "有效结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "status", value = "开关0:关闭,1:正常", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "shareRatio", value = "每笔订单回收流水百分比", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleName", value = "规则名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "applicableObject", value = "指定用户1:全部合伙人", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "issuanceRules", value = "3:系统自动提佣", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ruleType", value = "规则类型:1:红包规则,2:分享分利规则,3:阶梯返利,5重量返利,7:提成规则,8:提佣规则", required = true, dataType = "String"), }) public JsonResult updateCommissionRule(@RequestBody XzxUserRedpaperRuleModel model){ //List queryList = xzxUserRedpaperRuleService.queryCommissioList(); List queryList = xzxUserRedpaperRuleService.queryCommListByTime(model.getStartTime(),model.getEndTime(),model.getId()+""); if(queryList!=null&&queryList.size()>0){ return JsonResult.failMessage("该时间段内不允许修改提佣规则!"); } XzxUserRedpaperRule oldRule = xzxUserRedpaperRuleService.queryById(model.getId()); BigDecimal shareRatio = new BigDecimal(model.getShareRatio()); BigDecimal aa = shareRatio.divide(new BigDecimal("100")); model.setShareRatio(aa.toString()); XzxUserRedpaperRule rule = getRedpaperRule(model); boolean success = xzxUserRedpaperRuleService.update(rule); if (success) { return new JsonResult().success(); } else { return JsonResult.failMessage("添加失败"); } } @PostMapping(MODEL + "/queryAccountList.json") @ResponseBody @ApiOperation(value="提佣规则数据列表", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "limit", value = "条数", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "partnerName", value = "城市合伙人姓名/手机号", required = true, dataType = "String") }) public JsonResult> queryAccountList(@RequestBody CommissionModel model) { Map result = xzxUserRedpaperRuleService.queryAccountList(model); return JsonResult.success(result); } public JsonResult deleteCommissionRule(@RequestBody XzxUserRedpaperRuleModel model) { XzxUserRedpaperRule ru = xzxUserRedpaperRuleService.queryById(model.getId()); //删除原有规则,重新创建规则生成红包 ru.setDelFlag(1); boolean success = xzxUserRedpaperRuleService.update(ru); if (success) { return new JsonResult().success(); } else { return JsonResult.failMessage("删除失败"); } } }