最新代码
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.starry.admin.common.component;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
@@ -96,7 +96,7 @@ public class JwtToken {
|
||||
* @return 令牌
|
||||
*/
|
||||
public String createToken(JwtUser jwtUser) {
|
||||
String token = IdUtil.fastSimpleUUID();
|
||||
String token = IdUtils.getUuid();
|
||||
jwtUser.setToken(token);
|
||||
setUserAgent(jwtUser);
|
||||
refersToken(jwtUser);
|
||||
@@ -243,7 +243,7 @@ public class JwtToken {
|
||||
* 创建令牌
|
||||
*/
|
||||
public Map<String, Object> createToken(LoginUser loginUser) {
|
||||
String token = IdUtil.fastSimpleUUID();
|
||||
String token = IdUtils.getUuid();
|
||||
String userId = loginUser.getUser().getUserId();
|
||||
String userName = loginUser.getUser().getUserCode();
|
||||
String tenantId = loginUser.getUser().getTenantId();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.starry.admin.common.conf;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.TypeReference;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -7,7 +8,6 @@ import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||
import org.apache.ibatis.type.MappedTypes;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
@@ -16,13 +16,18 @@ import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据库数据-String 和 List 自动转换
|
||||
*
|
||||
* @author admin
|
||||
*/
|
||||
@Slf4j
|
||||
@MappedJdbcTypes(JdbcType.VARCHAR) //数据库类型
|
||||
@MappedTypes({List.class}) //java数据类型
|
||||
public abstract class ListTypeHandler<T> extends BaseTypeHandler<List<T>> {
|
||||
@MappedJdbcTypes(JdbcType.VARCHAR)
|
||||
@MappedTypes({List.class})
|
||||
public abstract class AbstractListTypeHandler<T> extends BaseTypeHandler<List<T>> {
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, List<T> parameter, JdbcType jdbcType) throws SQLException {
|
||||
String content = StringUtils.isEmpty(parameter) ? null : JSON.toJSONString(parameter);
|
||||
String content = StrUtil.isEmptyIfStr(parameter) ? null : JSON.toJSONString(parameter);
|
||||
ps.setString(i, content);
|
||||
}
|
||||
|
||||
@@ -42,7 +47,7 @@ public abstract class ListTypeHandler<T> extends BaseTypeHandler<List<T>> {
|
||||
}
|
||||
|
||||
private List<T> getListByJsonArrayString(String content) {
|
||||
return StringUtils.isEmpty(content) ? new ArrayList<>() : JSON.parseObject(content, this.specificType());
|
||||
return StrUtil.isEmptyIfStr(content) ? new ArrayList<>() : JSON.parseObject(content, this.specificType());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.starry.admin.common.conf;
|
||||
|
||||
import com.alibaba.fastjson2.TypeReference;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class StringTypeHandler extends ListTypeHandler<String> {
|
||||
// 将ListTypeHandler<T>(T为任意对象),具体为特定的对象String
|
||||
/**
|
||||
* @author admin
|
||||
*/
|
||||
public class StringTypeHandler extends AbstractListTypeHandler<String> {
|
||||
@Override
|
||||
protected TypeReference<List<String>> specificType() {
|
||||
return new TypeReference<List<String>>() {
|
||||
|
||||
@@ -63,20 +63,26 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
|
||||
}
|
||||
|
||||
public String getOperatorId() {
|
||||
if (request.getServletPath().startsWith("/wx/")) {
|
||||
String tenantKey = request.getHeader("tenantkey");
|
||||
if (StrUtil.isBlankIfStr(tenantKey)) {
|
||||
String clerkToken = request.getHeader(Constants.CLERK_USER_LOGIN_TOKEN);
|
||||
String customToken = request.getHeader(Constants.CUSTOM_USER_LOGIN_TOKEN);
|
||||
if (clerkToken != null) {
|
||||
return tokenService.getWxUserIdByToken(clerkToken);
|
||||
try {
|
||||
if (request.getServletPath().startsWith("/wx/")) {
|
||||
String tenantKey = request.getHeader("tenantkey");
|
||||
if (StrUtil.isBlankIfStr(tenantKey)) {
|
||||
String clerkToken = request.getHeader(Constants.CLERK_USER_LOGIN_TOKEN);
|
||||
String customToken = request.getHeader(Constants.CUSTOM_USER_LOGIN_TOKEN);
|
||||
if (clerkToken != null) {
|
||||
return tokenService.getWxUserIdByToken(clerkToken);
|
||||
}
|
||||
if (customToken != null) {
|
||||
return tokenService.getWxUserIdByToken(customToken);
|
||||
}
|
||||
}
|
||||
if (customToken != null) {
|
||||
return tokenService.getWxUserIdByToken(customToken);
|
||||
return "";
|
||||
} else {
|
||||
if (SecurityUtils.isLogin()) {
|
||||
return SecurityUtils.getUserId();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
} else {
|
||||
} catch (Exception ignored) {
|
||||
if (SecurityUtils.isLogin()) {
|
||||
return SecurityUtils.getUserId();
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.starry.admin.common.oss.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.io.FileTypeUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import com.aliyun.oss.ClientException;
|
||||
import com.aliyun.oss.OSS;
|
||||
import com.aliyun.oss.OSSClientBuilder;
|
||||
@@ -58,7 +58,7 @@ public class OssFileServiceImpl implements IOssFileService {
|
||||
// 文件名:uuid.扩展名
|
||||
|
||||
|
||||
filename = IdUtil.fastSimpleUUID() + "." + fileType;
|
||||
filename = IdUtils.getUuid() + "." + fileType;
|
||||
// 文件根路径
|
||||
String key = module + "/" + folder + "/" + filename;
|
||||
// 创建PutObjectRequest对象。
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
package com.starry.admin.common.play.wx;
|
||||
|
||||
public class CommonText {
|
||||
|
||||
public static final String DATA_NOT_EXIST = "数据不存在";
|
||||
|
||||
/**
|
||||
* 微信公众号
|
||||
*/
|
||||
public static final String WECHAT_CONFIG_DOES_NOT_EXIST = "未配置公司微信公众号的相关信息";
|
||||
public static final String WECHAT_PAY_CONFIG_DOES_NOT_EXIST = "未配置公司微信支付的相关信息";
|
||||
public static final String OPENID_DOES_NOT_EXIST = "请上传微信用户openid";
|
||||
public static final String WECHAT_TRADE_TYPE_DOES_NOT_EXIST = "请上传微信支付交易类型";
|
||||
public static final String OPENID_ALREADY_BIND = "该微信号已被其他账号绑定!";
|
||||
public static final String ADMIN_OPENID_DOES_NOT_EXIST = "请上传管理员openid";
|
||||
public static final String OPENID_DOES_NOT_FIND = "未获取到对应微信用户openid";
|
||||
public static final String WECHAT_CODE_DOES_NOT_EXIST = "请上传微信用户code";
|
||||
public static final String WECHAT_USER_TOKEN_DOES_ERR = "获取微信用户token失败";
|
||||
public static final String UNIFIEDORDER_ERR = "统一下单失败";
|
||||
public static final String UNIFIEDORDER_ERR_PREPAY_ID_NOT_FIND = "统一下单失败,未生成PREPAY_ID";
|
||||
|
||||
/**
|
||||
* 微信小程序
|
||||
*/
|
||||
public static final String MINI_OPENID_DOES_NOT_EXIST = "请上传小程序用户openid";
|
||||
public static final String WECHAT_MINI_CONFIG_DOES_NOT_EXIST = "未配置公司微信小程序的相关信息";
|
||||
public static final String WECHAT_MINI_PARAM_NOT_EXIST = "缺少所需小程序参数!";
|
||||
public static final String WECHAT_MINI_IV_NOT_EXIST = "请上传iv参数";
|
||||
public static final String WECHAT_MINI_SESSION_KEY_DOES_NOT_EXIST = "请上传session_key参数";
|
||||
public static final String WECHAT_MINI_ENCRYPTED_DATA_DOES_NOT_EXIST = "请上传encrypted_data参数";
|
||||
public static final String WECHAT_MINI_ENCRYPTED_DATA_PARSE_ERR = "encrypted_data解析失败";
|
||||
public static final String WECHAT_MINI_ENCRYPTED_DATA_NOT_HAVE_PHONE_NUM = "encrypted_data中未解析出电话号码";
|
||||
|
||||
/**
|
||||
* 支付相关
|
||||
*/
|
||||
public static final String ORDER_PAY_TYPE_NOT_EXIST = "请上传支付方式!";
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.starry.admin.common.play.wx;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import cn.hutool.crypto.digest.MD5;
|
||||
import com.github.wxpay.sdk.WXPayUtil;
|
||||
import com.starry.admin.common.exception.CustomException;
|
||||
@@ -114,7 +114,7 @@ public class WxCustomPayUtils {
|
||||
Map<String, String> paraMap = new HashMap<String, String>();
|
||||
paraMap.put("appid", wechat_appid);
|
||||
paraMap.put("mch_id", wechat_mchid);
|
||||
paraMap.put("nonce_str", IdUtil.fastSimpleUUID());
|
||||
paraMap.put("nonce_str", IdUtils.getUuid());
|
||||
paraMap.put("out_trade_no", out_trade_no);// 订单号
|
||||
String sign = WXPayUtil.generateSignature(paraMap, wechat_seckey);
|
||||
paraMap.put("sign", sign);
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.starry.admin.common.task;
|
||||
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkWagesInfoService;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||
import com.starry.admin.modules.platform.entity.SysTenantEntity;
|
||||
import com.starry.admin.modules.platform.service.ISysTenantService;
|
||||
import com.starry.admin.utils.SecurityUtils;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单工资结算
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024/5/28 下午2:42
|
||||
**/
|
||||
@Component
|
||||
public class ClerkWagesSettlementTask {
|
||||
|
||||
@Resource
|
||||
ISysTenantService sysTenantService;
|
||||
|
||||
@Resource
|
||||
private IPlayClerkUserInfoService clerkUserInfoService;
|
||||
|
||||
@Resource
|
||||
private IPlayOrderInfoService playOrderInfoService;
|
||||
|
||||
@Resource
|
||||
private IPlayClerkRankingInfoService clerkRankingInfoService;
|
||||
|
||||
@Resource
|
||||
private IPlayClerkWagesInfoService playClerkWagesInfoService;
|
||||
|
||||
@Resource
|
||||
private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService;
|
||||
|
||||
/**
|
||||
* 每分钟查询未结算订单
|
||||
* 如果订单完成时间超过24小时,可进行结算,生成工资
|
||||
*/
|
||||
// @Scheduled(cron = "0 0/1 * * * ?")
|
||||
public void dailyRanking() {
|
||||
//1、查询所有的租户信息
|
||||
List<SysTenantEntity> tenantEntities = sysTenantService.listAll();
|
||||
for (SysTenantEntity tenantEntity : tenantEntities) {
|
||||
SecurityUtils.setTenantId(tenantEntity.getTenantId());
|
||||
List<PlayClerkUserInfoEntity> clerkUserReturnVos = clerkUserInfoService.listAll();
|
||||
//生成每个人的工资信息
|
||||
for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) {
|
||||
updateClerkWagesInfo(clerkUserInfo.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 活动24小时前完成的订单,对订单进行结算
|
||||
*
|
||||
* @param clerkId 店员ID
|
||||
*/
|
||||
public void updateClerkWagesInfo(String clerkId) {
|
||||
//获得24小时前完成,并且未结算的订单
|
||||
LocalDateTime lastTime = LocalDateTime.now().minusDays(1);
|
||||
//查询当前店员上次结算工资到现在的订单
|
||||
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByEndTime(clerkId, lastTime);
|
||||
PlayClerkWagesInfoEntity entity = playClerkWagesInfoService.getLastSettlement(clerkId);
|
||||
//更新订单信息
|
||||
updateClerkWagesInfo(clerkId, entity == null ? IdUtils.getUuid() : entity.getId(), orderInfoEntities);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新最新一次工资统计信息
|
||||
* 更新订单记录
|
||||
*
|
||||
* @param orderInfoEntities 订单列表
|
||||
*/
|
||||
public void updateClerkWagesInfo(String clerkId, String wagesId, List<PlayOrderInfoEntity> orderInfoEntities) {
|
||||
//修改订单状态并且新增订单结算详情
|
||||
for (PlayOrderInfoEntity orderInfo : orderInfoEntities) {
|
||||
//修改订单状态
|
||||
orderInfo.setOrderSettlementState("1");
|
||||
orderInfo.setOrderSettlementTime(LocalDateTime.now());
|
||||
playOrderInfoService.update(orderInfo);
|
||||
|
||||
PlayClerkWagesDetailsInfoEntity wagesDetailsInfo = playClerkWagesDetailsInfoService.selectByOrderId(orderInfo.getId());
|
||||
if (wagesDetailsInfo == null) {
|
||||
wagesDetailsInfo = new PlayClerkWagesDetailsInfoEntity();
|
||||
wagesDetailsInfo.setId(IdUtils.getUuid());
|
||||
}
|
||||
//新增订单结算详情
|
||||
wagesDetailsInfo.setWagesId(wagesId);
|
||||
wagesDetailsInfo.setClerkId(clerkId);
|
||||
wagesDetailsInfo.setOrderId(orderInfo.getId());
|
||||
wagesDetailsInfo.setOrderNo(orderInfo.getOrderNo());
|
||||
wagesDetailsInfo.setFinalAmount(orderInfo.getFinalAmount());
|
||||
wagesDetailsInfo.setEstimatedRevenue(orderInfo.getEstimatedRevenue());
|
||||
wagesDetailsInfo.setEndOrderTime(orderInfo.getOrderEndTime());
|
||||
playClerkWagesDetailsInfoService.saveOrUpdate(wagesDetailsInfo);
|
||||
}
|
||||
//新增订单结算信息
|
||||
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||
Integer orderContinueNumber = 0;
|
||||
BigDecimal orderContinueMoney = BigDecimal.ZERO;
|
||||
Integer ordersExpiredNumber = 0;
|
||||
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||
Integer orderNumber = 0;
|
||||
LocalDate lastTime = playClerkWagesInfoService.getLastSettlementTime(clerkId);
|
||||
for (PlayClerkWagesDetailsInfoEntity entity : playClerkWagesDetailsInfoService.selectByWagesId(wagesId)) {
|
||||
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(entity.getOrderId());
|
||||
finalAmount = finalAmount.add(orderInfo.getFinalAmount());
|
||||
orderNumber++;
|
||||
estimatedRevenue = estimatedRevenue.add(orderInfo.getEstimatedRevenue());
|
||||
if ("0".equals(orderInfo.getFirstOrder())) {
|
||||
orderContinueNumber++;
|
||||
orderContinueMoney = orderContinueMoney.add(orderInfo.getFinalAmount());
|
||||
}
|
||||
if ("1".equals(orderInfo.getOrdersExpiredState())) {
|
||||
ordersExpiredNumber++;
|
||||
}
|
||||
}
|
||||
|
||||
PlayClerkWagesInfoEntity wagesInfo = new PlayClerkWagesInfoEntity();
|
||||
wagesInfo.setId(wagesId);
|
||||
wagesInfo.setClerkId(clerkId);
|
||||
wagesInfo.setStartCountDate(lastTime);
|
||||
wagesInfo.setEndCountDate(LocalDate.now());
|
||||
wagesInfo.setOrderNumber(orderNumber);
|
||||
wagesInfo.setFinalAmount(finalAmount);
|
||||
wagesInfo.setOrderContinueNumber(orderContinueNumber);
|
||||
wagesInfo.setOrderContinueMoney(orderContinueMoney);
|
||||
wagesInfo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||
wagesInfo.setSettlementDate(LocalDate.now());
|
||||
wagesInfo.setEstimatedRevenue(estimatedRevenue);
|
||||
if (ChronoUnit.DAYS.between(LocalDate.now(), lastTime) <= 7) {
|
||||
wagesInfo.setHistoricalStatistics("0");
|
||||
} else {
|
||||
wagesInfo.setHistoricalStatistics("1");
|
||||
}
|
||||
|
||||
playClerkWagesInfoService.saveOrUpdate(wagesInfo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.starry.admin.common.task;
|
||||
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||
import com.starry.admin.modules.platform.entity.SysTenantEntity;
|
||||
import com.starry.admin.modules.platform.service.ISysTenantService;
|
||||
import com.starry.admin.utils.SecurityUtils;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单排名结算信息
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024/5/28 下午2:42
|
||||
**/
|
||||
@Component
|
||||
public class OrderRankingSettlementTask {
|
||||
|
||||
@Resource
|
||||
ISysTenantService sysTenantService;
|
||||
|
||||
@Resource
|
||||
private IPlayClerkUserInfoService clerkUserInfoService;
|
||||
|
||||
@Resource
|
||||
private IPlayOrderInfoService orderInfoService;
|
||||
|
||||
@Resource
|
||||
private IPlayClerkRankingInfoService clerkRankingInfoService;
|
||||
|
||||
/**
|
||||
* 当日订单结算,查询前一日的订单信息,生成订单排名数据
|
||||
* 每天凌晨0点5分0秒时触发执行
|
||||
*/
|
||||
// @Scheduled(cron = "0 10 0 * * ?")
|
||||
public void dailyRanking() {
|
||||
//1、查询所有的租户信息
|
||||
List<SysTenantEntity> tenantEntities = sysTenantService.listAll();
|
||||
LocalDate startTime = LocalDate.now().minusDays(1);
|
||||
LocalDate endTime = LocalDate.now();
|
||||
//2、查询每个租户的用户,以及他们的订单信息
|
||||
Integer newSerialNumber = clerkRankingInfoService.selectSerialNumber();
|
||||
for (SysTenantEntity tenantEntity : tenantEntities) {
|
||||
SecurityUtils.setTenantId(tenantEntity.getTenantId());
|
||||
List<PlayClerkUserInfoEntity> clerkUserReturnVos = clerkUserInfoService.listAll();
|
||||
//生成每个人的订单排行信息
|
||||
for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) {
|
||||
//查询当前店员一定时间的订单信息
|
||||
List<PlayOrderInfoEntity> orderInfoEntities = orderInfoService.listByTime(clerkUserInfo.getId(), startTime, endTime);
|
||||
PlayClerkRankingInfoEntity rankingInfo = clerkRankingInfoService.selectByTime(clerkUserInfo.getId(), startTime, endTime);
|
||||
//3、根据订单信息,生成对应排名数据
|
||||
updateClerkRanking(clerkUserInfo.getId(), startTime, endTime, rankingInfo, orderInfoEntities, newSerialNumber);
|
||||
}
|
||||
//根据订单数量,更新排行名词
|
||||
List<PlayClerkRankingInfoEntity> list = clerkRankingInfoService.selectMaxSerialNumber();
|
||||
// 使用匿名比较器排序
|
||||
list.sort((p1, p2) -> p2.getOrderNumber() - p1.getOrderNumber());
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
PlayClerkRankingInfoEntity item = list.get(i);
|
||||
item.setRankingIndex(i + 1);
|
||||
if (i > 0) {
|
||||
item.setPreviousMoney(list.get(i - 1).getOrderMoney().subtract(item.getOrderMoney()));
|
||||
}
|
||||
clerkRankingInfoService.update(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新当前店员的排名信息
|
||||
*
|
||||
* @param clerkId 店员ID
|
||||
* @param rankingInfo 店员排名信息
|
||||
* @param orderInfoEntities 店员订单信息
|
||||
*/
|
||||
public void updateClerkRanking(String clerkId, LocalDate startTime, LocalDate endTime, PlayClerkRankingInfoEntity rankingInfo, List<PlayOrderInfoEntity> orderInfoEntities, Integer newSerialNumber) {
|
||||
//排行-订单信息
|
||||
BigDecimal orderMoney = BigDecimal.ZERO;
|
||||
Integer orderContinueNumber = 0;
|
||||
BigDecimal orderContinueMoney = BigDecimal.ZERO;
|
||||
Integer ordersExpiredNumber = 0;
|
||||
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
||||
orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney());
|
||||
if ("0".equals(orderInfoEntity.getFirstOrder())) {
|
||||
orderContinueNumber++;
|
||||
orderContinueMoney = orderContinueMoney.add(orderInfoEntity.getOrderMoney());
|
||||
}
|
||||
}
|
||||
|
||||
if (rankingInfo == null) {
|
||||
rankingInfo = new PlayClerkRankingInfoEntity();
|
||||
rankingInfo.setId(IdUtils.getUuid());
|
||||
rankingInfo.setSerialNumber(newSerialNumber + 1);
|
||||
}
|
||||
rankingInfo.setClerkId(clerkId);
|
||||
rankingInfo.setStartCountDate(startTime);
|
||||
rankingInfo.setEndCountDate(endTime);
|
||||
rankingInfo.setOrderNumber(orderInfoEntities.size());
|
||||
rankingInfo.setSerialNumber(newSerialNumber);
|
||||
rankingInfo.setOrderMoney(orderMoney);
|
||||
rankingInfo.setOrderContinueMoney(orderContinueMoney);
|
||||
rankingInfo.setOrderContinueNumber(orderContinueNumber);
|
||||
rankingInfo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||
clerkRankingInfoService.saveOrUpdate(rankingInfo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user