最新代码

This commit is contained in:
admin
2024-06-05 15:54:18 +08:00
parent aa68b33ca5
commit 80102a56fc
274 changed files with 13634 additions and 1347 deletions

View File

@@ -100,6 +100,13 @@
<version>4.5.0</version> <version>4.5.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>3.4.0</version>
</dependency>
<dependency> <dependency>
<groupId>com.tencentcloudapi</groupId> <groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-dnspod</artifactId> <artifactId>tencentcloud-sdk-java-dnspod</artifactId>

View File

@@ -3,15 +3,23 @@ package com.starry.admin;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/** /**
* @author admin * @author admin
*/ */
@EnableTransactionManagement
@SpringBootApplication @SpringBootApplication
@EnableScheduling
@ComponentScan("com.starry") @ComponentScan("com.starry")
public class Application { public class Application {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(Application.class, args); SpringApplication.run(Application.class, args);
} }
} }

View File

@@ -1,6 +1,6 @@
package com.starry.admin.common.component; 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.core.util.StrUtil;
import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgent;
@@ -96,7 +96,7 @@ public class JwtToken {
* @return 令牌 * @return 令牌
*/ */
public String createToken(JwtUser jwtUser) { public String createToken(JwtUser jwtUser) {
String token = IdUtil.fastSimpleUUID(); String token = IdUtils.getUuid();
jwtUser.setToken(token); jwtUser.setToken(token);
setUserAgent(jwtUser); setUserAgent(jwtUser);
refersToken(jwtUser); refersToken(jwtUser);
@@ -243,7 +243,7 @@ public class JwtToken {
* 创建令牌 * 创建令牌
*/ */
public Map<String, Object> createToken(LoginUser loginUser) { public Map<String, Object> createToken(LoginUser loginUser) {
String token = IdUtil.fastSimpleUUID(); String token = IdUtils.getUuid();
String userId = loginUser.getUser().getUserId(); String userId = loginUser.getUser().getUserId();
String userName = loginUser.getUser().getUserCode(); String userName = loginUser.getUser().getUserCode();
String tenantId = loginUser.getUser().getTenantId(); String tenantId = loginUser.getUser().getTenantId();

View File

@@ -1,5 +1,6 @@
package com.starry.admin.common.conf; package com.starry.admin.common.conf;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.TypeReference; import com.alibaba.fastjson2.TypeReference;
import lombok.extern.slf4j.Slf4j; 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.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes; import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes; import org.apache.ibatis.type.MappedTypes;
import org.springframework.util.StringUtils;
import java.sql.CallableStatement; import java.sql.CallableStatement;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
@@ -16,13 +16,18 @@ import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* 数据库数据-String List 自动转换
*
* @author admin
*/
@Slf4j @Slf4j
@MappedJdbcTypes(JdbcType.VARCHAR) //数据库类型 @MappedJdbcTypes(JdbcType.VARCHAR)
@MappedTypes({List.class}) //java数据类型 @MappedTypes({List.class})
public abstract class ListTypeHandler<T> extends BaseTypeHandler<List<T>> { public abstract class AbstractListTypeHandler<T> extends BaseTypeHandler<List<T>> {
@Override @Override
public void setNonNullParameter(PreparedStatement ps, int i, List<T> parameter, JdbcType jdbcType) throws SQLException { 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); ps.setString(i, content);
} }
@@ -42,7 +47,7 @@ public abstract class ListTypeHandler<T> extends BaseTypeHandler<List<T>> {
} }
private List<T> getListByJsonArrayString(String content) { 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());
} }
/** /**

View File

@@ -1,10 +1,13 @@
package com.starry.admin.common.conf; package com.starry.admin.common.conf;
import com.alibaba.fastjson2.TypeReference; import com.alibaba.fastjson2.TypeReference;
import java.util.List; import java.util.List;
public class StringTypeHandler extends ListTypeHandler<String> { /**
// 将ListTypeHandler<T>T为任意对象具体为特定的对象String * @author admin
*/
public class StringTypeHandler extends AbstractListTypeHandler<String> {
@Override @Override
protected TypeReference<List<String>> specificType() { protected TypeReference<List<String>> specificType() {
return new TypeReference<List<String>>() { return new TypeReference<List<String>>() {

View File

@@ -63,20 +63,26 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
} }
public String getOperatorId() { public String getOperatorId() {
if (request.getServletPath().startsWith("/wx/")) { try {
String tenantKey = request.getHeader("tenantkey"); if (request.getServletPath().startsWith("/wx/")) {
if (StrUtil.isBlankIfStr(tenantKey)) { String tenantKey = request.getHeader("tenantkey");
String clerkToken = request.getHeader(Constants.CLERK_USER_LOGIN_TOKEN); if (StrUtil.isBlankIfStr(tenantKey)) {
String customToken = request.getHeader(Constants.CUSTOM_USER_LOGIN_TOKEN); String clerkToken = request.getHeader(Constants.CLERK_USER_LOGIN_TOKEN);
if (clerkToken != null) { String customToken = request.getHeader(Constants.CUSTOM_USER_LOGIN_TOKEN);
return tokenService.getWxUserIdByToken(clerkToken); if (clerkToken != null) {
return tokenService.getWxUserIdByToken(clerkToken);
}
if (customToken != null) {
return tokenService.getWxUserIdByToken(customToken);
}
} }
if (customToken != null) { return "";
return tokenService.getWxUserIdByToken(customToken); } else {
if (SecurityUtils.isLogin()) {
return SecurityUtils.getUserId();
} }
} }
return ""; } catch (Exception ignored) {
} else {
if (SecurityUtils.isLogin()) { if (SecurityUtils.isLogin()) {
return SecurityUtils.getUserId(); return SecurityUtils.getUserId();
} }

View File

@@ -3,7 +3,7 @@ package com.starry.admin.common.oss.service.impl;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.io.FileTypeUtil; 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.ClientException;
import com.aliyun.oss.OSS; import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSClientBuilder;
@@ -58,7 +58,7 @@ public class OssFileServiceImpl implements IOssFileService {
// 文件名uuid.扩展名 // 文件名uuid.扩展名
filename = IdUtil.fastSimpleUUID() + "." + fileType; filename = IdUtils.getUuid() + "." + fileType;
// 文件根路径 // 文件根路径
String key = module + "/" + folder + "/" + filename; String key = module + "/" + folder + "/" + filename;
// 创建PutObjectRequest对象。 // 创建PutObjectRequest对象。

View File

@@ -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 = "请上传支付方式!";
}

View File

@@ -1,6 +1,6 @@
package com.starry.admin.common.play.wx; 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 cn.hutool.crypto.digest.MD5;
import com.github.wxpay.sdk.WXPayUtil; import com.github.wxpay.sdk.WXPayUtil;
import com.starry.admin.common.exception.CustomException; import com.starry.admin.common.exception.CustomException;
@@ -114,7 +114,7 @@ public class WxCustomPayUtils {
Map<String, String> paraMap = new HashMap<String, String>(); Map<String, String> paraMap = new HashMap<String, String>();
paraMap.put("appid", wechat_appid); paraMap.put("appid", wechat_appid);
paraMap.put("mch_id", wechat_mchid); 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);// 订单号 paraMap.put("out_trade_no", out_trade_no);// 订单号
String sign = WXPayUtil.generateSignature(paraMap, wechat_seckey); String sign = WXPayUtil.generateSignature(paraMap, wechat_seckey);
paraMap.put("sign", sign); paraMap.put("sign", sign);

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -1,87 +0,0 @@
package com.starry.admin.modules.article.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity;
import com.starry.admin.modules.article.module.vo.PlayClerkArticleQueryVo;
import com.starry.admin.modules.article.module.vo.PlayClerkArticleReturnVo;
import com.starry.admin.modules.article.service.IPlayClerkArticleInfoService;
import com.starry.admin.modules.article.service.IPlayCustomArticleInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员动态信息Controller
*
* @author admin
* @since 2024-05-04
*/
@RestController
@RequestMapping("/clerk/article")
public class PlayClerkArticleInfoController {
@Resource
private IPlayClerkArticleInfoService playClerkArticleInfoService;
@Resource
private IPlayCustomArticleInfoService playCustomArticleInfoService;
/**
* 查询店员动态信息列表
*/
@PostMapping("/list")
public R list(PlayClerkArticleQueryVo vo) {
IPage<PlayClerkArticleReturnVo> list = playClerkArticleInfoService.selectPlayClerkArticleInfoByPage(vo);
return R.ok(list);
}
/**
* 获取店员动态信息详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkArticleInfoService.selectPlayClerkArticleInfoById(id));
}
/**
* 新增店员动态信息
*/
@Log(title = "店员动态信息", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@RequestBody PlayClerkArticleInfoEntity playClerkArticleInfo) {
boolean success = playClerkArticleInfoService.create(playClerkArticleInfo);
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改店员动态信息
*/
@Log(title = "店员动态信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayClerkArticleInfoEntity playClerkArticleInfo) {
playClerkArticleInfo.setId(id);
boolean success = playClerkArticleInfoService.update(playClerkArticleInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员动态信息
*/
@Log(title = "店员动态信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
for (String id : ids) {
playClerkArticleInfoService.deletePlayClerkArticleInfoById(id);
playCustomArticleInfoService.deleteByArticleId(id);
}
return R.ok();
}
}

View File

@@ -1,68 +0,0 @@
package com.starry.admin.modules.article.module.vo;
import lombok.Data;
import java.util.Date;
/**
* @author admin
* 动态信息查询返回对象
*/
@Data
public class PlayClerkArticleReturnVo {
/**
* UUID
*/
private String id;
/**
* 陪聊用户ID
*/
private String userId;
/**
* 陪聊用户昵称
*/
private String nickname;
/**
* 陪聊用户头像
*/
private String avatar;
/**
* 动态标题
*/
private String articleTitle;
/**
* 动态内容类型0图片1视频
*/
private String articleType;
/**
* 动态内容
*/
private String articleCon;
/**
* 发布时间
*/
private Date releaseTime;
/**
* 备注
*/
private String remark;
/**
* 点赞人数
*/
private Long agreedQuantity;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
}

View File

@@ -1,106 +0,0 @@
package com.starry.admin.modules.article.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.modules.article.mapper.PlayClerkArticleInfoMapper;
import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity;
import com.starry.admin.modules.article.module.vo.PlayClerkArticleQueryVo;
import com.starry.admin.modules.article.module.vo.PlayClerkArticleReturnVo;
import com.starry.admin.modules.article.service.IPlayClerkArticleInfoService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
/**
* 店员动态信息Service业务层处理
*
* @author admin
* @since 2024-05-04
*/
@Service
public class PlayClerkArticleInfoServiceImpl extends ServiceImpl<PlayClerkArticleInfoMapper, PlayClerkArticleInfoEntity> implements IPlayClerkArticleInfoService {
@Resource
private PlayClerkArticleInfoMapper playClerkArticleInfoMapper;
/**
* 查询店员动态信息
*
* @param id 店员动态信息主键
* @return 店员动态信息
*/
@Override
public PlayClerkArticleInfoEntity selectPlayClerkArticleInfoById(String id) {
return this.baseMapper.selectById(id);
}
/**
* 查询店员动态信息列表
*
* @param vo 店员动态信息查询对象
* @return 店员动态信息
*/
@Override
public IPage<PlayClerkArticleReturnVo> selectPlayClerkArticleInfoByPage(PlayClerkArticleQueryVo vo) {
MPJLambdaWrapper<PlayClerkArticleInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayClerkArticleInfoEntity>()
//查询主表全部字段
.selectAll(PlayClerkArticleInfoEntity.class)
//陪聊用户表全部字段
.selectAll(PlayClerkUserInfoEntity.class)
//陪聊用户表
.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkArticleInfoEntity::getPlayUserId);
return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleReturnVo.class, lambdaQueryWrapper);
}
/**
* 新增店员动态信息
*
* @param playClerkArticleInfo 店员动态信息
* @return 结果
*/
@Override
public boolean create(PlayClerkArticleInfoEntity playClerkArticleInfo) {
if (StrUtil.isBlankIfStr(playClerkArticleInfo.getId())) {
playClerkArticleInfo.setId(IdUtil.fastSimpleUUID());
}
return save(playClerkArticleInfo);
}
/**
* 修改店员动态信息
*
* @param playClerkArticleInfo 店员动态信息
* @return 结果
*/
@Override
public boolean update(PlayClerkArticleInfoEntity playClerkArticleInfo) {
return updateById(playClerkArticleInfo);
}
/**
* 批量删除店员动态信息
*
* @param ids 需要删除的店员动态信息主键
* @return 结果
*/
@Override
public int deletePlayClerkArticleInfoByIds(String[] ids) {
return playClerkArticleInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除店员动态信息信息
*
* @param id 店员动态信息主键
* @return 结果
*/
@Override
public int deletePlayClerkArticleInfoById(String id) {
return playClerkArticleInfoMapper.deleteById(id);
}
}

View File

@@ -6,6 +6,7 @@ import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService;
import com.starry.common.annotation.Log; import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType; import com.starry.common.enums.BusinessType;
import com.starry.common.result.R; import com.starry.common.result.R;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -26,8 +27,8 @@ public class PlayBalanceDetailsInfoController {
/** /**
* 查询余额明细列表 * 查询余额明细列表
*/ */
@PostMapping("/list") @PostMapping("/listByPage")
public R list(@RequestBody PlayBalanceDetailsQueryVo vo) { public R list(@Validated @RequestBody PlayBalanceDetailsQueryVo vo) {
return R.ok(playBalanceDetailsInfoService.selectByPage(vo)); return R.ok(playBalanceDetailsInfoService.selectByPage(vo));
} }

View File

@@ -50,11 +50,17 @@ public class PlayBalanceDetailsInfoEntity extends BaseEntity<PlayBalanceDetailsI
*/ */
private BigDecimal balanceAfterOperation; private BigDecimal balanceAfterOperation;
/** /**
* 操作类型 * 操作类型0:充值;1:消费;2:服务)
*/ */
private String operationType; private String operationType;
/**
* 操作动作
*/
private String operationAction;
/** /**
* 操作时间 * 操作时间
*/ */

View File

@@ -4,7 +4,33 @@ import com.starry.common.domain.BasePageEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 分页查询余额明细
*
* @author admin
*/
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
public class PlayBalanceDetailsQueryVo extends BasePageEntity { public class PlayBalanceDetailsQueryVo extends BasePageEntity {
/**
* 店员昵称
*/
private String nickname;
/**
* 操作类型0:充值;1:消费;2:服务)
*/
private String operationType;
/**
* 支付方式0余额支付,1:微信支付,2:支付宝支付
*/
private String payMethod;
private String userType = "1";
private List<String> operationTime;
} }

View File

@@ -1,15 +1,17 @@
package com.starry.admin.modules.balance.module.vo; package com.starry.admin.modules.balance.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@EqualsAndHashCode(callSuper = true) /**
* 余额明细查询对象
*
* @author admin
*/
@Data @Data
public class PlayBalanceDetailsReturnVo extends BasePageEntity { public class PlayBalanceDetailsReturnVo {
/** /**
* UUID * UUID
@@ -27,10 +29,15 @@ public class PlayBalanceDetailsReturnVo extends BasePageEntity {
private BigDecimal balanceAfterOperation; private BigDecimal balanceAfterOperation;
/** /**
* 操作类型 * 操作类型0:充值;1:消费;2:服务)
*/ */
private String operationType; private String operationType;
/**
* 操作动作
*/
private String operationAction;
/** /**
* 操作时间 * 操作时间
*/ */
@@ -41,21 +48,28 @@ public class PlayBalanceDetailsReturnVo extends BasePageEntity {
*/ */
private BigDecimal balanceMoney; private BigDecimal balanceMoney;
/**
* 支付方式0余额支付,1:微信支付,2:支付宝支付
*/
private String payMethod;
/** /**
* 订单ID * 订单ID
*/ */
private String orderId; private String orderId;
/**
* 订单ID
*/
private String orderNo;
/** /**
* 订单金额 * 订单金额
*/ */
private BigDecimal orderMoney; private BigDecimal orderMoney;
/**
* 支付方式0余额支付,1:微信支付,2:支付宝支付
*/
private String payMethod;
/** /**
* 赠送金额 * 赠送金额
@@ -77,15 +91,15 @@ public class PlayBalanceDetailsReturnVo extends BasePageEntity {
/** /**
* 顾客Id * 顾客Id
*/ */
private String customUserId; private String customId;
/** /**
* 顾客昵称 * 顾客昵称
*/ */
private String nickname; private String customNickname;
/** /**
* 头像 * 顾客头像
*/ */
private String avatar; private String customAvatar;
} }

View File

@@ -49,10 +49,12 @@ public interface IPlayBalanceDetailsInfoService extends IService<PlayBalanceDeta
* @param userId 用户ID * @param userId 用户ID
* @param balanceBeforeOperation 操作前余额 * @param balanceBeforeOperation 操作前余额
* @param balanceAfterOperation 操作后余额 * @param balanceAfterOperation 操作后余额
* @param operationType 操作类型 * @param operationType 操作类型0:充值;1:消费)
* @param operationAction 操作动作
* @param balanceMoney 操作金额 * @param balanceMoney 操作金额
* @param orderId 操作金额
*/ */
void create(String userType, String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, BigDecimal balanceMoney); void create(String userType, String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, String operationAction, BigDecimal balanceMoney, String orderId);
/** /**
* 新增余额明细 * 新增余额明细

View File

@@ -1,6 +1,5 @@
package com.starry.admin.modules.balance.service.impl; package com.starry.admin.modules.balance.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -14,6 +13,7 @@ import com.starry.admin.modules.balance.module.vo.PlayBalanceDetailsReturnVo;
import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService; import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService;
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -50,14 +50,30 @@ public class PlayBalanceDetailsInfoServiceImpl extends ServiceImpl<PlayBalanceDe
//查询主表全部字段 //查询主表全部字段
.selectAll(PlayBalanceDetailsInfoEntity.class) .selectAll(PlayBalanceDetailsInfoEntity.class)
//查询顾客表 //查询顾客表
.selectAll(PlayCustomUserInfoEntity.class) .selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar")
//查询订单表全部字段 //查询订单表
// .selectAs(PlayOrderInfoEntity::getId, "orderId").selectAs(PlayOrderInfoEntity::getOrderNo, "orderNo").selectAs(PlayOrderInfoEntity::getPayMethod,"payMethod")
.selectAll(PlayOrderInfoEntity.class) .selectAll(PlayOrderInfoEntity.class)
.selectAs(PlayOrderInfoEntity::getId, "orderId")
.selectAs(PlayOrderInfoEntity::getRemark, "orderId")
.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayBalanceDetailsInfoEntity::getOrderId) .leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayBalanceDetailsInfoEntity::getOrderId)
.selectAs(PlayCustomUserInfoEntity::getId, "customUserId")
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayBalanceDetailsInfoEntity::getUserId); .leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayBalanceDetailsInfoEntity::getUserId);
if (StrUtil.isNotBlank(vo.getPayMethod())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPayMethod, vo.getPayMethod());
}
if (StrUtil.isNotBlank(vo.getOperationType())) {
lambdaQueryWrapper.eq(PlayBalanceDetailsInfoEntity::getOperationType, vo.getOperationType());
}
if (StrUtil.isNotBlank(vo.getUserType())) {
lambdaQueryWrapper.eq(PlayBalanceDetailsInfoEntity::getUserType, vo.getUserType());
}
if (StrUtil.isNotBlank(vo.getNickname())) {
lambdaQueryWrapper.like(PlayCustomUserInfoEntity::getNickname, vo.getNickname());
}
if (!vo.getOperationTime().isEmpty()) {
lambdaQueryWrapper.between(PlayBalanceDetailsInfoEntity::getOperationTime, vo.getOperationTime().get(0), vo.getOperationTime().get(1));
}
lambdaQueryWrapper.orderByDesc(PlayBalanceDetailsInfoEntity::getUserId); lambdaQueryWrapper.orderByDesc(PlayBalanceDetailsInfoEntity::getUserId);
lambdaQueryWrapper.orderByDesc(PlayBalanceDetailsInfoEntity::getOperationTime); lambdaQueryWrapper.orderByDesc(PlayBalanceDetailsInfoEntity::getOperationTime);
return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayBalanceDetailsReturnVo.class, lambdaQueryWrapper); return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayBalanceDetailsReturnVo.class, lambdaQueryWrapper);
@@ -78,9 +94,9 @@ public class PlayBalanceDetailsInfoServiceImpl extends ServiceImpl<PlayBalanceDe
@Override @Override
public void create(String userType, String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, BigDecimal balanceMoney) { public void create(String userType, String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, String operationAction, BigDecimal balanceMoney, String orderId) {
PlayBalanceDetailsInfoEntity entity = new PlayBalanceDetailsInfoEntity(); PlayBalanceDetailsInfoEntity entity = new PlayBalanceDetailsInfoEntity();
entity.setId(IdUtil.fastSimpleUUID()); entity.setId(IdUtils.getUuid());
entity.setUserType(userType); entity.setUserType(userType);
entity.setUserId(userId); entity.setUserId(userId);
entity.setBalanceBeforeOperation(balanceBeforeOperation); entity.setBalanceBeforeOperation(balanceBeforeOperation);
@@ -88,6 +104,7 @@ public class PlayBalanceDetailsInfoServiceImpl extends ServiceImpl<PlayBalanceDe
entity.setOperationType(operationType); entity.setOperationType(operationType);
entity.setBalanceMoney(balanceMoney); entity.setBalanceMoney(balanceMoney);
entity.setOperationTime(new Date()); entity.setOperationTime(new Date());
entity.setOrderId(orderId);
this.baseMapper.insert(entity); this.baseMapper.insert(entity);
} }
@@ -100,7 +117,7 @@ public class PlayBalanceDetailsInfoServiceImpl extends ServiceImpl<PlayBalanceDe
@Override @Override
public boolean create(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) { public boolean create(PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) {
if (StrUtil.isBlankIfStr(playBalanceDetailsInfo.getId())) { if (StrUtil.isBlankIfStr(playBalanceDetailsInfo.getId())) {
playBalanceDetailsInfo.setId(IdUtil.fastSimpleUUID()); playBalanceDetailsInfo.setId(IdUtils.getUuid());
} }
return save(playBalanceDetailsInfo); return save(playBalanceDetailsInfo);
} }

View File

@@ -0,0 +1,70 @@
package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleReviewStateEditVo;
import com.starry.admin.modules.clerk.service.IPlayClerkArticleInfoService;
import com.starry.admin.modules.clerk.service.IPlayCustomArticleInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import com.starry.common.utils.ConvertUtil;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员动态信息Controller
*
* @author admin
* @since 2024-05-04
*/
@RestController
@RequestMapping("/clerk/article")
public class PlayClerkArticleInfoController {
@Resource
private IPlayClerkArticleInfoService playClerkArticleInfoService;
@Resource
private IPlayCustomArticleInfoService playCustomArticleInfoService;
/**
* 查询店员动态信息列表
*/
@PostMapping("/listByPage")
public R list(@Validated @RequestBody PlayClerkArticleQueryVo vo) {
IPage<PlayClerkArticleReturnVo> list = playClerkArticleInfoService.selectByPage(vo);
return R.ok(list);
}
/**
* 修改店员动态信息
*/
@Log(title = "店员动态信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update")
public R update(@RequestBody PlayClerkArticleReviewStateEditVo vo) {
PlayClerkArticleInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkArticleInfoEntity.class);
boolean success = playClerkArticleInfoService.update(entity);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员动态信息
*/
@Log(title = "店员动态信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
for (String id : ids) {
playClerkArticleInfoService.deletePlayClerkArticleInfoById(id);
playCustomArticleInfoService.deleteByArticleId(id);
}
return R.ok();
}
}

View File

@@ -1,23 +1,14 @@
package com.starry.admin.modules.clerk.controller; package com.starry.admin.modules.clerk.controller;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEditVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewQueryVo;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewReturnVo;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoQueryVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewStateEditVo;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService;
import com.starry.admin.modules.clerk.service.IPlayClerkDataReviewInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkDataReviewInfoService;
import com.starry.admin.modules.clerk.service.impl.PlayClerkUserInfoServiceImpl;
import com.starry.admin.modules.weichat.entity.PlayClerkUserAlbumVo;
import com.starry.admin.modules.weichat.entity.PlayClerkUserAudioVo;
import com.starry.admin.modules.weichat.entity.PlayClerkUserAvatarVo;
import com.starry.common.annotation.Log; import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType; import com.starry.common.enums.BusinessType;
import com.starry.common.result.R; import com.starry.common.result.R;
import com.starry.common.utils.ConvertUtil; import org.springframework.validation.annotation.Validated;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -26,99 +17,33 @@ import javax.annotation.Resource;
* 店员资料审核Controller * 店员资料审核Controller
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-05-19
*/ */
@RestController @RestController
@RequestMapping("/clerk/data/review") @RequestMapping("/clerk/data/review")
public class PlayClerkDataReviewInfoController { public class PlayClerkDataReviewInfoController {
private static final Logger log = LoggerFactory.getLogger(PlayClerkDataReviewInfoController.class);
@Resource @Resource
private IPlayClerkDataReviewInfoService playClerkDataReviewInfoService; private IPlayClerkDataReviewInfoService playClerkDataReviewInfoService;
@Resource
private PlayClerkUserInfoServiceImpl playClerkUserInfoService;
@Resource
private IPlayClerkCommodityService playClerkCommodityService;
/** /**
* 查询店员资料审核列表 * 查询店员资料审核列表
*/ */
@PostMapping("/listByPage") @PostMapping("/listByPage")
public R list(PlayClerkDataReviewInfoQueryVo vo) { public R list(@Validated @RequestBody PlayClerkDataReviewQueryVo vo) {
IPage<PlayClerkDataReviewInfoEntity> list = playClerkDataReviewInfoService.selectPlayClerkDataReviewInfoByPage(vo); IPage<PlayClerkDataReviewReturnVo> list = playClerkDataReviewInfoService.selectByPage(vo);
return R.ok(list); return R.ok(list);
} }
/**
* 获取店员资料审核详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkDataReviewInfoService.selectPlayClerkDataReviewInfoById(id));
}
/** /**
* 修改店员资料审核 * 修改店员资料审核
*/ */
@Log(title = "店员资料审核", businessType = BusinessType.UPDATE) @Log(title = "店员资料审核", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update") @PostMapping(value = "/update")
public R update(@RequestBody PlayClerkDataReviewInfoEditVo vo) { public R update(@Validated @RequestBody PlayClerkDataReviewStateEditVo vo) {
PlayClerkDataReviewInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkDataReviewInfoEntity.class); playClerkDataReviewInfoService.updateDataReviewState(vo);
boolean success = playClerkDataReviewInfoService.update(entity); return R.ok();
if (success) {
entity = playClerkDataReviewInfoService.selectPlayClerkDataReviewInfoById(entity.getId());
if (entity != null && "1".equals(entity.getState())) {
switch (entity.getDataType()) {
case "0": {
//陪聊申请审批通过,初始化陪聊信息
PlayClerkUserInfoEntity item = JSONObject.parseObject(entity.getContent(), PlayClerkUserInfoEntity.class);
item.setId(entity.getPlayUserId());
item.setClerkState("1");
playClerkUserInfoService.update(item);
//初始化陪聊服务项目
playClerkCommodityService.initClerkCommodity(entity.getPlayUserId());
break;
}
case "1": {
PlayClerkUserAvatarVo item = JSONObject.parseObject(entity.getContent(), PlayClerkUserAvatarVo.class);
PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity();
userInfo.setId(entity.getPlayUserId());
userInfo.setAvatar(item.getAvatar());
playClerkUserInfoService.update(userInfo);
break;
}
case "2": {
PlayClerkUserAlbumVo item = JSONObject.parseObject(entity.getContent(), PlayClerkUserAlbumVo.class);
PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity();
userInfo.setId(entity.getPlayUserId());
userInfo.setAlbum(item.getAlbum());
playClerkUserInfoService.update(userInfo);
break;
}
case "3": {
PlayClerkUserAudioVo item = JSONObject.parseObject(entity.getContent(), PlayClerkUserAudioVo.class);
PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity();
userInfo.setId(entity.getPlayUserId());
userInfo.setAudio(item.getAudio());
playClerkUserInfoService.update(userInfo);
break;
}
default:
log.error("dataType not,dataType = {}", entity.getDataType());
}
}
return R.ok();
}
return R.error("修改失败");
} }
/** /**

View File

@@ -0,0 +1,77 @@
package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkGroupInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员分组信息Controller
*
* @author admin
* @since 2024-05-31
*/
@RestController
@RequestMapping("/clerk/group")
public class PlayClerkGroupInfoController {
@Resource
private IPlayClerkGroupInfoService playClerkGroupInfoService;
/**
* 查询店员分组信息列表
*/
@GetMapping("/list")
public R list(PlayClerkGroupInfoEntity playClerkGroupInfo) {
IPage<PlayClerkGroupInfoEntity> list = playClerkGroupInfoService.selectPlayClerkGroupInfoByPage(playClerkGroupInfo);
return R.ok(list);
}
/**
* 获取店员分组信息详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkGroupInfoService.selectPlayClerkGroupInfoById(id));
}
/**
* 新增店员分组信息
*/
@Log(title = "店员分组信息", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) {
boolean success = playClerkGroupInfoService.create(playClerkGroupInfo);
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改店员分组信息
*/
@Log(title = "店员分组信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) {
playClerkGroupInfo.setId(id);
boolean success = playClerkGroupInfoService.update(playClerkGroupInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员分组信息
*/
@Log(title = "店员分组信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playClerkGroupInfoService.deletePlayClerkGroupInfoByIds(ids));
}
}

View File

@@ -0,0 +1,77 @@
package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkGroupUserInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员和分组关系Controller
*
* @author admin
* @since 2024-05-31
*/
@RestController
@RequestMapping("/group/clerk")
public class PlayClerkGroupUserInfoController {
@Resource
private IPlayClerkGroupUserInfoService playClerkGroupUserInfoService;
/**
* 查询店员和分组关系列表
*/
@GetMapping("/list")
public R list(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) {
IPage<PlayClerkGroupUserInfoEntity> list = playClerkGroupUserInfoService.selectPlayClerkGroupUserInfoByPage(playClerkGroupUserInfo);
return R.ok(list);
}
/**
* 获取店员和分组关系详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkGroupUserInfoService.selectPlayClerkGroupUserInfoById(id));
}
/**
* 新增店员和分组关系
*/
@Log(title = "店员和分组关系", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@RequestBody PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) {
boolean success = playClerkGroupUserInfoService.create(playClerkGroupUserInfo);
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改店员和分组关系
*/
@Log(title = "店员和分组关系", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) {
playClerkGroupUserInfo.setId(id);
boolean success = playClerkGroupUserInfoService.update(playClerkGroupUserInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员和分组关系
*/
@Log(title = "店员和分组关系", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playClerkGroupUserInfoService.deletePlayClerkGroupUserInfoByIds(ids));
}
}

View File

@@ -0,0 +1,77 @@
package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员排行Controller
*
* @author admin
* @since 2024-05-25
*/
@RestController
@RequestMapping("/clerk/ranking")
public class PlayClerkRankingInfoController {
@Resource
private IPlayClerkRankingInfoService playClerkRankingInfoService;
/**
* 查询店员排行列表
*/
@GetMapping("/listByPage")
public R list(PlayClerkRankingInfoEntity playClerkRankingInfo) {
IPage<PlayClerkRankingInfoEntity> list = playClerkRankingInfoService.selectPlayClerkRankingInfoByPage(playClerkRankingInfo);
return R.ok(list);
}
/**
* 获取店员排行详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkRankingInfoService.selectPlayClerkRankingInfoById(id));
}
/**
* 新增店员排行
*/
@Log(title = "店员排行", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@RequestBody PlayClerkRankingInfoEntity playClerkRankingInfo) {
boolean success = playClerkRankingInfoService.create(playClerkRankingInfo);
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改店员排行
*/
@Log(title = "店员排行", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayClerkRankingInfoEntity playClerkRankingInfo) {
playClerkRankingInfo.setId(id);
boolean success = playClerkRankingInfoService.update(playClerkRankingInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员排行
*/
@Log(title = "店员排行", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playClerkRankingInfoService.deletePlayClerkRankingInfoByIds(ids));
}
}

View File

@@ -0,0 +1,78 @@
package com.starry.admin.modules.clerk.controller;
import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkTypeInfoAddVo;
import com.starry.admin.modules.clerk.service.IPlayClerkTypeInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import com.starry.common.utils.ConvertUtil;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员分类信息Controller
*
* @author admin
* @since 2024-05-31
*/
@RestController
@RequestMapping("/clerk/type")
public class PlayClerkTypeInfoController {
@Resource
private IPlayClerkTypeInfoService playClerkTypeInfoService;
/**
* 查询店员分类信息列表
*/
@GetMapping("/listByAll")
public R listByAll() {
return R.ok(playClerkTypeInfoService.selectByAll());
}
/**
* 获取店员分类信息详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkTypeInfoService.selectPlayClerkTypeInfoById(id));
}
/**
* 新增店员分类信息
*/
@Log(title = "店员分类信息", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@Validated @RequestBody PlayClerkTypeInfoAddVo vo) {
boolean success = playClerkTypeInfoService.create(ConvertUtil.entityToVo(vo, PlayClerkTypeInfoEntity.class));
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改店员分类信息
*/
@Log(title = "店员分类信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayClerkTypeInfoEntity playClerkTypeInfo) {
playClerkTypeInfo.setId(id);
boolean success = playClerkTypeInfoService.update(playClerkTypeInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员分类信息
*/
@Log(title = "店员分类信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playClerkTypeInfoService.deletePlayClerkTypeInfoByIds(ids));
}
}

View File

@@ -1,18 +1,16 @@
package com.starry.admin.modules.clerk.controller; package com.starry.admin.modules.clerk.controller;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoQueryVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserQueryVo;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserAddToWxVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserAddVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserEditVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkUserEditVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserStateEditVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkUserStateEditVo;
import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService;
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
import com.starry.admin.modules.play.module.entity.PlayUserInfoEntity;
import com.starry.admin.modules.play.service.IPlayUserInfoService; import com.starry.admin.modules.play.service.IPlayUserInfoService;
import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoQueryVo;
import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo;
import com.starry.common.annotation.Log; import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType; import com.starry.common.enums.BusinessType;
import com.starry.common.result.R; import com.starry.common.result.R;
@@ -44,8 +42,8 @@ public class PlayClerkUserInfoController {
* 查询店员列表 * 查询店员列表
*/ */
@PostMapping("listByPage") @PostMapping("listByPage")
public R listByPage(PlayClerkUserInfoQueryVo vo) { public R listByPage(@Validated @RequestBody PlayClerkUserQueryVo vo) {
IPage<PlayClerkUserListResultVo> list = playClerkUserInfoService.selectPlayClerkUserInfoByPage(vo); IPage<PlayClerkUserReturnVo> list = playClerkUserInfoService.selectByPage(vo);
return R.ok(list); return R.ok(list);
} }
@@ -55,7 +53,7 @@ public class PlayClerkUserInfoController {
*/ */
@GetMapping("/list") @GetMapping("/list")
public R list(PlayClerkUserInfoQueryVo vo) { public R list(PlayClerkUserInfoQueryVo vo) {
IPage<PlayClerkUserListResultVo> list = playClerkUserInfoService.selectPlayClerkUserInfoByPage(vo); IPage<PlayClerkUserInfoResultVo> list = playClerkUserInfoService.selectPlayClerkUserInfoByPage(vo);
return R.ok(list); return R.ok(list);
} }
@@ -67,43 +65,43 @@ public class PlayClerkUserInfoController {
return R.ok(playClerkUserInfoService.selectById(id)); return R.ok(playClerkUserInfoService.selectById(id));
} }
//
/** // /**
* 微信端口新增店员 // * 微信端口新增店员
*/ // */
@Log(title = "店员", businessType = BusinessType.INSERT) // @Log(title = "店员", businessType = BusinessType.INSERT)
@PostMapping("/wx/add") // @PostMapping("/wx/add")
public R add(@Validated @RequestBody PlayClerkUserAddToWxVo vo) { // public R add(@Validated @RequestBody PlayClerkUserAddToWxVo vo) {
//微信申请成为店员,需要先创建账户。 // //微信申请成为店员,需要先创建账户。
PlayUserInfoEntity userInfoEntity = ConvertUtil.entityToVo(vo, PlayUserInfoEntity.class); // PlayUserInfoEntity userInfoEntity = ConvertUtil.entityToVo(vo, PlayUserInfoEntity.class);
userInfoEntity.setId(IdUtil.fastSimpleUUID()); // userInfoEntity.setId(IdUtils.getUuid());
playUserInfoService.create(userInfoEntity); // playUserInfoService.create(userInfoEntity);
//账号创建完成后,创建店员 // //账号创建完成后,创建店员
PlayClerkUserInfoEntity clerkUserInfoEntity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); // PlayClerkUserInfoEntity clerkUserInfoEntity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class);
clerkUserInfoEntity.setPlayUserId(userInfoEntity.getId()); // clerkUserInfoEntity.setPlayUserId(userInfoEntity.getId());
boolean success = playClerkUserInfoService.create(clerkUserInfoEntity); // boolean success = playClerkUserInfoService.create(clerkUserInfoEntity);
if (success) { // if (success) {
clerkCommodityService.initClerkCommodity(userInfoEntity.getId()); // clerkCommodityService.initClerkCommodity(userInfoEntity.getId());
return R.ok(); // return R.ok();
} // }
return R.error("添加失败"); // return R.error("添加失败");
} // }
/** // /**
* 新增店员 // * 新增店员
*/ // */
@Log(title = "店员", businessType = BusinessType.INSERT) // @Log(title = "店员", businessType = BusinessType.INSERT)
@PostMapping("/create") // @PostMapping("/create")
public R create(@Validated @RequestBody PlayClerkUserAddVo vo) { // public R create(@Validated @RequestBody PlayClerkUserAddVo vo) {
PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); // PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class);
boolean success = playClerkUserInfoService.create(entity); // boolean success = playClerkUserInfoService.create(entity);
if (success) { // if (success) {
clerkCommodityService.initClerkCommodity(vo.getPlayUserId()); // clerkCommodityService.initClerkCommodity(vo.getPlayUserId());
return R.ok(); // return R.ok();
} // }
return R.error("添加失败"); // return R.error("添加失败");
} // }
/** /**
* 修改店员 * 修改店员

View File

@@ -0,0 +1,55 @@
package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewStateEditVo;
import com.starry.admin.modules.clerk.service.IPlayClerkUserReviewInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员资料审核Controller
*
* @author admin
* @since 2024-05-19
*/
@RestController
@RequestMapping("/clerk/user/review")
public class PlayClerkUserReviewInfoController {
@Resource
private IPlayClerkUserReviewInfoService playClerkUserReviewInfoService;
/**
* 查询店员资料审核列表
*/
@PostMapping("/listByPage")
public R listByPage(@Validated @RequestBody PlayClerkUserReviewQueryVo vo) {
IPage<PlayClerkUserReviewReturnVo> list = playClerkUserReviewInfoService.selectByPage(vo);
return R.ok(list);
}
/**
* 修改店员资料审核
*/
@Log(title = "店员资料审核", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update")
public R update(@Validated @RequestBody PlayClerkUserReviewStateEditVo vo) {
playClerkUserReviewInfoService.updateDataReviewState(vo);
return R.ok("修改成功");
}
/**
* 删除店员资料审核
*/
@Log(title = "店员资料审核", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playClerkUserReviewInfoService.deletePlayClerkUserReviewInfoByIds(ids));
}
}

View File

@@ -0,0 +1,77 @@
package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
import com.starry.common.result.R;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 店员工资明细信息Controller
*
* @author admin
* @since 2024-05-31
*/
@RestController
@RequestMapping("/wages/details")
public class PlayClerkWagesDetailsInfoController {
@Resource
private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService;
/**
* 查询店员工资明细信息列表
*/
@GetMapping("/list")
public R list(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) {
IPage<PlayClerkWagesDetailsInfoEntity> list = playClerkWagesDetailsInfoService.selectPlayClerkWagesDetailsInfoByPage(playClerkWagesDetailsInfo);
return R.ok(list);
}
/**
* 获取店员工资明细信息详细信息
*/
@GetMapping(value = "/{id}")
public R getInfo(@PathVariable("id") String id) {
return R.ok(playClerkWagesDetailsInfoService.selectPlayClerkWagesDetailsInfoById(id));
}
/**
* 新增店员工资明细信息
*/
@Log(title = "店员工资明细信息", businessType = BusinessType.INSERT)
@PostMapping("/create")
public R create(@RequestBody PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) {
boolean success = playClerkWagesDetailsInfoService.create(playClerkWagesDetailsInfo);
if (success) {
return R.ok();
}
return R.error("添加失败");
}
/**
* 修改店员工资明细信息
*/
@Log(title = "店员工资明细信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}")
public R update(@PathVariable String id, @RequestBody PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) {
playClerkWagesDetailsInfo.setId(id);
boolean success = playClerkWagesDetailsInfoService.update(playClerkWagesDetailsInfo);
if (success) {
return R.ok();
}
return R.error("修改失败");
}
/**
* 删除店员工资明细信息
*/
@Log(title = "店员工资明细信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) {
return R.ok(playClerkWagesDetailsInfoService.deletePlayClerkWagesDetailsInfoByIds(ids));
}
}

View File

@@ -0,0 +1,107 @@
package com.starry.admin.modules.clerk.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoQueryVo;
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.weichat.entity.wages.ClerkWagesDetailsReturnVo;
import com.starry.common.result.R;
import com.starry.common.utils.ConvertUtil;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 店员工资结算信息Controller
*
* @author admin
* @since 2024-05-31
*/
@RestController
@RequestMapping("/clerk/wages")
public class PlayClerkWagesInfoController {
@Resource
private IPlayClerkWagesInfoService playClerkWagesInfoService;
@Resource
private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService;
@Resource
private IPlayClerkUserInfoService playClerkUserInfoService;
/**
* 查询店员工资结算信息列表
*/
@PostMapping("/listByPage")
public R list(@Validated @RequestBody PlayClerkWagesInfoQueryVo vo) {
return R.ok(playClerkWagesInfoService.selectHistoricalByPage(vo));
}
/**
* 查询店员工未结算工资
*/
@PostMapping("/listUnsettledWagesByPage")
public R list(@Validated @RequestBody PlayClerkUnsettledWagesInfoQueryVo vo) {
IPage<PlayClerkUnsettledWagesInfoReturnVo> page = playClerkUserInfoService.listUnsettledWagesByPage(vo);
for (PlayClerkUnsettledWagesInfoReturnVo record : page.getRecords()) {
Integer orderState1Number = 0;
BigDecimal orderState1Money = BigDecimal.ZERO;
Integer orderState2Number = 0;
BigDecimal orderState2Money = BigDecimal.ZERO;
BigDecimal orderState2Revenue = BigDecimal.ZERO;
Integer orderState3Number = 0;
BigDecimal orderState3Money = BigDecimal.ZERO;
BigDecimal orderState3Revenue = BigDecimal.ZERO;
for (PlayOrderInfoEntity orderInfoEntity : record.getOrderInfoEntities()) {
if ("1".equals(orderInfoEntity.getOrderStatus())) {
orderState1Number++;
orderState1Money = orderState1Money.add(orderInfoEntity.getFinalAmount());
} else if ("2".equals(orderInfoEntity.getOrderStatus())) {
orderState2Number++;
orderState2Money = orderState2Money.add(orderInfoEntity.getFinalAmount());
orderState2Revenue = orderState2Revenue.add(orderInfoEntity.getEstimatedRevenue());
} else if ("3".equals(orderInfoEntity.getOrderStatus())) {
orderState3Number++;
orderState3Money = orderState3Money.add(orderInfoEntity.getFinalAmount());
orderState3Revenue = orderState3Revenue.add(orderInfoEntity.getEstimatedRevenue());
}
}
record.setOrderState1Number(orderState1Number);
record.setOrderState1Money(orderState1Money);
record.setOrderState2Number(orderState2Number);
record.setOrderState2Money(orderState2Money);
record.setOrderState2Revenue(orderState2Revenue);
record.setOrderState3Number(orderState3Number);
record.setOrderState3Money(orderState3Money);
record.setOrderState3Revenue(orderState3Revenue);
}
return R.ok(page);
}
@GetMapping("queryWagesDetailsById")
public R clerkQueryWagesDetails(@RequestParam("id") String id) {
if (StrUtil.isBlankIfStr(id)) {
throw new CustomException("ID不能为空");
}
List<PlayClerkWagesDetailsInfoEntity> list = playClerkWagesDetailsInfoService.selectByWagesId(id);
List<ClerkWagesDetailsReturnVo> returnVos = new ArrayList<>(list.size());
for (PlayClerkWagesDetailsInfoEntity entity : list) {
returnVos.add(ConvertUtil.entityToVo(entity, ClerkWagesDetailsReturnVo.class));
}
return R.ok(returnVos);
}
}

View File

@@ -1,8 +1,8 @@
package com.starry.admin.modules.article.controller; package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity;
import com.starry.admin.modules.article.service.IPlayCustomArticleInfoService; import com.starry.admin.modules.clerk.service.IPlayCustomArticleInfoService;
import com.starry.common.annotation.Log; import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType; import com.starry.common.enums.BusinessType;
import com.starry.common.result.R; import com.starry.common.result.R;

View File

@@ -1,8 +1,8 @@
package com.starry.admin.modules.article.mapper; package com.starry.admin.modules.clerk.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity;
/** /**
* 店员动态信息Mapper接口 * 店员动态信息Mapper接口

View File

@@ -1,16 +1,16 @@
package com.starry.admin.modules.clerk.mapper; package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity;
/** /**
* 店员资料审核Mapper接口 * 店员资料审核Mapper接口
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-05-19
*/ */
public interface PlayClerkDataReviewInfoMapper extends BaseMapper<PlayClerkDataReviewInfoEntity> { public interface PlayClerkDataReviewInfoMapper extends MPJBaseMapper<PlayClerkDataReviewInfoEntity> {
} }

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
/**
* 店员分组信息Mapper接口
*
* @author admin
* @since 2024-05-31
*/
public interface PlayClerkGroupInfoMapper extends BaseMapper<PlayClerkGroupInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity;
/**
* 店员和分组关系Mapper接口
*
* @author admin
* @since 2024-05-31
*/
public interface PlayClerkGroupUserInfoMapper extends BaseMapper<PlayClerkGroupUserInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity;
/**
* 店员排行Mapper接口
*
* @author admin
* @since 2024-05-25
*/
public interface PlayClerkRankingInfoMapper extends MPJBaseMapper<PlayClerkRankingInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity;
/**
* 店员分类信息Mapper接口
*
* @author admin
* @since 2024-05-31
*/
public interface PlayClerkTypeInfoMapper extends BaseMapper<PlayClerkTypeInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeUserInfoEntity;
/**
* 店员和分类关系Mapper接口
*
* @author admin
* @since 2024-05-31
*/
public interface PlayClerkTypeUserInfoMapper extends BaseMapper<PlayClerkTypeUserInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
/**
* 店员资料审核Mapper接口
*
* @author admin
* @since 2024-05-19
*/
public interface PlayClerkUserReviewInfoMapper extends MPJBaseMapper<PlayClerkUserReviewInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
/**
* 店员工资明细信息Mapper接口
*
* @author admin
* @since 2024-05-31
*/
public interface PlayClerkWagesDetailsInfoMapper extends BaseMapper<PlayClerkWagesDetailsInfoEntity> {
}

View File

@@ -0,0 +1,16 @@
package com.starry.admin.modules.clerk.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity;
/**
* 店员工资结算信息Mapper接口
*
* @author admin
* @since 2024-05-31
*/
public interface PlayClerkWagesInfoMapper extends MPJBaseMapper<PlayClerkWagesInfoEntity> {
}

View File

@@ -1,8 +1,8 @@
package com.starry.admin.modules.article.mapper; package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity;
/** /**
* 陪聊点赞动态信息Mapper接口 * 陪聊点赞动态信息Mapper接口

View File

@@ -1,11 +1,14 @@
package com.starry.admin.modules.article.module.entity; package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.admin.common.conf.StringTypeHandler;
import com.starry.common.domain.BaseEntity; import com.starry.common.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List;
/** /**
* 店员动态信息对象 play_clerk_article_info * 店员动态信息对象 play_clerk_article_info
@@ -15,7 +18,7 @@ import java.util.Date;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_article_info") @TableName(value = "play_clerk_article_info", autoResultMap = true)
public class PlayClerkArticleInfoEntity extends BaseEntity<PlayClerkArticleInfoEntity> { public class PlayClerkArticleInfoEntity extends BaseEntity<PlayClerkArticleInfoEntity> {
@@ -32,32 +35,30 @@ public class PlayClerkArticleInfoEntity extends BaseEntity<PlayClerkArticleInfoE
/** /**
* 陪聊用户ID * 陪聊用户ID
*/ */
private String playUserId; private String clerkId;
/**
* 动态标题
*/
private String articleTitle;
/**
* 动态内容类型0图片1视频
*/
private String articleType;
/** /**
* 动态内容 * 动态内容
*/ */
private String articleCon; private String articleCon;
/**
* 动态附件类型0:图片;1:视频;2:音频
*/
private String annexType;
/**
* 动态附件内容
*/
@TableField(typeHandler = StringTypeHandler.class)
private List<String> annexCon;
/** /**
* 发布时间 * 发布时间
*/ */
private Date releaseTime; private LocalDateTime releaseTime;
/**
* 点赞人数
*/
private Long agreedQuantity;
/** /**
* 审核状态0未审核:1审核通过2审核不通过 * 审核状态0未审核:1审核通过2审核不通过
@@ -65,9 +66,14 @@ public class PlayClerkArticleInfoEntity extends BaseEntity<PlayClerkArticleInfoE
private String reviewState; private String reviewState;
/** /**
* 备注 * 审核时间
*/ */
private String remark; private LocalDateTime reviewTime;
/**
* 备注审核理由
*/
private String reviewCon;
} }

View File

@@ -5,8 +5,6 @@ import com.starry.common.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* 陪聊服务项目对象 play_clerk_commodity * 陪聊服务项目对象 play_clerk_commodity
* *
@@ -32,33 +30,19 @@ public class PlayClerkCommodityEntity extends BaseEntity<PlayClerkCommodityEntit
/** /**
* 店员用户ID * 店员用户ID
*/ */
private String playUserId; private String clerkId;
/** /**
* 服务项目ID * 服务项目ID
*/ */
private String commodityId; private String commodityId;
/**
* 项目类型
*/
private String commodityType;
/** /**
* 项目名称 * 服务项目名称
*/ */
private String commodityName; private String commodityName;
/**
* 项目价格
*/
private BigDecimal commodityPrice;
/**
* 服务时长(文字描述信息,不参与订单计算)
*/
private String serviceDuration;
/** /**
* 服务启动状态 * 服务启动状态
* 0:停用 * 0:停用

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** /**
* 店员资料审核对象 play_clerk_data_review_info * 店员申请对象 play_clerk_data_review_info
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-04-11

View File

@@ -1,21 +1,24 @@
package com.starry.admin.modules.clerk.module.entity; package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.admin.common.conf.StringTypeHandler;
import com.starry.common.domain.BaseEntity; import com.starry.common.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List;
/** /**
* 店员资料审核对象 play_clerk_data_review_info * 店员资料审核对象 play_clerk_data_review_info
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-05-19
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_data_review_info") @TableName(value = "play_clerk_data_review_info", autoResultMap = true)
public class PlayClerkDataReviewInfoEntity extends BaseEntity<PlayClerkDataReviewInfoEntity> { public class PlayClerkDataReviewInfoEntity extends BaseEntity<PlayClerkDataReviewInfoEntity> {
@@ -32,55 +35,47 @@ public class PlayClerkDataReviewInfoEntity extends BaseEntity<PlayClerkDataRevie
/** /**
* 店员ID * 店员ID
*/ */
private String playUserId; private String clerkId;
/** /**
* 店员头像 * 资料类型[0:昵称;1:头像;2:相册;3:录音]
*/
private String clerkAvatar;
/**
* 店员名称
*/
private String clerkNickname;
/**
* 资料类型[0:店员申请,1:头像;2:相册;3:录音]
*/ */
private String dataType; private String dataType;
/** /**
* 资料内容JSON格式 * 资料内容
*/ */
private String content; @TableField(typeHandler = StringTypeHandler.class)
private List<String> dataContent;
/** /**
* 审核状态 * 审核状态0未审核:1审核通过2审核不通过
* 0未审核
* 1审核通过
* 2审核未通过
*/ */
private String state; private String reviewState;
/** /**
* 资料添加时间 * 资料添加时间
*/ */
private Date addTime; private LocalDateTime addTime;
/** /**
* 审核时间 * 审核时间
*/ */
private Date reviewTime; private LocalDateTime reviewTime;
/** /**
* 审核人 * 审核人
*/ */
private String reviewBy; private String reviewBy;
/**
* 审核内容
*/
private String reviewCon;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
} }

View File

@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
/** /**
* 店员资料审核对象 play_clerk_data_review_info * 店员申请对象 play_clerk_data_review_info
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-04-11

View File

@@ -0,0 +1,41 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 店员分组信息对象 play_clerk_group_info
*
* @author admin
* @since 2024-05-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_group_info")
public class PlayClerkGroupInfoEntity extends BaseEntity<PlayClerkGroupInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 分组名称
*/
private String groupName;
/**
* 排序
*/
private Long sort;
}

View File

@@ -0,0 +1,51 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 店员和分组关系对象 play_clerk_group_user_info
*
* @author admin
* @since 2024-05-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_group_user_info")
public class PlayClerkGroupUserInfoEntity extends BaseEntity<PlayClerkGroupUserInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 分组ID
*/
private String groupId;
/**
* 店员ID
*/
private String clerkId;
/**
* 排序
*/
private Integer sort;
/**
* 创建人的id
*/
private String createdBy;
}

View File

@@ -0,0 +1,90 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 店员排行对象 play_clerk_ranking_info
*
* @author admin
* @since 2024-05-25
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_ranking_info")
public class PlayClerkRankingInfoEntity extends BaseEntity<PlayClerkRankingInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 店员ID
*/
private String clerkId;
/**
* 统计批次
*/
private Integer serialNumber;
/**
* 排序名词
*/
private Integer rankingIndex;
/**
* 开始统计时间
*/
private LocalDate startCountDate;
/**
* 结束统计时间
*/
private LocalDate endCountDate;
/**
* 订单总数
*/
private Integer orderNumber;
/**
* 订单金额
*/
private BigDecimal orderMoney;
/**
* 续单数
*/
private Integer orderContinueNumber;
/**
* 续单金额
*/
private BigDecimal orderContinueMoney;
/**
* 超时未接单数量
*/
private Integer ordersExpiredNumber = 0;
/**
* 距离前一名相差金额
*/
private BigDecimal previousMoney;
}

View File

@@ -0,0 +1,45 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 店员分类信息对象 play_clerk_type_info
*
* @author admin
* @since 2024-05-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_type_info")
public class PlayClerkTypeInfoEntity extends BaseEntity<PlayClerkTypeInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 分类名称
*/
private String typeName;
/**
* 是否在首页显示0:不显示,1:显示)
*/
private String homeDisplayed;
/**
* 排序
*/
private Integer sort;
}

View File

@@ -0,0 +1,45 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 店员和分类关系对象 play_clerk_type_user_info
*
* @author admin
* @since 2024-05-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_type_user_info")
public class PlayClerkTypeUserInfoEntity extends BaseEntity<PlayClerkTypeUserInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 分组ID
*/
private String typeId;
/**
* 店员ID
*/
private String clerkId;
/**
* 排序
*/
private Integer sort;
}

View File

@@ -58,12 +58,21 @@ public class PlayClerkUserInfoEntity extends BaseEntity<PlayClerkUserInfoEntity>
*/ */
private String nickname; private String nickname;
/**
* 是否固定等级(0:固定等级1:不固定)
*/
private String fixingLevel;
/**
* 分组ID
*/
private String groupId;
/** /**
* 店员等级 * 店员等级
*/ */
private String levelId; private String levelId;
/** /**
* 店员类型 * 店员类型
*/ */
@@ -74,6 +83,11 @@ public class PlayClerkUserInfoEntity extends BaseEntity<PlayClerkUserInfoEntity>
*/ */
private String sex; private String sex;
/**
* 身份证号码
*/
private String code;
/** /**
* 头像 * 头像
*/ */
@@ -171,7 +185,7 @@ public class PlayClerkUserInfoEntity extends BaseEntity<PlayClerkUserInfoEntity>
private String realState; private String realState;
/** /**
* 是否必须实名【1必须实名0非必须实名 * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置
*/ */
private String mandatoryRealState; private String mandatoryRealState;
@@ -210,5 +224,11 @@ public class PlayClerkUserInfoEntity extends BaseEntity<PlayClerkUserInfoEntity>
@JsonIgnore @JsonIgnore
private String token; private String token;
public PlayClerkUserInfoEntity() {
}
public PlayClerkUserInfoEntity(String id, BigDecimal accountBalance) {
this.id = id;
this.accountBalance = accountBalance;
}
} }

View File

@@ -0,0 +1,133 @@
package com.starry.admin.modules.clerk.module.entity;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 店员对象 play_clerk_user_info
*
* @author admin
* @since 2024-03-30
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayClerkUserQueryVo extends BasePageEntity {
/**
* UUID
*/
private String id;
/**
* 昵称
*/
private String nickname;
/**
* 电话号码
*/
private String phone;
/**
* 分组ID
*/
private String groupId;
/**
* 性别[0:未知;1:男;2:女]
*/
private String sex;
/**
* 是否固定等级(0:固定等级1:不固定)
*/
private String fixingLevel;
/**
* 店员等级
*/
private String levelId;
/**
* 年龄
*/
private List<Integer> ages;
/**
* 所在国家
*/
private String country;
/**
* 所在省份
*/
private String province;
/**
* 所在城市
*/
private String city;
/**
* 在职状态1在职0离职
*/
private String onboardingState = "1";
/**
* 是否推荐状态1已推荐0未推荐
*/
private String recommendationState;
/**
* 是否置顶状态1已置顶0未置顶
*/
private String pinToTopState;
/**
* 在线状态【1在线0离线】
*/
private String onlineState;
/**
* 上架状态【1上架0下架】
*/
private String listingState;
/**
* 显示状态【1显示0隐藏】
*/
private String displayState;
/**
* 实名状态【1已实名0未实名】
*/
private String realState;
/**
* 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】
*/
private String mandatoryRealState;
/**
* 随机接单状态【1允许0禁止】
*/
private String randomOrderState;
/**
* 店员状态0:不是陪聊1:陪聊2:资料审核中)
*/
private String clerkState = "1";
/**
* 身份证号
*/
private String code;
}

View File

@@ -0,0 +1,156 @@
package com.starry.admin.modules.clerk.module.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 店员分页查询对象
*
* @author admin
* @since 2024-03-30
*/
@Data
public class PlayClerkUserReturnVo {
/**
* UUID
*/
private String id;
/**
* 店员昵称
*/
private String nickname;
/**
* 店员等级
*/
private String levelId;
/**
* 店员等级
*/
private String levelName;
/**
* 分组ID
*/
private String groupId;
/**
* 分组ID
*/
private String groupName;
/**
* 性别[0:未知;1:男;2:女]
*/
private String sex;
/**
* 头像
*/
private String avatar;
/**
* 音频
*/
private String audio;
/**
* 星座
*/
private String constellation;
/**
* 标签
*/
private List<String> label = new ArrayList<>();
/**
* 相册
*/
private List<String> album = new ArrayList<>();
/**
* 个性签名
*/
private String signature;
/**
* 年龄
*/
private Integer age;
/**
* 所在省份
*/
private String province;
/**
* 所在城市
*/
private String city;
/**
* 在线状态【1在线0离线】
*/
private String onlineState;
/**
* 上架状态【1上架0下架】
*/
private String listingState;
/**
* 实名状态【1已实名0未实名】
*/
private String realState;
/**
* 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】
*/
private String mandatoryRealState;
/**
* 随机接单状态【1允许0禁止】
*/
private String randomOrderState;
/**
* 地址
*/
private String address;
/**
* 订单列表
*/
@JsonIgnore
private List<PlayOrderInfoEntity> orderInfos;
/**
* 订单总数
*/
private String orderNumber;
/**
* 续单总数
*/
private String orderContinueNumber;
/**
* 订单总金额
*/
private BigDecimal orderTotalAmount;
}

View File

@@ -0,0 +1,119 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.admin.common.conf.StringTypeHandler;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
/**
* 店员申请对象 play_clerk_user_review_info
*
* @author admin
* @since 2024-05-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "play_clerk_user_review_info", autoResultMap = true)
public class PlayClerkUserReviewInfoEntity extends BaseEntity<PlayClerkUserReviewInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 店员ID
*/
private String clerkId;
/**
* 微信号码
*/
private String weiChatCode;
/**
* 手机号码
*/
private String phone;
/**
* 昵称
*/
private String nickname;
/**
* 性别[0:未知;1:男;2:女]
*/
private String sex;
/**
* 年龄
*/
private Integer age;
/**
* 所在省份
*/
private String province;
/**
* 所在城市
*/
private String city;
/**
* 备注(相关经验)
*/
private String remark;
/**
* 音频
*/
private String audio;
/**
* 照片
*/
@TableField(typeHandler = StringTypeHandler.class)
private List<String> album;
/**
* 申请时间
*/
private LocalDateTime addTime;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 审核时间
*/
private LocalDateTime reviewTime;
/**
* 审核人
*/
private String reviewBy;
/**
* 审核内容
*/
private String reviewCon;
}

View File

@@ -0,0 +1,69 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 店员工资明细信息对象 play_clerk_wages_details_info
*
* @author admin
* @since 2024-05-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_wages_details_info")
public class PlayClerkWagesDetailsInfoEntity extends BaseEntity<PlayClerkWagesDetailsInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 工资统计ID
*/
private String wagesId;
/**
* 店员ID
*/
private String clerkId;
/**
* 订单ID
*/
private String orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 订单最终金额(支付金额)
*/
private BigDecimal finalAmount;
/**
* 店员收入
*/
private BigDecimal estimatedRevenue;
/**
* 订单完成时间
*/
private LocalDateTime endOrderTime;
}

View File

@@ -0,0 +1,114 @@
package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.starry.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 店员工资结算信息对象 play_clerk_wages_info
*
* @author admin
* @since 2024-05-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("play_clerk_wages_info")
public class PlayClerkWagesInfoEntity extends BaseEntity<PlayClerkWagesInfoEntity> {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 店员ID
*/
private String clerkId;
/**
* 是否为往期统计(1:是;0:不是)
**/
private String historicalStatistics;
/**
* 统计序号
*/
private Long serialNumber;
/**
* 排行序号
*/
private Long rankingIndex;
/**
* 开始统计时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate startCountDate;
/**
* 结束统计时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate endCountDate;
/**
* 结算时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate settlementDate;
/**
* 订单总数
*/
private Integer orderNumber;
/**
* 订单金额
*/
private BigDecimal finalAmount;
/**
* 续单数
*/
private Integer orderContinueNumber;
/**
* 续单比例
*/
private double orderContinueProportion = 0.0;
/**
* 续单金额
*/
private BigDecimal orderContinueMoney;
/**
* 超时未接单数
*/
private Integer ordersExpiredNumber;
/**
* 店员收入
*/
private BigDecimal estimatedRevenue;
}

View File

@@ -1,11 +1,11 @@
package com.starry.admin.modules.article.module.entity; package com.starry.admin.modules.clerk.module.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.starry.common.domain.BaseEntity; import com.starry.common.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 陪聊点赞动态信息对象 play_custom_article_info * 陪聊点赞动态信息对象 play_custom_article_info
@@ -47,7 +47,18 @@ public class PlayCustomArticleInfoEntity extends BaseEntity<PlayCustomArticleInf
/** /**
* 点赞时间 * 点赞时间
*/ */
private Date endorseTime; private LocalDateTime endorseTime;
/**
* 赞同状态(1:赞同,0:未赞同)
*/
private String endorseState;
/**
* 操作类型(1:关注;0:收藏)
*/
private String endorseType;
} }

View File

@@ -0,0 +1,39 @@
package com.starry.admin.modules.clerk.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @author admin
* 动态信息查询对象
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayClerkArticleQueryVo extends BasePageEntity {
private String id;
/**
* 店员ID
*/
private String clerkId;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 发布时间
*/
private List<String> releaseTime;
/**
* 顾客ID
*/
private String customId;
}

View File

@@ -0,0 +1,82 @@
package com.starry.admin.modules.clerk.module.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author admin
* 动态信息查询返回对象
*/
@Data
public class PlayClerkArticleReturnVo {
/**
* UUID
*/
private String id;
/**
* 陪聊用户ID
*/
private String clerkId;
/**
* 陪聊用户昵称
*/
private String clerkNickname;
/**
* 陪聊用户头像
*/
private String clerkAvatar;
/**
* 动态内容
*/
private String articleCon;
/**
* 动态附件类型0:图片;1:视频;2:音频)
*/
private String annexType;
/**
* 动态附件内容
*/
private List<String> annexCon;
/**
* 发布时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime releaseTime;
/**
* 备注(审核理由)
*/
private String reviewCon;
/**
* 点赞人数
*/
private Integer agreedQuantity = 0;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 陪聊点赞动态
*/
@JsonIgnore
private List<PlayCustomArticleInfoEntity> articleInfoEntities;
}

View File

@@ -0,0 +1,36 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;
/**
* @author admin
* 动态审核
*/
@Data
public class PlayClerkArticleReviewStateEditVo {
@NotBlank(message = "ID不能为空")
private String id;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
@NotBlank(message = "审核状态不能为空")
@Pattern(regexp = "[12]", message = "审核状态必须为1或2")
private String reviewState;
/**
* 发布时间
*/
private String remark;
/**
* 审核时间
*/
private LocalDateTime reviewTime = LocalDateTime.now();
}

View File

@@ -20,4 +20,9 @@ public class PlayClerkCommodityQueryVo {
* 1:启用 * 1:启用
*/ */
private String enablingState; private String enablingState;
public PlayClerkCommodityQueryVo(String commodityType, String enablingState) {
this.commodityType = commodityType;
this.enablingState = enablingState;
}
} }

View File

@@ -0,0 +1,38 @@
package com.starry.admin.modules.clerk.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 店员资料审核对象 play_clerk_data_review_info
*
* @author admin
* @since 2024-05-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class PlayClerkDataReviewQueryVo extends BasePageEntity {
/**
* UUID
*/
private String clerkId;
/**
* 资料类型[0:昵称;1:头像;2:相册;3:录音]
*/
private String dataType;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 资料添加时间
*/
private List<String> addTime;
}

View File

@@ -0,0 +1,80 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 店员资料审核对象 play_clerk_data_review_info
*
* @author admin
* @since 2024-05-19
*/
@Data
public class PlayClerkDataReviewReturnVo {
/**
* UUID
*/
private String id;
/**
* 店员ID
*/
private String clerkId;
/**
* 店员昵称
*/
private String clerkNickname;
/**
* 店员头像
*/
private String clerkAvatar;
/**
* 资料类型[0:昵称;1:头像;2:相册;3:录音]
*/
private String dateType;
/**
* 资料内容
*/
private List<String> dateContent;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 资料添加时间
*/
private LocalDateTime addTime;
/**
* 审核时间
*/
private LocalDateTime reviewTime;
/**
* 审核人
*/
private String reviewBy;
/**
* 审核内容
*/
private String reviewCon;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,36 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;
/**
* @author admin
* 动态审核
*/
@Data
public class PlayClerkDataReviewStateEditVo {
@NotBlank(message = "ID不能为空")
private String id;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
@NotBlank(message = "审核状态不能为空")
@Pattern(regexp = "[12]", message = "审核状态必须为1或2")
private String reviewState;
/**
* 审核内容
*/
private String reviewCon;
/**
* 审核时间
*/
private LocalDateTime reviewTime = LocalDateTime.now();
}

View File

@@ -0,0 +1,33 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author admin
* @since 2024/6/2 下午5:59
**/
@Data
public class PlayClerkTypeInfoAddVo {
/**
* 分类名称
*/
@NotNull(message = "分类名称不能为空")
private String typeName;
/**
* 是否在首页显示0:不显示,1:显示)
*/
@NotNull(message = "是否在首页显示不能为空")
private String homeDisplayed;
/**
* 排序
*/
@NotNull(message = "排序不能为空")
private Integer sort;
}

View File

@@ -0,0 +1,25 @@
package com.starry.admin.modules.clerk.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author admin
* @since 2024/6/3 下午10:08
**/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayClerkUnsettledWagesInfoQueryVo extends BasePageEntity {
/**
* 店员ID
*/
private String clerkId;
/**
* 店员上架状态
*/
private String listingState;
}

View File

@@ -0,0 +1,74 @@
package com.starry.admin.modules.clerk.module.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author admin
* @since 2024/6/3 下午10:08
**/
@Data
public class PlayClerkUnsettledWagesInfoReturnVo {
private String clerkId;
private String clerkNickname;
@JsonIgnore
private List<PlayOrderInfoEntity> orderInfoEntities;
/**
* 待开始订单-数量
*/
private Integer orderState1Number;
/**
* 待开始订单-金额
*/
private BigDecimal orderState1Money;
/**
* 服务中订单-数量
*/
private Integer orderState2Number;
/**
* 服务中订单-金额
*/
private BigDecimal orderState2Money;
/**
* 服务中订单-店员收入
*/
private BigDecimal orderState2Revenue;
/**
* 已完成未结算订单-数量
*/
private Integer orderState3Number;
/**
* 已完成未结算订单-金额
*/
private BigDecimal orderState3Money;
/**
* 已完成未结算订单-店员收入
*/
private BigDecimal orderState3Revenue;
}

View File

@@ -20,7 +20,7 @@ public class PlayClerkUserAddToWxVo {
/** /**
* 店员性别10 * 性别[0:未知;1:男;2:女]
*/ */
@NotNull(message = "性别不能为空") @NotNull(message = "性别不能为空")
private Integer sex; private Integer sex;

View File

@@ -36,7 +36,7 @@ public class PlayClerkUserAddVo {
private String levelId; private String levelId;
/** /**
* 店员性别10 * 性别[0:未知;1:男;2:女]
*/ */
@NotNull(message = "性别不能为空") @NotNull(message = "性别不能为空")
private Integer sex; private Integer sex;

View File

@@ -42,7 +42,7 @@ public class PlayClerkUserEditVo {
private String levelId; private String levelId;
/** /**
* 店员性别10 * 性别[0:未知;1:男;2:女]
*/ */
@NotNull(message = "性别不能为空") @NotNull(message = "性别不能为空")
private String sex; private String sex;

View File

@@ -0,0 +1,57 @@
package com.starry.admin.modules.clerk.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 店员申请审核
*
* @author admin
* @since 2024/5/19 下午4:21
**/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayClerkUserReviewQueryVo extends BasePageEntity {
/**
* 店员ID
*/
private String clerkId;
/**
* 店员昵称
*/
private String nickname;
/**
* 性别[0:未知;1:男;2:女]
*/
private String sex;
/**
* 手机号码
*/
private String phone;
/**
* 微信号
*/
private String weiChatCode;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 申请时间
*/
private List<String> addTime;
}

View File

@@ -0,0 +1,118 @@
package com.starry.admin.modules.clerk.module.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.starry.admin.common.conf.StringTypeHandler;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* 店员申请审核
*
* @author admin
* @since 2024/5/19 下午4:21
**/
@Data
public class PlayClerkUserReviewReturnVo {
private String id;
/**
* 店员ID
*/
private String clerkId;
/**
* 店员昵称
*/
private String clerkNickname;
/**
* 店员头像
*/
private String clerkAvatar;
/**
* 微信号码
*/
private String weiChatCode;
/**
* 手机号码
*/
private String phone;
/**
* 昵称
*/
private String nickname;
/**
* 性别[0:未知;1:男;2:女]
*/
private String sex;
/**
* 年龄
*/
private Integer age;
/**
* 所在省份
*/
private String province;
/**
* 所在城市
*/
private String city;
/**
* 备注(相关经验)
*/
private String remark;
/**
* 音频
*/
private String audio;
/**
* 照片
*/
@TableField(typeHandler = StringTypeHandler.class)
private List<String> album = new ArrayList<>();
/**
* 申请时间
*/
private LocalDateTime addTime;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
private String reviewState;
/**
* 审核时间
*/
private LocalDateTime reviewTime;
/**
* 审核人
*/
private String reviewBy;
/**
* 审核内容
*/
private String reviewCon;
/**
* 个性签名
*/
private String signature;
}

View File

@@ -0,0 +1,36 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;
/**
* @author admin
* 动态审核
*/
@Data
public class PlayClerkUserReviewStateEditVo {
@NotBlank(message = "ID不能为空")
private String id;
/**
* 审核状态0未审核:1审核通过2审核不通过
*/
@NotBlank(message = "审核状态不能为空")
@Pattern(regexp = "[12]", message = "审核状态必须为1或2")
private String reviewState;
/**
* 发布时间
*/
private String reviewCon;
/**
* 审核时间
*/
private LocalDateTime reviewTime = LocalDateTime.now();
}

View File

@@ -48,7 +48,7 @@ public class PlayClerkUserStateEditVo {
private String realState; private String realState;
/** /**
* 是否必须实名【1必须实名0非必须实名 * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置
*/ */
private String mandatoryRealState; private String mandatoryRealState;
@@ -57,5 +57,15 @@ public class PlayClerkUserStateEditVo {
*/ */
private String randomOrderState; private String randomOrderState;
/**
* 是否固定等级(0:固定等级1:不固定)
*/
private String fixingLevel;
/**
* 在职状态1在职0离职
*/
private String onboardingState = "1";
} }

View File

@@ -0,0 +1,33 @@
package com.starry.admin.modules.clerk.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author admin
* @since 2024/6/3 下午10:08
**/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayClerkWagesInfoQueryVo extends BasePageEntity {
/**
* 店员ID
*/
private String clerkId;
/**
* 店员分组
*/
private String groupId;
/**
* 店员上架状态
*/
private String listingState;
/**
* 统计时间
*/
private String settlementDate;
}

View File

@@ -0,0 +1,108 @@
package com.starry.admin.modules.clerk.module.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author admin
* @since 2024/6/3 下午10:08
**/
@Data
public class PlayClerkWagesInfoReturnVo {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 店员ID
*/
private String clerkId;
/**
* 店员昵称
*/
private String clerkNickname;
/**
* 是否为往期统计(1:是;0:不是)
**/
private String historicalStatistics;
/**
* 统计序号
*/
private Long serialNumber;
/**
* 排行序号
*/
private Long rankingIndex;
/**
* 开始统计时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate startCountDate;
/**
* 结束统计时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate endCountDate;
/**
* 结算时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDateTime settlementDate;
/**
* 订单总数
*/
private Integer orderNumber;
/**
* 订单金额
*/
private BigDecimal finalAmount;
/**
* 续单数
*/
private Integer orderContinueNumber;
/**
* 续单金额
*/
private BigDecimal orderContinueMoney;
/**
* 超时未接单数
*/
private Integer ordersExpiredNumber;
/**
* 店员收入
*/
private BigDecimal estimatedRevenue = BigDecimal.ZERO;
}

View File

@@ -1,10 +1,12 @@
package com.starry.admin.modules.article.service; package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity;
import com.starry.admin.modules.article.module.vo.PlayClerkArticleQueryVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleQueryVo;
import com.starry.admin.modules.article.module.vo.PlayClerkArticleReturnVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleReturnVo;
import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomQueryVo;
import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomReturnVo;
/** /**
@@ -29,7 +31,18 @@ public interface IPlayClerkArticleInfoService extends IService<PlayClerkArticleI
* @param vo 店员动态信息查询对象 * @param vo 店员动态信息查询对象
* @return 店员动态信息集合 * @return 店员动态信息集合
*/ */
IPage<PlayClerkArticleReturnVo> selectPlayClerkArticleInfoByPage(PlayClerkArticleQueryVo vo); IPage<PlayClerkArticleReturnVo> selectByPage(PlayClerkArticleQueryVo vo);
/**
* 顾客查询动态列表
*
* @param customId 顾客ID
* @param customId 动态查询对象
* @return PlayClerkArticleCustomReturnVo
*/
IPage<PlayClerkArticleCustomReturnVo> customSelectByPage(PlayClerkArticleCustomQueryVo vo, String customId);
/** /**
* 新增店员动态信息 * 新增店员动态信息

View File

@@ -27,17 +27,19 @@ public interface IPlayClerkCommodityService extends IService<PlayClerkCommodityE
* 根据用户ID查询当前用户的服务项目类型 * 根据用户ID查询当前用户的服务项目类型
* *
* @param userId 用户ID * @param userId 用户ID
* @param enablingState 服务启动状态[0:停用;1:启用]
* @return 服务项目类型 * @return 服务项目类型
*/ */
List<String> getClerkCommodityList(String userId); List<String> getClerkCommodityList(String userId,String enablingState);
/** /**
* 根据用户ID查询当前用户的服务项目类型 * 根据用户ID查询当前店员所有服务项目
* *
* @param userId 用户ID * @param userId 用户ID
* @param enablingState 服务启动状态[0:停用;1:启用]
* @return List<PlayClerkCommodityEntity> * @return List<PlayClerkCommodityEntity>
*/ */
List<PlayClerkCommodityEntity> selectCommodityTypeByUser(String userId); List<PlayClerkCommodityEntity> selectCommodityTypeByUser(String userId, String enablingState);
/** /**
* 根据用户ID查询当前用户的服务项目 * 根据用户ID查询当前用户的服务项目

View File

@@ -3,7 +3,9 @@ package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoQueryVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewStateEditVo;
import java.util.List; import java.util.List;
@@ -11,44 +13,49 @@ import java.util.List;
* 店员资料审核Service接口 * 店员资料审核Service接口
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-05-19
*/ */
public interface IPlayClerkDataReviewInfoService extends IService<PlayClerkDataReviewInfoEntity> { public interface IPlayClerkDataReviewInfoService extends IService<PlayClerkDataReviewInfoEntity> {
/** /**
* 查询店员资料审核 * 查询店员资料审核
*
* @param id 店员资料审核主键 * @param id 店员资料审核主键
* @return 店员资料审核 * @return 店员资料审核
*/ */
PlayClerkDataReviewInfoEntity selectPlayClerkDataReviewInfoById(String id); PlayClerkDataReviewInfoEntity selectPlayClerkDataReviewInfoById(String id);
List<PlayClerkDataReviewInfoEntity> queryByClerkId(String clerkId);
/** /**
* 查询店员资料审核列表 * 查询店员资料申请
* * @param clerkId 店员ID
* @param entity 店员资料审核 * @param dataType 资料类型[0:昵称;1:头像;2:相册;3:录音]
* @return 店员资料审核集合 * @param reviewState 审核状态0未审核:1审核通过2审核不通过
* @return PlayClerkDataReviewInfoEntity
*/ */
List<PlayClerkDataReviewInfoEntity> queryList(PlayClerkDataReviewInfoEntity entity); PlayClerkDataReviewInfoEntity queryByClerkId(String clerkId, String dataType, String reviewState);
/** /**
* 查询店员资料审核列表 * 查询店员资料审核列表
* * @param vo 店员资料审核
* @param playClerkDataReviewInfo 店员资料审核
* @return 店员资料审核集合 * @return 店员资料审核集合
*/ */
IPage<PlayClerkDataReviewInfoEntity> selectPlayClerkDataReviewInfoByPage(PlayClerkDataReviewInfoQueryVo playClerkDataReviewInfo); IPage<PlayClerkDataReviewReturnVo> selectByPage(PlayClerkDataReviewQueryVo vo);
/** /**
* 新增店员资料审核 * 新增店员资料审核
*
* @param playClerkDataReviewInfo 店员资料审核 * @param playClerkDataReviewInfo 店员资料审核
* @return 结果 * @return 结果
*/ */
boolean create(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo); boolean create(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo);
/** /**
* 修改店员资料审核 * 修改店员资料审核状态
* *
* @param vo PlayClerkDataReviewStateEditVo
*/
void updateDataReviewState(PlayClerkDataReviewStateEditVo vo);
/**
* 修改店员资料审核
* @param playClerkDataReviewInfo 店员资料审核 * @param playClerkDataReviewInfo 店员资料审核
* @return 结果 * @return 结果
*/ */

View File

@@ -0,0 +1,61 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
/**
* 店员分组信息Service接口
*
* @author admin
* @since 2024-05-31
*/
public interface IPlayClerkGroupInfoService extends IService<PlayClerkGroupInfoEntity> {
/**
* 查询店员分组信息
*
* @param id 店员分组信息主键
* @return 店员分组信息
*/
PlayClerkGroupInfoEntity selectPlayClerkGroupInfoById(String id);
/**
* 查询店员分组信息列表
*
* @param playClerkGroupInfo 店员分组信息
* @return 店员分组信息集合
*/
IPage<PlayClerkGroupInfoEntity> selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo);
/**
* 新增店员分组信息
*
* @param playClerkGroupInfo 店员分组信息
* @return 结果
*/
boolean create(PlayClerkGroupInfoEntity playClerkGroupInfo);
/**
* 修改店员分组信息
*
* @param playClerkGroupInfo 店员分组信息
* @return 结果
*/
boolean update(PlayClerkGroupInfoEntity playClerkGroupInfo);
/**
* 批量删除店员分组信息
*
* @param ids 需要删除的店员分组信息主键集合
* @return 结果
*/
int deletePlayClerkGroupInfoByIds(String[] ids);
/**
* 删除店员分组信息信息
*
* @param id 店员分组信息主键
* @return 结果
*/
int deletePlayClerkGroupInfoById(String id);
}

View File

@@ -0,0 +1,61 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity;
/**
* 店员和分组关系Service接口
*
* @author admin
* @since 2024-05-31
*/
public interface IPlayClerkGroupUserInfoService extends IService<PlayClerkGroupUserInfoEntity> {
/**
* 查询店员和分组关系
*
* @param id 店员和分组关系主键
* @return 店员和分组关系
*/
PlayClerkGroupUserInfoEntity selectPlayClerkGroupUserInfoById(String id);
/**
* 查询店员和分组关系列表
*
* @param playClerkGroupUserInfo 店员和分组关系
* @return 店员和分组关系集合
*/
IPage<PlayClerkGroupUserInfoEntity> selectPlayClerkGroupUserInfoByPage(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo);
/**
* 新增店员和分组关系
*
* @param playClerkGroupUserInfo 店员和分组关系
* @return 结果
*/
boolean create(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo);
/**
* 修改店员和分组关系
*
* @param playClerkGroupUserInfo 店员和分组关系
* @return 结果
*/
boolean update(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo);
/**
* 批量删除店员和分组关系
*
* @param ids 需要删除的店员和分组关系主键集合
* @return 结果
*/
int deletePlayClerkGroupUserInfoByIds(String[] ids);
/**
* 删除店员和分组关系信息
*
* @param id 店员和分组关系主键
* @return 结果
*/
int deletePlayClerkGroupUserInfoById(String id);
}

View File

@@ -0,0 +1,109 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity;
import com.starry.admin.modules.weichat.entity.order.PlayOrderHistoryRankingReturnVo;
import com.starry.admin.modules.weichat.entity.order.PlayOrderRankingReturnVo;
import java.time.LocalDate;
import java.util.List;
/**
* 店员排行Service接口
*
* @author admin
* @since 2024-05-25
*/
public interface IPlayClerkRankingInfoService extends IService<PlayClerkRankingInfoEntity> {
/**
* 查询店员排行
*
* @param id 店员排行主键
* @return 店员排行
*/
PlayClerkRankingInfoEntity selectPlayClerkRankingInfoById(String id);
/**
* 查询店员排行列表
*
* @param playClerkRankingInfo 店员排行
* @return 店员排行集合
*/
IPage<PlayClerkRankingInfoEntity> selectPlayClerkRankingInfoByPage(PlayClerkRankingInfoEntity playClerkRankingInfo);
/**
* 获取当前期排名序号
*
* @return PlayClerkRankingInfoEntity
*/
Integer selectSerialNumber();
/**
* 查询最后一次排行统计列表
*
* @return 排行信息列表
*/
List<PlayClerkRankingInfoEntity> selectMaxSerialNumber();
/**
* 根据时间查询店员排行
*
* @param clerkId 店员ID
* @param startTime 开始时间
* @param endTime 结束时间
* @return 店员排行集合
*/
PlayClerkRankingInfoEntity selectByTime(String clerkId, LocalDate startTime, LocalDate endTime);
/**
* 店员分页查询本期排行信息
*
* @param clerkId 店员ID
* @return 店员排行集合
*/
PlayOrderRankingReturnVo selectCurrentRanking(String clerkId);
/**
* 店员分页查询本期历史排行
*
* @param clerkId 店员ID
* @return 店员排行集合
*/
List<PlayOrderHistoryRankingReturnVo> selectHistoryRanking(String clerkId);
/**
* 新增店员排行
*
* @param playClerkRankingInfo 店员排行
* @return 结果
*/
boolean create(PlayClerkRankingInfoEntity playClerkRankingInfo);
/**
* 修改店员排行
*
* @param playClerkRankingInfo 店员排行
* @return 结果
*/
boolean update(PlayClerkRankingInfoEntity playClerkRankingInfo);
/**
* 批量删除店员排行
*
* @param ids 需要删除的店员排行主键集合
* @return 结果
*/
int deletePlayClerkRankingInfoByIds(String[] ids);
/**
* 删除店员排行信息
*
* @param id 店员排行主键
* @return 结果
*/
int deletePlayClerkRankingInfoById(String id);
}

View File

@@ -0,0 +1,71 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity;
import java.util.List;
/**
* 店员分类信息Service接口
*
* @author admin
* @since 2024-05-31
*/
public interface IPlayClerkTypeInfoService extends IService<PlayClerkTypeInfoEntity> {
/**
* 查询店员分类信息
*
* @param id 店员分类信息主键
* @return 店员分类信息
*/
PlayClerkTypeInfoEntity selectPlayClerkTypeInfoById(String id);
/**
* 查询店员分类信息列表
*
* @return 店员分类信息集合
*/
List<PlayClerkTypeInfoEntity> selectByAll();
/**
* 查询店员分类信息列表
*
* @param playClerkTypeInfo 店员分类信息
* @return 店员分类信息集合
*/
IPage<PlayClerkTypeInfoEntity> selectPlayClerkTypeInfoByPage(PlayClerkTypeInfoEntity playClerkTypeInfo);
/**
* 新增店员分类信息
*
* @param playClerkTypeInfo 店员分类信息
* @return 结果
*/
boolean create(PlayClerkTypeInfoEntity playClerkTypeInfo);
/**
* 修改店员分类信息
*
* @param playClerkTypeInfo 店员分类信息
* @return 结果
*/
boolean update(PlayClerkTypeInfoEntity playClerkTypeInfo);
/**
* 批量删除店员分类信息
*
* @param ids 需要删除的店员分类信息主键集合
* @return 结果
*/
int deletePlayClerkTypeInfoByIds(String[] ids);
/**
* 删除店员分类信息信息
*
* @param id 店员分类信息主键
* @return 结果
*/
int deletePlayClerkTypeInfoById(String id);
}

View File

@@ -0,0 +1,61 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeUserInfoEntity;
/**
* 店员和分类关系Service接口
*
* @author admin
* @since 2024-05-31
*/
public interface IPlayClerkTypeUserInfoService extends IService<PlayClerkTypeUserInfoEntity> {
/**
* 查询店员和分类关系
*
* @param id 店员和分类关系主键
* @return 店员和分类关系
*/
PlayClerkTypeUserInfoEntity selectPlayClerkTypeUserInfoById(String id);
/**
* 查询店员和分类关系列表
*
* @param playClerkTypeUserInfo 店员和分类关系
* @return 店员和分类关系集合
*/
IPage<PlayClerkTypeUserInfoEntity> selectPlayClerkTypeUserInfoByPage(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo);
/**
* 新增店员和分类关系
*
* @param playClerkTypeUserInfo 店员和分类关系
* @return 结果
*/
boolean create(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo);
/**
* 修改店员和分类关系
*
* @param playClerkTypeUserInfo 店员和分类关系
* @return 结果
*/
boolean update(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo);
/**
* 批量删除店员和分类关系
*
* @param ids 需要删除的店员和分类关系主键集合
* @return 结果
*/
int deletePlayClerkTypeUserInfoByIds(String[] ids);
/**
* 删除店员和分类关系信息
*
* @param id 店员和分类关系主键
* @return 结果
*/
int deletePlayClerkTypeUserInfoById(String id);
}

View File

@@ -2,12 +2,18 @@ package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoQueryVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserQueryVo;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoReturnVo;
import com.starry.admin.modules.weichat.entity.PlayClerkUserLoginResponseVo; import com.starry.admin.modules.weichat.entity.PlayClerkUserLoginResponseVo;
import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoQueryVo;
import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
@@ -18,6 +24,17 @@ import java.math.BigDecimal;
*/ */
public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEntity> { public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEntity> {
/**
* 获取当前店员抽成信息
*
* @param clerkId 店员ID
* @return com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity
* @author 杭州世平信息科技有限公司-xuhq
* @since 2024/6/3 11:29
**/
PlayClerkLevelInfoEntity queryLevelCommission(String clerkId);
/** /**
* 根据账户ID查询店员 * 根据账户ID查询店员
* *
@@ -71,6 +88,43 @@ public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEnt
**/ **/
void updateAccountBalanceById(String id, BigDecimal accountBalance); void updateAccountBalanceById(String id, BigDecimal accountBalance);
/**
* 更新店员账户余额信息
*
* @param userId 用户ID
* @param balanceBeforeOperation 操作前余额
* @param balanceAfterOperation 操作后余额
* @param operationType 操作类型0:充值;1:消费;2:服务)
* @param operationAction 操作动作
* @param balanceMoney 操作金额
* @param orderId 订单ID
*/
void updateAccountBalanceById(String userId, BigDecimal balanceBeforeOperation, BigDecimal balanceAfterOperation, String operationType, String operationAction, BigDecimal balanceMoney, String orderId);
/**
* 查询当前租户下所有店员
*
* @return 店员列表
*/
List<PlayClerkUserInfoEntity> listAll();
/**
* 查询店员未结算订单
*
* @param vo 未结算订单查询对象
* @return 未结算订单
*/
IPage<PlayClerkUnsettledWagesInfoReturnVo> listUnsettledWagesByPage(PlayClerkUnsettledWagesInfoQueryVo vo);
/**
* 管理端分页查询店员信息
*
* @param vo 店员查询实体
* @return 店员列表
*/
IPage<PlayClerkUserReturnVo> selectByPage(PlayClerkUserQueryVo vo);
/** /**
* 查询店员列表 * 查询店员列表
@@ -79,7 +133,7 @@ public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEnt
* @param customUserId 顾客ID * @param customUserId 顾客ID
* @return 店员列表 * @return 店员列表
*/ */
IPage<PlayClerkUserListResultVo> selectByPage(PlayClerkUserInfoQueryVo vo, String customUserId); IPage<PlayClerkUserInfoResultVo> selectByPage(PlayClerkUserInfoQueryVo vo, String customUserId);
/** /**
* 查询店员列表 * 查询店员列表
@@ -87,7 +141,7 @@ public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEnt
* @param vo 店员查询对象 * @param vo 店员查询对象
* @return 店员集合 * @return 店员集合
*/ */
IPage<PlayClerkUserListResultVo> selectPlayClerkUserInfoByPage(PlayClerkUserInfoQueryVo vo); IPage<PlayClerkUserInfoResultVo> selectPlayClerkUserInfoByPage(PlayClerkUserInfoQueryVo vo);
/** /**
* 新增店员 * 新增店员

View File

@@ -0,0 +1,84 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewStateEditVo;
/**
* 店员资料审核Service接口
*
* @author admin
* @since 2024-05-19
*/
public interface IPlayClerkUserReviewInfoService extends IService<PlayClerkUserReviewInfoEntity> {
/**
* 查询店员资料审核
*
* @param id 店员资料审核主键
* @return 店员资料审核
*/
PlayClerkUserReviewInfoEntity selectPlayClerkUserReviewInfoById(String id);
/**
* 根据店员ID查询未审核的申请
*
* @param clerkId 店员ID
* @param reviewState 审核状态0未审核:1审核通过2审核不通过
* @return 店员申请审核对象
*/
PlayClerkUserReviewInfoEntity queryByClerkId(String clerkId, String reviewState);
/**
* 分页查询店员申请
*
* @param vo 店员申请对象
* @return 店员申请对象
*/
IPage<PlayClerkUserReviewReturnVo> selectByPage(PlayClerkUserReviewQueryVo vo);
/**
* 查询店员资料审核列表
*
* @param playClerkUserReviewInfo 店员资料审核
* @return 店员资料审核集合
*/
IPage<PlayClerkUserReviewInfoEntity> selectPlayClerkUserReviewInfoByPage(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo);
/**
* 新增店员资料审核
*
* @param playClerkUserReviewInfo 店员资料审核
* @return 结果
*/
boolean create(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo);
boolean update(PlayClerkUserReviewInfoEntity entity);
/**
* 修改店员资料审核
*
* @param vo 店员资料审核对象
*/
void updateDataReviewState(PlayClerkUserReviewStateEditVo vo);
/**
* 批量删除店员资料审核
*
* @param ids 需要删除的店员资料审核主键集合
* @return 结果
*/
int deletePlayClerkUserReviewInfoByIds(String[] ids);
/**
* 删除店员资料审核信息
*
* @param id 店员资料审核主键
* @return 结果
*/
int deletePlayClerkUserReviewInfoById(String id);
}

View File

@@ -0,0 +1,89 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
import java.util.List;
/**
* 店员工资明细信息Service接口
*
* @author admin
* @since 2024-05-31
*/
public interface IPlayClerkWagesDetailsInfoService extends IService<PlayClerkWagesDetailsInfoEntity> {
/**
* 查询店员工资明细信息
*
* @param wagesId 店员工资统计ID
* @return 店员工资明细信息
*/
List<PlayClerkWagesDetailsInfoEntity> selectByWagesId(String wagesId);
/**
* 根据订单ID
*
* @param orderId 订单ID
* @return 工资详情
*/
PlayClerkWagesDetailsInfoEntity selectByOrderId(String orderId);
/**
* 根据工资结算ID和店员ID查询工资详情
*
* @param wagesId 结算ID
* @param clerkId 店员ID
* @return 工资详情
*/
PlayClerkWagesDetailsInfoEntity selectByClerkIdAndWagesId(String wagesId, String clerkId);
/**
* 查询店员工资明细信息
*
* @param id 店员工资明细信息主键
* @return 店员工资明细信息
*/
PlayClerkWagesDetailsInfoEntity selectPlayClerkWagesDetailsInfoById(String id);
/**
* 查询店员工资明细信息列表
*
* @param playClerkWagesDetailsInfo 店员工资明细信息
* @return 店员工资明细信息集合
*/
IPage<PlayClerkWagesDetailsInfoEntity> selectPlayClerkWagesDetailsInfoByPage(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo);
/**
* 新增店员工资明细信息
*
* @param playClerkWagesDetailsInfo 店员工资明细信息
* @return 结果
*/
boolean create(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo);
/**
* 修改店员工资明细信息
*
* @param playClerkWagesDetailsInfo 店员工资明细信息
* @return 结果
*/
boolean update(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo);
/**
* 批量删除店员工资明细信息
*
* @param ids 需要删除的店员工资明细信息主键集合
* @return 结果
*/
int deletePlayClerkWagesDetailsInfoByIds(String[] ids);
/**
* 删除店员工资明细信息信息
*
* @param id 店员工资明细信息主键
* @return 结果
*/
int deletePlayClerkWagesDetailsInfoById(String id);
}

View File

@@ -0,0 +1,111 @@
package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoReturnVo;
import java.time.LocalDate;
import java.util.List;
/**
* 店员工资结算信息Service接口
*
* @author admin
* @since 2024-05-31
*/
public interface IPlayClerkWagesInfoService extends IService<PlayClerkWagesInfoEntity> {
/**
* 根据店员ID查询店员工资结算信息
*
* @param clerkId 店员ID
* @return 店员工资结算信息
*/
PlayClerkWagesInfoEntity selectCurrentPeriodWagesByClerkId(String clerkId);
/**
* 根据店员ID查询店员往期工资
*
* @param clerkId 店员ID
* @return 店员工资结算信息
*/
List<PlayClerkWagesInfoEntity> selectHistoricalWagesByClerkId(String clerkId);
/**
* 获取最后一次统计
*
* @param clerkId 店员ID
* @return 上次结算时间
*/
PlayClerkWagesInfoEntity getLastSettlement(String clerkId);
/**
* 获取最后一次统计
*
* @param clerkId 店员ID
* @return 上次结算时间
*/
LocalDate getLastSettlementTime(String clerkId);
/**
* 查询店员工资结算信息
*
* @param id 店员工资结算信息主键
* @return 店员工资结算信息
*/
PlayClerkWagesInfoEntity selectPlayClerkWagesInfoById(String id);
/**
* 分页查询工资统计信息
*
* @param vo 统计统计查询对象
* @return 查询工资统计信息
*/
IPage<PlayClerkWagesInfoReturnVo> selectHistoricalByPage(PlayClerkWagesInfoQueryVo vo);
/**
* 查询店员工资结算信息列表
*
* @param playClerkWagesInfo 店员工资结算信息
* @return 店员工资结算信息集合
*/
IPage<PlayClerkWagesInfoEntity> selectPlayClerkWagesInfoByPage(PlayClerkWagesInfoEntity playClerkWagesInfo);
/**
* 新增店员工资结算信息
*
* @param playClerkWagesInfo 店员工资结算信息
* @return 结果
*/
boolean create(PlayClerkWagesInfoEntity playClerkWagesInfo);
/**
* 修改店员工资结算信息
*
* @param playClerkWagesInfo 店员工资结算信息
* @return 结果
*/
boolean update(PlayClerkWagesInfoEntity playClerkWagesInfo);
/**
* 批量删除店员工资结算信息
*
* @param ids 需要删除的店员工资结算信息主键集合
* @return 结果
*/
int deletePlayClerkWagesInfoByIds(String[] ids);
/**
* 删除店员工资结算信息信息
*
* @param id 店员工资结算信息主键
* @return 结果
*/
int deletePlayClerkWagesInfoById(String id);
}

View File

@@ -1,8 +1,8 @@
package com.starry.admin.modules.article.service; package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity;
/** /**
* 陪聊点赞动态信息Service接口 * 陪聊点赞动态信息Service接口
@@ -11,6 +11,17 @@ import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntit
* @since 2024-05-04 * @since 2024-05-04
*/ */
public interface IPlayCustomArticleInfoService extends IService<PlayCustomArticleInfoEntity> { public interface IPlayCustomArticleInfoService extends IService<PlayCustomArticleInfoEntity> {
/**
* 查询顾客操作动态数据
* @param articleId 动态ID
* @param customId 客户ID
* @param endorseType 操作类型(1:点赞;0:收藏)
* @return PlayCustomArticleInfoEntity
*/
PlayCustomArticleInfoEntity selectByArticleId(String articleId, String customId, String endorseType);
/** /**
* 查询陪聊点赞动态信息 * 查询陪聊点赞动态信息
* *

View File

@@ -0,0 +1,207 @@
package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.clerk.mapper.PlayClerkArticleInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleReturnVo;
import com.starry.admin.modules.clerk.service.IPlayClerkArticleInfoService;
import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomQueryVo;
import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomReturnVo;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
* 店员动态信息Service业务层处理
*
* @author admin
* @since 2024-05-04
*/
@Service
public class PlayClerkArticleInfoServiceImpl extends ServiceImpl<PlayClerkArticleInfoMapper, PlayClerkArticleInfoEntity> implements IPlayClerkArticleInfoService {
@Resource
private PlayClerkArticleInfoMapper playClerkArticleInfoMapper;
/**
* 查询店员动态信息
*
* @param id 店员动态信息主键
* @return 店员动态信息
*/
@Override
public PlayClerkArticleInfoEntity selectPlayClerkArticleInfoById(String id) {
PlayClerkArticleInfoEntity entity = this.baseMapper.selectById(id);
if (entity == null) {
throw new CustomException("动态不存在");
}
return this.baseMapper.selectById(id);
}
/**
* 查询店员动态信息列表
*
* @param vo 店员动态信息查询对象
* @return 店员动态信息
*/
@Override
public IPage<PlayClerkArticleReturnVo> selectByPage(PlayClerkArticleQueryVo vo) {
MPJLambdaWrapper<PlayClerkArticleInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
//查询主表全部字段
lambdaQueryWrapper.selectAll(PlayClerkArticleInfoEntity.class);
//陪聊用户表全部字段
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar");
//陪聊动态表
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkArticleInfoEntity::getClerkId);
//动态点赞表
lambdaQueryWrapper.selectCollection(PlayCustomArticleInfoEntity.class, PlayClerkArticleReturnVo::getArticleInfoEntities).leftJoin(PlayCustomArticleInfoEntity.class, PlayCustomArticleInfoEntity::getArticleId, PlayCustomArticleInfoEntity::getId);
if (StrUtil.isNotBlank(vo.getClerkId())) {
lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getClerkId, vo.getClerkId());
}
if (StrUtil.isNotBlank(vo.getReviewState())) {
lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getReviewState, vo.getReviewState());
}
if (vo.getReleaseTime() != null && vo.getReleaseTime().size() == 2) {
lambdaQueryWrapper.between(PlayClerkArticleInfoEntity::getReleaseTime, vo.getReleaseTime().get(0), vo.getReleaseTime().get(1));
}
IPage<PlayClerkArticleReturnVo> page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleReturnVo.class, lambdaQueryWrapper);
for (PlayClerkArticleReturnVo record : page.getRecords()) {
int index = 0;
for (PlayCustomArticleInfoEntity articleInfoEntity : record.getArticleInfoEntities()) {
if (articleInfoEntity.getId() == null) {
continue;
}
index++;
}
record.setAgreedQuantity(index);
}
return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleReturnVo.class, lambdaQueryWrapper);
}
@Override
public IPage<PlayClerkArticleCustomReturnVo> customSelectByPage(PlayClerkArticleCustomQueryVo vo, String customId) {
MPJLambdaWrapper<PlayClerkArticleInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
//查询主表全部字段
lambdaQueryWrapper.selectAll(PlayClerkArticleInfoEntity.class);
//陪聊用户表全部字段
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex");
//陪聊用户表全部字段
lambdaQueryWrapper.selectAs(PlayCustomArticleInfoEntity::getId, "id");
//陪聊动态表
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkArticleInfoEntity::getClerkId);
if (StrUtil.isNotBlank(vo.getFollowState()) && "1".equals(vo.getFollowState())) {
//查询本人收藏的动态列表
lambdaQueryWrapper.innerJoin(PlayCustomArticleInfoEntity.class, PlayCustomArticleInfoEntity::getArticleId, PlayClerkArticleInfoEntity::getId);
lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getCustomId, customId);
lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getEndorseType, "0");
lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getEndorseState, "1");
}
//查询指定店员动态
if (StrUtil.isNotBlank(vo.getClerkId())) {
lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getClerkId, vo.getClerkId());
}
//动态点赞表
lambdaQueryWrapper.selectCollection(PlayCustomArticleInfoEntity.class, PlayClerkArticleReturnVo::getArticleInfoEntities).leftJoin(PlayCustomArticleInfoEntity.class, PlayCustomArticleInfoEntity::getArticleId, PlayCustomArticleInfoEntity::getId);
lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getReviewState, "1");
IPage<PlayClerkArticleCustomReturnVo> page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleCustomReturnVo.class, lambdaQueryWrapper);
for (PlayClerkArticleCustomReturnVo record : page.getRecords()) {
int index = 0;
for (PlayCustomArticleInfoEntity articleInfoEntity : record.getArticleInfoEntities()) {
//动态操作信息为空
if (articleInfoEntity.getId() == null) {
continue;
}
//点赞或者动态处于激活状态
if ("1".equals(articleInfoEntity.getEndorseState())) {
if ("1".equals(articleInfoEntity.getEndorseType())) {
index++;
record.setGreedState("1");
} else {
record.setFollowState("1");
}
}
}
record.setAgreedQuantity(index);
}
return page;
}
/**
* 新增店员动态信息
*
* @param entity 店员动态信息
* @return 结果
*/
@Override
public boolean create(PlayClerkArticleInfoEntity entity) {
if (!queryClerkUnauditedArticleInfo(entity.getClerkId()).isEmpty()) {
throw new CustomException("存在未审核动态,无法新增");
}
if (StrUtil.isBlankIfStr(entity.getId())) {
entity.setId(IdUtils.getUuid());
}
return save(entity);
}
/**
* 查询店员未审核的动态
*
* @param clerkId 店员ID
* @return 店员未审核的动态列表
*/
public List<PlayClerkArticleInfoEntity> queryClerkUnauditedArticleInfo(String clerkId) {
LambdaQueryWrapper<PlayClerkArticleInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getReviewState, "0");
return this.baseMapper.selectList(lambdaQueryWrapper);
}
/**
* 修改店员动态信息
*
* @param playClerkArticleInfo 店员动态信息
* @return 结果
*/
@Override
public boolean update(PlayClerkArticleInfoEntity playClerkArticleInfo) {
return updateById(playClerkArticleInfo);
}
/**
* 批量删除店员动态信息
*
* @param ids 需要删除的店员动态信息主键
* @return 结果
*/
@Override
public int deletePlayClerkArticleInfoByIds(String[] ids) {
return playClerkArticleInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除店员动态信息信息
*
* @param id 店员动态信息主键
* @return 结果
*/
@Override
public int deletePlayClerkArticleInfoById(String id) {
return playClerkArticleInfoMapper.deleteById(id);
}
}

View File

@@ -1,6 +1,6 @@
package com.starry.admin.modules.clerk.service.impl; package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.IdUtil; import com.starry.common.utils.IdUtils;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -70,7 +70,7 @@ public class PlayClerkClassificationInfoServiceImpl extends ServiceImpl<PlayCler
@Override @Override
public boolean create(PlayClerkClassificationInfoEntity playClerkClassificationInfo) { public boolean create(PlayClerkClassificationInfoEntity playClerkClassificationInfo) {
if (StrUtil.isBlankIfStr(playClerkClassificationInfo.getId())) { if (StrUtil.isBlankIfStr(playClerkClassificationInfo.getId())) {
playClerkClassificationInfo.setId(IdUtil.fastSimpleUUID()); playClerkClassificationInfo.setId(IdUtils.getUuid());
} }
return save(playClerkClassificationInfo); return save(playClerkClassificationInfo);
} }

View File

@@ -1,6 +1,5 @@
package com.starry.admin.modules.clerk.service.impl; package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -12,6 +11,7 @@ import com.starry.admin.modules.clerk.module.entity.PlayClerkCommodityEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService;
import com.starry.admin.modules.play.module.entity.PlayCommodityInfoEntity; import com.starry.admin.modules.play.module.entity.PlayCommodityInfoEntity;
import com.starry.admin.modules.play.service.IPlayCommodityInfoService; import com.starry.admin.modules.play.service.IPlayCommodityInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -39,17 +39,14 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl<PlayClerkCommodit
public void initClerkCommodity(String userId) { public void initClerkCommodity(String userId) {
// 删除当前陪聊的所有服务项目 // 删除当前陪聊的所有服务项目
LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, userId); lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, userId);
this.baseMapper.delete(lambdaQueryWrapper); this.baseMapper.delete(lambdaQueryWrapper);
// 根据当前租户的服务项目,生成陪聊项目数据 // 根据当前租户的服务项目,生成陪聊项目数据
for (PlayCommodityInfoEntity commodityInfo : playCommodityInfoService.selectAll()) { for (PlayCommodityInfoEntity commodityInfo : playCommodityInfoService.selectByType()) {
PlayClerkCommodityEntity entity = new PlayClerkCommodityEntity(); PlayClerkCommodityEntity entity = new PlayClerkCommodityEntity();
entity.setPlayUserId(userId); entity.setClerkId(userId);
entity.setCommodityId(commodityInfo.getId()); entity.setCommodityId(commodityInfo.getId());
entity.setCommodityType(commodityInfo.getItemType());
entity.setCommodityName(commodityInfo.getItemName()); entity.setCommodityName(commodityInfo.getItemName());
entity.setCommodityPrice(commodityInfo.getPrice());
entity.setServiceDuration(commodityInfo.getServiceDuration());
entity.setEnablingState("1"); entity.setEnablingState("1");
this.create(entity); this.create(entity);
} }
@@ -58,23 +55,25 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl<PlayClerkCommodit
@Override @Override
public List<String> getClerkCommodityList(String userId) { public List<String> getClerkCommodityList(String userId, String enablingState) {
List<PlayClerkCommodityEntity> list = this.selectCommodityTypeByUser(userId); List<PlayClerkCommodityEntity> list = this.selectCommodityTypeByUser(userId, enablingState);
return list.stream().map(PlayClerkCommodityEntity::getCommodityType).collect(Collectors.toList()); return list.stream().map(PlayClerkCommodityEntity::getCommodityName).collect(Collectors.toList());
} }
@Override @Override
public List<PlayClerkCommodityEntity> selectCommodityTypeByUser(String userId) { public List<PlayClerkCommodityEntity> selectCommodityTypeByUser(String userId, String enablingState) {
LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.groupBy(PlayClerkCommodityEntity::getCommodityType); lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, userId);
lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, userId); if (StrUtil.isNotBlank(enablingState)) {
lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getEnablingState, enablingState);
}
return this.baseMapper.selectList(lambdaQueryWrapper); return this.baseMapper.selectList(lambdaQueryWrapper);
} }
@Override @Override
public List<PlayClerkCommodityEntity> selectByUser(String userId) { public List<PlayClerkCommodityEntity> selectByUser(String userId) {
LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, userId); lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, userId);
return this.baseMapper.selectList(lambdaQueryWrapper); return this.baseMapper.selectList(lambdaQueryWrapper);
} }
@@ -85,12 +84,12 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl<PlayClerkCommodit
@Override @Override
public void startStopClerkItem(String type, String enablingState, String clerkUserId) { public void startStopClerkItem(String commodityName, String enablingState, String clerkId) {
PlayClerkCommodityEntity entity = new PlayClerkCommodityEntity(); PlayClerkCommodityEntity entity = new PlayClerkCommodityEntity();
entity.setEnablingState(enablingState); entity.setEnablingState(enablingState);
LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlayClerkCommodityEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, clerkUserId); lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getCommodityType, type); lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getCommodityName, commodityName);
this.baseMapper.update(entity, lambdaQueryWrapper); this.baseMapper.update(entity, lambdaQueryWrapper);
} }
@@ -130,7 +129,7 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl<PlayClerkCommodit
@Override @Override
public boolean create(PlayClerkCommodityEntity playClerkCommodity) { public boolean create(PlayClerkCommodityEntity playClerkCommodity) {
if (StrUtil.isBlankIfStr(playClerkCommodity.getId())) { if (StrUtil.isBlankIfStr(playClerkCommodity.getId())) {
playClerkCommodity.setId(IdUtil.fastSimpleUUID()); playClerkCommodity.setId(IdUtils.getUuid());
} }
return save(playClerkCommodity); return save(playClerkCommodity);
} }

