添加技师周期汇算表

This commit is contained in:
yangjun 2024-06-26 20:58:39 +08:00
parent 3cffc27064
commit d51665f934
7 changed files with 149 additions and 18 deletions

View File

@ -46,10 +46,7 @@ import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@ -83,7 +80,8 @@ public class AppArtificerController {
private CommonInfoDao commonInfoDao; private CommonInfoDao commonInfoDao;
@Autowired @Autowired
private ArtificerDao artificerDao; private ArtificerDao artificerDao;
@Autowired
private BlArtificerZqhzService blArtificerZqhzService;
@Autowired @Autowired
private BlPingjiaTagService blPingjiaTagService; private BlPingjiaTagService blPingjiaTagService;
@Autowired @Autowired
@ -618,4 +616,25 @@ public class AppArtificerController {
return Result.success(map); return Result.success(map);
} }
@ApiOperation("技师获取往期列表")
@GetMapping("/getZqhzList")
public Result getZqhzList(Long userId){
QueryWrapper<BlArtificerZqhz> blArtificerZqhzQueryWrapper = new QueryWrapper<>();
blArtificerZqhzQueryWrapper.eq("artificer_id", userId);
List<BlArtificerZqhz> list = blArtificerZqhzService.list(blArtificerZqhzQueryWrapper);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<Map<String,String>> listMap = new ArrayList<>();
for(BlArtificerZqhz par:list){
Map<String,String> map = new HashMap<>();
map.put("text",sdf.format(par.getStartTime())+""+sdf.format(par.getEndTime()));
map.put("label",sdf.format(par.getStartTime())+""+sdf.format(par.getEndTime()));
listMap.add(map);
}
Map<String,Object> map = new HashMap<String,Object>();
map.put("data",listMap);
return Result.success(map);
}
} }

View File

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

View File

@ -0,0 +1,42 @@
package com.sqx.modules.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 com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description artificer
* @author fang
* @date 2021-12-18
*/
@Data
@TableName("bl_artificer_zqhz")
public class BlArtificerZqhz implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
private Long artificerId;//技师id
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startTime;//开始时间
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endTime;//结束时间
private String xsje;//销售金额
private String jzl;//加钟率
private String zxsc;//在线时长
private String jf;//积分
public BlArtificerZqhz() {}
}

View File

@ -0,0 +1,9 @@
package com.sqx.modules.artificer.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.artificer.entity.BlArtificerZqhz;
public interface BlArtificerZqhzService extends IService<BlArtificerZqhz> {
}

View File

@ -457,7 +457,10 @@ public class ArtificerServiceImpl extends ServiceImpl<ArtificerDao, Artificer> i
ordersIPage = ordersDao.getChongzhiList(pages, userId,isSfwc,startTime,endTime); ordersIPage = ordersDao.getChongzhiList(pages, userId,isSfwc,startTime,endTime);
} }
//查询收益
String earnings = ordersDao.earnings(userId, endTime, startTime);
map.put("data",new PageUtils(ordersIPage)); map.put("data",new PageUtils(ordersIPage));
map.put("earnings",earnings);
return Result.success(map); return Result.success(map);
} }

View File

@ -0,0 +1,14 @@
package com.sqx.modules.artificer.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.artificer.dao.BlArtificerZqhzDao;
import com.sqx.modules.artificer.entity.BlArtificerZqhz;
import com.sqx.modules.artificer.service.BlArtificerZqhzService;
import org.springframework.stereotype.Service;
@Service
public class BlArtificerZqhzServiceImpl extends ServiceImpl<BlArtificerZqhzDao, BlArtificerZqhz> implements BlArtificerZqhzService {
}

View File

