添加在线时长,和标签功能

This commit is contained in:
yangjun 2024-06-20 21:41:15 +08:00
parent 06ba5081fa
commit 6811a9893a
18 changed files with 563 additions and 43 deletions

View File

@ -383,21 +383,21 @@ public class AppArtificerController {
artificer.setCity(city);
if(artificer.getStatus()==1){
artificer.setStatus(2);
Integer i = Integer.valueOf(commonInfoDao.findOne(100000).getValue());
Date upTime = artificer.getUpTime();
long betweenDay = DateUtil.between(upTime, new Date(), DateUnit.MINUTE);
int i1 = new Long(betweenDay).intValue();
int count = i1 / i;
if(count>0){
UserRecharge userRecharge = new UserRecharge();
userRecharge.setArtificerId(artificer.getArtificerId());
userRecharge.setUserRecharge(new BigDecimal(count));
userRecharge.setType("1");
userRecharge.setUserId(userId);
upTime = DateUtil.offsetMinute(upTime, i1);
userRecharge.setCreateTime(upTime.toString());
userRechargeDao.insert(userRecharge);
}
// Integer i = Integer.valueOf(commonInfoDao.findOne(100000).getValue());
// Date upTime = artificer.getUpTime();
// long betweenDay = DateUtil.between(upTime, new Date(), DateUnit.MINUTE);
// int i1 = new Long(betweenDay).intValue();
// int count = i1 / i;
// if(count>0){
// UserRecharge userRecharge = new UserRecharge();
// userRecharge.setArtificerId(artificer.getArtificerId());
// userRecharge.setUserRecharge(new BigDecimal(count));
// userRecharge.setType("1");
// userRecharge.setUserId(userId);
// upTime = DateUtil.offsetMinute(upTime, i1);
// userRecharge.setCreateTime(upTime.toString());
// userRechargeDao.insert(userRecharge);
// }
}else{
String value1 = commonInfoService.findOne(385).getValue();
BigDecimal minScore = new BigDecimal(value1);
@ -422,21 +422,21 @@ public class AppArtificerController {
public Result offline(@RequestAttribute Long userId){
Artificer artificer = artificerService.selectArtificerByUserId(userId);
artificer.setStatus(2);
Integer i = Integer.valueOf(commonInfoDao.findOne(100000).getValue());
Date upTime = artificer.getUpTime();
long betweenDay = DateUtil.between(upTime, new Date(), DateUnit.MINUTE);
int i1 = new Long(betweenDay).intValue();
int count = i1 / i;
if(count>0){
UserRecharge userRecharge = new UserRecharge();
userRecharge.setArtificerId(artificer.getArtificerId());
userRecharge.setUserRecharge(new BigDecimal(count));
userRecharge.setType("1");
userRecharge.setUserId(userId);
upTime = DateUtil.offsetMinute(upTime, i1);
userRecharge.setCreateTime(upTime.toString());
userRechargeDao.insert(userRecharge);
}
// Integer i = Integer.valueOf(commonInfoDao.findOne(100000).getValue());
// Date upTime = artificer.getUpTime();
// long betweenDay = DateUtil.between(upTime, new Date(), DateUnit.MINUTE);
// int i1 = new Long(betweenDay).intValue();
// int count = i1 / i;
// if(count>0){
// UserRecharge userRecharge = new UserRecharge();
// userRecharge.setArtificerId(artificer.getArtificerId());
// userRecharge.setUserRecharge(new BigDecimal(count));
// userRecharge.setType("1");
// userRecharge.setUserId(userId);
// upTime = DateUtil.offsetMinute(upTime, i1);
// userRecharge.setCreateTime(upTime.toString());
// userRechargeDao.insert(userRecharge);
// }
artificerService.updateById(artificer);
return Result.success();
}
@ -548,6 +548,13 @@ public class AppArtificerController {
}else{
return Result.error("结束时间不能为空");
}
if(userId == null){
return Result.error("您未登录,请登录后进行查询");
}
if(orderType == null){
return Result.error("查询类型为空");
}
return artificerService.getOrderTypeList(userId,page,limit,orderType,isSfwc,startTime,endTime);
}

View File

@ -43,4 +43,5 @@ public interface ArtificerDao extends BaseMapper<Artificer> {
*/
List<Artificer> getYxjsList();
List<Artificer> selectInlineList(Artificer artificer);
}

View File

@ -30,6 +30,7 @@ import com.sqx.modules.artificer.dao.ArtificerDao;
import com.sqx.modules.artificer.dao.OrdersDao;
import com.sqx.modules.artificer.entity.*;
import com.sqx.modules.artificer.service.*;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.consortia.entity.Consortia;
@ -135,6 +136,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
@Autowired
private MaterialMapper materialMapper;
@Autowired
public CommonInfoDao commonInfoDao;
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
@ -1847,6 +1850,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("请离开当前位置" + value + "m后点击完成");
}
}
//修改技师销量
String accomplishAddress = CommonMapUtils.getLocationToAddress(accomplishLongitude, accomplishLatitude);//按坐标获取地理位置
orders.setAccomplishAddress(accomplishAddress);
Artificer artificer = artificerService.getById(orders.getArtificerId());
@ -1854,14 +1858,18 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
artificer.setArtificerSales(artificer.getArtificerSales() + ordersMassageList.size());
artificerService.updateById(artificer);
//修改项目销量
for (OrdersMassage ordersMassage : ordersMassageList) {
MassageType massageType = massageTypeService.getById(ordersMassage.getMassageId());
int num = massageType.getSales() == null ? 0 : massageType.getSales();
massageType.setSales(num + ordersMassage.getNum());
massageTypeService.updateById(massageType);
}
//修改用户钱包 1是加 2是减
UserEntity userEntity = userService.selectUserById(artificer.getUserId());
userMoneyService.updateMoney(1, userEntity.getUserId(), orders.getSumArtificerMoney().doubleValue());
//--------添加钱包流水日志-------------
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
//查询用户当前余额
UserMoney userNowMoney1 = userMoneyService.selectUserMoneyByUserId(userEntity.getUserId());
@ -1902,6 +1910,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
userMoneyDetailsService.save(userMoneyDetails);
//--------添加钱包流水日志-------------
orders.setStatus(3);
orders.setAccomplishLatitude(accomplishLatitude);
orders.setAccomplishLongitude(accomplishLongitude);
@ -2667,14 +2677,24 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//获取项目是否包含物料包
Orders orders = ordersDao.selectById(ordersId);
Long messageTypeId = orders.getMassageTypeId();
// MassageType massageType =massageTypeService.getById(messageTypeId);
CommonInfo commonInfo = commonInfoDao.findOne(448);//查询技师接单是否需要物料的配置
if(StringUtils.equals("", commonInfo.getValue())){
orders = new Orders();
orders.setOrdersId(ordersId);
orders.setStatus(2);//确认接单
ordersDao.updateById(orders);
Map<String,Object> map = new HashMap<>();
map.put("code",200);
map.put("msg","已确认接单");
return Result.success(map);
}
QueryWrapper<MaterialMassage> materialMassageQueryWrapper = new QueryWrapper<>();
materialMassageQueryWrapper.eq("massage_type_id",messageTypeId);
//查询服务是否消耗指定的物料信息
List<MaterialMassage> wllist =materialMassageMapper.selectList(materialMassageQueryWrapper);
if(wllist.size()>0){
int code = 200;
String msg = "已确认接单";
for(MaterialMassage par: wllist){
@ -2707,12 +2727,12 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders = new Orders();
orders.setOrdersId(ordersId);
orders.setStatus(2);//确认接单
ordersDao.updateById(orders);
if(code == 200){
Map<String,Object> map = new HashMap<>();
map.put("code",code);
map.put("msg",msg);
orders.setStatus(2);//确认接单
ordersDao.updateById(orders);
return Result.success(map);
}else{
return Result.error(msg);

View File

@ -0,0 +1,67 @@
package com.sqx.modules.bl.pingjiaTag.content;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.Result;
import com.sqx.modules.artificerselfgoods.entity.BlArtificerSelfGoods;
import com.sqx.modules.bl.collect.entity.CollectMassage;
import com.sqx.modules.bl.massage.entity.MassagePackage;
import com.sqx.modules.bl.order.entity.UserPackage;
import com.sqx.modules.bl.order.service.UserPackageService;
import com.sqx.modules.bl.pingjiaTag.entity.BlPingjiaTag;
import com.sqx.modules.bl.pingjiaTag.service.BlPingjiaTagService;
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;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestController
@RequestMapping("/bl/pingjiaTag")
@Api(value = "评价标签", tags = {"评价标签"})
public class BlPingjiaTagController {
@Autowired
private BlPingjiaTagService service;
@GetMapping("/list")
@ApiOperation("获取数据列表")
public Result list(BlPingjiaTag entity, Integer page, Integer limit){
QueryWrapper<BlPingjiaTag> qw = new QueryWrapper<>();
qw.orderByDesc("create_time");
IPage<BlPingjiaTag> pageList = service.page(new Page<>(page,limit),qw);
return Result.success().put("data",pageList);
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(BlPingjiaTag blPingjiaTag){
blPingjiaTag.setCreateTime(new Date());
service.save(blPingjiaTag);
return Result.success();
}
@PostMapping("/modify")
@ApiOperation("修改")
public Result modify(BlPingjiaTag blPingjiaTag){
blPingjiaTag.setCreateTime(new Date());
service.updateById(blPingjiaTag);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(BlPingjiaTag blPingjiaTag){
service.removeById(blPingjiaTag.getId());
return Result.success();
}
}

View File

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

View File

@ -0,0 +1,41 @@
package com.sqx.modules.bl.pingjiaTag.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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @description:
* @authorzc.
* @createData2024-1-17 上午 10:34
* @projectNameanmo
* @classNameuserRecharge
* @packageNamecom.sqx.modules.artificer.entity
*/
@Data
@TableName("bl_pingjia_tag")
public class BlPingjiaTag implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
private String title;
private int delFlag;
private int userType;
}

View File

@ -0,0 +1,9 @@
package com.sqx.modules.bl.pingjiaTag.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.bl.pingjiaTag.entity.BlPingjiaTag;
import com.sqx.modules.bl.userZxsc.entity.BlUserZxsc;
public interface BlPingjiaTagService extends IService<BlPingjiaTag> {
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.pingjiaTag.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.pingjiaTag.dao.BlPingjiaTagDao;
import com.sqx.modules.bl.pingjiaTag.entity.BlPingjiaTag;
import com.sqx.modules.bl.pingjiaTag.service.BlPingjiaTagService;
import org.springframework.stereotype.Service;
@Service
public class BlPingjiaTagServiceImpl extends ServiceImpl<BlPingjiaTagDao, BlPingjiaTag> implements BlPingjiaTagService {
}

View File

@ -0,0 +1,14 @@
package com.sqx.modules.bl.userZxsc.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.bl.userZxsc.entity.BlUserZxsc;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BlUserZxscDao extends BaseMapper<BlUserZxsc> {
List<BlUserZxsc> selectGrouplist(BlUserZxsc blUserZxscParam);
}

View File

@ -0,0 +1,42 @@
package com.sqx.modules.bl.userZxsc.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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @description:
* @authorzc.
* @createData2024-1-17 上午 10:34
* @projectNameanmo
* @classNameuserRecharge
* @packageNamecom.sqx.modules.artificer.entity
*/
@Data
@TableName("bl_user_zxsc")
public class BlUserZxsc implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
private Long artificerId;
private Long userId;
private BigDecimal userRecharge;
@ApiModelProperty("创建时间")
private String createTime;
@TableField(exist = false)
private List<BlUserZxsc> children;
}

View File

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

View File

@ -0,0 +1,35 @@
package com.sqx.modules.bl.userZxsc.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.sqx.common.utils.Result;
import com.sqx.modules.artificer.dao.ArtificerDao;
import com.sqx.modules.artificer.dao.UserRechargeDao;
import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.UserRecharge;
import com.sqx.modules.bl.order.dao.UserPackageDao;
import com.sqx.modules.bl.order.entity.UserPackage;
import com.sqx.modules.bl.order.service.UserPackageService;
import com.sqx.modules.bl.userZxsc.dao.BlUserZxscDao;
import com.sqx.modules.bl.userZxsc.entity.BlUserZxsc;
import com.sqx.modules.bl.userZxsc.service.BlUserZxscService;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.common.entity.CommonInfo;
import org.apache.http.client.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@Service
public class BlUserZxscServiceImpl extends ServiceImpl<BlUserZxscDao, BlUserZxsc> implements BlUserZxscService {
}

View File

@ -0,0 +1,19 @@
package com.sqx.modules.task.controller;
import com.sqx.modules.bl.userZxsc.service.BlUserZxscService;
import com.sqx.modules.task.service.AllTaskSercice;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 定时任务汇总
* 20240618
*/
public class AllTask {
}

View File

@ -0,0 +1,6 @@
package com.sqx.modules.task.service;
public interface AllTaskSercice {
void upgradeJishi();
}

View File

@ -0,0 +1,222 @@
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.OrdersDao;
import com.sqx.modules.artificer.dao.UserRechargeDao;
import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.Orders;
import com.sqx.modules.artificer.entity.UserRecharge;
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;
import org.springframework.scheduling.annotation.Scheduled;
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;
@Service
public class AllTaskServiceImpl implements AllTaskSercice {
@Autowired
private ArtificerDao artificerDao;
@Autowired
private ArtificerPartitioningDetailsMapper artificerPartitioningDetailsMapper;
@Autowired
private OrdersDao ordersDao;
@Autowired
private BlUserZxscDao blUserZxscDao;
@Autowired
public CommonInfoDao commonInfoDao;
@Autowired
private UserRechargeDao userRechargeDao;
/**
* 计算技师升级规则 每天半夜1点执行预留12点到01点之间的计算间隔用于触发其他计算逻辑
* A0,A1,A2,A3,A4,A5等
*/
@Scheduled(cron = "0 0 1 * * ?")
public void upgradeJishi() {
//1.获取全部有效技师
List<Artificer> jslist = artificerDao.getYxjsList();
//2.获取计算周期从几号到几号例如1号-10号为一个周期11号到20号第二个周期21号-月底是第三个周期
Calendar calendar = Calendar.getInstance();
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(dayOfMonth);
String startTime = "";
String endTime = "";
//获取执行时间
if(dayOfMonth == 1){
Calendar calendar4 = Calendar.getInstance();
calendar4.set(Calendar.DAY_OF_MONTH, 1);
calendar4.add(Calendar.DAY_OF_MONTH, -1);
int lastDayOfMonth = calendar4.get(Calendar.DAY_OF_MONTH);
Calendar calendar2 = Calendar.getInstance();
calendar2.add(Calendar.MONTH, -1); // 获取上个月
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String lastMonth = format.format(calendar2.getTime());
startTime = lastMonth+"-21 00:00:00";
endTime = lastMonth+"-"+lastDayOfMonth+" 23:59:59";
}else if(dayOfMonth == 11){
Calendar calendar4 = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String lastMonth = format.format(calendar4.getTime());
startTime = lastMonth+"-01 00:00:00";
endTime = lastMonth+"-10 23:59:59";
}else if(dayOfMonth == 21){
Calendar calendar4 = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String lastMonth = format.format(calendar4.getTime());
startTime = lastMonth+"-11 00:00:00";
endTime = lastMonth+"-20 23:59:59";
}
System.out.println("startTime" + startTime);
System.out.println("endTime" + endTime);
//不为空则继续执行否则不到时间不计算升级规则
if(StringUtils.isNotEmpty(startTime)){
//3.查询升级规则配置表
QueryWrapper<ArtificerPartitioningDetails> sjgzQuery = new QueryWrapper<ArtificerPartitioningDetails>();
sjgzQuery.orderByDesc("outstanding_achievement","duration_online");
List<ArtificerPartitioningDetails> sjgzAllList = artificerPartitioningDetailsMapper.selectList(sjgzQuery);
//4.根据技师的服务类型查找对应的配置规则
for (Artificer jsPar : jslist) {
//获取技师是否参与积分规则如果参与积分规则则继续执行否则不变分成比例
Integer ynJfgz = jsPar.getYnJfgz();//是否参与积分规则计算0不参与 1参与
if(ynJfgz==1){
Long classifyId = jsPar.getClassifyId();
//组装对应的升级规则集合
List<ArtificerPartitioningDetails> sjgzList = new ArrayList<>();
for (ArtificerPartitioningDetails sjgzPar : sjgzAllList){
//当技师的服务类型=升级规则的服务类型才可以添加到升级规则里去
if(StringUtils.equals(sjgzPar.getClassifyId(),String.valueOf(classifyId))){
sjgzList.add(sjgzPar);
}
}
//4.1获取 技师销售金额(order表的 price) 只查询完成的单子
Orders ordersQueryWrapper = new Orders();
ordersQueryWrapper.setStartTime(startTime);
ordersQueryWrapper.setEndTime(endTime);
ordersQueryWrapper.setArtificerId(jsPar.getArtificerId());
String tjxsje = ordersDao.selectTjpriceList(ordersQueryWrapper);
//4.2获取 技师加钟率(order表的parent_id为空则是正常订单不为空则是加钟订单 用加钟订单/正常订单为加钟率)
//4.3获取 在线时长通过积分表和兑换比例反推在线时长 user_rechange的type=1
//4.4获取 积分充值积分 user_rechange的type=2
//4.5根据对应的收益判断属于哪个等级并修改artificer的yn_jfgz等级标识及rate(百分比)
}
}
}
}
/**
* 计算技师在线时长每10分钟计算一积分
*/
@Scheduled(cron = "0 * * * * ?")
public void upJishiZxsc() throws ParseException {
System.out.println("----------------计算技师在线时长每10分钟计算一积分-------------");
CommonInfo commonInfo = commonInfoDao.findOne(100000);
String minute = commonInfo.getValue();//多少分钟等于1积分
Artificer artificer = new Artificer();
artificer.setStatus(1);
List<Artificer> artificerList = artificerDao.selectInlineList(artificer);
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for(Artificer par:artificerList){
//取最新的一回的获得积分时间
QueryWrapper<BlUserZxsc> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("artificer_id",par.getArtificerId());
queryWrapper.orderByDesc("create_time");
queryWrapper.last("limit 1");
BlUserZxsc blUserZxsc = blUserZxscDao.selectOne(queryWrapper);
if(blUserZxsc == null){
BigDecimal recharge = new BigDecimal(1);
BlUserZxsc newBlUserZxsc = new BlUserZxsc();
newBlUserZxsc.setArtificerId(par.getArtificerId());
newBlUserZxsc.setUserRecharge(recharge);
newBlUserZxsc.setCreateTime(sdf.format(new Date()));
blUserZxscDao.insert(newBlUserZxsc);
}else{
String createTime = blUserZxsc.getCreateTime();
//上一回时间加十分钟
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(createTime));
calendar.add(Calendar.MINUTE, Integer.parseInt(minute));
Date nextDate = calendar.getTime();
if (now.getTime()>=nextDate.getTime()) {//nowTime < newTime
BigDecimal recharge = new BigDecimal(1);
BlUserZxsc newBlUserZxsc = new BlUserZxsc();
newBlUserZxsc.setArtificerId(par.getArtificerId());
newBlUserZxsc.setUserRecharge(recharge);
newBlUserZxsc.setCreateTime(sdf.format(new Date()));
blUserZxscDao.insert(newBlUserZxsc);
}
}
}
}
/**
* 积分汇总 t+1进行汇总
*/
@Scheduled(cron = "0 * * * * ?")
public void tongjiJishiGrade() {
System.out.println("----------------每日积分汇总 定时任务-------------");
//当前时间减一天
Calendar calendar = Calendar.getInstance();
// calendar.add(Calendar.DAY_OF_YEAR, -1);//上一天
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(calendar.getTime());
BlUserZxsc blUserZxscParam = new BlUserZxsc();
blUserZxscParam.setCreateTime(date);
List<BlUserZxsc> blUserZxsc = blUserZxscDao.selectGrouplist(blUserZxscParam);
String dateStr = sdf2.format(calendar.getTime());
for(BlUserZxsc blUserZxscPar:blUserZxsc){
QueryWrapper<UserRecharge> delWrapper = new QueryWrapper<UserRecharge>();
delWrapper.eq("artificer_id",blUserZxscPar.getArtificerId());
delWrapper.eq("type",1);
delWrapper.ge("create_time",date);
delWrapper.le("create_time",date+" 23:59:59");
userRechargeDao.delete(delWrapper);
UserRecharge userRecharge = new UserRecharge();
userRecharge.setArtificerId(blUserZxscPar.getArtificerId());
userRecharge.setUserRecharge(blUserZxscPar.getUserRecharge());
userRecharge.setType("1");
userRecharge.setUserId(null);
userRecharge.setCreateTime(dateStr);
userRechargeDao.insert(userRecharge);
}
}
}

View File

@ -3,9 +3,9 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://175.178.80.95:3306/anmo1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
username: anmo1
password: sEeTPPk7GWyn8iF7
url: jdbc:mysql://127.0.0.1:3306/anmo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
username: root
password: 123456
initial-size: 10
max-active: 100
min-idle: 10

View File

@ -207,4 +207,13 @@
</select>
<select id="selectInlineList" resultType="com.sqx.modules.artificer.entity.Artificer">
select a.* from artificer a
inner join tb_user u on a.user_id=u.user_id
where u.status = 1
<if test="status">
and a.status = ${status}
</if>
</select>
</mapper>

View File

@ -585,7 +585,7 @@
left join massage_type m on m.massage_type_id=om.massage_id
where o.artificer_id = #{artificerId} and o.parent_id = 0
<if test="type==1">
and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status in (2,3,5,6,7,8)
and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status in (2,3,5,6,7,8,9)
</if>
<if test="type==2">
@ -1024,21 +1024,19 @@
<select id="getChongzhiList" resultType="com.sqx.modules.artificer.entity.Orders">
select
a.*,uu.user_recharge as userRecharge
o.*,uu.user_recharge as userRecharge
from orders o
left join artificer a on a.artificer_id=o.artificer_id
left join tb_user u on u.user_id=o.user_id
left join consortia c on c.consortia_id=o.consortia_id
left join user_recharge uu on uu.orders_id = o.orders_id
where o.artificer_id=#{userId}
and o.status in (3,5)
and o.end_times BETWEEN #{startTime} and #{endTime}
<if test="isSfwc != null and isSfwc == 0">
and uu.type = 2
and uu.type is null
</if>
<if test="isSfwc != null and isSfwc == 1">
and uu.type != 2
and uu.type = 2
</if>
</select>