diff --git a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java index 5a7a22e..da22ca6 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java @@ -46,10 +46,7 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Slf4j @RestController @@ -83,7 +80,8 @@ public class AppArtificerController { private CommonInfoDao commonInfoDao; @Autowired private ArtificerDao artificerDao; - + @Autowired + private BlArtificerZqhzService blArtificerZqhzService; @Autowired private BlPingjiaTagService blPingjiaTagService; @Autowired @@ -618,4 +616,25 @@ public class AppArtificerController { return Result.success(map); } + + @ApiOperation("技师获取往期列表") + @GetMapping("/getZqhzList") + public Result getZqhzList(Long userId){ + QueryWrapper blArtificerZqhzQueryWrapper = new QueryWrapper<>(); + blArtificerZqhzQueryWrapper.eq("artificer_id", userId); + List list = blArtificerZqhzService.list(blArtificerZqhzQueryWrapper); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List> listMap = new ArrayList<>(); + for(BlArtificerZqhz par:list){ + Map 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 map = new HashMap(); + map.put("data",listMap); + return Result.success(map); + } + } diff --git a/src/main/java/com/sqx/modules/artificer/dao/BlArtificerZqhzDao.java b/src/main/java/com/sqx/modules/artificer/dao/BlArtificerZqhzDao.java new file mode 100644 index 0000000..9164996 --- /dev/null +++ b/src/main/java/com/sqx/modules/artificer/dao/BlArtificerZqhzDao.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/entity/BlArtificerZqhz.java b/src/main/java/com/sqx/modules/artificer/entity/BlArtificerZqhz.java new file mode 100644 index 0000000..2bfabba --- /dev/null +++ b/src/main/java/com/sqx/modules/artificer/entity/BlArtificerZqhz.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/artificer/service/BlArtificerZqhzService.java b/src/main/java/com/sqx/modules/artificer/service/BlArtificerZqhzService.java new file mode 100644 index 0000000..ae23875 --- /dev/null +++ b/src/main/java/com/sqx/modules/artificer/service/BlArtificerZqhzService.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index 7d36572..26667d1 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -457,7 +457,10 @@ public class ArtificerServiceImpl extends ServiceImpl i ordersIPage = ordersDao.getChongzhiList(pages, userId,isSfwc,startTime,endTime); } + //查询收益 + String earnings = ordersDao.earnings(userId, endTime, startTime); map.put("data",new PageUtils(ordersIPage)); + map.put("earnings",earnings); return Result.success(map); } diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/BlArtificerZqhzServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/BlArtificerZqhzServiceImpl.java new file mode 100644 index 0000000..a404c30 --- /dev/null +++ b/src/main/java/com/sqx/modules/artificer/service/impl/BlArtificerZqhzServiceImpl.java @@ -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 implements BlArtificerZqhzService { + + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java b/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java index 6d7abf5..b37fc73 100644 --- a/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java +++ b/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java @@ -2,9 +2,11 @@ package com.sqx.modules.task.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.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.userZxsc.dao.BlUserZxscDao; @@ -51,11 +53,15 @@ public class AllTaskServiceImpl implements AllTaskSercice { @Autowired private UserRechargeDao userRechargeDao; + @Autowired + private BlArtificerZqhzDao blArtificerZqhzDao; + /** * 计算技师升级规则 每天半夜1点执行,预留12点到01点之间的计算间隔,用于触发其他计算逻辑 * A0,A1,A2,A3,A4,A5等 */ // @Scheduled(cron = "0 0 0 * * ?") + @Scheduled(cron = "0 * * * * ?") public void upgradeJishi() { System.out.println("------------计算技师升级规则-----------"); //1.获取全部参与积分规则的技师 @@ -84,7 +90,7 @@ public class AllTaskServiceImpl implements AllTaskSercice { String lastMonth = format.format(calendar4.getTime()); startTime = lastMonth+"-01 00:00:00"; endTime = lastMonth+"-10 23:59:59"; - }else if(dayOfMonth == 21){ + }else if(dayOfMonth == 26){ Calendar calendar4 = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); String lastMonth = format.format(calendar4.getTime()); @@ -103,18 +109,19 @@ public class AllTaskServiceImpl implements AllTaskSercice { for (Artificer jsPar : jslist) { //获取技师是否参与积分规则,如果参与积分规则则继续执行,否则不变分成比例 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){ - //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(百分比) //组装对应的升级规则集合 Long classifyId = jsPar.getClassifyId(); @@ -171,8 +178,34 @@ public class AllTaskServiceImpl implements AllTaskSercice { jsUp.setArtificerId(jsPar.getArtificerId()); artificerDao.updateById(jsUp); } - } + + + //技师汇总逻辑 + QueryWrapper 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); + + + } } }