Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
825264b83f
|
@ -38,7 +38,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
|||
/**
|
||||
* 商城重消
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal backPoints;
|
||||
//
|
||||
// /**
|
||||
|
@ -59,7 +59,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
|||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal repurRangeIncome;
|
||||
|
||||
// /**
|
||||
|
@ -76,55 +76,55 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
|||
/**
|
||||
* 新零售直推收益
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailRangeIncome;
|
||||
|
||||
/**
|
||||
* 新零售平级收益
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailSameLevelIncome;
|
||||
|
||||
/**
|
||||
* 新零售区域分红
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailAreaIncome;
|
||||
|
||||
/**
|
||||
* 福利级差收益
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailBenefitRangeIncome;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailMonthRepurchaseIncome;
|
||||
|
||||
/**
|
||||
* 培育津贴
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal coachIncome;
|
||||
|
||||
/**
|
||||
* 福利分红收益总计
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailBenefitIncomeTotal;
|
||||
|
||||
/**
|
||||
* 新零售收益小计
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal retailRealSubtotal;
|
||||
|
||||
/**
|
||||
* 实发收益总计
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
@BigDecimalFormat("#0.00")
|
||||
private BigDecimal realIncomeTotal;
|
||||
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
|
|||
import com.hzs.member.base.dto.MemberCountDTO;
|
||||
import com.hzs.member.base.param.*;
|
||||
import com.hzs.member.base.vo.*;
|
||||
import com.hzs.member.census.param.CensusSummaryParam;
|
||||
import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
|
||||
import com.hzs.member.handlebusiness.vo.HandleBusinessVO;
|
||||
import com.hzs.member.marketnews.param.MarketNewsParam;
|
||||
|
@ -628,4 +629,12 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
|
||||
String getSharePosterImage(@Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 查询业绩汇总
|
||||
*
|
||||
* @param censusSummaryParam
|
||||
* @return
|
||||
*/
|
||||
List<MemberMeritsSummaryVo> queryDateBySummary(CensusSummaryParam censusSummaryParam);
|
||||
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ import com.hzs.member.base.dto.ShowWaresDTO;
|
|||
import com.hzs.member.base.dto.ZeroElementRevokeDTO;
|
||||
import com.hzs.member.base.param.*;
|
||||
import com.hzs.member.base.vo.*;
|
||||
import com.hzs.member.census.param.CensusSummaryParam;
|
||||
import com.hzs.member.census.vo.CensusSummaryVo;
|
||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||
import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
|
||||
import com.hzs.member.handlebusiness.vo.HandleBusinessVO;
|
||||
|
@ -900,4 +902,13 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
* @return
|
||||
*/
|
||||
String getSharePosterImage();
|
||||
|
||||
/**
|
||||
* 查询汇总
|
||||
*
|
||||
* @param censusSummaryParam 表格名称
|
||||
* @return
|
||||
*/
|
||||
List<CensusSummaryVo> selectCensusSummary(CensusSummaryParam censusSummaryParam, List<String> days);
|
||||
|
||||
}
|
||||
|
|
|
@ -42,6 +42,8 @@ import com.hzs.member.base.mapper.CuMemberMapper;
|
|||
import com.hzs.member.base.param.*;
|
||||
import com.hzs.member.base.service.*;
|
||||
import com.hzs.member.base.vo.*;
|
||||
import com.hzs.member.census.param.CensusSummaryParam;
|
||||
import com.hzs.member.census.vo.CensusSummaryVo;
|
||||
import com.hzs.member.detail.service.ICuMemberServiceLogService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
|
||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||
|
@ -3237,4 +3239,66 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
return baseMapper.getSharePosterImage(SecurityUtils.getUserId());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<CensusSummaryVo> selectCensusSummary(CensusSummaryParam censusSummaryParam, List<String> days) {
|
||||
// 根据类型查询所有人各类型的订单业绩汇总
|
||||
List<CensusSummaryVo> censusSummaryList = new ArrayList<>();
|
||||
for (String day : days) {
|
||||
censusSummaryParam.setTime(day);
|
||||
List<MemberMeritsSummaryVo> memberMeritsSummaryVoList = baseMapper.queryDateBySummary(censusSummaryParam);
|
||||
Map<Integer, MemberMeritsSummaryVo> memberMeritsSummaryMap = memberMeritsSummaryVoList.stream().collect(Collectors.toMap(MemberMeritsSummaryVo::getOrderType, Function.identity()));
|
||||
|
||||
CensusSummaryVo censusSummaryVo = new CensusSummaryVo();
|
||||
censusSummaryVo.setSettleDate(day);
|
||||
|
||||
// 注册
|
||||
BigDecimal reAmount = BigDecimal.ZERO;
|
||||
BigDecimal reAchieve = BigDecimal.ZERO;
|
||||
if (memberMeritsSummaryMap.get(EOrderType.REGISTER_ORDER.getValue()) != null) {
|
||||
reAmount = memberMeritsSummaryMap.get(EOrderType.REGISTER_ORDER.getValue()).getAmount();
|
||||
reAchieve = memberMeritsSummaryMap.get(EOrderType.REGISTER_ORDER.getValue()).getAchieve();
|
||||
}
|
||||
censusSummaryVo.setRegisterAmount(reAmount);
|
||||
censusSummaryVo.setRegisterPv(reAchieve);
|
||||
|
||||
// 升级
|
||||
BigDecimal upAmount = BigDecimal.ZERO;
|
||||
BigDecimal upAchieve = BigDecimal.ZERO;
|
||||
if (memberMeritsSummaryMap.get(EOrderType.UPGRADE_ORDER.getValue()) != null) {
|
||||
upAmount = memberMeritsSummaryMap.get(EOrderType.UPGRADE_ORDER.getValue()).getAmount();
|
||||
upAchieve = memberMeritsSummaryMap.get(EOrderType.UPGRADE_ORDER.getValue()).getAchieve();
|
||||
}
|
||||
censusSummaryVo.setUpgradeAmount(upAmount);
|
||||
censusSummaryVo.setUpgradePv(upAchieve);
|
||||
|
||||
// 首购
|
||||
censusSummaryVo.setFirstPurchaseAmount(censusSummaryVo.getRegisterAmount().add(censusSummaryVo.getUpgradeAmount()));
|
||||
censusSummaryVo.setFirstPurchasePv(censusSummaryVo.getRegisterPv().add(censusSummaryVo.getUpgradePv()));
|
||||
|
||||
// 复购订单
|
||||
BigDecimal repurchaseAmount = BigDecimal.ZERO;
|
||||
BigDecimal repurchaseAchieve = BigDecimal.ZERO;
|
||||
if (memberMeritsSummaryMap.get(EOrderType.REPURCHASE_ORDER.getValue()) != null) {
|
||||
repurchaseAmount = memberMeritsSummaryMap.get(EOrderType.REPURCHASE_ORDER.getValue()).getAmount();
|
||||
repurchaseAchieve = memberMeritsSummaryMap.get(EOrderType.REPURCHASE_ORDER.getValue()).getAchieve();
|
||||
}
|
||||
// 复消
|
||||
if (memberMeritsSummaryMap.get(EOrderType.CONSUME_ORDER.getValue()) != null) {
|
||||
repurchaseAmount = repurchaseAmount.add(memberMeritsSummaryMap.get(EOrderType.CONSUME_ORDER.getValue()).getAmount());
|
||||
}
|
||||
|
||||
// 复购
|
||||
censusSummaryVo.setRepurchaseAmount(repurchaseAmount);
|
||||
censusSummaryVo.setRepurchasePv(repurchaseAchieve);
|
||||
|
||||
// 金额总计
|
||||
censusSummaryVo.setAmountTotal(censusSummaryVo.getFirstPurchaseAmount().add(censusSummaryVo.getRepurchaseAmount()));
|
||||
// 业绩汇总
|
||||
censusSummaryVo.setPvTotal(censusSummaryVo.getFirstPurchasePv().add(censusSummaryVo.getRepurchasePv()));
|
||||
censusSummaryList.add(censusSummaryVo);
|
||||
}
|
||||
return censusSummaryList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
package com.hzs.member.census.controller.manage;
|
||||
|
||||
import com.hzs.common.core.annotation.AccessPermissions;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.member.census.param.CensusSummaryParam;
|
||||
import com.hzs.member.census.vo.CensusSummaryVo;
|
||||
import com.hzs.system.sys.IMenuColumnServiceApi;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/manage/member-structure")
|
||||
public class CensusSummaryController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
|
||||
@DubboReference
|
||||
IMenuColumnServiceApi iMenuColumnServiceApi;
|
||||
|
||||
/**
|
||||
* 业绩汇总
|
||||
*
|
||||
* @param censusSummaryParam
|
||||
* @return
|
||||
*/
|
||||
@AccessPermissions("performanceTotal")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(CensusSummaryParam censusSummaryParam) {
|
||||
if (null == censusSummaryParam.getStartDate()
|
||||
|| null == censusSummaryParam.getEndDate()) {
|
||||
return AjaxResult.success(new ArrayList<>());
|
||||
}
|
||||
|
||||
List<Long> pkVertex = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(censusSummaryParam.getPkBdVertexStr())) {
|
||||
pkVertex = Arrays.stream(censusSummaryParam.getPkBdVertexStr().split(","))
|
||||
.map(Long::parseLong)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
censusSummaryParam.setPkVertex(pkVertex);
|
||||
|
||||
// 当天查询秒结
|
||||
Date date = new Date();
|
||||
// 查询当天
|
||||
String thisTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date);
|
||||
// 查询当前时间范围
|
||||
List<String> days = new ArrayList<>();
|
||||
if (censusSummaryParam.getStartDate() != null && censusSummaryParam.getEndDate() != null) {
|
||||
days = DateUtils.findDaysStr(DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getStartDate()), DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getEndDate()));
|
||||
} else {
|
||||
// 默认查询当天
|
||||
days.add(thisTime);
|
||||
}
|
||||
|
||||
censusSummaryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<CensusSummaryVo> resultList = iCuMemberService.selectCensusSummary(censusSummaryParam, days);
|
||||
|
||||
return AjaxResult.success(resultList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出(导出)
|
||||
*/
|
||||
@PostMapping("/export")
|
||||
public void export(CensusSummaryParam censusSummaryParam, HttpServletResponse response) {
|
||||
if (null == censusSummaryParam.getStartDate()
|
||||
|| null == censusSummaryParam.getEndDate()) {
|
||||
ExcelUtil<CensusSummaryVo> util = new ExcelUtil<>(CensusSummaryVo.class);
|
||||
util.exportExcel(response, new ArrayList<>(), "业绩汇总信息");
|
||||
}
|
||||
|
||||
// 当天查询秒结
|
||||
Date date = new Date();
|
||||
// 查询当天
|
||||
String thisTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date);
|
||||
if (censusSummaryParam.getMemberSettlePeriodId() != null) {
|
||||
iCuMemberSettlePeriodService.getById(censusSummaryParam.getMemberSettlePeriodId());
|
||||
} else {
|
||||
iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(thisTime);
|
||||
}
|
||||
|
||||
// 查询当前时间范围
|
||||
List<String> days = new ArrayList<>();
|
||||
if (censusSummaryParam.getStartDate() != null && censusSummaryParam.getEndDate() != null) {
|
||||
days = DateUtils.findDaysStr(DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getStartDate()), DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, censusSummaryParam.getEndDate()));
|
||||
} else {
|
||||
// 默认查询当天
|
||||
days.add(thisTime);
|
||||
}
|
||||
|
||||
censusSummaryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<CensusSummaryVo> resultList = iCuMemberService.selectCensusSummary(censusSummaryParam, days);
|
||||
|
||||
ExcelUtil<CensusSummaryVo> util = new ExcelUtil<>(CensusSummaryVo.class, iMenuColumnServiceApi.queryMenuColumn("performanceTotal", SecurityUtils.getUserId()).getData());
|
||||
util.exportExcel(response, resultList, "业绩汇总信息");
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package com.hzs.member.census.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class CensusSummaryParam {
|
||||
|
||||
/**
|
||||
* 结算期数
|
||||
*/
|
||||
private Long memberSettlePeriodId;
|
||||
|
||||
/**
|
||||
* 币种展示
|
||||
*/
|
||||
private Long pkCurrency;
|
||||
|
||||
/**
|
||||
* 所属国家
|
||||
*/
|
||||
private Integer pkCountry;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private Date endDate;
|
||||
|
||||
/**
|
||||
* 查询时间
|
||||
*/
|
||||
private String time;
|
||||
|
||||
/**
|
||||
* 体系
|
||||
*/
|
||||
private List<Long> pkVertex;
|
||||
|
||||
/**
|
||||
* 团队
|
||||
*/
|
||||
private List<Long> pkMemberTeam;
|
||||
/**
|
||||
* 体系
|
||||
*/
|
||||
private String pkBdVertexStr;
|
||||
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
package com.hzs.member.census.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class CensusSummaryVo {
|
||||
|
||||
/**
|
||||
* 结算期数
|
||||
*/
|
||||
private Integer numberPeriods;
|
||||
|
||||
/**
|
||||
* 结算时间
|
||||
*/
|
||||
@Excel(name = "结算时间")
|
||||
private String settleDate;
|
||||
|
||||
/**
|
||||
* 注册金额
|
||||
*/
|
||||
@Excel(name = "注册金额")
|
||||
private BigDecimal registerAmount;
|
||||
|
||||
/**
|
||||
* 注册业绩
|
||||
*/
|
||||
@Excel(name = "注册业绩")
|
||||
private BigDecimal registerPv;
|
||||
|
||||
/**
|
||||
* 升级金额
|
||||
*/
|
||||
@Excel(name = "升级金额")
|
||||
private BigDecimal upgradeAmount;
|
||||
|
||||
/**
|
||||
* 升级业绩
|
||||
*/
|
||||
@Excel(name = "升级业绩")
|
||||
private BigDecimal upgradePv;
|
||||
|
||||
/**
|
||||
* 首购金额
|
||||
*/
|
||||
@Excel(name = "首购金额")
|
||||
private BigDecimal firstPurchaseAmount;
|
||||
|
||||
/**
|
||||
* 首购业绩
|
||||
*/
|
||||
@Excel(name = "首购业绩")
|
||||
private BigDecimal firstPurchasePv;
|
||||
|
||||
/**
|
||||
* 复购金额
|
||||
*/
|
||||
@Excel(name = "复购金额")
|
||||
private BigDecimal repurchaseAmount;
|
||||
|
||||
/**
|
||||
* 复购pv
|
||||
*/
|
||||
@Excel(name = "复购业绩")
|
||||
private BigDecimal repurchasePv;
|
||||
|
||||
/**
|
||||
* 金额总计
|
||||
*/
|
||||
@Excel(name = "金额总计")
|
||||
private BigDecimal amountTotal;
|
||||
|
||||
/**
|
||||
* 业绩汇总
|
||||
*/
|
||||
@Excel(name = "业绩汇总")
|
||||
private BigDecimal pvTotal;
|
||||
|
||||
}
|
|
@ -101,20 +101,9 @@ public class CuBonusVertexStatisTotalController extends BaseController {
|
|||
startPage();
|
||||
//查询顶点奖金拨比汇总
|
||||
slList = iCuBonusVertexStatisService.queryCuBonusStatisTotal(cuBonusVertexStatisTotalVO);
|
||||
//查询顶点奖金拨比汇总总和(最后一行)
|
||||
CuBonusVertexStatisTotalVO cuBonusVertexStatisSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO);
|
||||
cuBonusVertexStatisSum.setMainBonus((cuBonusVertexStatisSum.getMainBonus()).multiply(currency.getData().getInExchangeRate()));
|
||||
cuBonusVertexStatisSum.setRepurBonus(cuBonusVertexStatisSum.getRepurBonus().multiply(currency.getData().getInExchangeRate()));
|
||||
if (CollectionUtil.isNotEmpty(slList)) {
|
||||
slList.forEach(itm -> {
|
||||
|
||||
// if (itm.getPkVertex().equals(itmm.getPkVertex())) {
|
||||
// itm.setFirstPurchaseAll(itm.getFirstPurchaseAll().subtract(itmm.getOrderAmount()).add(itmm.getEnergySum()));
|
||||
// itm.setOrgTopNumber(itmm.getOrgTopNumber());
|
||||
// itm.setOrgAvTouch(itmm.getOrgAvTouch());
|
||||
// itm.setOrgMaxTouch(itmm.getOrgMaxTouch());
|
||||
// }
|
||||
|
||||
//重新算首购拨比
|
||||
if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0) {
|
||||
BigDecimal mainBonusRate = cent.multiply((itm.getMainBonus()).multiply(currency.getData().getInExchangeRate()));
|
||||
|
@ -136,7 +125,14 @@ public class CuBonusVertexStatisTotalController extends BaseController {
|
|||
itm.setFirstPurchaseRatio(cent.multiply(itm.getFirstPurchaseAll()).divide(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum(), 4, RoundingMode.HALF_UP));
|
||||
}
|
||||
});
|
||||
cuBonusVertexStatisSum.setMemberName("汇总");
|
||||
|
||||
//查询顶点奖金拨比汇总总和(最后一行)
|
||||
CuBonusVertexStatisTotalVO cuBonusVertexStatisSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO);
|
||||
if (null != cuBonusVertexStatisSum) {
|
||||
cuBonusVertexStatisSum.setMainBonus((cuBonusVertexStatisSum.getMainBonus()).multiply(currency.getData().getInExchangeRate()));
|
||||
cuBonusVertexStatisSum.setRepurBonus(cuBonusVertexStatisSum.getRepurBonus().multiply(currency.getData().getInExchangeRate()));
|
||||
cuBonusVertexStatisSum.setMemberName("汇总");
|
||||
}
|
||||
slList.add(cuBonusVertexStatisSum);
|
||||
return getDataTable(slList);
|
||||
}
|
||||
|
@ -199,14 +195,6 @@ public class CuBonusVertexStatisTotalController extends BaseController {
|
|||
cuBonusVertexStatisSum.setRepurBonus(cuBonusVertexStatisSum.getRepurBonus().multiply(currency.getData().getInExchangeRate()));
|
||||
if (CollectionUtil.isNotEmpty(slList)) {
|
||||
slList.forEach(itm -> {
|
||||
|
||||
// if (itm.getPkVertex().equals(itmm.getPkVertex())) {
|
||||
// itm.setFirstPurchaseAll(itm.getFirstPurchaseAll().subtract(itmm.getOrderAmount()).add(itmm.getEnergySum()));
|
||||
// itm.setOrgTopNumber(itmm.getOrgTopNumber());
|
||||
// itm.setOrgAvTouch(itmm.getOrgAvTouch());
|
||||
// itm.setOrgMaxTouch(itmm.getOrgMaxTouch());
|
||||
// }
|
||||
|
||||
//重新算首购拨比
|
||||
if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0) {
|
||||
BigDecimal mainBonusRate = cent.multiply((itm.getMainBonus()).multiply(currency.getData().getInExchangeRate()));
|
||||
|
|
|
@ -2477,6 +2477,7 @@
|
|||
and t0.category = 0)
|
||||
where rownum = 1
|
||||
</select>
|
||||
|
||||
<select id="getSharePosterImage" resultType="java.lang.String" parameterType="java.lang.Long">
|
||||
select
|
||||
bv.SHARE_POSTER_IMAGE AS sharePosterImage
|
||||
|
@ -2486,4 +2487,27 @@
|
|||
where cm.PK_ID = ${userId}
|
||||
</select>
|
||||
|
||||
<select id="queryDateBySummary" resultType="com.hzs.member.base.vo.MemberMeritsSummaryVo">
|
||||
select sa.order_type orderType,
|
||||
sum(sa.order_amount - nvl(sa.consume_amount, 0)) amount,
|
||||
sum(sa.order_achieve) achieve
|
||||
from sa_order sa
|
||||
inner join cu_member cm
|
||||
on sa.pk_member = cm.pk_id
|
||||
and cm.del_flag = 0
|
||||
and cm.category = 0
|
||||
where sa.order_status = 1
|
||||
and sa.del_flag = 0
|
||||
and to_char(sa.pay_time, 'yyyy-mm-dd') = #{time}
|
||||
and sa.pk_country = #{pkCountry}
|
||||
<if test="pkVertex != null and pkVertex.size > 0 ">
|
||||
and cm.pk_vertex in
|
||||
<foreach collection="pkVertex" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
group by sa.order_type
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -525,7 +525,6 @@
|
|||
sum (cbs.ORG_BONUS) orgBonusSum,
|
||||
sum (cbs.LEADER_BONUS) leaderBonusSum,
|
||||
#{orderAchieve} shareBonusSum,
|
||||
#{energyAmountAll} energyAmountAllSum,
|
||||
sum (cbs.SERVICE_BONUS) serviceBonusSum,
|
||||
sum (cbs.HI_FUN_INCOME) hiFunIncomeSum,
|
||||
sum (cbs.REPUR_RANGE_BONUS) repurRangeBonusSum,
|
||||
|
@ -558,7 +557,7 @@
|
|||
ROUND(sum(#{perCent}*AGENT_REPUR_AMOUNT)/(sum(cbs.AGENT_REG_AMOUNT +
|
||||
cbs.AGENT_UP_AMOUNT+cbs.AGENT_REPUR_AMOUNT)),4) end as agentRepurAmountRateSum,
|
||||
((sum(cbs.MAIN_REG_AMOUNT +
|
||||
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))-#{energySub}+#{energySum}) AS
|
||||
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))) AS
|
||||
firstPurchaseAllSum,
|
||||
( sum(cbs.MAIN_REPUR_AMOUNT +
|
||||
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
|
||||
|
@ -574,7 +573,7 @@
|
|||
= 0
|
||||
THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
|
||||
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}+#{energySum}),4)
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
|
||||
end AS mainBonusRateSum,
|
||||
|
||||
CASE WHEN
|
||||
|
@ -624,7 +623,7 @@
|
|||
(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+
|
||||
cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
|
||||
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
|
||||
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)-#{energySub}+#{energySum}),4) end AS totalBonusRateSum
|
||||
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)),4) end AS totalBonusRateSum
|
||||
FROM
|
||||
CU_BONUS_STATIS cbs
|
||||
left join bd_vertex ver on cbs.pk_bd_vertex = ver.pk_id
|
||||
|
|
|
@ -418,7 +418,6 @@
|
|||
sum (cbs.INTRODUCE_BONUS) introduceBonus,
|
||||
sum (cbs.ORG_BONUS) orgBonus,
|
||||
sum (cbs.LEADER_BONUS) leaderBonus,
|
||||
#{energyAmountAll} energyAmountAll,
|
||||
sum (cbs.SERVICE_BONUS) serviceBonus,
|
||||
CASE WHEN
|
||||
sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)
|
||||
|
@ -538,24 +537,23 @@
|
|||
sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)
|
||||
= 0
|
||||
THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS)))
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),4)
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
|
||||
end AS introduceBonusRate,
|
||||
sum (cbs.ORG_BONUS) orgBonus,
|
||||
CASE WHEN
|
||||
sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)
|
||||
= 0
|
||||
THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.ORG_BONUS)))
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),4)
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
|
||||
end AS orgBonusRate,
|
||||
|
||||
sum (cbs.LEADER_BONUS) leaderBonus,
|
||||
#{energyAmountAll} energyAmountAll,
|
||||
sum (cbs.SERVICE_BONUS) serviceBonus,
|
||||
CASE WHEN
|
||||
sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)
|
||||
= 0
|
||||
THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.SERVICE_BONUS)))
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),4)
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
|
||||
end AS serviceBonusRate,
|
||||
sum (cbs.HI_FUN_INCOME) hiFunIncome,
|
||||
sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus,
|
||||
|
@ -566,10 +564,10 @@
|
|||
sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)
|
||||
= 0
|
||||
THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),4)
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
|
||||
end AS makerRate,
|
||||
((sum(cbs.MAIN_REG_AMOUNT +
|
||||
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))-#{energySub}) AS
|
||||
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))) AS
|
||||
firstPurchaseAll,
|
||||
( sum(cbs.MAIN_REPUR_AMOUNT +
|
||||
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
|
||||
|
@ -582,7 +580,7 @@
|
|||
= 0
|
||||
THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
|
||||
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),4)
|
||||
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
|
||||
end AS mainBonusRate,
|
||||
|
||||
CASE WHEN
|
||||
|
@ -632,7 +630,7 @@
|
|||
(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+
|
||||
cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
|
||||
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
|
||||
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)-#{energySub}+#{energySum}),4) end AS totalBonusRate
|
||||
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)),4) end AS totalBonusRate
|
||||
FROM
|
||||
CU_BONUS_VERTEX_STATIS cbs
|
||||
LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX
|
||||
|
|
|
@ -719,8 +719,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
// 封装会员信息
|
||||
CuMember newMember = this.packageCuMember(registerParam);
|
||||
newMember.setPkSettleGrade(registerParam.getPkGrade());
|
||||
newMember.setPkAwards(registerParam.getPkAwards());
|
||||
BdGrade tmpGrade = iSaOrderService.handleGradeEnd(null, registerParam.getPkGrade());
|
||||
newMember.setPkSettleGrade(tmpGrade.getPkId());
|
||||
newMember.setPkAwards(tmpGrade.getPkAwards());
|
||||
|
||||
saOrderExt.setPkMember(newMember.getPkId());
|
||||
|
||||
|
@ -734,7 +735,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 升级订单
|
||||
cuMember.setPkSettleGrade(saOrderExt.getPkGrade());
|
||||
BdGrade tmpGrade = iSaOrderService.handleGradeEnd(null, saOrderExt.getPkGrade());
|
||||
cuMember.setPkSettleGrade(tmpGrade.getPkId());
|
||||
resultStr = this.payUpgOrder(saOrderExt, cuMember, null);
|
||||
} else {
|
||||
// 其它订单
|
||||
|
|
|
@ -642,4 +642,12 @@ public interface ISaOrderService extends IService<SaOrder> {
|
|||
List<BdGrade> gradeList, CuMember updateGradeMember,
|
||||
Integer systemType, Integer isPay);
|
||||
|
||||
/**
|
||||
* 处理最终等级(多送2级)
|
||||
* @param gradeList
|
||||
* @param pkGrade
|
||||
* @return
|
||||
*/
|
||||
BdGrade handleGradeEnd(List<BdGrade> gradeList, Integer pkGrade);
|
||||
|
||||
}
|
||||
|
|
|
@ -2504,7 +2504,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
// 注册专区直接算等级
|
||||
bdGrade = this.getGradeByBox(boxNum, gradeList, null, true);
|
||||
// 特殊等级处理
|
||||
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade);
|
||||
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade.getPkId());
|
||||
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
|
||||
// 支付时才进行处理
|
||||
bdGrade = tmpGrade;
|
||||
|
@ -2540,7 +2540,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
}
|
||||
|
||||
// 特殊等级处理
|
||||
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade);
|
||||
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade.getPkId());
|
||||
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
|
||||
// 支付时才进行处理
|
||||
bdGrade = tmpGrade;
|
||||
|
@ -3384,13 +3384,16 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
* new 2025.06.25 V1-V3升级多送两级处理
|
||||
*
|
||||
* @param gradeList
|
||||
* @param bdGrade
|
||||
* @param pkGrade
|
||||
* @return
|
||||
*/
|
||||
private BdGrade handleGradeEnd(List<BdGrade> gradeList, BdGrade bdGrade) {
|
||||
@Override
|
||||
public BdGrade handleGradeEnd(List<BdGrade> gradeList, Integer pkGrade) {
|
||||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
// new 2025.06.14 添加新需求,V1-V3,购买多给两级
|
||||
// new 2025.06.25 V1-V3升级多送两级,可以继续购买升级
|
||||
Integer pkGrade = bdGrade.getPkId();
|
||||
// 临时处理等级
|
||||
BdGrade tmpGrade = gradeList.stream().filter(tmpData -> tmpData.getPkId().equals(pkGrade)).findFirst().get();
|
||||
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
package com.hzs.system.board.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.common.core.utils.BigDecimalUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.system.board.service.IBoardService;
|
||||
import com.hzs.system.board.vo.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 首页看板 控制器
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/board")
|
||||
public class BoardController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IBoardService iBoardService;
|
||||
|
||||
/**
|
||||
* 会员汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/member-summary")
|
||||
public AjaxResult memberSummary() {
|
||||
// 会员汇总数据
|
||||
BoardMemberVO boardMemberVO = iBoardService.getMemberBoard();
|
||||
boardMemberVO.setMemberTodayLevelList(new ArrayList<>(6));
|
||||
boardMemberVO.setMemberYesterdayLevelList(new ArrayList<>(6));
|
||||
boardMemberVO.setMemberMonthLevelList(new ArrayList<>(6));
|
||||
|
||||
// 会员各等级数据
|
||||
List<BoardMemberLevelVO> levelList = iBoardService.listMemberLevelBoard();
|
||||
|
||||
for (BoardMemberLevelVO boardMemberLevelVO : levelList) {
|
||||
if (boardMemberLevelVO.getSort() == 0) {
|
||||
// 今日
|
||||
boardMemberVO.getMemberTodayLevelList().add(boardMemberLevelVO);
|
||||
} else if (boardMemberLevelVO.getSort() == 1) {
|
||||
// 昨日
|
||||
boardMemberVO.getMemberYesterdayLevelList().add(boardMemberLevelVO);
|
||||
} else {
|
||||
// 本月
|
||||
boardMemberVO.getMemberMonthLevelList().add(boardMemberLevelVO);
|
||||
}
|
||||
}
|
||||
return AjaxResult.success(boardMemberVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 日业绩数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/day-achieve")
|
||||
public AjaxResult dayAchieve() {
|
||||
// 返回数据VO
|
||||
BoardDayAchieveVO resultVO = new BoardDayAchieveVO();
|
||||
|
||||
List<BoardAchieveVO> dayAchieveList = iBoardService.getDayAchieve();
|
||||
if (CollectionUtil.isNotEmpty(dayAchieveList)) {
|
||||
for (BoardAchieveVO boardAchieveVO : dayAchieveList) {
|
||||
if (boardAchieveVO.getSort() == 0) {
|
||||
resultVO.setToday(BoardAchieveVO.builder()
|
||||
.firstAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAchieve()))
|
||||
.firstAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAmount()))
|
||||
.repAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAchieve()))
|
||||
.repAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAmount()))
|
||||
.build());
|
||||
} else {
|
||||
resultVO.setYesterday(BoardAchieveVO.builder()
|
||||
.firstAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAchieve()))
|
||||
.firstAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAmount()))
|
||||
.repAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAchieve()))
|
||||
.repAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAmount()))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return AjaxResult.success(resultVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 月业绩数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/month-achieve")
|
||||
public AjaxResult monthAchieve() {
|
||||
BoardAchieveVO boardAchieveVO = iBoardService.getMonthAchieve();
|
||||
boardAchieveVO.setFirstAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAchieve()));
|
||||
boardAchieveVO.setFirstAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getFirstAmount()));
|
||||
boardAchieveVO.setRepAchieve(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAchieve()));
|
||||
boardAchieveVO.setRepAmount(BigDecimalUtil.handleBig10000Down(boardAchieveVO.getRepAmount()));
|
||||
return AjaxResult.success(boardAchieveVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 充值汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/recharge-summary")
|
||||
public AjaxResult rechargeSummary() {
|
||||
BoardRechargeVO boardRechargeVO = new BoardRechargeVO();
|
||||
boardRechargeVO.setRechargeTodayList(new ArrayList<>(6));
|
||||
boardRechargeVO.setRechargeYesterdayLevelList(new ArrayList<>(6));
|
||||
boardRechargeVO.setRechargeMonthLevelList(new ArrayList<>(6));
|
||||
|
||||
// 会员汇总数据
|
||||
List<BoardRechargeAccountVO> rechargeList = iBoardService.listAccountRechargeBoard();
|
||||
|
||||
for (BoardRechargeAccountVO boardMemberVO : rechargeList) {
|
||||
// 充值金额按万处理
|
||||
boardMemberVO.setRechargeAmount(BigDecimalUtil.handleBig10000Down(boardMemberVO.getRechargeAmount()));
|
||||
if (boardMemberVO.getSort() == 0) {
|
||||
// 今日
|
||||
boardRechargeVO.getRechargeTodayList().add(boardMemberVO);
|
||||
} else if (boardMemberVO.getSort() == 1) {
|
||||
// 昨日
|
||||
boardRechargeVO.getRechargeYesterdayLevelList().add(boardMemberVO);
|
||||
} else {
|
||||
// 本月
|
||||
boardRechargeVO.getRechargeMonthLevelList().add(boardMemberVO);
|
||||
}
|
||||
}
|
||||
return AjaxResult.success(boardRechargeVO);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package com.hzs.system.board.mapper;
|
||||
|
||||
import com.hzs.system.board.vo.BoardAchieveVO;
|
||||
import com.hzs.system.board.vo.BoardMemberLevelVO;
|
||||
import com.hzs.system.board.vo.BoardMemberVO;
|
||||
import com.hzs.system.board.vo.BoardRechargeAccountVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 首页看板 mapper
|
||||
*/
|
||||
public interface BoardMapper {
|
||||
|
||||
/**
|
||||
* 查询会员汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
BoardMemberVO getMemberBoard();
|
||||
|
||||
/**
|
||||
* 查询会员等级数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<BoardMemberLevelVO> listMemberLevelBoard();
|
||||
|
||||
/**
|
||||
* 查询日业绩汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<BoardAchieveVO> getDayAchieve();
|
||||
|
||||
/**
|
||||
* 查询月业绩汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
BoardAchieveVO getMonthAchieve();
|
||||
|
||||
/**
|
||||
* 各币种充值数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<BoardRechargeAccountVO> listAccountRechargeBoard();
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package com.hzs.system.board.service;
|
||||
|
||||
import com.hzs.system.board.vo.BoardAchieveVO;
|
||||
import com.hzs.system.board.vo.BoardMemberLevelVO;
|
||||
import com.hzs.system.board.vo.BoardMemberVO;
|
||||
import com.hzs.system.board.vo.BoardRechargeAccountVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 首页看板 service
|
||||
*/
|
||||
public interface IBoardService {
|
||||
|
||||
/**
|
||||
* 查询会员汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
BoardMemberVO getMemberBoard();
|
||||
|
||||
/**
|
||||
* 查询会员等级数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<BoardMemberLevelVO> listMemberLevelBoard();
|
||||
|
||||
/**
|
||||
* 查询日业绩汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<BoardAchieveVO> getDayAchieve();
|
||||
|
||||
/**
|
||||
* 查询月业绩汇总数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
BoardAchieveVO getMonthAchieve();
|
||||
|
||||
/**
|
||||
* 各币种充值数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<BoardRechargeAccountVO> listAccountRechargeBoard();
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.hzs.system.board.service.impl;
|
||||
|
||||
import com.hzs.system.board.mapper.BoardMapper;
|
||||
import com.hzs.system.board.service.IBoardService;
|
||||
import com.hzs.system.board.vo.BoardAchieveVO;
|
||||
import com.hzs.system.board.vo.BoardMemberLevelVO;
|
||||
import com.hzs.system.board.vo.BoardMemberVO;
|
||||
import com.hzs.system.board.vo.BoardRechargeAccountVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 首页看板 service
|
||||
*/
|
||||
@Service
|
||||
public class BoardServiceImpl implements IBoardService {
|
||||
|
||||
@Resource
|
||||
private BoardMapper boardMapper;
|
||||
|
||||
@Override
|
||||
public BoardMemberVO getMemberBoard() {
|
||||
return boardMapper.getMemberBoard();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BoardMemberLevelVO> listMemberLevelBoard() {
|
||||
return boardMapper.listMemberLevelBoard();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BoardAchieveVO> getDayAchieve() {
|
||||
return boardMapper.getDayAchieve();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoardAchieveVO getMonthAchieve() {
|
||||
return boardMapper.getMonthAchieve();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BoardRechargeAccountVO> listAccountRechargeBoard() {
|
||||
return boardMapper.listAccountRechargeBoard();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package com.hzs.system.board.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 看板业绩汇总数据
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class BoardAchieveVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 首购业绩
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal firstAchieve;
|
||||
|
||||
/**
|
||||
* 首购金额
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal firstAmount;
|
||||
|
||||
/**
|
||||
* 复购业绩
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal repAchieve;
|
||||
|
||||
/**
|
||||
* 复购金额
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal repAmount;
|
||||
|
||||
/**
|
||||
* 序号
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.hzs.system.board.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 看板业绩汇总数据返回
|
||||
*/
|
||||
@Data
|
||||
public class BoardDayAchieveVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 今日
|
||||
*/
|
||||
private BoardAchieveVO today;
|
||||
|
||||
/**
|
||||
* 昨日
|
||||
*/
|
||||
private BoardAchieveVO yesterday;
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.hzs.system.board.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 看板会员等级数据
|
||||
*/
|
||||
@Data
|
||||
public class BoardMemberLevelVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 等级名称
|
||||
*/
|
||||
private String gradeName;
|
||||
|
||||
/**
|
||||
* 会员数量
|
||||
*/
|
||||
private Integer memberTotal;
|
||||
|
||||
/**
|
||||
* 0=今日,1=昨日,2=当月
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.hzs.system.board.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 看板会员汇总数据
|
||||
*/
|
||||
@Data
|
||||
public class BoardMemberVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 会员总数
|
||||
*/
|
||||
private Integer memberTotal;
|
||||
|
||||
/**
|
||||
* 今日新増会员
|
||||
*/
|
||||
private Integer memberToday;
|
||||
/**
|
||||
* 今日会员等级
|
||||
*/
|
||||
private List<BoardMemberLevelVO> memberTodayLevelList;
|
||||
|
||||
/**
|
||||
* 昨日新増会员
|
||||
*/
|
||||
private Integer memberYesterday;
|
||||
/**
|
||||
* 昨日会员等级
|
||||
*/
|
||||
private List<BoardMemberLevelVO> memberYesterdayLevelList;
|
||||
|
||||
/**
|
||||
* 本月新増会员
|
||||
*/
|
||||
private Integer memberMonth;
|
||||
/**
|
||||
* 本月会员等级
|
||||
*/
|
||||
private List<BoardMemberLevelVO> memberMonthLevelList;
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.hzs.system.board.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 看板各币种充值数据
|
||||
*/
|
||||
@Data
|
||||
public class BoardRechargeAccountVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 账户名称
|
||||
*/
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 充值金额
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal rechargeAmount;
|
||||
|
||||
/**
|
||||
* 0=今日,1=昨日,2=当月
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package com.hzs.system.board.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 看板充值数据
|
||||
*/
|
||||
@Data
|
||||
public class BoardRechargeVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 今日充值
|
||||
*/
|
||||
private List<BoardRechargeAccountVO> rechargeTodayList;
|
||||
|
||||
/**
|
||||
* 昨日充值
|
||||
*/
|
||||
private List<BoardRechargeAccountVO> rechargeYesterdayLevelList;
|
||||
|
||||
/**
|
||||
* 本月充值
|
||||
*/
|
||||
private List<BoardRechargeAccountVO> rechargeMonthLevelList;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,244 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.system.board.mapper.BoardMapper">
|
||||
|
||||
<!-- 查询会员汇总数据 -->
|
||||
<select id="getMemberBoard" resultType="com.hzs.system.board.vo.BoardMemberVO">
|
||||
select *
|
||||
from (select count(1) member_total
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and cm.customer_type != 1) a
|
||||
left join (
|
||||
select count(1) member_today
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and to_char(cm.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate, 'yyyy-mm-dd')
|
||||
and cm.customer_type != 1
|
||||
) b on 1 = 1
|
||||
left join (select count(1) member_yesterday
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and to_char(cm.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate - 1, 'yyyy-mm-dd')
|
||||
and cm.customer_type != 1
|
||||
) c
|
||||
on 1 = 1
|
||||
left join (select count(1) member_month
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and to_char(cm.pay_time, 'yyyy-mm') =
|
||||
to_char(sysdate, 'yyyy-mm')
|
||||
and cm.customer_type != 1
|
||||
) d on 1 = 1
|
||||
</select>
|
||||
|
||||
<!-- 会员各等级数据 -->
|
||||
<select id="listMemberLevelBoard" resultType="com.hzs.system.board.vo.BoardMemberLevelVO">
|
||||
select bg.grade_name,
|
||||
bg.grade_value,
|
||||
nvl(a.member_total, 0) member_total,
|
||||
0 sort
|
||||
from (select cm.PK_REGISTER_GRADE, count(1) member_total
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and to_char(cm.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate, 'yyyy-mm-dd')
|
||||
and cm.customer_type != 1
|
||||
group by cm.PK_REGISTER_GRADE
|
||||
order by cm.PK_REGISTER_GRADE) a
|
||||
right join bd_grade bg
|
||||
on bg.pk_id = a.PK_REGISTER_GRADE
|
||||
where bg.del_flag = 0
|
||||
union all
|
||||
select bg.grade_name,
|
||||
bg.grade_value,
|
||||
nvl(a.member_total, 0) member_total,
|
||||
1 sort
|
||||
from (select cm.PK_REGISTER_GRADE, count(1) member_total
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and to_char(cm.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate - 1, 'yyyy-mm-dd')
|
||||
and cm.customer_type != 1
|
||||
group by cm.PK_REGISTER_GRADE
|
||||
order by cm.PK_REGISTER_GRADE) a
|
||||
right join bd_grade bg
|
||||
on bg.pk_id = a.PK_REGISTER_GRADE
|
||||
where bg.del_flag = 0
|
||||
union all
|
||||
select bg.grade_name,
|
||||
bg.grade_value,
|
||||
nvl(a.member_total, 0) member_total,
|
||||
2 sort
|
||||
from (select cm.PK_REGISTER_GRADE, count(1) member_total
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and cm.pay_status = 1
|
||||
and cm.category = 0
|
||||
and to_char(cm.pay_time, 'yyyy-mm') = to_char(sysdate, 'yyyy-mm')
|
||||
and cm.customer_type != 1
|
||||
group by cm.PK_REGISTER_GRADE
|
||||
order by cm.PK_REGISTER_GRADE) a
|
||||
right join bd_grade bg
|
||||
on bg.pk_id = a.PK_REGISTER_GRADE
|
||||
where bg.del_flag = 0
|
||||
order by sort, grade_value
|
||||
</select>
|
||||
|
||||
<!-- 查询日业绩汇总数据 -->
|
||||
<select id="getDayAchieve" resultType="com.hzs.system.board.vo.BoardAchieveVO">
|
||||
select a.*, b.*, 0 sort
|
||||
from (
|
||||
select nvl(sum(so.order_achieve), 0) first_achieve,
|
||||
nvl(sum(so.order_amount), 0) first_amount
|
||||
from sa_order so
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.order_type in (1, 2, 24, 25)
|
||||
and to_char(so.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate, 'yyyy-mm-dd')
|
||||
) a
|
||||
left join (
|
||||
select nvl(sum(so.order_achieve), 0) rep_achieve,
|
||||
nvl(sum(so.order_amount), 0) rep_amount
|
||||
from sa_order so
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.order_type in (3, 26, 10)
|
||||
and to_char(so.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate, 'yyyy-mm-dd')
|
||||
) b on 1 = 1
|
||||
union all
|
||||
select a.*, b.*, 1 sort
|
||||
from (
|
||||
select nvl(sum(so.order_achieve), 0) first_achieve,
|
||||
nvl(sum(so.order_amount), 0) first_amount
|
||||
from sa_order so
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.order_type in (1, 2, 24, 25)
|
||||
and to_char(so.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate - 1, 'yyyy-mm-dd')
|
||||
) a
|
||||
left join (
|
||||
select nvl(sum(so.order_achieve), 0) rep_achieve,
|
||||
nvl(sum(so.order_amount), 0) rep_amount
|
||||
from sa_order so
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.order_type in (3, 26, 10)
|
||||
and to_char(so.pay_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate - 1, 'yyyy-mm-dd')
|
||||
) b on 1 = 1
|
||||
order by sort
|
||||
</select>
|
||||
|
||||
<!-- 查询月业绩汇总数据 -->
|
||||
<select id="getMonthAchieve" resultType="com.hzs.system.board.vo.BoardAchieveVO">
|
||||
select a.*, b.*
|
||||
from (select nvl(sum(so.order_achieve), 0) first_achieve,
|
||||
nvl(sum(so.order_amount), 0) first_amount
|
||||
from sa_order so
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.order_type in (1, 2, 24, 25)
|
||||
and to_char(so.pay_time, 'yyyy-mm') = to_char(sysdate, 'yyyy-mm')
|
||||
) a
|
||||
left join (
|
||||
select nvl(sum(so.order_achieve), 0) rep_achieve,
|
||||
nvl(sum(so.order_amount - nvl(so.CONSUME_AMOUNT, 0)), 0) rep_amount
|
||||
from sa_order so
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.order_type in (3, 26, 10)
|
||||
and to_char(so.pay_time, 'yyyy-mm') =
|
||||
to_char(sysdate, 'yyyy-mm')
|
||||
) b on 1 = 1
|
||||
</select>
|
||||
|
||||
<!-- 各币种充值数据 -->
|
||||
<select id="listAccountRechargeBoard" resultType="com.hzs.system.board.vo.BoardRechargeAccountVO">
|
||||
select ba.account_name, nvl(a.recharge_amount, 0) recharge_amount, 0 sort, ba.field_value
|
||||
from (select t.pk_account, sum(t.recharge_amount) recharge_amount
|
||||
from CU_MEMBER_RECHARGE t
|
||||
where t.del_flag = 0
|
||||
and t.recharge_amount != 0
|
||||
and t.pk_account in
|
||||
(select t.pk_id
|
||||
from bd_account t
|
||||
where t.del_flag = 0
|
||||
and t.enable_state = 0
|
||||
and t.pk_country = 1
|
||||
and t.field_value in (1, 2, 3, 4))
|
||||
and ((t.recharge_source = 1 and t.approve_state = 2) or
|
||||
(t.recharge_source = 0 and t.approve_state = 2))
|
||||
and to_char(t.modified_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate, 'yyyy-mm-dd')
|
||||
group by t.pk_account) a
|
||||
right join bd_account ba
|
||||
on ba.pk_id = a.pk_account
|
||||
and ba.del_flag = 0
|
||||
where ba.field_value in (1, 2, 3, 4)
|
||||
union all
|
||||
select ba.account_name, nvl(a.recharge_amount, 0) recharge_amount, 1 sort, ba.field_value
|
||||
from (select t.pk_account, sum(t.recharge_amount) recharge_amount
|
||||
from CU_MEMBER_RECHARGE t
|
||||
where t.del_flag = 0
|
||||
and t.recharge_amount != 0
|
||||
and t.pk_account in
|
||||
(select t.pk_id
|
||||
from bd_account t
|
||||
where t.del_flag = 0
|
||||
and t.enable_state = 0
|
||||
and t.pk_country = 1
|
||||
and t.field_value in (1, 2, 3, 4))
|
||||
and ((t.recharge_source = 1 and t.approve_state = 2) or
|
||||
(t.recharge_source = 0 and t.approve_state = 2))
|
||||
and to_char(t.modified_time, 'yyyy-mm-dd') =
|
||||
to_char(sysdate - 1, 'yyyy-mm-dd')
|
||||
group by t.pk_account) a
|
||||
right join bd_account ba
|
||||
on ba.pk_id = a.pk_account
|
||||
and ba.del_flag = 0
|
||||
where ba.field_value in (1, 2, 3, 4)
|
||||
union all
|
||||
select ba.account_name, nvl(a.recharge_amount, 0) recharge_amount, 2 sort, ba.field_value
|
||||
from (select t.pk_account, sum(t.recharge_amount) recharge_amount
|
||||
from CU_MEMBER_RECHARGE t
|
||||
where t.del_flag = 0
|
||||
and t.recharge_amount != 0
|
||||
and t.pk_account in
|
||||
(select t.pk_id
|
||||
from bd_account t
|
||||
where t.del_flag = 0
|
||||
and t.enable_state = 0
|
||||
and t.pk_country = 1
|
||||
and t.field_value in (1, 2, 3, 4))
|
||||
and ((t.recharge_source = 1 and t.approve_state = 2) or
|
||||
(t.recharge_source = 0 and t.approve_state = 2))
|
||||
and to_char(t.modified_time, 'yyyy-mm') =
|
||||
to_char(sysdate - 1, 'yyyy-mm')
|
||||
group by t.pk_account) a
|
||||
right join bd_account ba
|
||||
on ba.pk_id = a.pk_account
|
||||
and ba.del_flag = 0
|
||||
where ba.field_value in (1, 2, 3, 4)
|
||||
order by sort, field_value
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -1,5 +1,7 @@
|
|||
package com.hzs.common.core.constant;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 魔法数字常量类
|
||||
*/
|
||||
|
@ -99,4 +101,9 @@ public class MagicNumberConstants {
|
|||
*/
|
||||
public static final Integer WITHDRAW_MULTIPLE = 100;
|
||||
|
||||
/**
|
||||
* 转换万处理
|
||||
*/
|
||||
public static final BigDecimal big10000 = new BigDecimal("10000");
|
||||
|
||||
}
|
||||
|
|
|
@ -23,17 +23,25 @@ public class RetailConstants {
|
|||
*/
|
||||
public static final List<String> BOX_PRODUCT_LIST = Arrays.asList(
|
||||
// 注册
|
||||
"SP02410001", "SP02410002", "SP02410003", "SP02410004", "SP02410005", "SP02410006",
|
||||
"SP02410007", "SP02410008", "SP02410009", "SP02410010", "SP02410011", "SP02410012",
|
||||
"SP02410001", "SP02410002", "SP02410003", "SP02410004", "SP02410005",
|
||||
"SP02410006", "SP02410007", "SP02410008", "SP02410009", "SP02410010",
|
||||
"SP02410011", "SP02410012", "SP02410013", "SP02410014", "SP02410015",
|
||||
"SP02410016", "SP02410017", "SP02410018", "SP02410019", "SP02410020",
|
||||
// 升级
|
||||
"SP02420001", "SP02420002", "SP02420003", "SP02420004", "SP02420005", "SP02420006",
|
||||
"SP02420007", "SP02420008", "SP02420009", "SP02420010", "SP02420011", "SP02420012",
|
||||
"SP02420001", "SP02420002", "SP02420003", "SP02420004", "SP02420005",
|
||||
"SP02420006", "SP02420007", "SP02420008", "SP02420009", "SP02420010",
|
||||
"SP02420011", "SP02420012", "SP02420013", "SP02420014", "SP02420015",
|
||||
"SP02420016", "SP02420017", "SP02420018", "SP02420019", "SP02420020",
|
||||
// 复消
|
||||
"SP02430001", "SP02430002", "SP02430003", "SP02430004", "SP02430005", "SP02430006",
|
||||
"SP02430007", "SP02430008", "SP02430009", "SP02430010", "SP02430011", "SP02430012",
|
||||
"SP02430001", "SP02430002", "SP02430003", "SP02430004", "SP02430005",
|
||||
"SP02430006", "SP02430007", "SP02430008", "SP02430009", "SP02430010",
|
||||
"SP02430011", "SP02430012", "SP02430013", "SP02430014", "SP02430015",
|
||||
"SP02430016", "SP02430017", "SP02430018", "SP02430019", "SP02430020",
|
||||
// 重消
|
||||
"SP02440001", "SP02440002", "SP02440003", "SP02440005", "SP02440005", "SP02440006",
|
||||
"SP02440007", "SP02440008", "SP02440009", "SP02440010", "SP02440011", "SP02440012"
|
||||
"SP02440001", "SP02440002", "SP02440003", "SP02440005", "SP02440005",
|
||||
"SP02440006", "SP02440007", "SP02440008", "SP02440009", "SP02440010",
|
||||
"SP02440011", "SP02440012", "SP02440013", "SP02440014", "SP02440015",
|
||||
"SP02440016", "SP02440017", "SP02440018", "SP02440019", "SP02440020"
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -41,17 +49,25 @@ public class RetailConstants {
|
|||
*/
|
||||
public static final List<String> ALL_BOX_WARES_LIST = Arrays.asList(
|
||||
// 注册
|
||||
"SP02410001", "SP02410002", "SP02410003", "SP02410004", "SP02410005", "SP02410006",
|
||||
"SP02410007", "SP02410008", "SP02410009", "SP02410010", "SP02410011", "SP02410012",
|
||||
"SP02410001", "SP02410002", "SP02410003", "SP02410004", "SP02410005",
|
||||
"SP02410006", "SP02410007", "SP02410008", "SP02410009", "SP02410010",
|
||||
"SP02410011", "SP02410012", "SP02410013", "SP02410014", "SP02410015",
|
||||
"SP02410016", "SP02410017", "SP02410018", "SP02410019", "SP02410020",
|
||||
// 升级
|
||||
"SP02420001", "SP02420002", "SP02420003", "SP02420004", "SP02420005", "SP02420006",
|
||||
"SP02420007", "SP02420008", "SP02420009", "SP02420010", "SP02420011", "SP02420012",
|
||||
"SP02420001", "SP02420002", "SP02420003", "SP02420004", "SP02420005",
|
||||
"SP02420006", "SP02420007", "SP02420008", "SP02420009", "SP02420010",
|
||||
"SP02420011", "SP02420012", "SP02420013", "SP02420014", "SP02420015",
|
||||
"SP02420016", "SP02420017", "SP02420018", "SP02420019", "SP02420020",
|
||||
// 复消
|
||||
"SP02430001", "SP02430002", "SP02430003", "SP02430004", "SP02430005", "SP02430006",
|
||||
"SP02430007", "SP02430008", "SP02430009", "SP02430010", "SP02430011", "SP02430012",
|
||||
"SP02430001", "SP02430002", "SP02430003", "SP02430004", "SP02430005",
|
||||
"SP02430006", "SP02430007", "SP02430008", "SP02430009", "SP02430010",
|
||||
"SP02430011", "SP02430012", "SP02430013", "SP02430014", "SP02430015",
|
||||
"SP02430016", "SP02430017", "SP02430018", "SP02430019", "SP02430020",
|
||||
// 重消
|
||||
"SP02440001", "SP02440002", "SP02440003", "SP02440005", "SP02440005", "SP02440006",
|
||||
"SP02440007", "SP02440008", "SP02440009", "SP02440010", "SP02440011", "SP02440012"
|
||||
"SP02440001", "SP02440002", "SP02440003", "SP02440005", "SP02440005",
|
||||
"SP02440006", "SP02440007", "SP02440008", "SP02440009", "SP02440010",
|
||||
"SP02440011", "SP02440012", "SP02440013", "SP02440014", "SP02440015",
|
||||
"SP02440016", "SP02440017", "SP02440018", "SP02440019", "SP02440020"
|
||||
);
|
||||
|
||||
}
|
||||
|
|
|
@ -14,11 +14,7 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: sui q
|
||||
* @time: 2021/11/23 11:02
|
||||
* @description: 条形码+文字 生成
|
||||
* @classname: BarCodeUtils
|
||||
* @package_name: com.hzs.web.util
|
||||
* sui q
|
||||
*/
|
||||
@Slf4j
|
||||
public class BarCodeUtils {
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package com.hzs.common.core.utils;
|
||||
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
public class BigDecimalUtil {
|
||||
|
||||
/**
|
||||
* 除万取2位小数并且去尾
|
||||
*
|
||||
* @param bigDecimal
|
||||
* @return
|
||||
*/
|
||||
public static BigDecimal handleBig10000Down(BigDecimal bigDecimal) {
|
||||
return bigDecimal.divide(MagicNumberConstants.big10000, 2, RoundingMode.DOWN);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
package com.hzs.common.core.utils;
|
||||
|
||||
/**
|
||||
* @Description: 自动生成密码 暂时先不使用
|
||||
* @Author: sui q
|
||||
* @Time: 2022/9/9 14:52
|
||||
* @Classname: CreatePassword
|
||||
* @PackageName: com.hzs.common.core.utils
|
||||
*/
|
||||
public class CreatePassword {
|
||||
|
||||
/**
|
||||
* @Description: 生成密码
|
||||
* @param len 密码长度
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/9 14:53
|
||||
*/
|
||||
public static String generatePassword(int len) {
|
||||
// 1、定义基本字符串baseStr和出参password
|
||||
StringBuilder password = null;
|
||||
String baseStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+{}|<>?";
|
||||
boolean flag = false;
|
||||
// 2、使用循环来判断是否是正确的密码
|
||||
while (!flag) {
|
||||
// 密码重置
|
||||
password = new StringBuilder();
|
||||
// 个数计数
|
||||
int a = 0, b = 0, c = 0, d = 0;
|
||||
for (int i = 0; i < len; i++) {
|
||||
int rand = (int) (Math.random() * baseStr.length());
|
||||
password.append(baseStr.charAt(rand));
|
||||
if (rand < 10) {
|
||||
a++;
|
||||
}
|
||||
if (10 <= rand && rand < 36) {
|
||||
b++;
|
||||
}
|
||||
if (36 <= rand && rand < 62) {
|
||||
c++;
|
||||
}
|
||||
if (62 <= rand) {
|
||||
d++;
|
||||
}
|
||||
if (a * b * c * d != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 是否是正确的密码(4类中仅一类为0,其他不为0)
|
||||
flag = (a * b * c != 0 && d == 0) || (a * b * d != 0 && c == 0) || (a * c * d != 0 && b == 0)
|
||||
|| (b * c * d != 0 && a == 0);
|
||||
}
|
||||
return password.toString();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(generatePassword(6));
|
||||
}
|
||||
}
|
|
@ -8,8 +8,10 @@ import java.time.*;
|
|||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 时间工具类
|
||||
|
@ -875,4 +877,37 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||
return before7days.getTime() < addtime.getTime();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取两个时间内的每一天
|
||||
*
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
public static List<String> findDaysStr(String startTime, String endTime) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.YYYY_MM_DD);
|
||||
Date dBegin = null;
|
||||
Date dEnd = null;
|
||||
try {
|
||||
dBegin = sdf.parse(startTime);
|
||||
dEnd = sdf.parse(endTime);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
List<String> daysStrList = new ArrayList<>();
|
||||
daysStrList.add(sdf.format(dBegin));
|
||||
Calendar calBegin = Calendar.getInstance();
|
||||
calBegin.setTime(dBegin);
|
||||
Calendar calEnd = Calendar.getInstance();
|
||||
calEnd.setTime(dEnd);
|
||||
|
||||
while (dEnd.after(calBegin.getTime())) {
|
||||
calBegin.add(Calendar.DAY_OF_MONTH, 1);
|
||||
String dayStr = sdf.format(calBegin.getTime());
|
||||
daysStrList.add(dayStr);
|
||||
}
|
||||
return daysStrList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,25 +1,12 @@
|
|||
package com.hzs.common.core.utils;/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/6/6 9:55
|
||||
* @Classname: DeduplicationUtil
|
||||
* @PackageName: com.hzs.common.core.utils
|
||||
*/
|
||||
package com.hzs.common.core.utils;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
*@BelongsProject: hzs_cloud
|
||||
*@BelongsPackage: com.hzs.common.core.utils
|
||||
*@Author: yh
|
||||
*@CreateTime: 2023-06-06 09:55
|
||||
*@Description: TODO
|
||||
*@Version: 1.0
|
||||
*/
|
||||
public class DeduplicationUtil {
|
||||
|
||||
/**
|
||||
* 自定义函数去重(采用 Predicate函数式判断,采用 Function获取比较key)
|
||||
* 内部维护一个 ConcurrentHashMap,并采用 putIfAbsent特性实现
|
||||
|
@ -29,7 +16,7 @@ public class DeduplicationUtil {
|
|||
* @return
|
||||
*/
|
||||
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
|
||||
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
|
||||
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
|
||||
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
|
||||
}
|
||||
|
||||
|
@ -41,7 +28,7 @@ public class DeduplicationUtil {
|
|||
* @return
|
||||
*/
|
||||
public static <T> Predicate<T> distinctNotByKey(Function<? super T, ?> keyExtractor) {
|
||||
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
|
||||
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
|
||||
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) != null;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,27 +1,14 @@
|
|||
package com.hzs.common.core.utils;/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/3/10 15:56
|
||||
* @Classname: distinctByKeyUtil
|
||||
* @PackageName: com.hzs.common.core.utils
|
||||
*/
|
||||
package com.hzs.common.core.utils;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
*@BelongsProject: hzs_cloud
|
||||
*@BelongsPackage: com.hzs.common.core.utils
|
||||
*@Author: yh
|
||||
*@CreateTime: 2023-03-10 15:56
|
||||
*@Description: TODO
|
||||
*@Version: 1.0
|
||||
*/
|
||||
public class DistinctByKeyUtil {
|
||||
/**
|
||||
* 对象根据某一值去重
|
||||
*
|
||||
* @param keyExtractor
|
||||
* @param <T>
|
||||
* @return
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
package com.hzs.common.core.utils;
|
||||
|
||||
|
||||
|
||||
import com.hzs.common.core.utils.sign.Base64Util;
|
||||
import org.springframework.util.Base64Utils;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2024/8/20 9:38
|
||||
* @Classname: NacosSecretUtil
|
||||
* @Package_name: com.hzs
|
||||
*/
|
||||
public class NacosSecretUtil {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 自定义生成JWT令牌的密钥
|
||||
String nacosSecret = "smYhZs_20240820_UNkSTzy_formY_toKen";
|
||||
// 输出密钥长度,要求不得低于32字符,否则无法启动节点。
|
||||
System.out.println("密钥长度》》》" + nacosSecret.length());
|
||||
// 密钥进行Base64编码
|
||||
byte[] data = nacosSecret.getBytes(StandardCharsets.UTF_8);
|
||||
System.out.println("密钥Base64编码》》》" + Base64Utils.encodeToString(data));
|
||||
System.out.println("密钥Base64编码》》》" + Base64Util.encode(data));
|
||||
}
|
||||
}
|
|
@ -2,17 +2,11 @@ package com.hzs.common.core.utils;
|
|||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2022/12/2 14:12
|
||||
* @Classname: NumberUtil
|
||||
* @PackageName: com.hzs.common.core.utils
|
||||
*/
|
||||
public class NumberUtil {
|
||||
|
||||
/**
|
||||
* 获取百分比
|
||||
*
|
||||
* @param number1 /
|
||||
* @param number2 总数/
|
||||
* @return java.lang.String /
|
||||
|
|
|
@ -14,8 +14,6 @@ import java.io.InputStream;
|
|||
|
||||
/**
|
||||
* OSS 使用工具
|
||||
*
|
||||
* @author: jiiangchao
|
||||
*/
|
||||
@Slf4j
|
||||
public class OssUtil {
|
||||
|
|
|
@ -7,8 +7,6 @@ import com.hzs.common.core.web.page.TableSupport;
|
|||
|
||||
/**
|
||||
* 分页工具类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public class PageUtils extends PageHelper {
|
||||
|
||||
|
|
|
@ -27,8 +27,6 @@ import reactor.core.publisher.Mono;
|
|||
|
||||
/**
|
||||
* 客户端工具类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public class ServletUtils {
|
||||
|
||||
|
|
|
@ -9,8 +9,6 @@ import org.springframework.stereotype.Component;
|
|||
|
||||
/**
|
||||
* spring工具类 方便在非spring管理环境中获取bean
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@Component
|
||||
public final class SpringUtils implements BeanFactoryPostProcessor {
|
||||
|
|
|
@ -7,13 +7,7 @@ import com.alibaba.fastjson2.JSONObject;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* description: 将json串转化为map类型
|
||||
*
|
||||
* @author: sui q
|
||||
* @time: 2023/4/3 14:17
|
||||
* @classname: StringJsonUtils
|
||||
* @package_name: com.hzs.common.core.utils
|
||||
* version 1.0.0
|
||||
* 将json串转化为map类型
|
||||
*/
|
||||
public class StringJsonUtils {
|
||||
|
||||
|
@ -50,10 +44,10 @@ public class StringJsonUtils {
|
|||
for (int j = 0; j < jsonArray.size(); j++) {
|
||||
// JSONObject reagobj = JSONObject.parseObject(jsonStr);
|
||||
Object object = jsonArray.get(j);
|
||||
if(object instanceof String){
|
||||
if (object instanceof String) {
|
||||
jsonArray.set(j, jsonArray.get(j).toString().trim());
|
||||
}else{
|
||||
if(jsonArray.get(j) instanceof JSONObject){
|
||||
} else {
|
||||
if (jsonArray.get(j) instanceof JSONObject) {
|
||||
JSONObject reagobj = (JSONObject) jsonArray.get(j);
|
||||
handleJsonObject(reagobj);
|
||||
jsonArray.set(j, reagobj);
|
||||
|
|
|
@ -6,11 +6,7 @@ import org.springframework.stereotype.Component;
|
|||
import java.util.concurrent.*;
|
||||
|
||||
/**
|
||||
* Description: 线程工具类
|
||||
* Author: jiang chao
|
||||
* Time: 2022/8/30 10:10
|
||||
* Classname: ThreadUtil
|
||||
* PackageName: com.hzs.common.core.utils
|
||||
* 线程工具类
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
|
|
|
@ -8,11 +8,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||
import java.io.*;
|
||||
|
||||
/**
|
||||
* @Description: 文件上传工具
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/1/13 11:24
|
||||
* @Classname: UploadUtil
|
||||
* @PackageName: com.hzs.member.tool
|
||||
* 文件上传工具
|
||||
*/
|
||||
@Slf4j
|
||||
public class UploadFileUtil {
|
||||
|
|
|
@ -2,8 +2,6 @@ package com.hzs.common.core.utils.poi;
|
|||
|
||||
/**
|
||||
* Excel数据格式处理适配器
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public interface ExcelHandlerAdapter {
|
||||
|
||||
|
|
|
@ -62,8 +62,6 @@ import com.hzs.common.core.utils.reflect.ReflectUtils;
|
|||
|
||||
/**
|
||||
* Excel相关处理
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@Slf4j
|
||||
public class ExcelUtil<T> {
|
||||
|
|
|
@ -18,8 +18,6 @@ import com.hzs.common.core.utils.DateUtils;
|
|||
|
||||
/**
|
||||
* 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@Slf4j
|
||||
@SuppressWarnings("rawtypes")
|
||||
|
|
|
@ -8,8 +8,6 @@ import java.net.URL;
|
|||
|
||||
/**
|
||||
* Base64工具类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public final class Base64Util {
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@ import com.hzs.common.core.utils.StringUtils;
|
|||
|
||||
/**
|
||||
* sql操作工具类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public class SqlUtil {
|
||||
|
||||
|
|
|
@ -2,8 +2,6 @@ package com.hzs.common.core.utils.uuid;
|
|||
|
||||
/**
|
||||
* ID生成器工具类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public class IdUtils {
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import com.hzs.common.core.utils.DateUtils;
|
|||
import com.hzs.common.core.utils.StringUtils;
|
||||
|
||||
/**
|
||||
* @author hzs 序列生成类
|
||||
* 序列生成类
|
||||
*/
|
||||
public class Seq {
|
||||
|
||||
|
|
|
@ -10,8 +10,6 @@ import com.hzs.common.core.exception.UtilException;
|
|||
|
||||
/**
|
||||
* 提供通用唯一识别码(universally unique identifier)(UUID)实现
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
public final class UUID implements java.io.Serializable, Comparable<UUID> {
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ public class JdPayServiceImpl implements IJdPayService {
|
|||
log.info("分账 最后一个账户( 总 - 已分账 ) : {}, {}", subTradeAmount, remaining);
|
||||
onlinePayment.setSubAccountMoney(subTradeAmount);
|
||||
}else{
|
||||
subTradeAmount = tradeAmount.subtract(tradeAmount.multiply(separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)).setScale(2, BigDecimal.ROUND_DOWN));
|
||||
subTradeAmount = tradeAmount.multiply(separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN)).setScale(2, BigDecimal.ROUND_DOWN);
|
||||
remaining = remaining.subtract(subTradeAmount).setScale(2, BigDecimal.ROUND_DOWN);
|
||||
onlinePayment.setMainAccountMoney(subTradeAmount);
|
||||
log.info("分账 过程 : {}, {}, {}", subTradeAmount, remaining, separateAccount.getProportion().setScale(2, BigDecimal.ROUND_DOWN));
|
||||
|
|
Loading…
Reference in New Issue