package com.xzx.gc.order.controller;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.util.StrUtil;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.xzx.gc.common.Result;
|
import com.xzx.gc.common.annotations.PassToken;
|
import com.xzx.gc.common.constant.CommonEnum;
|
import com.xzx.gc.common.constant.Constants;
|
import com.xzx.gc.common.constant.UserEnum;
|
import com.xzx.gc.common.dto.log.OperationAppLog;
|
import com.xzx.gc.common.exception.RestException;
|
import com.xzx.gc.common.request.BaseController;
|
import com.xzx.gc.common.utils.BusinessUtil;
|
import com.xzx.gc.common.utils.DateUtils;
|
import com.xzx.gc.entity.*;
|
import com.xzx.gc.model.IdDTO;
|
import com.xzx.gc.model.JsonResult;
|
import com.xzx.gc.model.admin.*;
|
import com.xzx.gc.model.order.QueryRuleManageDetailDTO;
|
import com.xzx.gc.model.order.RuleParamDto;
|
import com.xzx.gc.model.order.SettlePageDTO;
|
import com.xzx.gc.model.order.UpdateRoyaltyRuleDTO;
|
import com.xzx.gc.model.query.XzxUserRedpaperRuleQuery;
|
import com.xzx.gc.order.dto.RuleDto;
|
import com.xzx.gc.order.service.*;
|
import com.xzx.gc.util.DateUtil;
|
import com.xzx.gc.util.SessionUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.sql.Struct;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author :zz
|
*/
|
@RestController
|
@Api(tags = {"规则管理"})
|
@Validated
|
public class RuleController extends BaseController {
|
|
@Autowired
|
private RedPaperRuleService redPaperRuleService;
|
|
@Autowired
|
private RedPaperService redPaperService;
|
@Autowired
|
private RuleService ruleService;
|
|
@Autowired
|
SessionUtil sessionUtil;
|
@Autowired
|
CityPartnerService cityPartnerService;
|
|
@Autowired
|
RebateRuleService rebateRuleService;
|
|
@Autowired
|
UserShareService userShareService;
|
|
@Autowired
|
private AddressService addressService;
|
|
@Autowired
|
private PartnerGaodeService partnerGaodeService;
|
|
@Autowired
|
private WeightItemPriceService weightItemPriceService;
|
|
@Autowired
|
private BusinessUtil businessUtil;
|
|
|
|
|
@PostMapping("/rule/findShareRebate")
|
@ApiOperation(value = "查询分享返利的规则", notes = "extra:经纬度逗号拼接")
|
@PassToken
|
public Result<RuleDto> findShareRebate(HttpServletRequest request, @RequestBody RuleParamDto ruleParamDto) {
|
String userId = getUserId(request);
|
|
UserInfo userInfo = null;
|
String partnerId = null;
|
|
if (StrUtil.isBlank(userId)) {
|
if (StrUtil.isBlank(ruleParamDto.getExtra())) {
|
return Result.error(-3, "未发现分享返利规则");
|
}
|
AddressInfo byLon = addressService.getByLon(ruleParamDto.getExtra().split(",")[0], ruleParamDto.getExtra().split(",")[1]);
|
if (byLon != null) {
|
partnerId = partnerGaodeService.findPartnerIdByAddress(byLon);
|
}
|
} else {
|
partnerId = partnerGaodeService.findPartnerIdByUserId(userId, 0);
|
}
|
|
if (partnerId != null) {
|
RedPaperRule one = redPaperRuleService.getOne(UserEnum.分享分利规则.getValue(), partnerId);
|
if (one != null) {
|
RuleDto ruleDto = new RuleDto();
|
ruleDto.setScale(one.getShareRatio());
|
UserInfo userInfo1 = new UserInfo();
|
if (userInfo != null) {
|
userInfo1.setMobilePhone(businessUtil.changeMobile(userInfo.getMobilePhone()));
|
}
|
ruleDto.setUserinfo(userInfo1);
|
return Result.success(ruleDto);
|
}
|
}
|
|
|
return Result.error(-3, "未发现分享返利规则");
|
|
|
}
|
|
@PostMapping("/rule/findStepRebate")
|
@ApiOperation(value = "查询阶梯返利的规则")
|
public Result<RuleDto> findStepRebate(HttpServletRequest request, @RequestBody RuleParamDto ruleParamDto) {
|
String userId = getUserId(request);
|
String partnerId = partnerGaodeService.findPartnerIdByUserId(userId, ruleParamDto.getType());
|
RuleDto ruleDto = ruleService.findStepRebate(userId, false, partnerId);
|
return Result.success(ruleDto);
|
}
|
|
|
@PostMapping("/rule/findWeightRebate")
|
@ApiOperation(value = "查询重量返利的规则")
|
public Result<RuleDto> findWeightRebate(HttpServletRequest request, @RequestBody RuleParamDto ruleParamDto) {
|
RuleDto ruleDto = new RuleDto();
|
String partnerIdByUserId = partnerGaodeService.findPartnerIdByUserId(getUserId(request), ruleParamDto.getType());
|
RedPaperRule one = redPaperRuleService.getOne(UserEnum.重量返利规则.getValue(), partnerIdByUserId);
|
if (one != null) {
|
List<RebateRule> rebateRules = ruleService.getRebateRules(one);
|
ruleDto.setRebateRules(rebateRules);
|
String s = ruleService.changeProductType(one.getProductType());
|
ruleDto.setProductType(s);
|
}
|
return Result.success(ruleDto);
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/redRuleList.json")
|
@ApiOperation(value = "红包记录-红包规则", notes = "test: 仅0有正确返回")
|
public JsonResult<Map<String, Object>> redRuleList(@RequestBody XzxUserRedpaperRuleQuery condtion) {
|
CoreUser user = sessionUtil.getCurrentUser();
|
|
if (StrUtil.isBlank(condtion.getPartnerId())) {
|
CityPartner partner = cityPartnerService.queryById(user.getId());
|
if (null != partner) {
|
condtion.setPartnerId(partner.getId() + "");
|
}
|
}
|
|
Map<String, Object> map = redPaperRuleService.queryByCondition(condtion, condtion.getRuleType());
|
return JsonResult.success(map);
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/add.json")
|
@ApiOperation(value = "红包规则-添加红包规则", notes = "test: 仅0有正确返回")
|
public JsonResult add(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
JsonResult jsonResult = redPaperService.addRedPaper(model);
|
if (jsonResult.getCode() == 0) {
|
//根据规则生成红包
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("添加红包规则-" + jsonResult.getData()).build();
|
mqUtil.sendApp(build);
|
}
|
|
return jsonResult;
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/edit.json")
|
@ApiOperation(value = "红包规则-修改红包规则", notes = "test: 仅0有正确返回")
|
public JsonResult<String> update(@RequestBody Map<String, Object> map, HttpServletRequest request) {
|
JsonResult jsonResult = redPaperService.updateRedPaper(map);
|
if (jsonResult.getCode() == 0) {
|
//根据规则生成红包
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("修改红包规则-" + jsonResult.getData()).build();
|
mqUtil.sendApp(build);
|
}
|
|
return jsonResult;
|
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/delete.json")
|
@ApiOperation(value = "红包记录-删除红包规则(分享分利规则)", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "id", value = "规则Id", required = false, dataType = "Integer")
|
})
|
public JsonResult delete(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
//先退回再删除
|
CoreUser user = sessionUtil.getCurrentUser();
|
CityPartner partner = cityPartnerService.queryById(user.getId());
|
RedPaperRule rule = redPaperRuleService.queryById(model.getId());
|
if (rule.getRuleType().equals("1")) {
|
String msg = redPaperService.cancelRedPaper1(partner, rule.getRuleType());
|
if (null != msg) {
|
return JsonResult.failMessage(msg);
|
}
|
}
|
|
RedPaperRule ru = redPaperRuleService.queryById(model.getId());
|
//删除原有规则,重新创建规则生成红包
|
ru.setDelFlag((short) 1);
|
boolean success = redPaperRuleService.update(ru);
|
if (rule.getRuleType().equals("1")) {
|
redPaperService.deletePaperByRuleId(ru.getId());
|
|
} else if (rule.getRuleType().equals("3")) {
|
redPaperService.deleteJtRuleId(ru.getId());
|
}
|
if (success) {
|
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("删除红包规则-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
} else {
|
return JsonResult.failMessage("删除失败");
|
}
|
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/isStart.json")
|
@ApiOperation(value = "红包记录-规则(是否启用 通用)", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "id", value = "规则Id", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer")
|
|
})
|
public JsonResult isStart(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
JsonResult<Object> objectJsonResult = redPaperService.openRule(model);
|
if (objectJsonResult.getCode() == 0) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("规则启用或关闭-" + model.getId()).build();
|
mqUtil.sendApp(build);
|
}
|
return objectJsonResult;
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/queryRebateList.do")
|
@ApiOperation(value = "阶梯返利(查询列表)", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "mobilePhone", value = "手机号(昵称)", required = false, dataType = "String")
|
})
|
public JsonResult<Map<String, Object>> queryRebateList(@RequestBody XzxPlatformCapitalInfoModel model) {
|
Map<String, Object> map = redPaperRuleService.queryRebateList(model);
|
return JsonResult.success(map);
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/queryShareInfoList.do")
|
@ApiOperation(value = "分享分利", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "name", value = "邀请人", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "mobilePhone", value = "邀请人手机号", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "registerName", value = "被邀请人", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "registerMobilePhone", value = "被邀请人手机号", required = false, dataType = "String")
|
})
|
public JsonResult<Map<String, Object>> queryShareInfoList(@RequestBody XzxUserShareInfoModel model) {
|
Map<String, Object> map = userShareService.queryShareInfoList(model);
|
return JsonResult.success(map);
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/queryShareOrderList.json")
|
@ApiOperation(value = "分享分利-下单详情", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "shareId", value = "邀请人ID", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "invitedUserId", value = "被邀请人ID", required = false, dataType = "String"),
|
})
|
public JsonResult<Map<String, Object>> queryShareOrderList(@RequestBody XzxPlatformCapitalInfoModel model) {
|
Map<String, Object> map = userShareService.queryShareOrderList(model);
|
return JsonResult.success(map);
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/addShareRule.json")
|
@ApiOperation(value = "分享分利-分享分利添加", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "sharingProfitType", value = "分享分利规则文案(SHARE_RATIO对应第一个文案,COMMISSION_FOR_INVITEES:第二个,DESIGNATED_USER:第三个,多个用逗号分割)", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "shareRatio", value = "分享利益百分比", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "applicableObject", value = "指定用户1:全部用户,2:指定用户", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "designatedWeight", value = "指定用户规则(回收累计重量)", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "issuanceRules", value = "发放规则(0:金额随机,1:金额固定)", required = false, dataType = "String")
|
})
|
public JsonResult addShareRule(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds && partnerIds.size() > 0) {
|
model.setPartnerId(partnerIds.get(0));
|
} else {
|
throw new RestException("非法操作");
|
}
|
|
redPaperService.checkRuleTime(model, UserEnum.分享分利规则.getValue());
|
|
|
RedPaperRule rule = getRedpaperRule(model);
|
rule.setPartnerId(partnerIds.get(0));
|
boolean success = redPaperRuleService.save(rule);
|
if (success) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("分享分利添加-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
} else {
|
return JsonResult.failMessage("添加失败");
|
}
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/updateShareRule.json")
|
@ApiOperation(value = "分享分利-分享分利修改", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "sharingProfitType", value = "分享分利规则文案(SHARE_RATIO对应第一个文案,COMMISSION_FOR_INVITEES:第二个,DESIGNATED_USER:第三个,多个用逗号分割)", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "shareRatio", value = "分享利益百分比", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "applicableObject", value = "指定用户1:全部用户,2:指定用户", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "designatedWeight", value = "指定用户规则(回收累计重量)", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = false, dataType = "String")
|
|
})
|
public JsonResult updateShareRule(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds) {
|
model.setPartnerId(partnerIds.get(0));
|
} else {
|
throw new RestException("非法操作");
|
}
|
|
redPaperService.checkRuleTime(model, UserEnum.分享分利规则.getValue());
|
|
RedPaperRule rule = new RedPaperRule();
|
rule = redPaperRuleService.queryById(model.getId());
|
if (rule != null) {
|
rule = getRedpaperRule(model);
|
rule.setId(model.getId());
|
} else {
|
return JsonResult.failMessage("修改失败");
|
}
|
boolean success = redPaperRuleService.update(rule);
|
if (success) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("分享分利或重量返利修改-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
} else {
|
return JsonResult.failMessage("修改失败");
|
}
|
}
|
|
private RedPaperRule getRedpaperRule(XzxUserRedpaperRuleModel model) {
|
RedPaperRule rule = new RedPaperRule();
|
rule.setId(model.getId());
|
rule.setStartTime(model.getStartTime());
|
rule.setEndTime(model.getEndTime());
|
rule.setRuleName(model.getRuleName());
|
if (model.getId() != null) {
|
rule.setUpdateTime(cn.hutool.core.date.DateUtil.now());
|
} else {
|
rule.setCreateTime(cn.hutool.core.date.DateUtil.now());
|
}
|
rule.setDelFlag((short) 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( "/admin/front/xzxUserRedpaperRule/addWeightRule.json")
|
@ApiOperation(value = "重量返利规则-重量返利规则添加", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "weightRateList", value = "阶梯重量列表(用户返利,合伙人,回收员的返利用逗号隔开)", required = false, dataType = "List<XzxRebateRulePrice>"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "productType", value = "适用物品类型(1:废纸,2:杂纸(多选用逗号隔开))", required = false, dataType = "String")
|
|
})
|
public JsonResult addWeightRule(@RequestBody XzxUserRebateRuleModel model, HttpServletRequest request) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds && partnerIds.size() > 0) {
|
model.setPartnerId(partnerIds.get(0));
|
} else {
|
throw new RestException("非法操作");
|
}
|
|
|
// List<RedPaperRule> queryList = redPaperRuleService.queryWeightRuleList(model);
|
// if (queryList != null && queryList.size() > 0) {
|
// return JsonResult.failMessage("只能添加一个重量返利规则");
|
// }
|
//查看是否有开启的重量返利
|
// if (model.getStatus() == 1) {
|
// List<RedPaperRule> queryRebateList = redPaperRuleService.queryRebateRuleList(model);
|
// if (queryRebateList != null && queryRebateList.size() > 0) {
|
// return JsonResult.failMessage("阶梯返利规则和重量返利不能同时开启!");
|
// }
|
// }
|
|
XzxUserRedpaperRuleModel model1 = new XzxUserRedpaperRuleModel();
|
BeanUtil.copyProperties(model, model1);
|
redPaperService.checkRuleTime(model1, UserEnum.重量返利规则.getValue());
|
|
try {
|
redPaperService.checkRuleTime(model1, UserEnum.阶梯返利规则.getValue());
|
} catch (RestException e) {
|
return JsonResult.failMessage("阶梯返利规则和重量返利不能同时开启");
|
}
|
|
List<RebateRule> rulePriceList = model.getWeightRateList();
|
List<String> priceList = new ArrayList<>();
|
for (int i = 0; i < rulePriceList.size(); i++) {
|
priceList.add(rulePriceList.get(i).getWeight());
|
}
|
boolean bool = DateUtil.isSorted(priceList, priceList.size());
|
if (!bool) {
|
return JsonResult.failMessage("重量必须按顺序排列");
|
}
|
RedPaperRule rule = new RedPaperRule();
|
rule.setStartTime(model.getStartTime());
|
rule.setEndTime(model.getEndTime());
|
rule.setRuleName("按重量返利规则");
|
rule.setCreateTime(cn.hutool.core.date.DateUtil.now());
|
rule.setDelFlag((short) 0);
|
rule.setRuleType("5");
|
rule.setStatus(model.getStatus());
|
rule.setApplicableObject("1");
|
rule.setProductType(model.getProductType());
|
rule.setPartnerId(model.getPartnerId());
|
redPaperRuleService.save(rule);
|
if (rule.getId() != null) {
|
for (int i = 0; i < rulePriceList.size(); i++) {
|
RebateRule rulePrice = rulePriceList.get(i);
|
rulePrice.setCreateTime(cn.hutool.core.date.DateUtil.now());
|
rulePrice.setRuleId(Long.parseLong(rule.getId() + ""));
|
rulePrice.setSort(String.valueOf(i + 1));
|
rulePrice.setDelFlag((short) 0);
|
rebateRuleService.save(rulePrice);
|
}
|
}
|
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("重量返利规则添加-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/addRebateRule.json")
|
@ApiOperation(value = "阶梯返利-阶梯返利添加", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "rulePriceList", value = "阶梯价格列表", required = false, dataType = "List<XzxRebateRulePrice>"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "conversionPerUnit", value = "每台家电折算重量", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "conversionPerUnitFlag", value = "每台家电折算重量是否启用(0:不启用,1:启用)", required = false, dataType = "String")
|
|
})
|
public JsonResult addRebateRule(@RequestBody XzxUserRebateRuleModel model, HttpServletRequest request) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds && partnerIds.size() > 0) {
|
model.setPartnerId(partnerIds.get(0));
|
} else {
|
throw new RestException("非法操作");
|
}
|
// List<RedPaperRule> queryList = redPaperRuleService.queryRebateRuleList(model);
|
// if (queryList != null && queryList.size() > 0) {
|
// return JsonResult.failMessage("只能添加一个阶梯规则!");
|
// }
|
|
|
//查看是否有开启的重量返利
|
// if (model.getStatus() == 1) {
|
// List<RedPaperRule> queryWeightList = redPaperRuleService.queryWeightRuleList(model);
|
// if (queryWeightList != null && queryWeightList.size() > 0) {
|
// return JsonResult.failMessage("阶梯返利规则和重量返利不能同时开启!");
|
// }
|
// }
|
|
XzxUserRedpaperRuleModel model1 = new XzxUserRedpaperRuleModel();
|
BeanUtil.copyProperties(model, model1);
|
redPaperService.checkRuleTime(model1, UserEnum.阶梯返利规则.getValue());
|
|
|
try {
|
redPaperService.checkRuleTime(model1, UserEnum.重量返利规则.getValue());
|
} catch (RestException e) {
|
return JsonResult.failMessage("阶梯返利规则和重量返利不能同时开启");
|
}
|
|
List<RebateRule> rulePriceList = model.getRulePriceList();
|
List<String> priceList = new ArrayList<>();
|
for (int i = 0; i < rulePriceList.size(); i++) {
|
priceList.add(rulePriceList.get(i).getRate());
|
}
|
boolean bool = DateUtil.isSorted(priceList, priceList.size());
|
if (!bool) {
|
return JsonResult.failMessage("阶梯价格必须按顺序排列");
|
}
|
RedPaperRule rule = new RedPaperRule();
|
rule.setConversionPerUnit(model.getConversionPerUnit());
|
rule.setStartTime(model.getStartTime());
|
rule.setEndTime(model.getEndTime());
|
rule.setRuleName("阶梯价格规则");
|
rule.setCreateTime(cn.hutool.core.date.DateUtil.now());
|
rule.setDelFlag((short) 0);
|
rule.setRuleType("3");
|
rule.setStatus(model.getStatus());
|
rule.setApplicableObject("1");
|
rule.setConversionPerUnitFlag(model.getConversionPerUnitFlag());
|
rule.setPartnerId(model.getPartnerId());
|
rule.setSharingProfitType("REBATE_ONE,REBATE_TWO,REBATE_THREE");
|
redPaperRuleService.save(rule);
|
if (rule.getId() != null) {
|
for (int i = 0; i < rulePriceList.size(); i++) {
|
RebateRule rulePrice = rulePriceList.get(i);
|
rulePrice.setCreateTime(cn.hutool.core.date.DateUtil.now());
|
rulePrice.setRuleId(Long.parseLong(rule.getId() + ""));
|
rulePrice.setSort(String.valueOf(i + 1));
|
rulePrice.setDelFlag((short) 0);
|
rebateRuleService.save(rulePrice);
|
}
|
}
|
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("阶梯返利添加-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
|
|
return new JsonResult().success();
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/updateRebateRule.json")
|
@ApiOperation(value = "阶梯返利-阶梯返利修改(重量规则修改)", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "rulePriceList", value = "阶梯价格列表", required = false, dataType = "List<XzxRebateRulePrice>"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "conversionPerUnit", value = "每台家电折算重量", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "conversionPerUnitFlag", value = "每台家电折算重量是否启用(0:不启用,1:启用)", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "id", value = "规则ID", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleType", value = "规则类型", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "weightRateList", value = "重量规则", required = false, dataType = "String")
|
})
|
public JsonResult updateRebateRule(@RequestBody Map<String, Object> map, HttpServletRequest request) {
|
|
JsonResult jsonResult = redPaperService.updateRebateRule(map);
|
if (jsonResult.getCode() == 0) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("阶梯返利修改(重量规则修改)-" + jsonResult.getData()).build();
|
mqUtil.sendApp(build);
|
}
|
return jsonResult;
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/queryWeightOrderList.json")
|
@ApiOperation(value = "重量返利-下单详情", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "nickName", value = "用户昵称或手机号", required = false, dataType = "String")
|
})
|
public JsonResult<Map<String, Object>> queryWeightOrderList(@RequestBody WeightOrderModel model) {
|
Map<String, Object> map = userShareService.queryWeightOrderList(model);
|
return JsonResult.success(map);
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/addRoyaltyRule.json")
|
@ApiOperation(value = "添加(修改)提成规则", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "royaltyRuleList", value = "提成规则", required = false, dataType = "List<RebateWeightPriceModel>"),
|
@ApiImplicitParam(paramType = "query", name = "packageId", value = "打包员Id", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "productType", value = "3:人工审核,4:自动审核", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "timing", value = "定时执行时间(比如星期一 2点 格式为 1,2)", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "id", value = "规则主键", required = false, dataType = "String")
|
})
|
public JsonResult<Integer> addRoyaltyRule(@RequestBody XzxUserRebateRuleModel model, HttpServletRequest request) {
|
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds && partnerIds.size() > 0) {
|
model.setPartnerId(partnerIds.get(0));
|
} else {
|
throw new RestException("非法操作");
|
}
|
|
|
//时间交叉判断
|
XzxUserRedpaperRuleModel model2 = new XzxUserRedpaperRuleModel();
|
BeanUtil.copyProperties(model, model2);
|
redPaperService.checkRuleTime(model2, UserEnum.提成规则.getValue());
|
|
|
if (StrUtil.isNotBlank(model.getPackageId())) {
|
|
|
JsonResult<Integer> stringJsonResult = weightItemPriceService.addRoyaltyRule(model);
|
if(stringJsonResult.getCode()==0) {
|
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("添加(修改)提成规则-" + stringJsonResult.getData()).build();
|
mqUtil.sendApp(build);
|
}
|
return stringJsonResult;
|
} else {
|
return JsonResult.failMessage("打包站不能为空!");
|
}
|
|
|
}
|
|
|
@PostMapping(Constants.ADMIN_VIEW_PREFIX + "/xzxUserRedpaperRule/queryPackageType.json")
|
@ResponseBody
|
@ApiOperation(value = "查询打包站纸类别", notes = "test: 仅0有正确返回")
|
public JsonResult<Map<String, Object>> queryPackageType(@RequestBody XzxCityPartnerModel model) {
|
String packageId = "";
|
if (null != model) {
|
packageId = model.getId();
|
}
|
|
Map<String, Object> map = userShareService.queryPackageType(packageId);
|
return JsonResult.success(map);
|
}
|
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/addCommissionRule.json")
|
@ApiOperation(value = "提佣规则添加", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "shareRatio", value = "每笔订单回收流水百分比", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "applicableObject", value = "指定用户1:全部合伙人", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "issuanceRules", value = "3:系统自动提佣", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleType", value = "规则类型:1:红包规则,2:分享分利规则,3:阶梯返利,5重量返利,7:提成规则,8:提佣规则", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "partnerId", value = "合伙人ID", required = false, dataType = "String"),
|
})
|
public JsonResult addCommissionRule(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
|
redPaperService.checkRuleTime(model, UserEnum.提佣规则.getValue());
|
|
BigDecimal shareRatio = new BigDecimal(model.getShareRatio());
|
BigDecimal aa = shareRatio.divide(new BigDecimal("100"));
|
model.setShareRatio(aa.toString());
|
RedPaperRule rule = getRedpaperRule(model);
|
rule.setPartnerId(model.getPartnerId());
|
boolean success = redPaperRuleService.save(rule);
|
if (success) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("提佣规则添加-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
} else {
|
return JsonResult.failMessage("添加失败");
|
}
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/updateCommissionRule.json")
|
@ApiOperation(value = "提佣规则修改", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "id", value = "规则Id", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "有效开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "有效结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "status", value = "开关0:关闭,1:正常", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "shareRatio", value = "每笔订单回收流水百分比", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleName", value = "规则名称", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "applicableObject", value = "指定用户1:全部合伙人", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "issuanceRules", value = "3:系统自动提佣", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "ruleType", value = "规则类型:1:红包规则,2:分享分利规则,3:阶梯返利,5重量返利,7:提成规则,8:提佣规则", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "partnerId", value = "合伙人ID", required = false, dataType = "String"),
|
})
|
public JsonResult updateCommissionRule(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
//List<RedPaperRule> queryList = redPaperRuleService.queryCommissioList();
|
// List<RedPaperRule> queryList = redPaperRuleService.queryCommListByTime(model.getStartTime(), model.getEndTime(), model.getId() + "");
|
// if (queryList != null && queryList.size() > 0) {
|
// return JsonResult.failMessage("该时间段内不允许修改提佣规则!");
|
// }
|
|
redPaperService.checkRuleTime(model, UserEnum.提佣规则.getValue());
|
|
BigDecimal shareRatio = new BigDecimal(model.getShareRatio());
|
BigDecimal aa = shareRatio.divide(new BigDecimal("100"));
|
model.setShareRatio(aa.toString());
|
RedPaperRule rule = getRedpaperRule(model);
|
rule.setPartnerId(model.getPartnerId());
|
boolean success = redPaperRuleService.update(rule);
|
if (success) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("提佣规则修改-" + rule.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
} else {
|
return JsonResult.failMessage("添加失败");
|
}
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/queryAccountList.json")
|
@ApiOperation(value = "提佣规则数据列表", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "limit", value = "条数", required = false, dataType = "Integer"),
|
@ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "partnerName", value = "城市合伙人姓名/手机号", required = false, dataType = "String")
|
})
|
public JsonResult<Map<String, Object>> queryAccountList(@RequestBody CommissionModel model) {
|
|
Map<String, Object> result = redPaperRuleService.queryAccountList(model);
|
return JsonResult.success(result);
|
}
|
|
@PostMapping( "/admin/front/xzxUserRedpaperRule/deleteCommissionRule.json")
|
@ApiOperation(value = "提佣规则删除", notes = "test: 仅0有正确返回")
|
public JsonResult deleteCommissionRule(@RequestBody XzxUserRedpaperRuleModel model, HttpServletRequest request) {
|
RedPaperRule ru = redPaperRuleService.queryById(model.getId());
|
//删除原有规则,重新创建规则生成红包
|
ru.setDelFlag((short) 1);
|
redPaperRuleService.update(ru);
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.ORDER_MODUL_NAME).operateAction("提佣规则删除-" + model.getId()).build();
|
mqUtil.sendApp(build);
|
return new JsonResult().success();
|
}
|
|
}
|