技师业绩积分

This commit is contained in:
曹磊 2024-08-13 17:47:39 +08:00
parent dbba0c5545
commit f79357111e
15 changed files with 217 additions and 78 deletions

View File

@ -1,6 +1,5 @@
package com.sqx.modules.artificer.service.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
@ -20,16 +19,15 @@ import com.sqx.modules.artificer.entity.Period;
import com.sqx.modules.artificer.service.AppArtificerIntegralService;
import com.sqx.modules.artificer.vo.HomeVO;
import com.sqx.modules.artificer.vo.UserArtificerVO;
import com.sqx.modules.common.dao.ArtificerPartitioningDetailsMapper;
import com.sqx.modules.bl.artificer.dao.ArtificerPartitioningDetailsDao;
import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.common.entity.ArtificerPartitioningDetails;
import com.sqx.modules.common.entity.CommonInfo;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
@ -38,13 +36,12 @@ import static com.sqx.modules.utils.PeriodUtil.obtainCycle;
import static com.sqx.modules.utils.PeriodUtil.previousIssue;
import static java.math.BigDecimal.ROUND_CEILING;
@Service
@AllArgsConstructor
public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralService {
private final OrdersDao ordersDao;
private final ArtificerPartitioningDetailsMapper artificerPartitioningDetailsMapper;
private final ArtificerPartitioningDetailsDao artificerPartitioningDetailsDao;
private final CommonInfoDao commonInfoDao;
private final ArtificerDao artificerDao;
private final UserDao userDao;
@ -148,8 +145,7 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ
}
//业绩后面的显示
List<ArtificerPartitioningDetails> lists = artificerPartitioningDetailsMapper.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery()
.eq(ArtificerPartitioningDetails::getClassifyId, classifyId));
List<ArtificerPartitioningDetails> lists = artificerPartitioningDetailsDao.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery());
for (int i = 0; i < lists.size(); i++) {
if (currentPerformance >= lists.get(i).getOutstandingAchievement().intValue()) {
if (i + 1 < lists.size()) {
@ -159,15 +155,14 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ
}
}
} else if (currentPerformance <= lists.get(i).getOutstandingAchievement().intValue()) {
orders.setSuffix(NumberUtil.toStr(artificerPartitioningDetailsMapper.selectById(5).getOutstandingAchievement()));
orders.setSuffix(NumberUtil.toStr(artificerPartitioningDetailsDao.selectById(5).getOutstandingAchievement()));
}
}
return getResult(currentPerformance, clockRate, divide1, b, add, orders, artificer, classifyId);
}
private Result getResult(Integer currentPerformance, BigDecimal clockRate, BigDecimal divide1, BigDecimal b, BigDecimal add, HomeVO orders, Artificer artificer, String classifyId) {
List<ArtificerPartitioningDetails> artificerPartitioningDetails = artificerPartitioningDetailsMapper.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery()
.eq(ArtificerPartitioningDetails::getClassifyId, classifyId)
List<ArtificerPartitioningDetails> artificerPartitioningDetails = artificerPartitioningDetailsDao.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery()
.ne(ArtificerPartitioningDetails::getGrade, "A0"));
for (int i = 0; i < artificerPartitioningDetails.size(); i++) {
@ -333,12 +328,11 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ
Date date1 = DateUtil.parse(createTime);
long betweenDay = DateUtil.between(date1, new Date(), DateUnit.DAY);
List<ArtificerPartitioningDetails> artificerPartitioningDetails = artificerPartitioningDetailsMapper.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery()
.eq(ArtificerPartitioningDetails::getClassifyId, 91));
List<ArtificerPartitioningDetails> artificerPartitioningDetails = artificerPartitioningDetailsDao.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery());
//判断betweenDay大于10天 说明过了 新人扶持阶段 设置等级为A0
if (betweenDay > 10) {
artificerPartitioningDetails.remove(0);
extractedRate(artificerId, artificerPartitioningDetailsMapper.selectById(3).getProportionalSharing(), artificerPartitioningDetailsMapper.selectById(3).getGrade());
extractedRate(artificerId, artificerPartitioningDetailsDao.selectById(3).getProportionalSharing(), artificerPartitioningDetailsDao.selectById(3).getGrade());
}
for (ArtificerPartitioningDetails item : artificerPartitioningDetails) {
@ -444,13 +438,12 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ
long betweenDay = DateUtil.between(date1, new Date(), DateUnit.DAY);
List<ArtificerPartitioningDetails> artificerPartitioningDetails = artificerPartitioningDetailsMapper.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery()
.eq(ArtificerPartitioningDetails::getClassifyId, 95));
List<ArtificerPartitioningDetails> artificerPartitioningDetails = artificerPartitioningDetailsDao.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery());
//判断betweenDay大于10天 说明过了 新人扶持阶段 设置等级为A0
if (betweenDay > 10) {
artificerPartitioningDetails.remove(0);
extractedRate(artificerId, artificerPartitioningDetailsMapper.selectById(29).getProportionalSharing(), artificerPartitioningDetailsMapper.selectById(29).getGrade());
extractedRate(artificerId, artificerPartitioningDetailsDao.selectById(29).getProportionalSharing(), artificerPartitioningDetailsDao.selectById(29).getGrade());
}
for (ArtificerPartitioningDetails item : artificerPartitioningDetails) {
@ -572,7 +565,7 @@ public class AppArtificerIntegralServiceImpl implements AppArtificerIntegralServ
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("classify_id", classifyId);
queryWrapper.orderByAsc("id");
IPage<ArtificerPartitioningDetails> apdPage= artificerPartitioningDetailsMapper.selectPage(page1,queryWrapper);
IPage<ArtificerPartitioningDetails> apdPage= artificerPartitioningDetailsDao.selectPage(page1,queryWrapper);
map.put("levelData",apdPage);
return Result.success(map);
}

