## 去掉部分不用的业绩、区域考核等;调整部分接口参数;

This commit is contained in:
cabbage 2025-07-11 14:42:52 +08:00
parent 8f1c088250
commit d3ea099ef3
36 changed files with 79 additions and 1994 deletions

View File

@ -1,29 +0,0 @@
package com.hzs.bonus.detail;
import com.hzs.common.core.domain.R;
import java.util.Date;
import java.util.List;
/**
* @description: 新零售会员区域考核dubbo服务
* @author: zhang jing
* @date: 2025/3/7 10:36
* @param:
* @return:
**/
public interface ICuRegionAssessApi {
/**
* @description: 定时处理会员收益区域处理前三天
* @author: zhang jing
* @date: 2025/3/7 10:45
* @param: [startDate]
* @return: com.hzs.common.core.domain.R<?>
**/
R<?> validateHandAreaAssess(Date startDate,Date endDate);
}

View File

@ -1,30 +0,0 @@
package com.hzs.member.base;
import com.hzs.common.core.domain.R;
/**
* @description: 会员收益区域服务接口
* @author: zhang jing
* @date: 2024/12/30 15:01
* @param:
* @return:
**/
public interface ICuMemberRetailRegionServiceApi {
/**
* @description: 批量修改已到期的会员收益区域
* @author: zhang jing
* @date: 2024/12/30 15:22
* @param: []
* @return: com.hzs.common.core.domain.R<?>
**/
R<?> batchUpdateRetailRegion();
/**
* 处理重复区域
*
* @return
*/
R<?> handleRepeatRegion();
}

View File

@ -1,31 +0,0 @@
package com.hzs.retail.member;
import com.hzs.common.core.domain.R;
import java.util.List;
/**
* @Description: 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: IMemberRetailApi
* @PackageName: com.hzs.retail.member
*/
public interface IMemberRetailApi {
/**
* 定时处理收益区域
*
* @return
*/
R<?> checkRegion();
/**
* 取消收益区域
*
* @param pkIdList 收益区域ID列表
*/
R<?> cancelRegion(List<Long> pkIdList);
}

View File

@ -1,35 +0,0 @@
package com.hzs.bonus.detail.controller.api;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 考核会员端
*/
@RestController
@RequestMapping("/api/region")
public class ApiCuRegionAssessController extends BaseController {
@Autowired
private ICuRegionAssessService regionAssessService;
/**
* 查询会员昨天奖金的值
*/
@GetMapping("/query")
public TableDataInfo listRegionAssess() {
CuRegionAssessParam cuRegionAssessParam = new CuRegionAssessParam();
cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry());
cuRegionAssessParam.setPkMember(SecurityUtils.getUserId());
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
return getDataTable(regionAssessService.getCuRegionAssessVoS(cuRegionAssessExtList));
}
}

View File

@ -1,65 +0,0 @@
package com.hzs.bonus.detail.controller.manage;
import cn.hutool.core.bean.BeanUtil;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.detail.vo.CuRegionAssessExcelVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* 新零售会员区域考核 前端控制器
*/
@RestController
@RequestMapping("/manage/region")
public class CuRegionAssessController extends BaseController {
@Autowired
private ICuRegionAssessService regionAssessService;
/**
* 查询会员昨天奖金的值
*/
@PostMapping("/query")
public TableDataInfo listRegionAssess(@RequestBody CuRegionAssessParam cuRegionAssessParam) {
startPage();
cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry());
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
List<CuRegionAssessVO> cuRegionAssessVoList = regionAssessService.getCuRegionAssessVoS(cuRegionAssessExtList);
TableDataInfo dataTable = getDataTable(cuRegionAssessExtList);
dataTable.setRows(cuRegionAssessVoList);
return dataTable;
}
/**
* 分页查询会员某个时间段内的奖金汇总
*/
@PostMapping("/export")
public void exportRegionAssess(HttpServletResponse response, CuRegionAssessParam cuRegionAssessParam) {
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
List<CuRegionAssessExcelVO> cuRegionAssessVoList = new ArrayList<>();
for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) {
for (CuRegionAssessDetail cuRegionAssessDetail : cuRegionAssessExt.getCuRegionAssessDetailList()) {
CuRegionAssessExcelVO regionAssessExcelVO = BeanUtil.copyProperties(cuRegionAssessExt, CuRegionAssessExcelVO.class);
regionAssessExcelVO.setAssessDate(cuRegionAssessDetail.getAssessDate());
regionAssessExcelVO.setTeamMonthPv(cuRegionAssessDetail.getTeamMonthPv());
regionAssessExcelVO.setSmallAreaPv(cuRegionAssessDetail.getSmallAreaPv());
regionAssessExcelVO.setAssessStatus(cuRegionAssessDetail.getAssessStatus());
cuRegionAssessVoList.add(regionAssessExcelVO);
}
}
ExcelUtil<CuRegionAssessExcelVO> util = new ExcelUtil<>(CuRegionAssessExcelVO.class);
util.exportExcel(response, cuRegionAssessVoList, "区域考核导出");
}
}

View File

@ -1,85 +0,0 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface CuRegionAssessDetailMapper extends BaseMapper<CuRegionAssessDetail> {
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/
void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
* @description: 删除重复的数据
* @author: sui q
* @date: 2025/1/15 16:11
* @param: null null
**/
void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
* @description: 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
**/
void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List<?> cuRegionAssessDetailList);
/*
* @description: 根据上月数据更新考核明细数据
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
**/
void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
* @description: 根据上月数据更新考核明细数据
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
**/
void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
* @description: 初始化考核先置为考核失败
* @author: sui q
* @date: 2025/1/14 17:30
* @param: null null
**/
void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate);
/*
* @description: 根据月后业绩考核汇总满足30w小区10w
* @author: sui q
* @date: 2025/1/14 17:36
* @param: null null
**/
void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate);
/*
* @description: 根据月后业绩考核汇总满足30w小区10w
* @author: sui q
* @date: 2025/1/14 17:36
* @param: null null
**/
void updateCuRegionAssessDetailByHand(@Param("assessDate") Date assessDate);
}

View File

@ -1,49 +1,12 @@
package com.hzs.bonus.detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核 Mapper 接口
*/
public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
/*
* 查询考核结果
**/
List<CuRegionAssessExt> queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam);
/*
* 考核开始日期
**/
void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/**
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
*/
List<Long> batchQueryCuRegionAssessSeq(Integer rowNum);
/*
* 批量插入区域考核数据
**/
void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List<?> cuRegionAssessList);
/*
* 查询到期日期是上个月的区域
**/
List<CuMemberRetailRegion> queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
* 查询手动设置考核的近6个月考核记录
**/
List<CuRegionAssessExt> queryRegionAssessByDate(@Param("memberRetailRegionList") List<CuMemberRetailRegion> memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

View File

@ -1,46 +0,0 @@
package com.hzs.bonus.detail.provider;
import com.hzs.bonus.detail.ICuRegionAssessApi;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
/**
* @Description: 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: MemberRetailProvider
* @PackageName: com.hzs.retail.member.provider
*/
@Slf4j
@DubboService
public class CuRegionAssessProvider implements ICuRegionAssessApi {
@Autowired
private ICuRegionAssessService iCuRegionAssessService;
/**
* @description: 定时处理会员收益区域处理前三天
* @author: zhang jing
* @date: 2025/3/7 10:45
* @param: [startDate]
* @return: com.hzs.common.core.domain.R<?>
**/
@Override
public R<?> validateHandAreaAssess(Date startDate,Date endDate) {
try {
iCuRegionAssessService.validateHandAreaAssess(startDate,endDate);
return R.ok();
} catch (Exception e) {
log.error("定时任务处理前3天收益区域异常", e);
return R.fail(e.getMessage());
}
}
}

View File

@ -1,52 +0,0 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface ICuRegionAssessDetailService extends IService<CuRegionAssessDetail> {
/*
* @description: 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/
void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod);
/*
* @description: 删除重复的数据
* @author: sui q
* @date: 2025/1/15 16:11
* @param: null null
**/
void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate);
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
* @description: 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
**/
void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList);
/*
* @description: 根据上月数据考核区域
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
**/
void assessCuRegionAssessDetail(String rangeTableName, Date assessDate);
}

View File