View File

@@ -1,18 +1,27 @@
package com.starry.admin.modules.clerk.service.impl; package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.clerk.mapper.PlayClerkDataReviewInfoMapper; import com.starry.admin.modules.clerk.mapper.PlayClerkDataReviewInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoQueryVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewStateEditVo;
import com.starry.admin.modules.clerk.service.IPlayClerkDataReviewInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkDataReviewInfoService;
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@@ -20,82 +29,116 @@ import java.util.List;
* 店员资料审核Service业务层处理 * 店员资料审核Service业务层处理
* *
* @author admin * @author admin
* @since 2024-04-11 * @since 2024-05-19
*/ */
@Service @Service
public class PlayClerkDataReviewInfoServiceImpl extends ServiceImpl<PlayClerkDataReviewInfoMapper, PlayClerkDataReviewInfoEntity> implements IPlayClerkDataReviewInfoService { public class PlayClerkDataReviewInfoServiceImpl extends ServiceImpl<PlayClerkDataReviewInfoMapper, PlayClerkDataReviewInfoEntity> implements IPlayClerkDataReviewInfoService {
@Resource @Resource
private PlayClerkDataReviewInfoMapper playClerkDataReviewInfoMapper; private PlayClerkDataReviewInfoMapper playClerkDataReviewInfoMapper;
@Resource
private IPlayClerkUserInfoService playClerkUserInfoService;
/** /**
* 查询店员资料审核 * 查询店员资料审核
*
* @param id 店员资料审核主键 * @param id 店员资料审核主键
* @return 店员资料审核 * @return 店员资料审核
*/ */
@Override @Override
public PlayClerkDataReviewInfoEntity selectPlayClerkDataReviewInfoById(String id) { public PlayClerkDataReviewInfoEntity selectPlayClerkDataReviewInfoById(String id) {
return this.baseMapper.selectById(id); LambdaQueryWrapper<PlayClerkDataReviewInfoEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlayClerkDataReviewInfoEntity::getId, id);
PlayClerkDataReviewInfoEntity entity = this.baseMapper.selectOne(queryWrapper);
if (entity == null) {
throw new CustomException("对象不存在");
}
return entity;
}
@Override
public List<PlayClerkDataReviewInfoEntity> queryByClerkId(String clerkId) {
LambdaQueryWrapper<PlayClerkDataReviewInfoEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlayClerkDataReviewInfoEntity::getClerkId, clerkId);
return this.baseMapper.selectList(queryWrapper);
} }
/**
* 查询店员资料审核列表
*
* @param entity 店员资料审核
* @return 店员资料审核
*/
@Override @Override
public List<PlayClerkDataReviewInfoEntity> queryList(PlayClerkDataReviewInfoEntity entity) { public PlayClerkDataReviewInfoEntity queryByClerkId(String clerkId, String dataType, String reviewState) {
LambdaQueryWrapper<PlayClerkDataReviewInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlayClerkDataReviewInfoEntity> queryWrapper = new LambdaQueryWrapper<>();
if (StrUtil.isNotBlank(entity.getId())) { queryWrapper.eq(PlayClerkDataReviewInfoEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getId, entity.getId()); queryWrapper.eq(PlayClerkDataReviewInfoEntity::getReviewState, reviewState);
} queryWrapper.eq(PlayClerkDataReviewInfoEntity::getDataType, dataType);
if (StrUtil.isNotBlank(entity.getPlayUserId())) { return this.baseMapper.selectOne(queryWrapper);
lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getPlayUserId, entity.getPlayUserId());
}
if (StrUtil.isNotBlank(entity.getState())) {
lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getState, entity.getState());
}
if (StrUtil.isNotBlank(entity.getDataType())) {
lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getDataType, entity.getDataType());
}
return this.baseMapper.selectList(lambdaQueryWrapper);
} }
/** /**
* 查询店员资料审核列表 * 查询店员资料审核列表
* * @param vo 店员资料审核
* @param vo 店员资料审核分页对象
* @return 店员资料审核 * @return 店员资料审核
*/ */
@Override @Override
public IPage<PlayClerkDataReviewInfoEntity> selectPlayClerkDataReviewInfoByPage(PlayClerkDataReviewInfoQueryVo vo) { public IPage<PlayClerkDataReviewReturnVo> selectByPage(PlayClerkDataReviewQueryVo vo) {
LambdaQueryWrapper<PlayClerkDataReviewInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); MPJLambdaWrapper<PlayClerkDataReviewInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
if (StrUtil.isNotBlank(vo.getState())) { lambdaQueryWrapper.selectAll(PlayClerkDataReviewInfoEntity.class);
lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getState, vo.getState()); //店员表
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname");
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkUserReviewInfoEntity::getClerkId);
if (StrUtil.isNotBlank(vo.getClerkId())) {
lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getClerkId, vo.getClerkId());
} }
Page<PlayClerkDataReviewInfoEntity> page = new Page<>(vo.getPageNum(), vo.getPageSize()); if (StrUtil.isNotBlank(vo.getDataType())) {
return this.baseMapper.selectPage(page, lambdaQueryWrapper); lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getDataType, vo.getDataType());
}
if (StrUtil.isNotBlank(vo.getReviewState())) {
lambdaQueryWrapper.like(PlayClerkDataReviewInfoEntity::getReviewState, vo.getReviewState());
}
if (vo.getAddTime() != null && vo.getAddTime().size() == 2) {
lambdaQueryWrapper.between(PlayClerkDataReviewInfoEntity::getAddTime, vo.getAddTime().get(0), vo.getAddTime().get(1));
}
return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkDataReviewReturnVo.class, lambdaQueryWrapper);
} }
/** /**
* 新增店员资料审核 * 新增店员资料审核
*
* @param playClerkDataReviewInfo 店员资料审核 * @param playClerkDataReviewInfo 店员资料审核
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean create(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo) { public boolean create(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo) {
if (StrUtil.isBlankIfStr(playClerkDataReviewInfo.getId())) { if (StrUtil.isBlankIfStr(playClerkDataReviewInfo.getId())) {
playClerkDataReviewInfo.setId(IdUtil.fastSimpleUUID()); playClerkDataReviewInfo.setId(IdUtils.getUuid());
}
if (StrUtil.isBlankIfStr(playClerkDataReviewInfo.getAddTime())) {
playClerkDataReviewInfo.setAddTime(LocalDateTime.now());
} }
return save(playClerkDataReviewInfo); return save(playClerkDataReviewInfo);
} }
@Override
public void updateDataReviewState(PlayClerkDataReviewStateEditVo vo) {
PlayClerkDataReviewInfoEntity entity = this.selectPlayClerkDataReviewInfoById(vo.getId());
BeanUtils.copyProperties(vo, entity);
this.update(entity);
if ("1".equals(vo.getReviewState())) {
PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity();
userInfo.setId(entity.getId());
if ("1".equals(entity.getDataType())) {
userInfo.setAvatar(entity.getDataContent().get(0));
}
if ("2".equals(entity.getDataType())) {
userInfo.setAlbum(entity.getDataContent());
}
if ("3".equals(entity.getDataType())) {
userInfo.setAudio(entity.getDataContent().get(0));
}
playClerkUserInfoService.update(userInfo);
}
}
/** /**
* 修改店员资料审核 * 修改店员资料审核
*
* @param playClerkDataReviewInfo 店员资料审核 * @param playClerkDataReviewInfo 店员资料审核
* @return 结果 * @return 结果
*/ */
@@ -106,7 +149,6 @@ public class PlayClerkDataReviewInfoServiceImpl extends ServiceImpl<PlayClerkDat
/** /**
* 批量删除店员资料审核 * 批量删除店员资料审核
*
* @param ids 需要删除的店员资料审核主键 * @param ids 需要删除的店员资料审核主键
* @return 结果 * @return 结果
*/ */
@@ -117,7 +159,6 @@ public class PlayClerkDataReviewInfoServiceImpl extends ServiceImpl<PlayClerkDat
/** /**
* 删除店员资料审核信息 * 删除店员资料审核信息
*
* @param id 店员资料审核主键 * @param id 店员资料审核主键
* @return 结果 * @return 结果
*/ */