View File

@ -0,0 +1,49 @@
package com.sqx.modules.bl.artificer.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.artificer.entity.AchievementIntegral;
import com.sqx.modules.bl.artificer.service.AchievementIntegralService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
@RestController
@RequestMapping("/artificer/achievementIntegral")
@Api(value = "技师业绩积分", tags = {"技师业绩积分"})
public class AchievementIntegralController {
@Autowired
private AchievementIntegralService service;
@GetMapping("/findList")
@ApiOperation("查询列表")
public Result findList(){
return Result.success().put("data",service.list());
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(AchievementIntegral achievementIntegral){
service.save(achievementIntegral);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(AchievementIntegral achievementIntegral){
service.updateById(achievementIntegral);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(AchievementIntegral achievementIntegral){
service.removeById(achievementIntegral.getId());
return Result.success();
}
}

View File

@ -0,0 +1,49 @@
package com.sqx.modules.bl.artificer.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails;
import com.sqx.modules.bl.artificer.service.ArtificerPartitioningDetailsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
@RestController
@RequestMapping("/artificer/partitioningDetails")
@Api(value = "技师业绩分成明细", tags = {"技师分成明细配置"})
public class ArtificerPartitioningDetailsController {
@Autowired
private ArtificerPartitioningDetailsService service;
@GetMapping("/findList")
@ApiOperation("查询列表")
public Result findList(){
return Result.success().put("data",service.list());
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(ArtificerPartitioningDetails artificerPartitioningDetails){
service.save(artificerPartitioningDetails);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(ArtificerPartitioningDetails artificerPartitioningDetails){
service.updateById(artificerPartitioningDetails);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(ArtificerPartitioningDetails artificerPartitioningDetails){
service.removeById(artificerPartitioningDetails.getId());
return Result.success();
}
}

View File

@ -0,0 +1,10 @@
package com.sqx.modules.bl.artificer.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.bl.artificer.entity.AchievementIntegral;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface AchievementIntegralDao extends BaseMapper<AchievementIntegral> {
}

View File

@ -1,8 +1,7 @@
package com.sqx.modules.common.dao;
package com.sqx.modules.bl.artificer.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.common.entity.ArtificerPartitioningDetails;
import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails;
import org.apache.ibatis.annotations.Mapper;
/**
@ -15,7 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ArtificerPartitioningDetailsMapper extends BaseMapper<ArtificerPartitioningDetails> {
public interface ArtificerPartitioningDetailsDao extends BaseMapper<ArtificerPartitioningDetails> {

View File

@ -0,0 +1,43 @@
package com.sqx.modules.bl.artificer.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description bl_artificer_achievement_integral
* 技师业绩积分关系表
* @author caolei
* @date 2024-08-13
*/
@Data
@TableName("bl_artificer_achievement_integral")
public class AchievementIntegral implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* ID
*/
private Long id;
/**
*类型
*/
private Long classifyId;
/**
*业绩
*/
private BigDecimal achievement;
/**
*积分
*/
private BigDecimal integral;
public AchievementIntegral() {}
}

View File

@ -1,4 +1,4 @@
package com.sqx.modules.common.entity;
package com.sqx.modules.bl.artificer.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
@ -46,7 +46,4 @@ public class ArtificerPartitioningDetails implements Serializable {
@ApiModelProperty("充值率")
private BigDecimal depositRate;
@ApiModelProperty("项目类型91精油95中医")
private String classifyId;
}

View File

@ -0,0 +1,8 @@
package com.sqx.modules.bl.artificer.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.bl.artificer.entity.AchievementIntegral;
public interface AchievementIntegralService extends IService<AchievementIntegral> {
}

View File

@ -0,0 +1,8 @@
package com.sqx.modules.bl.artificer.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails;
public interface ArtificerPartitioningDetailsService extends IService<ArtificerPartitioningDetails> {
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.artificer.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.artificer.dao.AchievementIntegralDao;
import com.sqx.modules.bl.artificer.entity.AchievementIntegral;
import com.sqx.modules.bl.artificer.service.AchievementIntegralService;
import org.springframework.stereotype.Service;
@Service
public class AchievementIntegralServiceImpl extends ServiceImpl<AchievementIntegralDao, AchievementIntegral> implements AchievementIntegralService {
}

View File

@ -0,0 +1,15 @@
package com.sqx.modules.bl.artificer.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.artificer.dao.AchievementIntegralDao;
import com.sqx.modules.bl.artificer.dao.ArtificerPartitioningDetailsDao;
import com.sqx.modules.bl.artificer.entity.AchievementIntegral;
import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails;
import com.sqx.modules.bl.artificer.service.AchievementIntegralService;
import com.sqx.modules.bl.artificer.service.ArtificerPartitioningDetailsService;
import org.springframework.stereotype.Service;
@Service
public class ArtificerPartitioningDetailsServiceImpl extends ServiceImpl<ArtificerPartitioningDetailsDao, ArtificerPartitioningDetails> implements ArtificerPartitioningDetailsService {
}

View File

@ -1,9 +1,7 @@
package com.sqx.modules.common.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.common.entity.ArtificerPartitioningDetails;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.enums.CommonEnum;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.common.utils.CommonConfigUtil;
import io.swagger.annotations.Api;
@ -77,18 +75,6 @@ public class CommonController {
return commonService.findByTypeAndCondition(condition);
}
@GetMapping("/fcmx/{type}")
@ApiOperation("技师分成规则查询")
public Result rules(@PathVariable(value = "type") String type) {
return commonService.rules(type);
}
@PostMapping("/fcmx/upd")
@ApiOperation("技师分成规则修改")
public Result rulesUpd(@RequestBody ArtificerPartitioningDetails artificerPartitioningDetails) {
return commonService.rulesUpd(artificerPartitioningDetails);
}
//默认空数据根据这个生成
@GetMapping("/getCommonEnum")

View File

@ -1,7 +1,6 @@
package com.sqx.modules.common.service;
import com.sqx.common.utils.Result;
import com.sqx.modules.common.entity.ArtificerPartitioningDetails;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.enums.CommonEnum;
@ -46,13 +45,6 @@ public interface CommonInfoService {
*/
Result findByTypeAndCondition(String condition);
/**
* 通过类型查询
*/
Result rules(String type);
Result rulesUpd(ArtificerPartitioningDetails artificerPartitioningDetails);
/**
* 按枚举查询
* @param commonEnum

View File

@ -3,14 +3,11 @@ package com.sqx.modules.common.service.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
import com.sqx.common.utils.Result;
import com.sqx.modules.artificer.dao.UserRechargeDao;
import com.sqx.modules.common.dao.ArtificerPartitioningDetailsMapper;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.common.entity.ArtificerPartitioningDetails;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.enums.CommonEnum;
import com.sqx.modules.common.service.CommonInfoService;
@ -18,7 +15,6 @@ import com.sqx.modules.common.utils.CommonConfigUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@ -33,13 +29,11 @@ public class CommonInfoServiceImpl extends ServiceImpl<CommonInfoDao, CommonInfo
private final CommonInfoDao commonInfoDao;
private final UserRechargeDao userRechargeDao;
private final ArtificerPartitioningDetailsMapper artificerPartitioningDetailsMapper;
@Autowired
public CommonInfoServiceImpl(CommonInfoDao commonInfoDao,UserRechargeDao userRechargeDao,ArtificerPartitioningDetailsMapper artificerPartitioningDetailsMapper) {
public CommonInfoServiceImpl(CommonInfoDao commonInfoDao,UserRechargeDao userRechargeDao) {
this.commonInfoDao = commonInfoDao;
this.userRechargeDao = userRechargeDao;
this.artificerPartitioningDetailsMapper = artificerPartitioningDetailsMapper;
}
@Override
@ -80,18 +74,6 @@ public class CommonInfoServiceImpl extends ServiceImpl<CommonInfoDao, CommonInfo
return Result.success().put("data", getListByCondition(condition));
}
@Override
public Result rules(String type) {
return Result.success().put("data", artificerPartitioningDetailsMapper.selectList(Wrappers.<ArtificerPartitioningDetails>lambdaQuery()
.eq(ArtificerPartitioningDetails::getClassifyId, type)));
}
@Override
public Result rulesUpd(ArtificerPartitioningDetails artificerPartitioningDetails) {
artificerPartitioningDetailsMapper.updateById(artificerPartitioningDetails);
return Result.success();
}
@Override
public CommonInfo findOneByEnum(CommonEnum commonEnum) {
return findOne(commonEnum.getKey());

View File

@ -11,17 +11,15 @@ import com.sqx.modules.artificer.dao.OrdersDao;
import com.sqx.modules.artificer.dao.UserRechargeDao;
import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.BlArtificerZqhz;
import com.sqx.modules.artificer.entity.Orders;
import com.sqx.modules.artificer.entity.UserRecharge;
import com.sqx.modules.bl.artificer.dao.ArtificerPartitioningDetailsDao;
import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails;
import com.sqx.modules.bl.sadjob.entity.BlSadJob;
import com.sqx.modules.bl.sadjob.service.BlSadJobService;
import com.sqx.modules.bl.userZxsc.dao.BlUserZxscDao;
import com.sqx.modules.bl.userZxsc.entity.BlUserZxsc;
import com.sqx.modules.common.dao.ArtificerPartitioningDetailsMapper;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.common.entity.ArtificerPartitioningDetails;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.shopping.utils.DateUtil;
import com.sqx.modules.task.service.AllTaskSercice;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -31,8 +29,6 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@ -45,7 +41,7 @@ public class AllTaskServiceImpl implements AllTaskSercice {
private ArtificerDao artificerDao;
@Autowired
private ArtificerPartitioningDetailsMapper artificerPartitioningDetailsMapper;
private ArtificerPartitioningDetailsDao artificerPartitioningDetailsDao;
@Autowired
private OrdersDao ordersDao;
@ -115,7 +111,7 @@ public class AllTaskServiceImpl implements AllTaskSercice {
QueryWrapper<ArtificerPartitioningDetails> sjgzQuery = new QueryWrapper<ArtificerPartitioningDetails>();
sjgzQuery.ne("grade","");
sjgzQuery.orderByDesc("outstanding_achievement","duration_online");
List<ArtificerPartitioningDetails> sjgzAllList = artificerPartitioningDetailsMapper.selectList(sjgzQuery);
List<ArtificerPartitioningDetails> sjgzAllList = artificerPartitioningDetailsDao.selectList(sjgzQuery);
//4.根据技师的服务类型查找对应的配置规则
for (Artificer jsPar : jslist) {
//获取技师是否参与积分规则如果参与积分规则则继续执行否则不变分成比例
@ -146,7 +142,7 @@ public class AllTaskServiceImpl implements AllTaskSercice {
BigDecimal rate = BigDecimal.valueOf(0.6);
for (ArtificerPartitioningDetails sjgzPar : sjgzAllList){
//当技师的服务类型=升级规则的服务类型才可以添加到升级规则里去
if(StringUtils.equals(sjgzPar.getClassifyId(),String.valueOf(classifyId))){
// if(StringUtils.equals(sjgzPar.getClassifyId(),String.valueOf(classifyId))){
// sjgzList.add(sjgzPar);
//最低业绩
Double zddjPar = Double.parseDouble(sjgzPar.getOutstandingAchievement()+"");
@ -167,7 +163,7 @@ public class AllTaskServiceImpl implements AllTaskSercice {
rate = BigDecimal.valueOf(Double.parseDouble(sjgzPar.getProportionalSharing()));
break;
}
}
// }
}
//如果都不符合则给最低等级保底
if(StringUtils.isEmpty(jsdj)){
@ -175,7 +171,7 @@ public class AllTaskServiceImpl implements AllTaskSercice {
sjgzQuery1.eq("grade","A0");
sjgzQuery1.eq("classify_id",classifyId);
sjgzQuery1.last("limit 1");
ArtificerPartitioningDetails zddjgz = artificerPartitioningDetailsMapper.selectOne(sjgzQuery1);
ArtificerPartitioningDetails zddjgz = artificerPartitioningDetailsDao.selectOne(sjgzQuery1);
jsdj = zddjgz.getGrade();
rate = BigDecimal.valueOf(Double.parseDouble(zddjgz.getProportionalSharing()));
}