@ -1,33 +1,11 @@
package com.hzs.bonus.detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import java.util.Date;
import java.util.List;
/**
* 新零售会员区域考核 服务类
*/
public interface ICuRegionAssessService extends IService<CuRegionAssess> {
/**
* 定时处理会员收益区域处理前三天
**/
void validateHandAreaAssess(Date startDate, Date endDate);
/*
* 考核开始日期
**/
void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod);
/*
* 查询考核结果
**/
List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);
List<CuRegionAssessVO> getCuRegionAssessVoS(List<CuRegionAssessExt> cuRegionAssessExtList);
}

View File

@ -1,57 +0,0 @@
package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.detail.mapper.CuRegionAssessDetailMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Service
public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessDetailMapper, CuRegionAssessDetail> implements ICuRegionAssessDetailService {
@Override
public void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod) {
baseMapper.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
}
@Override
public void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate) {
baseMapper.updateAssessRegionDetailByDate(assessStartDate, assessEndDate);
}
@Override
public List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum) {
return baseMapper.batchQueryCuRegionAssessDetailSeq(rowNum);
}
@Override
public void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList) {
baseMapper.batchInsertCuRegionAssessDetail(cuRegionAssessDetailList);
}
@Override
public void assessCuRegionAssessDetail(String rangeTableName, Date assessDate) {
// 处理考核明细的汇总值
baseMapper.mergeCuRegionAssessDetailTeamPv(rangeTableName, assessDate);
// 处理考核明细的小区
baseMapper.mergeCuRegionAssessDetailSmallAreaPv(rangeTableName, assessDate);
// 所有考核先变为考核失败
baseMapper.updateCuRegionAssessDetailInit(assessDate);
// 验证汇总业绩和小区业绩是否满足条件汇总业绩满足30000小区满足100000变更为考核通过
baseMapper.updateCuRegionAssessDetailByPv(assessDate);
// 手动开区域由免考修改为正常考核到期后验证近6个月的考核结果达标3次继续有奖衔否则没有
// baseMapper.updateCuRegionAssessDetailByHand(assessDate);
// 更新主表更新达标次数
}
}

View File

@ -1,135 +1,14 @@
package com.hzs.bonus.detail.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.detail.mapper.CuRegionAssessMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
import com.hzs.bonus.detail.service.ICuRegionAssessService;
import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.retail.member.IMemberRetailApi;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
* 新零售会员区域考核 服务实现类
*/
@Service
public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper, CuRegionAssess> implements ICuRegionAssessService {
@DubboReference
IMemberRetailApi iMemberRetailApi;
@Autowired
private ICuRegionAssessDetailService iCuRegionAssessDetailService;
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void validateHandAreaAssess(Date startDate, Date endDate) {
List<Long> cancelRegionList = new ArrayList<>();
List<CuMemberRetailRegion> dueRetailRegionList = baseMapper.queryDueCuMemberRetailRegion(startDate, endDate);
if (dueRetailRegionList.size() > 0) {
Date assessDate = DateUtils.currentMonthFirstDate(startDate);
// 查询期初日期 beforeMonthFirstDate startDate 考核期间结束日期
Date assMonthStartDate = DateUtils.beforeMonthFirstDate(5, assessDate);
// assessDate assessDate 查询考核记录
Map<Long, CuRegionAssessExt> regionAssessExtMap = new HashMap<>();
List<CuRegionAssessExt> cuRegionAssessExtList = baseMapper.queryRegionAssessByDate(dueRetailRegionList, assMonthStartDate, assessDate);
cuRegionAssessExtList.forEach(cuRegionAssessExt -> regionAssessExtMap.put(cuRegionAssessExt.getPkMember(), cuRegionAssessExt));
for (CuMemberRetailRegion cuMemberRetailRegion : dueRetailRegionList) {
if (regionAssessExtMap.containsKey(cuMemberRetailRegion.getPkMember())) {
CuRegionAssessExt cuRegionAssessExt = regionAssessExtMap.get(cuMemberRetailRegion.getPkMember());
if (cuRegionAssessExt.getPkId() >= 3) {
continue;
}
}
cancelRegionList.add(cuMemberRetailRegion.getPkId());
}
}
if (cancelRegionList.size() > 0) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
}
private void saveCuRegionAssess(Map<Long, CuRegionAssess> regionAssessMap, List<CuRegionAssessDetail> regionAssessDetailList) {
List<Long> longs = baseMapper.batchQueryCuRegionAssessSeq(regionAssessMap.size());
int i = 0;
List<CuRegionAssess> cuRegionAssessList = new ArrayList<>();
for (Long pkMember : regionAssessMap.keySet()) {
CuRegionAssess cuRegionAssess = regionAssessMap.get(pkMember);
cuRegionAssess.setPkId(longs.get(i));
cuRegionAssessList.add(cuRegionAssess);
i++;
}
for (CuRegionAssessDetail cuRegionAssessDetail : regionAssessDetailList) {
if (regionAssessMap.containsKey(cuRegionAssessDetail.getPkRegionAssess())) {
CuRegionAssess cuRegionAssess = regionAssessMap.get(cuRegionAssessDetail.getPkRegionAssess());
cuRegionAssessDetail.setPkRegionAssess(cuRegionAssess.getPkId());
}
}
// 主表
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList);
lists.forEach(list ->
baseMapper.batchInsertCuRegionAssess(list));
List<Long> idList = iCuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
for (int j = 0; j < regionAssessDetailList.size(); j++) {
regionAssessDetailList.get(j).setPkId(idList.get(j));
}
// 明细表
List<List<?>> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList);
detailList.forEach(detail ->
iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
}
List<CuRegionAssess> queryCuRegionAssessByEndDate(Date settleDate) {
QueryWrapper<CuRegionAssess> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ASSESS_END_DATE", settleDate);
return baseMapper.selectList(queryWrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) {
// 7天内重算
iCuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod);
}
@Override
public List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam) {
regionAssessParam.setAssessDate(DateUtils.currentMonthFirstDate());
return baseMapper.queryRegionAssessByCondition(regionAssessParam);
}
@Override
public List<CuRegionAssessVO> getCuRegionAssessVoS(List<CuRegionAssessExt> cuRegionAssessExtList) {
List<CuRegionAssessVO> cuRegionAssessVoList = new ArrayList<>();
for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) {
CuRegionAssessVO cuRegionAssessVO = BeanUtil.copyProperties(cuRegionAssessExt, CuRegionAssessVO.class);
List<CuRegionAssessDetailVO> regionAssessDetailVoList = new ArrayList<>();
for (CuRegionAssessDetail cuRegionAssessDetail : cuRegionAssessExt.getCuRegionAssessDetailList()) {
CuRegionAssessDetailVO cuRegionAssessDetailVO = BeanUtil.copyProperties(cuRegionAssessDetail, CuRegionAssessDetailVO.class);
regionAssessDetailVoList.add(cuRegionAssessDetailVO);
}
cuRegionAssessVO.setRegionAssessDetailVoList(regionAssessDetailVoList);
cuRegionAssessVoList.add(cuRegionAssessVO);
}
return cuRegionAssessVoList;
}
}

View File

@ -1,51 +0,0 @@
package com.hzs.bonus.detail.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 考核区域明细
*/
@Data
public class CuRegionAssessDetailVO implements Serializable {
/**
* 会员主键
*/
private Long pkMember;
/**
* 考核日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessDate;
/**
* 会员等级
*/
private Integer pkAwards;
/**
* 团队月消费pv
*/
private BigDecimal teamMonthPv;
/**
* 团队月消费pv
*/
private BigDecimal smallAreaPv;
/**
* 考核状态 (0=考核通过,1=免考通过,2=考核不通过,3=不考核)
*/
@Transaction(transactionKey = EnumsPrefixConstants.ASSESS_STATUS)
private Integer assessStatus;
private String assessStatusVal;
}

View File

@ -1,56 +0,0 @@
package com.hzs.bonus.detail.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 区域考核结果
*/
@Data
public class CuRegionAssessVO implements Serializable {
/**
* 会员编号
*/
private String memberCode;
/**
* 会员姓名
*/
private String memberName;
/**
* 考核区域 ++
*/
private String assessAddress;
/**
* 考核期
*/
private Integer assessPeriod;
/**
* 考核开始日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessStartDate;
/**
* 考核期结束日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessEndDate;
/**
* 达标次数
*/
private Integer reachNum;
@Transaction
private List<CuRegionAssessDetailVO> regionAssessDetailVoList;
}

View File

@ -1,23 +0,0 @@
package com.hzs.bonus.param;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 查询参数
*/
@Data
public class CuRegionAssessParam implements Serializable {
private Date assessDate;
private Long pkMember;
private Integer pkCountry;
private String memberCode;
private String memberName;
}

View File

@ -1,104 +0,0 @@
<?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.bonus.detail.mapper.CuRegionAssessDetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessDetail" type="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<id column="PK_ID" property="pkId" />
<result column="PK_MEMBER" property="pkMember" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_REGION_ASSESS" property="pkRegionAssess" />
<result column="ASSESS_DATE" property="assessDate" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="TEAM_MONTH_PV" property="teamMonthPv" />
<result column="SMALL_AREA_PV" property="smallAreaPv" />
<result column="ASSESS_STATUS" property="assessStatus" />
</resultMap>
<insert id="batchInsertCuRegionAssessDetail">
insert ALL
<foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" " >
into cu_region_assess_detail(pk_id,pk_member,pk_region_assess,assess_date,pk_creator,pk_country) values
(
#{item.pkId},#{item.pkMember},#{item.pkRegionAssess},#{item.assessDate},#{item.pkCreator},#{item.pkCountry}
)
</foreach>
SELECT 1 FROM dual
</insert>
<update id="mergeCuRegionAssessDetailTeamPv">
merge into cu_region_assess_detail a
using(
select cd.pk_id,cr.pk_member,cr.pk_awards,
(cr.month_consume_pv+cr.team_month_pv) team_month_pv from cu_region_assess_detail cd
inner join ${rangeTableName} cr
on cd.pk_member=cr.pk_member
where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE}
) b
on(a.pk_id=b.pk_id)
when matched then
update set a.pk_awards=b.pk_awards,a.team_month_pv=b.team_month_pv
WHERE a.pk_awards != b.pk_awards OR a.team_month_pv != b.team_month_pv
</update>
<update id="mergeCuRegionAssessDetailSmallAreaPv">
merge into cu_region_assess_detail a
using(
select pk_id,max(big_area_pv) big_area_pv from(
select cd.pk_id,b.* from cu_region_assess_detail cd
inner join(
select pk_parent pk_member,(month_consume_pv+team_month_pv) big_area_pv from ${rangeTableName}
union
select pk_member,month_consume_pv big_area_pv from ${rangeTableName}) b
on cd.pk_member=b.pk_member
where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE}
)
group by pk_id
) b
on(a.pk_id=b.pk_id)
when matched then
update set a.small_area_pv=a.team_month_pv-b.big_area_pv
</update>
<update id="updateCuRegionAssessDetailInit">
update cu_region_assess_detail set assess_status=2 where del_flag=0 and assess_date=#{assessDate, jdbcType=DATE}
</update>
<update id="updateCuRegionAssessDetailByPv">
update cu_region_assess_detail set assess_status=0
where del_flag=0 and team_month_pv>=46875 and small_area_pv>=15625
and assess_date = #{assessDate, jdbcType=DATE}
</update>
<update id="updateCuRegionAssessDetailByHand">
update cu_region_assess_detail set assess_status=0
where del_flag=0 and assess_date = #{assessDate, jdbcType=DATE}
and pk_region_assess in(select pk_id from cu_region_assess where del_flag=0 and source=2)
</update>
<update id="updateAssessRegionDetailByDate">
update cu_region_assess_detail set del_flag=1,modified_time=sysdate where pk_region_assess in(
select ca.pk_id from cu_region_assess ca
inner join (
select pk_id from cu_member_retail_region
where effective=0 and del_flag=0
and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE}
and nvl(modified_time,creation_time) &lt; #{assessEndDate,jdbcType=DATE}
) b
on ca.pk_region =b.pk_id
where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
</update>
<delete id="deleteAssessRegionDetailByDate">
delete from cu_region_assess_detail where del_flag=0 and
pk_region_assess in(
select pk_id from cu_region_assess where del_flag=0 and
assess_start_date=#{assessStartDate, jdbcType=DATE}
<choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
)
</delete>
<select id="batchQueryCuRegionAssessDetailSeq" resultType="java.lang.Long">
select cu_region_assess_detail_seq.nextval from dual connect by rownum &lt;= #{rowNum}
</select>
</mapper>

View File

@ -2,111 +2,5 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.detail.mapper.CuRegionAssessMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessExt" type="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_MEMBER" property="pkMember" />
<result column="PK_REGION" property="pkRegion" />
<result column="ASSESS_PERIOD" property="assessPeriod" />
<result column="ASSESS_START_DATE" property="assessStartDate" />
<result column="ASSESS_END_DATE" property="assessEndDate" />
<result column="REACH_NUM" property="reachNum" />
<result column="SOURCE" property="source" />
<result column="MEMBER_CODE" property="memberCode" />
<result column="MEMBER_NAME" property="memberName" />
<result column="PROVINCE_NAME" property="provinceName" />
<result column="CITY_NAME" property="cityName" />
<result column="COUNTY_NAME" property="countyName" />
<result column="ASSESS_ADDRESS" property="assessAddress" />
<collection property="cuRegionAssessDetailList" ofType="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<result column="ASSESS_DATE" property="assessDate" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="TEAM_MONTH_PV" property="teamMonthPv" />
<result column="SMALL_AREA_PV" property="smallAreaPv" />
<result column="ASSESS_STATUS" property="assessStatus" />
</collection>
</resultMap>
<insert id="batchInsertCuRegionAssess">
insert ALL
<foreach item="item" index="index" collection="cuRegionAssessList" separator=" " >
into cu_region_assess(pk_id,pk_member,assess_period,pk_region,assess_start_date,assess_end_date,
source,pk_creator,pk_country) values
(
#{item.pkId},#{item.pkMember},#{item.assessPeriod},#{item.pkRegion},#{item.assessStartDate},#{item.assessEndDate},
#{item.source},#{item.pkCreator},#{item.pkCountry}
)
</foreach>
SELECT 1 FROM dual
</insert>
<delete id="deleteAssessRegionByDate">
delete from cu_region_assess where del_flag=0 and
assess_start_date=#{assessStartDate, jdbcType=DATE}
<choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
</delete>
<select id="batchQueryCuRegionAssessSeq" resultType="java.lang.Long">
select cu_region_assess_seq.nextval from dual connect by rownum &lt;= #{rowNum}
</select>
<select id="queryRegionAssessByCondition" resultMap="CuRegionAssessExt">
select cm.member_code,cm.member_name,ca.reach_num,ca.assess_period,
ca.assess_start_date,ca.assess_end_date,ca.reach_num,
(province.name||city.name||county.name) assess_address,
cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv,
cd.assess_status /* province.name,city.name,county.name,*/
from cu_region_assess ca
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
inner join cu_member cm
on cm.pk_id=ca.pk_member
inner join cu_member_retail_region cr
on cr.pk_id=ca.pk_region
left join bd_area province on province.PK_ID=cr.province
left join bd_area city on city.PK_ID=cr.city
left join bd_area county on county.PK_ID=cr.county
where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0
<if test="regionAssessParam.assessDate != null">
and cd.assess_date &lt;= #{regionAssessParam.assessDate,jdbcType=DATE}
</if>
<if test="regionAssessParam.pkMember != null">
and ca.pk_member = #{regionAssessParam.pkMember}
</if>
<if test="regionAssessParam.pkCountry != null">
and ca.pk_country = #{regionAssessParam.pkCountry}
</if>
<if test="regionAssessParam.memberCode != null and regionAssessParam.memberCode != ''">
and cm.member_code = #{regionAssessParam.memberCode}
</if>
<if test="regionAssessParam.memberName != null and regionAssessParam.memberName != ''">
and cm.member_name = #{regionAssessParam.memberName}
</if>
</select>
<select id="queryDueCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0
and effective_end_date>= #{startDate, jdbcType=DATE}
and effective_end_date &lt; #{endDate, jdbcType=DATE}
</select>
<select id="queryRegionAssessByDate"
resultType="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
select cd.pk_member,count(cd.pk_id) pk_id from cu_region_assess ca
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
where ca.del_flag=0 and cd.del_flag=0
and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE}
and assess_status=0 and ca.pk_member in
<foreach collection="memberRetailRegionList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
group by cd.pk_member
</select>
</mapper>

View File