View File

@@ -0,0 +1,97 @@
package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.modules.clerk.mapper.PlayClerkGroupInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkGroupInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
/**
* 店员分组信息Service业务层处理
*
* @author admin
* @since 2024-05-31
*/
@Service
public class PlayClerkGroupInfoServiceImpl extends ServiceImpl<PlayClerkGroupInfoMapper, PlayClerkGroupInfoEntity> implements IPlayClerkGroupInfoService {
@Resource
private PlayClerkGroupInfoMapper playClerkGroupInfoMapper;
/**
* 查询店员分组信息
*
* @param id 店员分组信息主键
* @return 店员分组信息
*/
@Override
public PlayClerkGroupInfoEntity selectPlayClerkGroupInfoById(String id) {
return this.baseMapper.selectById(id);
}
/**
* 查询店员分组信息列表
*
* @param playClerkGroupInfo 店员分组信息
* @return 店员分组信息
*/
@Override
public IPage<PlayClerkGroupInfoEntity> selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo) {
Page<PlayClerkGroupInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<PlayClerkGroupInfoEntity>());
}
/**
* 新增店员分组信息
*
* @param playClerkGroupInfo 店员分组信息
* @return 结果
*/
@Override
public boolean create(PlayClerkGroupInfoEntity playClerkGroupInfo) {
if (StrUtil.isBlankIfStr(playClerkGroupInfo.getId())) {
playClerkGroupInfo.setId(IdUtils.getUuid());
}
return save(playClerkGroupInfo);
}
/**
* 修改店员分组信息
*
* @param playClerkGroupInfo 店员分组信息
* @return 结果
*/
@Override
public boolean update(PlayClerkGroupInfoEntity playClerkGroupInfo) {
return updateById(playClerkGroupInfo);
}
/**
* 批量删除店员分组信息
*
* @param ids 需要删除的店员分组信息主键
* @return 结果
*/
@Override
public int deletePlayClerkGroupInfoByIds(String[] ids) {
return playClerkGroupInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除店员分组信息信息
*
* @param id 店员分组信息主键
* @return 结果
*/
@Override
public int deletePlayClerkGroupInfoById(String id) {
return playClerkGroupInfoMapper.deleteById(id);
}
}