@ -2,9 +2,11 @@ package com.sqx.modules.task.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.modules.artificer.dao.ArtificerDao; import com.sqx.modules.artificer.dao.ArtificerDao;
import com.sqx.modules.artificer.dao.BlArtificerZqhzDao;
import com.sqx.modules.artificer.dao.OrdersDao; import com.sqx.modules.artificer.dao.OrdersDao;
import com.sqx.modules.artificer.dao.UserRechargeDao; import com.sqx.modules.artificer.dao.UserRechargeDao;
import com.sqx.modules.artificer.entity.Artificer; 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.Orders;
import com.sqx.modules.artificer.entity.UserRecharge; import com.sqx.modules.artificer.entity.UserRecharge;
import com.sqx.modules.bl.userZxsc.dao.BlUserZxscDao; import com.sqx.modules.bl.userZxsc.dao.BlUserZxscDao;
@ -51,11 +53,15 @@ public class AllTaskServiceImpl implements AllTaskSercice {
@Autowired @Autowired
private UserRechargeDao userRechargeDao; private UserRechargeDao userRechargeDao;
@Autowired
private BlArtificerZqhzDao blArtificerZqhzDao;
/** /**
* 计算技师升级规则 每天半夜1点执行预留12点到01点之间的计算间隔用于触发其他计算逻辑 * 计算技师升级规则 每天半夜1点执行预留12点到01点之间的计算间隔用于触发其他计算逻辑
* A0,A1,A2,A3,A4,A5等 * A0,A1,A2,A3,A4,A5等
*/ */
// @Scheduled(cron = "0 0 0 * * ?") // @Scheduled(cron = "0 0 0 * * ?")
@Scheduled(cron = "0 * * * * ?")
public void upgradeJishi() { public void upgradeJishi() {
System.out.println("------------计算技师升级规则-----------"); System.out.println("------------计算技师升级规则-----------");
//1.获取全部参与积分规则的技师 //1.获取全部参与积分规则的技师
@ -84,7 +90,7 @@ public class AllTaskServiceImpl implements AllTaskSercice {
String lastMonth = format.format(calendar4.getTime()); String lastMonth = format.format(calendar4.getTime());
startTime = lastMonth+"-01 00:00:00"; startTime = lastMonth+"-01 00:00:00";
endTime = lastMonth+"-10 23:59:59"; endTime = lastMonth+"-10 23:59:59";
}else if(dayOfMonth == 21){ }else if(dayOfMonth == 26){
Calendar calendar4 = Calendar.getInstance(); Calendar calendar4 = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String lastMonth = format.format(calendar4.getTime()); String lastMonth = format.format(calendar4.getTime());
@ -103,18 +109,19 @@ public class AllTaskServiceImpl implements AllTaskSercice {
for (Artificer jsPar : jslist) { for (Artificer jsPar : jslist) {
//获取技师是否参与积分规则如果参与积分规则则继续执行否则不变分成比例 //获取技师是否参与积分规则如果参与积分规则则继续执行否则不变分成比例
Integer ynJfgz = jsPar.getYnJfgz();//是否参与积分规则计算0不参与 1参与 Integer ynJfgz = jsPar.getYnJfgz();//是否参与积分规则计算0不参与 1参与
//4.1获取 技师销售金额(order表的 price) 只查询完成的单子
int jsdqyj = ordersDao.selectOrdersArtificerIntegralEarnings(jsPar.getArtificerId(),endTime,startTime);
//4.2获取 技师加钟率(order表的parent_id为空则是正常订单不为空则是加钟订单 用加钟订单/正常订单为加钟率)
String jsjzl = ordersDao.selectOrdersArtificerIntegraladdNum(jsPar.getArtificerId(),endTime,startTime);
//4.3获取 在线时长通过积分表和兑换比例反推在线时长 user_rechange的type=1
String jszxsc = ordersDao.selectOrdersZxscNum(jsPar.getArtificerId(),startTime,endTime);
CommonInfo commonInfo = commonInfoDao.findOne(100000);
String minute = commonInfo.getValue();//多少分钟等于1积分
Double zxscHour = Double.parseDouble(jszxsc)*Double.parseDouble(minute)/60;
//4.4获取 积分充值积分 user_rechange的type=2
String jsjfStr = ordersDao.selectOrdersStoredValueIntegral(jsPar.getArtificerId(),endTime,startTime);
if(ynJfgz==1){ if(ynJfgz==1){
//4.1获取 技师销售金额(order表的 price) 只查询完成的单子
int jsdqyj = ordersDao.selectOrdersArtificerIntegralEarnings(jsPar.getArtificerId(),endTime,startTime);
//4.2获取 技师加钟率(order表的parent_id为空则是正常订单不为空则是加钟订单 用加钟订单/正常订单为加钟率)
String jsjzl = ordersDao.selectOrdersArtificerIntegraladdNum(jsPar.getArtificerId(),endTime,startTime);
//4.3获取 在线时长通过积分表和兑换比例反推在线时长 user_rechange的type=1
String jszxsc = ordersDao.selectOrdersZxscNum(jsPar.getArtificerId(),startTime,endTime);
CommonInfo commonInfo = commonInfoDao.findOne(100000);
String minute = commonInfo.getValue();//多少分钟等于1积分
Double zxscHour = Double.parseDouble(jszxsc)*Double.parseDouble(minute)/60;
//4.4获取 积分充值积分 user_rechange的type=2
String jsjfStr = ordersDao.selectOrdersStoredValueIntegral(jsPar.getArtificerId(),endTime,startTime);
//4.5根据对应的收益判断属于哪个等级并修改artificer的yn_jfgz等级标识及rate(百分比) //4.5根据对应的收益判断属于哪个等级并修改artificer的yn_jfgz等级标识及rate(百分比)
//组装对应的升级规则集合 //组装对应的升级规则集合
Long classifyId = jsPar.getClassifyId(); Long classifyId = jsPar.getClassifyId();
@ -171,8 +178,34 @@ public class AllTaskServiceImpl implements AllTaskSercice {
jsUp.setArtificerId(jsPar.getArtificerId()); jsUp.setArtificerId(jsPar.getArtificerId());
artificerDao.updateById(jsUp); artificerDao.updateById(jsUp);
} }
} }
//技师汇总逻辑
QueryWrapper<BlArtificerZqhz> blArtificerZqhzQueryWrapper = new QueryWrapper<>();
blArtificerZqhzQueryWrapper.eq("artificer_id",jsPar.getArtificerId());
blArtificerZqhzQueryWrapper.ge("start_time",startTime);
blArtificerZqhzQueryWrapper.ge("end_time",endTime);
blArtificerZqhzDao.delete(blArtificerZqhzQueryWrapper);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
BlArtificerZqhz blArtificerZqhz = new BlArtificerZqhz();
blArtificerZqhz.setArtificerId(jsPar.getArtificerId());
try {
blArtificerZqhz.setStartTime(sdf.parse(startTime));
blArtificerZqhz.setEndTime(sdf.parse(endTime));
} catch (ParseException e) {
e.printStackTrace();
}
blArtificerZqhz.setXsje(jsdqyj+"");
blArtificerZqhz.setJzl(jsjzl);
blArtificerZqhz.setZxsc(zxscHour+"");
blArtificerZqhz.setJf(jsjfStr);
blArtificerZqhzDao.insert(blArtificerZqhz);
} }
} }
} }