@ -1,53 +0,0 @@
package com.hzs.member.base.provider;
import com.hzs.common.core.domain.R;
import com.hzs.member.base.ICuMemberRetailRegionServiceApi;
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @description: 会员收益区域dubbo服务
* @author: zhang jing
* @date: 2024/12/30 15:05
* @param:
* @return:
**/
@Slf4j
@DubboService
public class CuMemberRetailRegionServiceProvider implements ICuMemberRetailRegionServiceApi {
@Autowired
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
/**
* @description: 批量修改已到期的会员收益区域
* @author: zhang jing
* @date: 2024/12/30 15:20
* @param: []
* @return: com.hzs.common.core.domain.R<?>
**/
@Override
public R<?> batchUpdateRetailRegion() {
try {
iCuMemberRetailRegionService.batchUpdateRetailRegion();
} catch (Exception e) {
log.error("batchUpdateRetailRegion error:", e);
return R.fail();
}
return R.ok();
}
@Override
public R<?> handleRepeatRegion() {
try {
iCuMemberRetailRegionService.handleRepeatRegion();
return R.ok();
} catch (Exception e) {
log.error("handleRepeatRegion error:", e);
return R.fail();
}
}
}

View File

@ -17,23 +17,15 @@ import java.util.List;
/**
* 会员首页
*
* @Description:
* @Author: ljc
* @Time: 2023/5/4 21:06
* @Classname: ApiHomePageController
* @Package_name: com.hzs.member.base.controller.api
*/
@Slf4j
@RequestMapping("/api/retail-member")
@RestController
public class ApiRetailHomePageController extends BaseController {
@Autowired
private ICuMemberRetailAchieveService retailAchieveService;
/**
* 查询会员盒数
*
@ -54,7 +46,6 @@ public class ApiRetailHomePageController extends BaseController {
.smallAreaPv(result.getSmallRangeTotalPv())
.build();
return AjaxResult.success(vo);
// return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType));
}
/**

View File

@ -2,44 +2,20 @@ package com.hzs.retail.member.controller.api;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.RetailRegionTreeQueryConstants;
import com.hzs.common.core.constant.SysConstants;
import com.hzs.common.core.constant.msg.AreaConstants;
import com.hzs.common.core.enums.EGrade;
import com.hzs.common.core.enums.ENoticeWebsiteType;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.PageUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
import com.hzs.common.domain.system.base.BdArea;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.retail.member.param.RetailMemberRegionParam;
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
import com.hzs.retail.member.service.IMemberRetailService;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.RecommendListVO;
import com.hzs.retail.member.vo.RetailMemberInfoVO;
import com.hzs.retail.member.vo.RetailMemberRegionVO;
import com.hzs.system.base.IAreaServiceApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
@ -57,11 +33,6 @@ public class RetailMemberController extends BaseController {
private IMemberRetailService iMemberRetailService;
@Autowired
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
@Autowired
private ICuMemberRetailAchieveService iCuMemberRetailAchieveService;
@DubboReference
IAreaServiceApi iAreaServiceApi;
/**
* 获取登录会员信息
@ -310,4 +281,15 @@ public class RetailMemberController extends BaseController {
return tableDataInfo;
}
/**
* 查询选择区域
*
* @param type -- city:省市county:省市区
* @return
*/
@GetMapping("/query-region")
public AjaxResult queryRegion(@RequestParam("type") String type) {
return AjaxResult.success(iCuMemberRetailRegionService.getRegionTreeList(type, SecurityUtils.getUserId()));
}
}

View File