View File

@@ -0,0 +1,97 @@
package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.modules.clerk.mapper.PlayClerkGroupUserInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkGroupUserInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
/**
* 店员和分组关系Service业务层处理
*
* @author admin
* @since 2024-05-31
*/
@Service
public class PlayClerkGroupUserInfoServiceImpl extends ServiceImpl<PlayClerkGroupUserInfoMapper, PlayClerkGroupUserInfoEntity> implements IPlayClerkGroupUserInfoService {
@Resource
private PlayClerkGroupUserInfoMapper playClerkGroupUserInfoMapper;
/**
* 查询店员和分组关系
*
* @param id 店员和分组关系主键
* @return 店员和分组关系
*/
@Override
public PlayClerkGroupUserInfoEntity selectPlayClerkGroupUserInfoById(String id) {
return this.baseMapper.selectById(id);
}
/**
* 查询店员和分组关系列表
*
* @param playClerkGroupUserInfo 店员和分组关系
* @return 店员和分组关系
*/
@Override
public IPage<PlayClerkGroupUserInfoEntity> selectPlayClerkGroupUserInfoByPage(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) {
Page<PlayClerkGroupUserInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<PlayClerkGroupUserInfoEntity>());
}
/**
* 新增店员和分组关系
*
* @param playClerkGroupUserInfo 店员和分组关系
* @return 结果
*/
@Override
public boolean create(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) {
if (StrUtil.isBlankIfStr(playClerkGroupUserInfo.getId())) {
playClerkGroupUserInfo.setId(IdUtils.getUuid());
}
return save(playClerkGroupUserInfo);
}
/**
* 修改店员和分组关系
*
* @param playClerkGroupUserInfo 店员和分组关系
* @return 结果
*/
@Override
public boolean update(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) {
return updateById(playClerkGroupUserInfo);
}
/**
* 批量删除店员和分组关系
*
* @param ids 需要删除的店员和分组关系主键
* @return 结果
*/
@Override
public int deletePlayClerkGroupUserInfoByIds(String[] ids) {
return playClerkGroupUserInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除店员和分组关系信息
*
* @param id 店员和分组关系主键
* @return 结果
*/
@Override
public int deletePlayClerkGroupUserInfoById(String id) {
return playClerkGroupUserInfoMapper.deleteById(id);
}
}

