diff --git a/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java b/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java index 0de2049..375eb34 100644 --- a/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java +++ b/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java @@ -16,5 +16,5 @@ public interface UserMoneyDao extends BaseMapper { void updateMoney(UserMoney userMoney); - void updateMaySad(@Param("type") Integer type, @Param("userId") Long userId, @Param("money") Double money); + void updateMaySad(@Param("userId") Long userId, @Param("money") Double money); } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java index 9c20b34..99bf050 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java @@ -138,6 +138,7 @@ public class UserMoneyServiceImpl extends ServiceImpl i userMoney.setMoney(BigDecimal.ZERO); userMoney.setUserId(userId); userMoney.setCashDeposit(BigDecimal.ZERO); + userMoney.setSad(BigDecimal.ZERO); baseMapper.insert(userMoney); } return userMoney; @@ -175,7 +176,17 @@ public class UserMoneyServiceImpl extends ServiceImpl i @Override public void updateSad(int i, Long userId, double payMoney) { - baseMapper.updateMaySad(i, userId, payMoney); + UserMoney userMoney = selectUserMoneyByUserId(userId); + BigDecimal sad = userMoney.getSad(); + if(sad==null){ + sad = BigDecimal.ZERO; + } + if(i==1){ + payMoney = sad.doubleValue() + payMoney; + }else{ + payMoney = sad.doubleValue() - payMoney; + } + baseMapper.updateMaySad(userId, payMoney); } } diff --git a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java index bacde8e..23b3ffd 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java @@ -154,4 +154,6 @@ public interface OrdersDao extends BaseMapper { IPage> selectArtificerMoneyList(Page> page,String startTime,String endTime,Integer status,Integer by); + Orders getOrdersMoneyById(Long ordersId); + } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/dao/UserRechargeDao.java b/src/main/java/com/sqx/modules/artificer/dao/UserRechargeDao.java index 671d9b8..23bbf6f 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/UserRechargeDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/UserRechargeDao.java @@ -34,4 +34,5 @@ public interface UserRechargeDao extends BaseMapper { @Param("type") String type, @Param("artificerId") String artificerId); + List selectStoredList(@Param("createTime") String createTime); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java index 7159886..7adffe7 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java @@ -28,6 +28,8 @@ 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.bl.artificer.dao.ArtificerIntegralStatisticsDao; +import com.sqx.modules.bl.artificer.entity.ArtificerIntegralStatistics; import com.sqx.modules.bl.commission.fxy.entity.FxyApply; import com.sqx.modules.bl.commission.fxy.entity.FxyConfig; import com.sqx.modules.bl.commission.fxy.service.FxyApplyService; @@ -176,6 +178,8 @@ public class OrdersServiceImpl extends ServiceImpl implements private JjrConfigService jjrConfigService; @Autowired private JjrConfigLevelService jjrConfigServiceLevel; + @Autowired + private ArtificerIntegralStatisticsDao artificerIntegralStatisticsDao; private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); @@ -7082,6 +7086,30 @@ public class OrdersServiceImpl extends ServiceImpl implements } } + //统计业绩积分 + public void statisticsAchievementIntegral(Long ordersId){ + Orders orders = baseMapper.getOrdersMoneyById(ordersId); + String xmbs = commonInfoService.findOne(463).getValue(); + String jzbs = commonInfoService.findOne(464).getValue(); + + QueryWrapper delWrapper = new QueryWrapper(); + delWrapper.le("orders_no",orders.getOrdersNo()); + artificerIntegralStatisticsDao.delete(delWrapper); + + Artificer artificer = artificerDao.selectById(orders.getArtificerId()); + ArtificerIntegralStatistics artificerIntegralStatistics = new ArtificerIntegralStatistics(); + artificerIntegralStatistics.setArtificerId(orders.getArtificerId()); + artificerIntegralStatistics.setArtificerName(artificer.getArtificerName()); + artificerIntegralStatistics.setClassify(3); + artificerIntegralStatistics.setType(1); +// artificerIntegralStatistics.setAchievement();//业绩 +// artificerIntegralStatistics.setIncome();//收益 +// artificerIntegralStatistics.setIntegral();//积分 + artificerIntegralStatistics.setOrdersNo(orders.getOrdersNo()); + artificerIntegralStatistics.setCreateTime(orders.getEndTimes()); + artificerIntegralStatisticsDao.insert(artificerIntegralStatistics); + } + @Override public Result startOrders(Long ordersId, String startLongitude, String startLatitude, String startImg,String startRemark) { Calendar calendar = Calendar.getInstance(); diff --git a/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java b/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java new file mode 100644 index 0000000..2397f40 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/artificer/dao/ArtificerIntegralStatisticsDao.java @@ -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.ArtificerIntegralStatistics; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ArtificerIntegralStatisticsDao extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerIntegralStatistics.java b/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerIntegralStatistics.java new file mode 100644 index 0000000..d1306b3 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerIntegralStatistics.java @@ -0,0 +1,57 @@ +package com.sqx.modules.bl.artificer.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +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; + +/** + * @description:技师积分统计表 + */ +@Data +@TableName("bl_artificer_integral_statistics") + +public class ArtificerIntegralStatistics implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("id") + @TableId(type = IdType.AUTO) + private Long id; + + @ApiModelProperty("技师ID") + private Long artificerId; + + @ApiModelProperty("技师名称") + private String artificerName; + + @ApiModelProperty("技师名称") + private String createTime; + + @ApiModelProperty("类型 1在线积分 2充值积分 3业绩积分 4系统调整") + private Integer classify; + + @ApiModelProperty("1为正数 2为负数") + private Integer type; + + @ApiModelProperty("业绩") + private BigDecimal achievement; + + @ApiModelProperty("收益") + private BigDecimal income; + + @ApiModelProperty("积分") + private BigDecimal integral; + + @ApiModelProperty("订单号") + private String ordersNo; + + @ApiModelProperty("描述") + private String remarks; + + +} diff --git a/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerPartitioningDetails.java b/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerPartitioningDetails.java index 73044b3..96f956d 100644 --- a/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerPartitioningDetails.java +++ b/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerPartitioningDetails.java @@ -1,5 +1,7 @@ package com.sqx.modules.bl.artificer.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,6 +20,7 @@ public class ArtificerPartitioningDetails implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("id") + @TableId(type = IdType.AUTO) private Long id; @ApiModelProperty("等级") diff --git a/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerRechargeReward.java b/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerRechargeReward.java index b8716c4..7492fed 100644 --- a/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerRechargeReward.java +++ b/src/main/java/com/sqx/modules/bl/artificer/entity/ArtificerRechargeReward.java @@ -1,5 +1,7 @@ package com.sqx.modules.bl.artificer.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,6 +20,7 @@ public class ArtificerRechargeReward implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("id") + @TableId(type = IdType.AUTO) private Long id; @ApiModelProperty("充值金额") diff --git a/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java b/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java new file mode 100644 index 0000000..5791605 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/artificer/service/ArtificerIntegralStatisticsService.java @@ -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.ArtificerIntegralStatistics; + +public interface ArtificerIntegralStatisticsService extends IService { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java b/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java new file mode 100644 index 0000000..cda6e0d --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/artificer/service/impl/ArtificerIntegralStatisticsServiceImpl.java @@ -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.ArtificerIntegralStatisticsDao; +import com.sqx.modules.bl.artificer.entity.ArtificerIntegralStatistics; +import com.sqx.modules.bl.artificer.service.ArtificerIntegralStatisticsService; +import org.springframework.stereotype.Service; + +@Service +public class ArtificerIntegralStatisticsServiceImpl extends ServiceImpl implements ArtificerIntegralStatisticsService { + +} \ 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 824a24e..5f6fd78 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 @@ -12,7 +12,9 @@ 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.UserRecharge; +import com.sqx.modules.bl.artificer.dao.ArtificerIntegralStatisticsDao; import com.sqx.modules.bl.artificer.dao.ArtificerPartitioningDetailsDao; +import com.sqx.modules.bl.artificer.entity.ArtificerIntegralStatistics; import com.sqx.modules.bl.artificer.entity.ArtificerPartitioningDetails; import com.sqx.modules.bl.sadjob.entity.BlSadJob; import com.sqx.modules.bl.sadjob.service.BlSadJobService; @@ -29,6 +31,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -64,6 +67,8 @@ public class AllTaskServiceImpl implements AllTaskSercice { private UserSadDetailsService userSadDetailsService; @Autowired private UserMoneyService userMoneyService; + @Autowired + private ArtificerIntegralStatisticsDao artificerIntegralStatisticsDao; /** * 计算技师升级规则 每天半夜1点执行,预留12点到01点之间的计算间隔,用于触发其他计算逻辑 @@ -297,7 +302,61 @@ public class AllTaskServiceImpl implements AllTaskSercice { } } + /** + * 业绩积分汇总 t+1 8时进行汇总 + */ + @Scheduled(cron = "0 0 8 * * ?") + public void tongjiIntegral() { + 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 = blUserZxscDao.selectGrouplist(blUserZxscParam); + for(BlUserZxsc blUserZxscPar:blUserZxsc){ + QueryWrapper delWrapper = new QueryWrapper(); + delWrapper.eq("artificer_id",blUserZxscPar.getArtificerId()); + delWrapper.eq("classify",1); + delWrapper.ge("create_time",date); + delWrapper.le("create_time",date+" 23:59:59"); + artificerIntegralStatisticsDao.delete(delWrapper); + Artificer artificer = artificerDao.selectById(blUserZxscPar.getArtificerId()); + ArtificerIntegralStatistics artificerIntegralStatistics = new ArtificerIntegralStatistics(); + artificerIntegralStatistics.setArtificerId(blUserZxscPar.getArtificerId()); + artificerIntegralStatistics.setArtificerName(artificer.getArtificerName()); + artificerIntegralStatistics.setClassify(1); + artificerIntegralStatistics.setType(1); + artificerIntegralStatistics.setIntegral(blUserZxscPar.getUserRecharge()); + artificerIntegralStatistics.setCreateTime(date+" 23:59:59"); + artificerIntegralStatisticsDao.insert(artificerIntegralStatistics); + } + //获取充值积分 + List userRechargeList = userRechargeDao.selectStoredList(date); + for(UserRecharge userRecharge:userRechargeList){ + QueryWrapper delWrapper = new QueryWrapper(); + delWrapper.eq("artificer_id",userRecharge.getArtificerId()); + delWrapper.eq("classify",2); + delWrapper.ge("create_time",date); + delWrapper.le("create_time",date+" 23:59:59"); + artificerIntegralStatisticsDao.delete(delWrapper); + + Artificer artificer = artificerDao.selectById(userRecharge.getArtificerId()); + ArtificerIntegralStatistics artificerIntegralStatistics = new ArtificerIntegralStatistics(); + artificerIntegralStatistics.setArtificerId(userRecharge.getArtificerId()); + artificerIntegralStatistics.setArtificerName(artificer.getArtificerName()); + artificerIntegralStatistics.setClassify(2); + artificerIntegralStatistics.setType(1); + artificerIntegralStatistics.setIntegral(userRecharge.getUserRecharge()); + artificerIntegralStatistics.setCreateTime(date+" 23:59:59"); + artificerIntegralStatisticsDao.insert(artificerIntegralStatistics); + } + } //赠送盛安豆定时任务 @Scheduled(cron = "0 10 0 * * ?") diff --git a/src/main/resources/mapper/app/UserMoneyDao.xml b/src/main/resources/mapper/app/UserMoneyDao.xml index 5387fe7..999ec1e 100644 --- a/src/main/resources/mapper/app/UserMoneyDao.xml +++ b/src/main/resources/mapper/app/UserMoneyDao.xml @@ -15,13 +15,8 @@ - update user_money set - - sad=sad+#{money} - - - sad=sad-#{money} - + update user_money + set sad=#{money} where user_id=#{userId} diff --git a/src/main/resources/mapper/artificer/OrdersDao.xml b/src/main/resources/mapper/artificer/OrdersDao.xml index 8fce7ff..bcb9904 100644 --- a/src/main/resources/mapper/artificer/OrdersDao.xml +++ b/src/main/resources/mapper/artificer/OrdersDao.xml @@ -2036,5 +2036,10 @@ + \ No newline at end of file diff --git a/src/main/resources/mapper/artificer/UserRechargeDao.xml b/src/main/resources/mapper/artificer/UserRechargeDao.xml index 41bec99..caa4c32 100644 --- a/src/main/resources/mapper/artificer/UserRechargeDao.xml +++ b/src/main/resources/mapper/artificer/UserRechargeDao.xml @@ -40,4 +40,15 @@ and user_recharge.artificer_id = #{artificerId} and user_recharge.create_time BETWEEN #{start} and #{end} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/bl/userZxsc/BlUserZxscDao.xml b/src/main/resources/mapper/bl/userZxsc/BlUserZxscDao.xml index b0e6539..416f703 100644 --- a/src/main/resources/mapper/bl/userZxsc/BlUserZxscDao.xml +++ b/src/main/resources/mapper/bl/userZxsc/BlUserZxscDao.xml @@ -3,7 +3,6 @@ - - - - \ No newline at end of file