@ -14,6 +14,7 @@ import java.util.List;
* Mapper 接口
*/
public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRange> {
/**
* 查询会员直推会员
*
@ -22,65 +23,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
List<Long> selectDirectPushByPkMember(@Param("pkMember") Long pkMember, @Param("systemType") Integer systemType);
/**
* 查询大区用户信息
*
* @param cuMemberAchieveVO
* @return
*/
CuMemberRetailAchieveVO selectBigAreaByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询表名是否存在
*
* @param tableNames 表名
* @return List<String>
*/
List<String> selectTableNameIsExist(@Param("tableNames") List<String> tableNames);
/**
* 查询会员当天是否下订单
*
* @param pkMember 会员
* @return Integer
*/
CuMemberRetailAchieveVO selectMemberOrderByPkMember(@Param("pkMember") Long pkMember);
/**
* 查询会员的极差业绩
*
* @param cuMemberAchieveVO 入参
* @return CuMemberAchieveVO
*/
List<CuMemberRetailAchieveVO> selectMemberParentByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询会员没有注水的大区盒数
*
* @param cuMemberAchieveVO 入参
* @return CuMemberRetailAchieveVO
*/
Integer selectMemberBoxNoWaterInjection(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询会员注水的大区盒数
*
* @param cuMemberAchieveVO 入参
* @return CuMemberRetailAchieveVO
*/
Integer selectMemberBoxWaterInjection(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询会员最大盒数
*
* @param cuMemberAchieveVO 入参
* @return CuMemberRetailAchieveVO
*/
Integer selectMemberTotalBox(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询会员业绩
*
@ -129,22 +71,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
CuMemberRetailAchieveVO selectMemberBigSmallAchieveDetail(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 根据会员编号查询注水
*
* @param memberCode 会员编号
* @return Integer
*/
Integer selectWaterInjection(@Param("memberCode") String memberCode);
/**
* 查询会员的激活状态
*
* @param cuMemberAchieveVO 入参
* @return Integer
*/
Integer selectMemberActiveState(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 根据会员ID查询上月业绩
*
@ -153,24 +79,9 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
CuMemberRetailAchieveVO selectUpMonthAchieveByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询会员累计业绩
*
* @param cuMemberAchieveVO 入参
* @return CuMemberRetailAchieveVO
*/
CuMemberRetailAchieveVO selectMemberOrderSumAchieveByPkMember(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 查询会员直推业绩(日结+秒结)
* orderType in (41,42,43,44)
* @param cuMemberAchieveVO 入参
* @return List<CuMemberRetailAchieveVO>
*/
List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 获取会员结算明细
*
* @param cuMemberAchieveVO
* @return
*/
@ -194,7 +105,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
CuMemberRetailAchieveVO selectMemberBigSmallBox(CuMemberRetailAchieveVO param);
/**
* 查询大区盒数列表市场动态
*
@ -211,5 +121,4 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
List<Long> selectSubMemberIdByRootMember(@Param("pkMember") Long pkMember, @Param("systemType") Integer systemType);
}

View File

@ -26,14 +26,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
@Param("gradeValue") Integer gradeValue,
@Param("systemType") Integer systemType);
/**
* 可选择的收益区域
*
* @param systemType 系统类型
* @return
*/
List<BdArea> listChooseRegion(@Param("systemType") Integer systemType);
/**
* 插入收益区域
*
@ -53,18 +45,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
**/
List<CuMemberRetailRegionExt> memberretailRegList(CuMemberRetailRegionExt mrrExt);
/**
* 批量修改已到期的会员收益区域
**/
void batchUpdateRetailRegion();
/**
* 重新判断收益区域数据
*
* @return
*/
List<CuMemberRetailRegionExt> listCheckRegionMember();
/**
* 会员购买订单数量
*
@ -77,28 +57,5 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
@Param("systemType") Integer systemType,
@Param("waresCodeList") List<String> waresCodeList);
/**
* 获取重复数据
*
* @param systemType 系统类型
* @return
*/
List<CuMemberRetailRegion> listRepeatData(@Param("systemType") Integer systemType);
/**
* 更新非最新区域其它数据
*
* @param province
* @param city
* @param county
* @param systemType 系统类型
* @return
*/
int updateRepeatDate(@Param("province") Integer province,
@Param("city") Integer city,
@Param("county") Integer county,
@Param("systemType") Integer systemType);
List<BdArea> getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId);
}

View File

@ -1,48 +0,0 @@
package com.hzs.retail.member.provider;
import com.hzs.common.core.domain.R;
import com.hzs.retail.member.IMemberRetailApi;
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* @Description: 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: MemberRetailProvider
* @PackageName: com.hzs.retail.member.provider
*/
@Slf4j
@DubboService
public class MemberRetailProvider implements IMemberRetailApi {
@Autowired
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
@Override
public R<?> checkRegion() {
try {
iCuMemberRetailRegionService.checkRegion();
return R.ok();
} catch (Exception e) {
log.error("定时任务处理收益区域异常", e);
return R.fail(e.getMessage());
}
}
@Override
public R<?> cancelRegion(List<Long> pkIdList) {
try {
iCuMemberRetailRegionService.cancelRegion(pkIdList);
return R.ok();
} catch (Exception e) {
log.error("区域失效操作异常pkIdList{}", pkIdList, e);
return R.fail(e.getMessage());
}
}
}

View File

@ -5,23 +5,13 @@ import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.utils.PageResult;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import java.util.List;
import java.util.Map;
public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRange> {
/**
* 查询会员盒数
*
* @param pkMember 会员ID
* @return CuMemberRetailAchieveVO
*/
CuMemberRetailAchieveVO selectMemberSmallBox(Long pkMember, Integer pkCountry, Integer systemType);
/**
* 查询会员大小区业绩
*
@ -81,15 +71,6 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
*/
CuMemberRetailAchieveVO selectMemberBigSmallAchieveDetail(Long pkMember, Integer pkCountry, Integer systemType);
/**
* 为区域查询提供接口(大小区接口)
*
* @param pkMember 会员ID
* @param pkCountry 国家ID
* @return CuMemberRetailAchieveVO
*/
CuMemberRetailAchieveVO selectMemberSumAchieve(Long pkMember, Integer pkCountry, Integer systemType);
/**
* 查询大区盒数列表市场动态
*

View File

@ -4,7 +4,6 @@ import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
import com.hzs.common.domain.system.base.BdArea;
import com.hzs.retail.member.param.RetailMemberRegionParam;
import com.hzs.retail.member.vo.UnboundAreaVO;
@ -33,14 +32,6 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
*/
String setRegion(RetailMemberRegionParam param);
/**
* 可选择的收益区域
*
* @param systemType 系统类型
* @return
*/
List<BdArea> listChooseRegion(Integer systemType);
/**
* 未绑定收益区域
**/
@ -51,23 +42,6 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
**/
List<CuMemberRetailRegionExt> memberretailRegList(CuMemberRetailRegionExt mrrExt);
/**
* 批量修改已到期的会员收益区域
**/
void batchUpdateRetailRegion();
/**
* 定时处理收益区域
*/
void checkRegion();
/**
* 取消收益区域
*
* @param pkIdList 收益区域ID
*/
void cancelRegion(List<Long> pkIdList);
/**
* 会员购买订单数量
*
@ -78,17 +52,12 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
*/
int getOrderCount(Long pkMember, Integer systemType, List<String> waresCodeList);
/**
* 处理重复区域
*
* @return
*/
void handleRepeatRegion();
/**
* 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants
*
* @param queryType
* @param pkMember
* @return
*/
List<Tree<String>> getRegionTreeList(String queryType);
List<Tree<String>> getRegionTreeList(String queryType, Long pkMember);
}

View File

@ -5,7 +5,6 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.enums.EGrade;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
@ -24,10 +23,7 @@ import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -52,62 +48,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
@Autowired
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@DubboReference
IGradeServiceApi gradeServiceApi;
@Override
public CuMemberRetailAchieveVO selectMemberSmallBox(Long pkMember, Integer pkCountry, Integer systemType) {
CuMember cuMember = iCuMemberService.queryMember(pkMember);
//等级为最高等级时不显示盒数
GradeDTO grade = gradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
if (grade.getGradeValue().equals(EGrade.S_VIP.getValue())) {
return CuMemberRetailAchieveVO.builder().message("当前已是最高等级").build();
}
CuMemberRetailAchieveVO memberRetailAchieveVO;
//查询会员昨日业绩
String memberRetailTable = getTableName();
//查询直推会员
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRetailTable)
.memberRetailSTable(getTableSName()).memberCode(cuMember.getMemberCode())
.pkMember(pkMember).pkMemberList(pkMemberList).build();
//查询会员是否激活
// Integer enableStatus = baseMapper.selectMemberActiveState(memberAchieveVO);
Integer enableStatus = cuMember.getIsActivate();
if (null != enableStatus && enableStatus.equals(EYesNo.YES.getIntValue())) {
//查询总盒数
Integer totalBox = baseMapper.selectMemberTotalBox(memberAchieveVO);
if (null != totalBox) {
Integer maxBox = 0;
//查询是否配置注水
Integer total = baseMapper.selectWaterInjection(cuMember.getMemberCode());
if (null != total && total > 0) {
//查询注水最大盒数
maxBox = baseMapper.selectMemberBoxWaterInjection(memberAchieveVO);
} else {
//查询无注水最大盒数
maxBox = baseMapper.selectMemberBoxNoWaterInjection(memberAchieveVO);
}
memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(totalBox).smallAreaBox(totalBox - maxBox).build();
//总盒数大于2800的时候显示2800
GradeDTO lastGrate = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
//配置中的总盒数
Integer totalBoxConfig = lastGrate.getBoxTotal();
Integer totalBoxMax = memberRetailAchieveVO.getTotalBox() > totalBoxConfig ? totalBoxConfig : memberRetailAchieveVO.getTotalBox();
memberRetailAchieveVO.setTotalBox(totalBoxMax);
} else {
memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(0).smallAreaBox(0).build();
}
} else {
memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(0).smallAreaBox(0).build();
}
return memberRetailAchieveVO;
}
@Override
public CuMemberRetailAchieveVO selectMemberAchieve(Long pkMember, Integer pkCountry, Integer systemType) {
//查询会员昨日业绩
@ -142,18 +82,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
return getMemberBigAndSmallAchieve(memberSelfAchieveList, rate);
}
/**
* 月初第一天赋值
*
* @param memberAchieveVO 入参
* @return CuMemberRetailAchieveVO
*/
private CuMemberRetailAchieveVO setIsFirst(CuMemberRetailAchieveVO memberAchieveVO) {
memberAchieveVO.setIsFirst(isFirstDayOfMonth() ? EYesNo.NO.getIntValue() : EYesNo.YES.getIntValue());
return memberAchieveVO;
}
@Override
public CuMemberRetailAchieveVO selectExcludeWaterSmallAchieve(Long pkMember, Integer pkCountry, Integer systemType) {
//查询会员昨日业绩表
@ -176,10 +104,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
} else {
return CuMemberRetailAchieveVO.builder().smallAreaPv(BigDecimal.ZERO).build();
}
}
@Override
public CuMemberRetailAchieveVO selectMemberBigAchieve(Long pkMember, Integer pkCountry, Integer systemType) {
//查询会员昨日业绩表
@ -277,19 +203,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
.build();
}
/**
* 查询会员直推大区信息
*
* @param pkMemberList 直推会员ID
* @return CuMemberAchieveVO
*/
private CuMemberRetailAchieveVO getMemberBigArea(List<Long> pkMemberList, String memberRangeTable) {
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRangeTable).pkMemberList(pkMemberList).build();
return baseMapper.selectBigAreaByPkMember(memberAchieveVO);
}
/**
* 查询会员直推业绩
*
@ -315,6 +228,7 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
}
private String getDayTableName() {
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
@ -350,11 +264,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
}
public List<String> selectTableNameIsExist(List<String> tableNames) {
return baseMapper.selectTableNameIsExist(tableNames);
}
/**
* 转化万单位汇率换算
*
@ -393,63 +302,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
}
/**
* 为区域查询提供接口
*
* @param pkMember 会员ID
* @param pkCountry 国家ID
* @return CuMemberRetailAchieveVO
*/
@Override
public CuMemberRetailAchieveVO selectMemberSumAchieve(Long pkMember, Integer pkCountry, Integer systemType) {
//查询会员昨日业绩
String memberRetailTable = getTableName();
String memberSecondTable = getDayTableName();
//查询直推会员
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
// 2025年6月11日 取伞下 + 自己的ID
// List<Long> pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType);
//根据国家查汇率
BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
//查询自己业绩
List<CuMemberRetailAchieveVO> memberSelfAchieveList = new ArrayList<>();
//会员业绩
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder().memberRetailTable(memberRetailTable).pkMember(pkMember).systemType(systemType).build();
CuMemberRetailAchieveVO orderAchieveVO = baseMapper.selectMemberOrderSumAchieveByPkMember(memberAchieveVO);
if (null != orderAchieveVO && orderAchieveVO.getArealPv().compareTo(BigDecimal.ZERO) > 0) {
orderAchieveVO.setPkMember(pkMember);
memberSelfAchieveList.add(orderAchieveVO);
}
//查询伞下业绩
if (CollUtil.isNotEmpty(pkMemberList)) {
List<CuMemberRetailAchieveVO> memberPushAchieveList = getMemberPushSumAchieve(pkMemberList, memberRetailTable, memberSecondTable, systemType);
if (CollUtil.isNotEmpty(memberPushAchieveList)) {
memberSelfAchieveList.addAll(memberPushAchieveList);
}
}
if (CollUtil.isEmpty(memberSelfAchieveList)) {
return CuMemberRetailAchieveVO.builder().smallAreaPv(BigDecimal.ZERO).bigArealPv(BigDecimal.ZERO).build();
}
return getMemberBigAndSmallAchieve(memberSelfAchieveList, rate);
}
/**
* 查询会员直推业绩(累计)
*
* @param pkMemberList 直推会员ID
* @return CuMemberAchieveVO
*/
private List<CuMemberRetailAchieveVO> getMemberPushSumAchieve(List<Long> pkMemberList, String memberRangeTable,String memberSecondTable, Integer systemType) {
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
.memberRetailTable(memberRangeTable)
.memberRetailSTable(memberSecondTable)
.pkMemberList(pkMemberList).systemType(systemType).build();
return baseMapper.selectMemberSumAchieve(memberAchieveVO);
}
/**
* 查询不前时间是否是本月第一天
*

View File

@ -10,14 +10,11 @@ import com.hzs.common.core.constant.*;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
import com.hzs.common.domain.system.base.BdArea;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper;
import com.hzs.retail.member.param.RetailMemberRegionParam;
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
import com.hzs.retail.member.service.ICuMemberRetailRegionService;
import com.hzs.retail.member.vo.UnboundAreaVO;
import lombok.extern.slf4j.Slf4j;
@ -25,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -36,9 +32,6 @@ import java.util.List;
@Service
public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailRegionMapper, CuMemberRetailRegion> implements ICuMemberRetailRegionService {
@Autowired
private ICuMemberRetailAchieveService iCuMemberRetailAchieveService;
@Autowired
private RedisService redisService;
@ -88,11 +81,6 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
return null;
}
@Override
public List<BdArea> listChooseRegion(Integer systemType) {
return baseMapper.listChooseRegion(systemType);
}
@Override
public List<UnboundAreaVO> unboundAreaList(Integer pkCountry, Integer systemType) {
return baseMapper.unboundAreaList(pkCountry, systemType);
@ -103,116 +91,14 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
return baseMapper.memberretailRegList(mrrExt);
}
@Override
public void batchUpdateRetailRegion() {
baseMapper.batchUpdateRetailRegion();
}
@Override
public void checkRegion() {
// 需要处理的会员列表
List<CuMemberRetailRegionExt> memberList = baseMapper.listCheckRegionMember();
if (CollectionUtil.isNotEmpty(memberList)) {
memberList.parallelStream().forEach(tmpMember -> {
if (ENoticeWebsiteType.ADMIN.getValue() == tmpMember.getSource()) {
log.info("定时任务区域有效, 会员 {} 后台配置,不取消收益区域", tmpMember.getPkId());
return;
}
// 当前时间
Date nowDate = new Date();
if (tmpMember.getGradeValue() < EGrade.S_VIP.getValue()) {
// 会员等级不足V5需要关掉收益区域
log.info("定时任务区域有效, 会员 {} 等级 {} 不足取消收益区域", tmpMember.getPkId(), tmpMember.getGradeValue());
this.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
.eq(CuMemberRetailRegion::getPkMember, tmpMember.getPkId())
.eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
.set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue())
.set(CuMemberRetailRegion::getPkModified, tmpMember.getPkId())
.set(CuMemberRetailRegion::getModifiedTime, nowDate)
);
} else {
// // 获取小市场业绩
// CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(tmpMember.getPkId(), CountryConstants.CHINA_COUNTRY, tmpMember.getSystemType());
// if (retailAchieve.getSmallAreaPv().compareTo(BigDecimal.ZERO) <= 0) {
// // 正常有区域业绩肯定达标由2万突然变0基本不可能此处暂时不处理
// log.info("定时任务区域有效, 会员 {} 小市场业绩归0暂时不取消收益区域", tmpMember.getPkId());
// return;
// }
// // 2025.02.07 确认需求如果是历史已经升上去的还是走老逻辑只校验小市场
// String checkDate = "2025-02-10 00:00:00";
// if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())) {
// checkDate = "2025-02-07 00:00:00";
// }
// if (tmpMember.getCreationTime().compareTo(DateUtils.parseDateOne(checkDate, DateUtils.YYYY_MM_DD_HH_MM_SS)) > 0) {
// if (retailAchieve.getSmallAreaPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0
// || retailAchieve.getBigArealPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0
// ) {
// // 大市场小市场业绩小于2万需要取消收益区域
// log.info("2.定时任务区域有效, 会员 {} 小市场业绩 {} 取消收益区域", tmpMember.getPkId(), retailAchieve.getSmallAreaPv());
// if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())) {
// this.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
// .eq(CuMemberRetailRegion::getPkMember, tmpMember.getPkId())
// .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
// .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue())
// .set(CuMemberRetailRegion::getPkModified, tmpMember.getPkId())
// .set(CuMemberRetailRegion::getModifiedTime, nowDate)
// );
// }
// }
// } else {
// if (retailAchieve.getSmallAreaPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0) {
// // 小市场业绩小于2万需要取消收益区域
// log.info("1.定时任务区域有效, 会员 {} 小市场业绩 {} 取消收益区域", tmpMember.getPkId(), retailAchieve.getSmallAreaPv());
// if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())) {
// this.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
// .eq(CuMemberRetailRegion::getPkMember, tmpMember.getPkId())
// .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
// .set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue())
// .set(CuMemberRetailRegion::getPkModified, tmpMember.getPkId())
// .set(CuMemberRetailRegion::getModifiedTime, nowDate)
// );
// }
// }
// }
}
});
}
}
@Override
public void cancelRegion(List<Long> pkIdList) {
this.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
.in(CuMemberRetailRegion::getPkId, pkIdList)
.eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
.set(CuMemberRetailRegion::getEffective, EYesNo.NO.getIntValue())
.set(CuMemberRetailRegion::getPkModified, MagicNumberConstants.PK_ADMIN)
.set(CuMemberRetailRegion::getModifiedTime, new Date())
);
}
@Override
public int getOrderCount(Long pkMember, Integer systemType, List<String> waresCodeList) {
return baseMapper.getOrderCount(pkMember, systemType, waresCodeList);
}
@Override
public void handleRepeatRegion() {
for (ESystemType eSystemType : ESystemType.getEnableList()) {
List<CuMemberRetailRegion> retailRegionList = baseMapper.listRepeatData(eSystemType.getValue());
if (CollectionUtil.isNotEmpty(retailRegionList)) {
retailRegionList.parallelStream().forEach(retailRegion -> {
baseMapper.updateRepeatDate(retailRegion.getProvince(), retailRegion.getCity(), retailRegion.getCounty(), eSystemType.getValue());
});
}
}
}
@Override
public List<Tree<String>> getRegionTreeList(String queryType) {
List<BdArea> areaList = baseMapper.getRegionTreeList(queryType, SecurityUtils.getUserId());
public List<Tree<String>> getRegionTreeList(String queryType, Long pkMember) {
List<BdArea> areaList = baseMapper.getRegionTreeList(queryType, pkMember);
if (CollectionUtil.isEmpty(areaList)) {
return null;
}

View File

@ -10,14 +10,6 @@
AND m.pk_parent = #{pkMember}
</select>
<select id="selectBigAreaByPkMember" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
select * from (
<include refid="selectSmallAreaAchieve"/>
ORDER BY arealPv desc
) t2
where rownum =1
</select>
<sql id="selectSmallAreaAchieve">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
@ -68,138 +60,10 @@
</foreach>
</sql>
<select id="selectMemberBoxNoWaterInjection" resultType="integer">
SELECT nvl(max(smallAreaBox), 0) smallareabox
from
(
<if test="pkMemberList != null and pkMemberList.size > 0">
<include refid="selectMemberDirectPushBox"/>
union all
</if>
SELECT nvl(sum(smallAreaBox), 0) smallAreaBox
FROM (SELECT NVL(mr.consume_box_num, 0) smallAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
union all
select rs.new_box_num smallAreaBox
from ${memberRetailSTable} rs
where rs.pk_member = #{pkMember})
)
</select>
<select id="selectMemberBoxWaterInjection" resultType="integer">
SELECT NVL(mr.big_box_num, 0) smallAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
</select>
<select id="selectMemberTotalBox" resultType="integer">
SELECT nvl(sum(totalAreaBox), 0) totalAreaBox
FROM (SELECT NVL(mr.team_box_num + mr.consume_box_num, 0) totalAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
union all
select NVL(rs.new_box_num + rs.team_new_box_num, 0) totalAreaBox
from ${memberRetailSTable} rs
where rs.pk_member = #{pkMember})
</select>
<select id="selectMemberOrderByPkMember" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
SELECT t0.payTime
FROM (SELECT so.pay_time payTime
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type = 40
AND so.pay_time >= TRUNC(SYSDATE)
AND so.pk_member = #{pkMember}
ORDER BY so.pay_time) t0
WHERE ROWNUM = 1
</select>
<select id="selectMemberParentByPkMember" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT SUM(t1.arealPv) arealPv , SUM(t1.welfarelPv) welfarelPv,#{pkMember} pkMember
FROM (
SELECT NVL(SUM(so.order_achieve) + SUM(so.order_ass_achieve), 0) arealPv,
NVL(SUM(so.order_achieve) + SUM(so.order_ass_achieve), 0) welfarelPv
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type =40
AND so.pay_time >= #{payTime}
AND so.pk_member IN (
SELECT t0.pk_id
FROM (SELECT m.pk_id,
m.del_flag,
m.category,
m.pay_status,
m.system_type
FROM cu_member m
START WITH m.pk_id = #{pkMember}
CONNECT BY PRIOR m.pk_id = m.pk_parent) t0
WHERE t0.del_flag = 0
AND t0.category = 0)
) t1
</foreach>
</select>
<select id="selectTableNameIsExist" resultType="string">
SELECT table_name FROM user_tables WHERE table_name in
<foreach item="table" collection="tableNames" open="(" separator="," close=")">
#{table}
</foreach>
</select>
<select id="selectMemberAchieve" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
<include refid="selectSmallAreaAchieve"/>
</select>
<select id="selectMemberAchieveDetail_bak" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
SELECT mr.member_code memberCode,
mr.member_name memberName,
mr.new_consume_pv + mr.team_new_pv yesterdayPv,
mr.consume_pv + mr.team_consume_pv sumPv,
mr.month_consume_pv + mr.team_month_pv monthPv
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pay_status = 1
AND mr.pk_member = #{pkMember}
<if test="pkMemberList != null and pkMemberList.size > 0">
union all
SELECT mr.member_code memberCode,
mr.member_name memberName,
mr.new_consume_pv + mr.team_new_pv yesterdayPv,
mr.consume_pv + mr.team_consume_pv sumPv,
mr.month_consume_pv + mr.team_month_pv monthPv
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pay_status = 1
<if test="memberName != null and memberName != ''">
and (mr.member_code like #{memberName} || '%' or mr.member_name like #{memberName} || '%')
</if>
AND mr.pk_member in
<foreach collection="pkMemberList" item="item" index="index" open="(" close=")">
<if test="index != 0">
<choose>
<when test="index % 999 == 0">) or mr.pk_member IN (</when>
<otherwise>,</otherwise>
</choose>
</if>
#{item}
</foreach>
ORDER BY sumPv desc
</if>
</select>
<select id="selectMemberAchieveDetail" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
SELECT cm.member_code memberCode, cm.member_name memberName,cm.nick_name nickName, t2.yesterdayPv, t2.sumPv,
t2.monthPv,t2.realTimePv, t2.upMonthPv,bg.grade_name grade, ba.awards_name award
@ -417,50 +281,6 @@
)
</select>
<select id="selectWaterInjection" resultType="integer">
SELECT count(1)
FROM (SELECT sr.team_box_num, sr.small_box_num, sr.period_date
FROM cu_member_spe_retail sr
where sr.del_flag = 0
and sr.pk_country = 1
and sr.period_date &lt; TRUNC(SYSDATE)
and sr.member_code = #{memberCode}
ORDER BY sr.period_date desc) t0
where rownum = 1
</select>
<select id="selectMemberActiveState" resultType="integer">
SELECT min(t0.enable_status) enable_status
FROM (SELECT mr.enable_status
FROM ${memberRetailTable} mr
where mr.pk_member = #{pkMember}
union all
SELECT mrs.enable_status
FROM ${memberRetailSTable} mrs
where mrs.pk_member = #{pkMember}) t0
</select>
<!--开始大小区业绩 以累计为准 -->
<select id="selectMemberOrderSumAchieveByPkMember" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
SELECT sum(arealPv) arealPv
FROM (SELECT NVL(mr.CONSUME_PV, 0) arealPv
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
union all
SELECT NVL(SUM(so.order_achieve), 0) arealPv
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type in (41, 42, 43, 44)
AND so.system_type = #{systemType}
AND so.pay_time >= TRUNC(SYSDATE)
AND so.pk_member = #{pkMember})
</select>
<sql id="selectSmallAreaSumAchieveBak">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
@ -510,14 +330,6 @@
</foreach>
</sql>
<select id="selectMemberSumAchieve" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
<include refid="selectSmallAreaSumAchieve"/>
</select>
<!--结束 大小区业绩 以累计为准 -->
<!--市场动态盒数 开始-->
<select id="selectMemberBigSmallBox" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
SELECT nvl(sum(bigAreaBox), 0) bigAreaBox, nvl(sum(smallAreaBox), 0) smallAreaBox
@ -827,15 +639,6 @@
</select>
<!--市场动态盒数 结束-->
<select id="selectSubMemberIdByRootMember" resultType="java.lang.Long">
select cm.pk_id, cm.MEMBER_NAME
from cu_member cm
where cm.SYSTEM_TYPE = #{systemType}
start with cm.pk_id = #{pkMember}
connect by prior cm.pk_id = cm.pk_parent
order by level
</select>
<select id="getRetailDataStatisticsDetail"
resultType="com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO">
SELECT
@ -887,7 +690,8 @@
NVL( NVL( currentMonth.NEW_CONSUME_PV, 0 ) + NVL( currentMonth.TEAM_NEW_PV, 0 ), 0 ) yesterdayPv,
NVL( NVL( currentMonth.NEW_BOX_NUM, 0 ) + NVL( currentMonth.TEAM_NEW_BOX_NUM, 0 ), 0 ) yesterdayBoxNum,
NVL( NVL( currentMonth.MONTH_CONSUME_PV, 0 ) + NVL( currentDay.NEW_CONSUME_PV, 0 ) + NVL( currentDay.TEAM_NEW_PV, 0 ), 0 ) currentMonthPv,
NVL( NVL( currentMonth.MONTH_BOX_NUM, 0 ) + NVL( currentMonth.TEAM_MONTH_BOX_NUM, 0 ) + NVL( currentDay.NEW_BOX_NUM, 0 ) + NVL( currentDay.TEAM_NEW_BOX_NUM, 0 ), 0 ) currentMonthBoxNum,
NVL( NVL( currentMonth.MONTH_BOX_NUM, 0 ) + NVL( currentMonth.TEAM_MONTH_BOX_NUM, 0 ) + NVL( currentDay.NEW_BOX_NUM, 0 ) + NVL(
currentDay.TEAM_NEW_BOX_NUM, 0 ), 0 ) currentMonthBoxNum,
NVL( lastMonth.MONTH_CONSUME_PV, 0 ) lastMonthPv,
NVL( lastMonth.MONTH_BOX_NUM, 0 ) lastMonthBoxNum,
NVL( NVL( currentMonth.CONSUME_BOX_NUM, 0 ) + NVL( currentDay.NEW_BOX_NUM, 0 ) + NVL( currentDay.TEAM_NEW_BOX_NUM, 0 ), 0 ) totalBoxNum

View File

@ -31,26 +31,9 @@
and bax.del_flag = 0
where cm.del_flag = 0
and cm.pk_id = #{pkMember}
-- and cm.IS_ACTIVATE=0
and bg.grade_value >= #{gradeValue}
</select>
<!-- 可选择的收益区域 -->
<select id="listChooseRegion" resultType="com.hzs.common.domain.system.base.BdArea">
select ba.PK_ID, ba.PARENT, ba.NAME
from bd_area ba
where ba.del_flag = 0
and ba.pk_country = 1
and ba.ENABLE_STATE = 0
and ba.pk_id not in (select cmrr.county
from cu_member_retail_region cmrr
where cmrr.del_flag = 0
and cmrr.pk_country = 1
and cmrr.effective = 0
and cmrr.system_type = #{systemType}
)
</select>
<!-- 插入收益区域 -->
<insert id="insertData">
insert into cu_member_retail_region cmrr (
@ -184,28 +167,6 @@
order by CRR.CREATION_TIME desc
</select>
<!-- 批量修改已到期的会员收益区域-->
<update id="batchUpdateRetailRegion" parameterType="java.lang.Long">
UPDATE CU_MEMBER_RETAIL_REGION
SET EFFECTIVE=1,
MODIFIED_TIME=sysdate
WHERE EFFECTIVE = 0
AND DEL_FLAG = 0
AND EFFECTIVE_END_DATE &lt; = sysdate
</update>
<!-- 重新判断收益区域数据 -->
<select id="listCheckRegionMember" resultType="com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt">
select cmrr.pk_member, cmrr.source, bg.grade_value, cmrr.creation_time, cmrr.system_type
from cu_member_retail_region cmrr
inner join cu_member cm
on cm.pk_id = cmrr.pk_member
left join bd_grade bg
on bg.pk_id = cm.pk_settle_grade
where cmrr.del_flag = 0
and cmrr.effective = 0
</select>
<!-- 会员购买订单数量 -->
<select id="getOrderCount" resultType="int">
select count(1)
@ -229,16 +190,6 @@
</foreach>
</select>
<!-- 获取重复数据 -->
<select id="listRepeatData" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select cmrr.province, cmrr.city, cmrr.county
from cu_member_retail_region cmrr
where cmrr.del_flag = 0
and cmrr.effective = 0
and cmrr.system_type = #{systemType}
group by cmrr.province, cmrr.city, cmrr.county
having count(1) > 1
</select>
<select id="getRegionTreeList" resultType="com.hzs.common.domain.system.base.BdArea">
SELECT
pr.*,
@ -284,28 +235,4 @@
nvl( region.num, 0 ) DESC
</select>
<!-- 更新非最新区域其它数据 -->
<update id="updateRepeatDate">
update cu_member_retail_region cmrr
set cmrr.effective = 1,
cmrr.modified_time = sysdate
where cmrr.del_flag = 0
and cmrr.effective = 0
and cmrr.province = #{province}
and cmrr.city = #{city}
and cmrr.county = #{county}
and cmrr.system_type = #{systemType}
and cmrr.pk_id not in (select pk_id
from (select cmrr.pk_id
from cu_member_retail_region cmrr
where cmrr.del_flag = 0
and cmrr.effective = 0
and cmrr.province = #{province}
and cmrr.city = #{city}
and cmrr.county = #{county}
and cmrr.system_type = #{systemType}
order by cmrr.creation_time)
where rownum = 1)
</update>
</mapper>

View File

@ -99,6 +99,7 @@ public class ApiRetailOrderController {
if (null != bdGrade) {
orderLevelVO.setIsEnough(true);
orderLevelVO.setPkGradeVal(bdGrade.getGradeName());
orderLevelVO.setGradeValue(bdGrade.getGradeValue());
} else {
orderLevelVO.setMsg("会员不满足升级条件");
}

View File

@ -8,11 +8,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Description: 新零售订单等级返回VO
* @Author: jiang chao
* @Time: 2024/12/12 17:31
* @Classname: RetailerOrderLevelVO
* @PackageName: com.hzs.retail.sale.vo
* 新零售订单等级返回VO
*/
@Builder
@AllArgsConstructor
@ -30,6 +26,11 @@ public class RetailerOrderLevelVO implements Serializable {
*/
private String pkGradeVal;
/**
* 等级值
*/
private Integer gradeValue;
/**
* 返回信息
*/

View File

@ -292,7 +292,6 @@ public enum EOperationBusiness {
PRODUCT_GIVE("商品赠送"),
CONSUME_GIVE("消费赠送"),
PLANTING_PUBLIC_WELFARE("种植公益配置"),
RECHARGE_PICK("充值提货卡"),
@ -350,27 +349,6 @@ public enum EOperationBusiness {
STOREHOUSE_AREA_MIDDLE("地区仓库"),
PRODUCT_STOREHOUSE("产品绑定仓库配置"),
//////////////////// 站点配置 ////////////////////
INDEX_BACKGROUND("首页背景"),
CORPORATE_MISSION("企业使命"),
COMPANY_NEWS("公司新闻"),
COMPANY_SHOW("公司风采"),
VR_ZONE("VR专区"),
HONOR("荣誉资质"),
DEVELOP("发展历程"),
GLOBAL_DISTRIBUTION("全球分布"),
WEBSITE_BANNER("官网Banner"),
PRODUCT_CONFIG("商品配置"),
//////////////////// 自助服务 ////////////////////
DOMICILE_CHANGE("户籍变更"),
MODIFY_ADDRESS("修改地址"),
@ -423,7 +401,6 @@ public enum EOperationBusiness {
PRODUCT_SHIPPING_DETAILS_LIST("出货明细汇总统计"),
PRODUCT_SHIPPING_DETAILS_INFO_LIST("出货明细汇总统计详情"),
REPORT_SUMMARY_LIST("报单汇总"),
PLACE_PEG("安置反查"),
PARENT_PEG("推荐反查"),
PRODUCT_DETAIL_QUERY_LIST("产品明细查询"),
MONTHLY_JOB_LEVEL("月度职级名单查询"),

View File

@ -232,26 +232,6 @@ public enum EOperationModule {
WHITE_LIST("白名单"),
//////////////////// 站点配置 ////////////////////
INDEX_BACKGROUND("首页背景"),
CORPORATE_MISSION("企业使命"),
COMPANY_NEWS("公司新闻"),
COMPANY_SHOW("公司风采"),
VR_ZONE("VR专区"),
MEMORABILIA("大事记"),
GLOBAL_DISTRIBUTION("全球分布"),
WEBSITE_BANNER("官网Banner"),
PRODUCT_CONFIG("商品配置"),
COMPANY_STYLE("公司风采"),
DEVELOP("发展历程"),
//////////////////// 公用 ////////////////////
COMMON_FILE("文件操作"),
@ -412,8 +392,6 @@ public enum EOperationModule {
CU_MEMBER_TEAM("隶属团队"),
HO_GLOBAL_COMPANY("全球分布"),
BONUS_DETAIL("奖金明细"),
AC_RECOMMEEND_CONFIG("直推赠送"),
@ -428,8 +406,6 @@ public enum EOperationModule {
///////////////////////////统计分析////////////////////////////
STATISTIC_ANALYSIS("统计分析"),
SUPPLIER_GOODS("供应商商品"),
;
/**

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity;
@ -12,12 +13,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 新零售会员区域考核明细表
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -1,35 +0,0 @@
package com.hzs.common.domain.member.detail.ext;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @description: 区域考核结果
* @author: sui q
* @time: 2025/1/15 17:14
* @classname: CuRegionAssessExt
* @package_name: com.hzs.common.domain.member.detail.ext
* version 1.0.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class CuRegionAssessExt extends CuRegionAssess {
private String memberCode;
private String memberName;
private String provinceName;
private String cityName;
private String countyName;
private String assessAddress;
private List<CuRegionAssessDetail> cuRegionAssessDetailList;
}

View File

@ -1,15 +1,12 @@
package com.hzs.third.job;
import com.hzs.activity.pick.IAcRetailPickLogServiceApi;
import com.hzs.bonus.detail.ICuRegionAssessApi;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.member.base.ICuMemberRetailRegionServiceApi;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.member.statis.ICuBonusStatisServiceApi;
import com.hzs.member.statis.ICuBonusVertexStatisServiceApi;
import com.hzs.report.stat.IMemberReportServiceApi;
import com.hzs.retail.member.IMemberRetailApi;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
@ -27,19 +24,13 @@ public class MemberJob {
@DubboReference
IMemberServiceApi iMemberServiceApi;
@DubboReference
IMemberRetailApi iMemberRetailApi;
@DubboReference
ICuBonusStatisServiceApi iCuBonusStatisServiceApi;
@DubboReference
ICuBonusVertexStatisServiceApi iCuBonusVertexStatisServiceApi;
@DubboReference
ICuMemberRetailRegionServiceApi iCuMemberRetailRegionServiceApi;
@DubboReference
IAcRetailPickLogServiceApi iAcRetailPickLogServiceApi;
@DubboReference
IMemberReportServiceApi iMemberReportServiceApi;
@DubboReference
ICuRegionAssessApi iCuRegionAssessApi;
/**
* 定时统计奖金拨比
@ -125,35 +116,6 @@ public class MemberJob {
log.info("clear-member-empty-code 开始结束! 共处理:{}", dataCount);
}
/**
* 定时修改到期的零售区域
**/
@XxlJob("retail-region")
public void retailRegion() {
Date date = new Date();
Date startDate = DateUtils.beforeDate(2, ChronoUnit.DAYS, date);
Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS, date);
//批量修改已到期的会员收益区域
iCuRegionAssessApi.validateHandAreaAssess(startDate, endDate);
}
/**
* 定时校验会员收益区域
*/
@XxlJob("checkRegion")
public void checkRegion() {
// 定时校验会员收益区域
iMemberRetailApi.checkRegion();
}
/**
* 定时任务重复收益区域数据
*/
@XxlJob("handleRepeatRegion")
public void handleRepeatRegion() {
iCuMemberRetailRegionServiceApi.handleRepeatRegion();
}
/**
* 每月10号处理上个月提货赠送活动满足活动规则的数据
**/