View File

@@ -1,6 +1,5 @@
package com.starry.admin.modules.clerk.service.impl; package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -11,10 +10,12 @@ import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.clerk.mapper.PlayClerkLevelInfoMapper; import com.starry.admin.modules.clerk.mapper.PlayClerkLevelInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkLevelInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkLevelInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@@ -77,8 +78,9 @@ public class PlayClerkLevelInfoServiceImpl extends ServiceImpl<PlayClerkLevelInf
@Override @Override
public boolean create(PlayClerkLevelInfoEntity playClerkLevelInfo) { public boolean create(PlayClerkLevelInfoEntity playClerkLevelInfo) {
if (StrUtil.isBlankIfStr(playClerkLevelInfo.getId())) { if (StrUtil.isBlankIfStr(playClerkLevelInfo.getId())) {
playClerkLevelInfo.setId(IdUtil.fastSimpleUUID()); playClerkLevelInfo.setId(IdUtils.getUuid());
} }
playClerkLevelInfo.setCreatedTime(new Date());
return save(playClerkLevelInfo); return save(playClerkLevelInfo);
} }

View File

@@ -0,0 +1,186 @@
package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.modules.clerk.mapper.PlayClerkRankingInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity;
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.weichat.entity.order.PlayOrderHistoryRankingReturnVo;
import com.starry.admin.modules.weichat.entity.order.PlayOrderRankingListVo;
import com.starry.admin.modules.weichat.entity.order.PlayOrderRankingReturnVo;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
/**
* 店员排行Service业务层处理
*
* @author admin
* @since 2024-05-25
*/
@Service
public class PlayClerkRankingInfoServiceImpl extends ServiceImpl<PlayClerkRankingInfoMapper, PlayClerkRankingInfoEntity> implements IPlayClerkRankingInfoService {
@Resource
private PlayClerkRankingInfoMapper playClerkRankingInfoMapper;
/**
* 查询店员排行
*
* @param id 店员排行主键
* @return 店员排行
*/
@Override
public PlayClerkRankingInfoEntity selectPlayClerkRankingInfoById(String id) {
return this.baseMapper.selectById(id);
}
@Override
public List<PlayOrderHistoryRankingReturnVo> selectHistoryRanking(String clerkId) {
long serialNumber = selectSerialNumber();
MPJLambdaWrapper<PlayClerkRankingInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
// 根据排行序号和用户ID查询
lambdaQueryWrapper.ne(PlayClerkRankingInfoEntity::getSerialNumber, serialNumber);
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, clerkId);
return this.baseMapper.selectJoinList(PlayOrderHistoryRankingReturnVo.class, lambdaQueryWrapper);
}
@Override
public PlayOrderRankingReturnVo selectCurrentRanking(String clerkId) {
long serialNumber = selectSerialNumber();
MPJLambdaWrapper<PlayClerkRankingInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
lambdaQueryWrapper.selectAll(PlayClerkRankingInfoEntity.class);
//店员信息
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex");
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkRankingInfoEntity::getClerkId);
//店员等级
lambdaQueryWrapper.selectAs(PlayClerkLevelInfoEntity::getId, "levelId").selectAs(PlayClerkLevelInfoEntity::getName, "levelName");
lambdaQueryWrapper.leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId);
// 根据排行序号和用户ID查询
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSerialNumber, serialNumber);
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, clerkId);
PlayOrderRankingReturnVo returnVo = this.baseMapper.selectJoinOne(PlayOrderRankingReturnVo.class, lambdaQueryWrapper);
if (returnVo == null) {
returnVo = new PlayOrderRankingReturnVo();
}
returnVo.setRankings(this.selectBySerialNumber(serialNumber));
return returnVo;
}
@Override
public List<PlayClerkRankingInfoEntity> selectMaxSerialNumber() {
MPJLambdaWrapper<PlayClerkRankingInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSerialNumber, this.selectSerialNumber());
return this.baseMapper.selectList(lambdaQueryWrapper);
}
/**
* 获取当前期排名序号
*
* @return PlayClerkRankingInfoEntity
*/
@Override
public Integer selectSerialNumber() {
LambdaQueryWrapper<PlayClerkRankingInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.orderByDesc(PlayClerkRankingInfoEntity::getSerialNumber).last("limit 1");
PlayClerkRankingInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper);
if (entity == null || entity.getSerialNumber() == null) {
return 0;
}
return entity.getSerialNumber();
}
List<PlayOrderRankingListVo> selectBySerialNumber(long serialNumber) {
MPJLambdaWrapper<PlayClerkRankingInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSerialNumber, serialNumber);
lambdaQueryWrapper.orderByDesc(PlayClerkRankingInfoEntity::getRankingIndex);
lambdaQueryWrapper.selectAll(PlayClerkRankingInfoEntity.class);
//店员信息
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex");
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkRankingInfoEntity::getClerkId);
//店员等级
lambdaQueryWrapper.selectAs(PlayClerkLevelInfoEntity::getId, "levelId").selectAs(PlayClerkLevelInfoEntity::getName, "levelName");
lambdaQueryWrapper.leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId);
return this.baseMapper.selectJoinList(PlayOrderRankingListVo.class, lambdaQueryWrapper);
}
@Override
public PlayClerkRankingInfoEntity selectByTime(String clerkId, LocalDate startTime, LocalDate endTime) {
MPJLambdaWrapper<PlayClerkRankingInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getStartCountDate, startTime);
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getEndCountDate, endTime);
lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, clerkId);
return this.baseMapper.selectOne(lambdaQueryWrapper);
}
/**
* 查询店员排行列表
*
* @param playClerkRankingInfo 店员排行
* @return 店员排行
*/
@Override
public IPage<PlayClerkRankingInfoEntity> selectPlayClerkRankingInfoByPage(PlayClerkRankingInfoEntity playClerkRankingInfo) {
Page<PlayClerkRankingInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>());
}
/**
* 新增店员排行
*
* @param playClerkRankingInfo 店员排行
* @return 结果
*/
@Override
public boolean create(PlayClerkRankingInfoEntity playClerkRankingInfo) {
if (StrUtil.isBlankIfStr(playClerkRankingInfo.getId())) {
playClerkRankingInfo.setId(IdUtils.getUuid());
}
return save(playClerkRankingInfo);
}
/**
* 修改店员排行
*
* @param playClerkRankingInfo 店员排行
* @return 结果
*/
@Override
public boolean update(PlayClerkRankingInfoEntity playClerkRankingInfo) {
return updateById(playClerkRankingInfo);
}
/**
* 批量删除店员排行
*
* @param ids 需要删除的店员排行主键
* @return 结果
*/
@Override
public int deletePlayClerkRankingInfoByIds(String[] ids) {
return playClerkRankingInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除店员排行信息
*
* @param id 店员排行主键
* @return 结果
*/
@Override
public int deletePlayClerkRankingInfoById(String id) {
return playClerkRankingInfoMapper.deleteById(id);
}
}

View File

@@ -0,0 +1,104 @@
package com.starry.admin.modules.clerk.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.starry.admin.modules.clerk.mapper.PlayClerkTypeInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity;
import com.starry.admin.modules.clerk.service.IPlayClerkTypeInfoService;
import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
* 店员分类信息Service业务层处理
*
* @author admin
* @since 2024-05-31
*/
@Service
public class PlayClerkTypeInfoServiceImpl extends ServiceImpl<PlayClerkTypeInfoMapper, PlayClerkTypeInfoEntity> implements IPlayClerkTypeInfoService {
@Resource
private PlayClerkTypeInfoMapper playClerkTypeInfoMapper;
/**
* 查询店员分类信息
*
* @param id 店员分类信息主键
* @return 店员分类信息
*/
@Override
public PlayClerkTypeInfoEntity selectPlayClerkTypeInfoById(String id) {
return this.baseMapper.selectById(id);
}
@Override
public List<PlayClerkTypeInfoEntity> selectByAll() {
return this.baseMapper.selectList(new LambdaQueryWrapper<>());
}
/**
* 查询店员分类信息列表
*
* @param playClerkTypeInfo 店员分类信息
* @return 店员分类信息
*/
@Override
public IPage<PlayClerkTypeInfoEntity> selectPlayClerkTypeInfoByPage(PlayClerkTypeInfoEntity playClerkTypeInfo) {
Page<PlayClerkTypeInfoEntity> page = new Page<>(1, 10);
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<PlayClerkTypeInfoEntity>());
}
/**
* 新增店员分类信息
*
* @param playClerkTypeInfo 店员分类信息
* @return 结果
*/
@Override
public boolean create(PlayClerkTypeInfoEntity playClerkTypeInfo) {
if (StrUtil.isBlankIfStr(playClerkTypeInfo.getId())) {
playClerkTypeInfo.setId(IdUtils.getUuid());
}
return save(playClerkTypeInfo);
}
/**
* 修改店员分类信息
*
* @param playClerkTypeInfo 店员分类信息
* @return 结果
*/
@Override
public boolean update(PlayClerkTypeInfoEntity playClerkTypeInfo) {
return updateById(playClerkTypeInfo);
}
/**
* 批量删除店员分类信息
*
* @param ids 需要删除的店员分类信息主键
* @return 结果
*/
@Override
public int deletePlayClerkTypeInfoByIds(String[] ids) {
return playClerkTypeInfoMapper.deleteBatchIds(Arrays.asList(ids));
}
/**
* 删除店员分类信息信息
*
* @param id 店员分类信息主键
* @return 结果
*/
@Override
public int deletePlayClerkTypeInfoById(String id) {
return playClerkTypeInfoMapper.deleteById(id);
}
}

Some files were not shown because too many files have changed in this diff Show More