添加技师周期汇算表
This commit is contained in:
parent
3cffc27064
commit
d51665f934
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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> {
|
||||||
|
}
|
|
@ -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() {}
|
||||||
|
}
|
|
@ -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> {
|
||||||
|
}
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue