修改诺干问题

This commit is contained in:
gaomusan 2025-04-08 10:43:35 +08:00
parent c5de12d144
commit 6d2775cb02
64 changed files with 549 additions and 144 deletions

View File

@ -96,6 +96,11 @@
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>

View File

@ -2,6 +2,8 @@ create database jqjy;
use jqjy;
show variables like 'lower_case_table_names';
create table user
(
username varchar(256) null comment '用户昵称',
@ -171,23 +173,25 @@ create table if not exists manicurist
INDEX idx_userId (userId)
) comment ='美甲师表' COLLATE = utf8mb4_unicode_ci;
create table if not exists manicuristSign
CREATE TABLE IF NOT EXISTS manicuristSign
(
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) not null comment '姓名',
name VARCHAR(100) NOT NULL COMMENT '姓名',
manicuristId BIGINT NOT NULL COMMENT '美甲师ID关联美甲师表',
businessName varchar(512) not null comment '门店名称',
businessId BIGINT NOT NULL COMMENT '商家id',
businessName VARCHAR(512) NOT NULL COMMENT '门店名称',
phone VARCHAR(20) COMMENT '联系电话',
salary DECIMAL(10, 2) comment '期望工资薪资',
signTime VARCHAR(100) not null comment '签约时长',
tenure VARCHAR(100) not null comment '工龄',
manicuristLv VARCHAR(100) not null comment '美甲师等级',
auditStatus TINYINT DEFAULT 0 comment '审核状态0-待审核1-审核通过2-审核不通过',
isDelete TINYINT DEFAULT 0 comment '逻辑删除标志0 表示未删除1 表示已删除',
createTime DATETIME DEFAULT CURRENT_TIMESTAMP not null comment '记录创建时间',
updateTime DATETIME DEFAULT CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '记录更新时间'
salary DECIMAL(10, 2) COMMENT '期望工资薪资',
signTime VARCHAR(100) NOT NULL COMMENT '签约时长',
tenure VARCHAR(100) NOT NULL COMMENT '工龄',
manicuristLv VARCHAR(100) NOT NULL COMMENT '美甲师等级',
auditStatus TINYINT DEFAULT 0 COMMENT '审核状态0-待审核1-审核通过2-审核不通过',
isDelete TINYINT DEFAULT 0 COMMENT '逻辑删除标志0 表示未删除1 表示已删除',
createTime DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间',
updateTime DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间'
) COMMENT ='美甲师签约表' COLLATE = utf8mb4_unicode_ci;
) comment ='美甲师签约表' COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS manicurist_auth
(
@ -207,22 +211,23 @@ CREATE TABLE IF NOT EXISTS manicurist_auth
-- 预约表
CREATE TABLE IF NOT EXISTS appointments
(
id bigint auto_increment comment '预约ID' primary key,
userId bigint not null comment '用户ID关联用户表',
userName varchar(100) not null comment '用户姓名',
phone varchar(64) not null comment '手机号',
businessId bigint not null comment '商家ID关联商家表',
businessName varchar(512) null comment '商家名称',
manicuristId bigint null comment '美甲师ID, 如果为空到店分配',
manicuristName varchar(100) null comment '美甲师姓名',
appointmentTime datetime not null comment '预约时间',
serviceMode tinyint default 1 not null comment '服务方式0 - 到店, 1 - 上门)',
notes varchar(128) null comment '备注',
status tinyint default 0 not null comment '预约状态0 - 已确认, 1 - 已完成, 2 - 已取消)',
createTime datetime default CURRENT_TIMESTAMP not null comment '创建时间',
updateTime datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
isDelete tinyint default 0 not null comment '是否删除',
orderId bigint null comment '订单ID关联订单表',
id bigint auto_increment comment '预约ID' primary key,
userId bigint not null comment '用户ID关联用户表',
userName varchar(100) not null comment '用户姓名',
phone varchar(64) not null comment '手机号',
businessId bigint not null comment '商家ID关联商家表',
businessName varchar(512) null comment '商家名称',
manicuristId bigint null comment '美甲师ID, 如果为空到店分配',
manicuristName varchar(100) null comment '美甲师姓名',
appointmentTime datetime not null comment '预约时间',
serviceMode tinyint default 1 not null comment '服务方式0 - 线上, 1 - 到店)',
notes varchar(128) null comment '备注',
status tinyint default 0 not null comment '预约状态0 - 已确认, 1 - 已完成, 2 - 已取消)',
createTime datetime default CURRENT_TIMESTAMP not null comment '创建时间',
updateTime datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
isDelete tinyint default 0 not null comment '是否删除',
orderId bigint null comment '订单ID关联订单表',
appointmentAddress varchar(512) null comment '预约地址',
INDEX idx_userId (userId),
INDEX idx_businessId (businessId),
INDEX idx_manicuristId (manicuristId),

View File

@ -20,17 +20,17 @@ import com.cj.jiaqingjiayi.contant.UserConstant;
import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.mapper.UserMapper;
import com.cj.jiaqingjiayi.model.domain.Manicurist;
import com.cj.jiaqingjiayi.model.domain.OrderItems;
import com.cj.jiaqingjiayi.model.domain.Orders;
import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.AlipayTradeCreateRequest1;
import com.cj.jiaqingjiayi.model.request.CreateAlipayRequest;
import com.cj.jiaqingjiayi.model.request.UserDTO;
import com.cj.jiaqingjiayi.model.vo.UserVO;
import com.cj.jiaqingjiayi.service.AliPayService;
import com.cj.jiaqingjiayi.service.OrderItemsService;
import com.cj.jiaqingjiayi.service.OrdersService;
import com.cj.jiaqingjiayi.service.UserService;
import com.cj.jiaqingjiayi.service.*;
import com.cj.jiaqingjiayi.utils.RandomNumberGenerator;
import com.cj.jiaqingjiayi.utils.UniqueNumberGenerator;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -80,6 +80,9 @@ public class AlipayController {
@Resource
private OrderItemsService orderItemsService;
@Resource
private ManicuristService manicuristService;
@Resource
private RandomNumberGenerator randomNumberGenerator;
@ -94,7 +97,7 @@ public class AlipayController {
* @throws AlipayApiException 支付宝api异常
*/
@GetMapping("/parseCode")
public BaseResponse<UserVO> login(@RequestParam String authcode,@RequestParam long severId, HttpServletRequest req) throws AlipayApiException {
public BaseResponse<UserDTO> login(@RequestParam String authcode, @RequestParam long severId, HttpServletRequest req) throws AlipayApiException {
AlipayConfig alipayConfig = choiceServer(severId);
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
@ -111,6 +114,7 @@ public class AlipayController {
User oid = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, response.getOpenId()));
UserVO userVO = new UserVO();
UserDTO userDTO = new UserDTO();
if (response1.isSuccess()) {
if (oid == null) {
User user = new User();
@ -123,17 +127,34 @@ public class AlipayController {
req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE,user);
BeanUtils.copyProperties(user, userVO);
userVO.setSessionId(req.getSession().getId());
return ResultUtils.success(userVO,"注册成功");
userDTO.setUserVO(userVO);
return ResultUtils.success(userDTO,"注册成功");
}
//如果用户权限为美甲师则返回美甲师内容
if (oid.getUserRole().equals(3)){
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("userId", oid.getId());
Manicurist manicurist = manicuristService.getOne(queryWrapper);
userDTO.setManicurist(manicurist);
}
req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE, oid);
BeanUtils.copyProperties(oid, userVO);
userVO.setSessionId(req.getSession().getId());
return ResultUtils.success(userVO,"登录成功");
userDTO.setUserVO(userVO);
return ResultUtils.success(userDTO,"登录成功");
}
//如果用户权限为美甲师则返回美甲师内容
if (oid.getUserRole().equals(3)){
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("userId", oid.getId());
Manicurist manicurist = manicuristService.getOne(queryWrapper);
userDTO.setManicurist(manicurist);
}
req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE,oid);
BeanUtils.copyProperties(oid, userVO);
userVO.setSessionId(req.getSession().getId());
return ResultUtils.success(userVO,"登录成功");
userDTO.setUserVO(userVO);
return ResultUtils.success(userDTO,"登录成功");
}
@ -146,17 +167,9 @@ public class AlipayController {
// User loginUser = userService.getLoginUser(request);
// String miniOpenId = loginUser.getOpenId();
String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7rWG3si4XQlDEHjSe/ot98aCn/R25fCSiCBIUTTA6Wy3Gs5lk1XERw1N6loq8u9zR8vTQwzLnFmepwJx2sMLHGfJT3F6Y7Lx0z7gLYksMe+LIAfc+KYsfs0IyDvoKvwsm7XAzl8AYiqk1/p2dxc5etdvkLO7bXquyCDOclR3lL9NBgbJ6tH0fvcVd3RPmZk5Tb2hfn5JK1s/tAanbvFtKhLNCwX8qZp25+AfPakx2tRZkSgjh+fjA6ZElUnwq9ftHy16vfSmnX3C3LuDSKduo3EBkDhpGjTD5+zOs8tKGofW2gn347ouzXWnTz71ftzVwAgFUcOh4Ib0GVC9SKZBrAgMBAAECggEBAJEK8R8/tEFDfhnjYjWScYm3KLtLciJ8n+8dn6NS+DfRabJL8PutvUHGHAj8uWIdKg6T3sJMaVWQyjK16fYMq6umENLg17cGFquMMSeTIn8Wa3C5nDPNdXjdWAZJ7tJJTTwbeoBVAh+1YgqZqYRacCBgGf3hAARHyRfBIOodkEojc4oyzlbUGOz+Ee6/b+A9BZd84YWkbg/KlD9mlqSAYSGCKBM9nd8l1YIvr/4OgBn679x+A8pB8i5kGxP4fertZl2mkt75LigJ3Ab/vwoHDj1AuPjlUIce+PcTdxHqgNtIJSDWbop70BGPp0XQE9BRefPIPQfS9+2LO+eFeo4ESeECgYEA+DzH4cLoMYG9Hfq9IIbQyq6VJeip4/Lbv8h4RevGPHqyFIKB3fX7bHRlBB8hCnyX+zj4T/K50LEoZmo4tpVCv7YmRkyGRoF0QwaMgbo3bkaaCZeQnuPeZFaqyhszcJL1nhLghSNKcU75orStqf4H2mLL67VH1PkjelAWMrY1JVsCgYEAwYvMNzPkLG+p9MqGlkxgu2gQ6F4SdQp35XLHjygyTMG+qt/cPAbviyOILUhTLHP1s++kgw7z/qJPcNCQVVMWL6aBM40aRb+FiMajHouGe/q26zuDdtgsuqoN84/9phs7495Oa8ROxu6eZPuvU+OJNCgf/NMVkURbOpXtbe+yXjECgYBZwhiAQGqW5BOO0IgsR7MdZm0VrQApJTpiKUmb9rnSSocztVDiAjysJZYVHHBlC1IlC591wQ2BMV2rUoM5OdVN3r4OM0NmIQ754VdS3ROH801lZIFtgnV6kH/m3lkGPo1DYA4A9hbHy8emFnCpA+qxA4I6s2zKzF8Qrf6ozYt/+wKBgChyjrr6nTSsIViG+pluXMjNdrsY7cKH7YaF9i50uA5SbwZGwj/JM0ZgppTQCJHBqhdwfXDmLxeH1BI/g+pQ8tICef3L/zGUVNPAr1Yy0mgWfSOrzE2J388iuserz9Zm2p1EWB8tZ0krlO6Fqp5dbs73k7fCZT92iZo0uum+rggBAoGBAIO74oQpY3lY6OgvjZJAHcr9RiGPB7qQ+zmROxCqzFXdtNZ5sHb1Jdg+IsBcI7ZadFT28x/ENNpfO78mC+1j56mmN9BUpORBIcCaEzp2KYgP7e4FnWTluMvFV/2yBMlCfUEYHPfPK1TfD05oBJY4lTMD2qsT5RhS1ipFqagZgQ1X";
String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo9gmNSz8l/eH4Uem6hqNoK1t91Gu5evoooJKzZraxPYW9AyJwH8Mxbag3qVaRSalz+OIHHVqszUxah98DbvaxJbpY9tB2zaLSvxhXM4U5iGFR3TqdqqvxsXsfiu+a0JHauuGYtuuNmUwR7ZFVub8Ma/YBCHfELPvl1TcX8MgMlHqw3NQqcEXZZO8Ziyxel7CqgHDx5dFn1meHDFWTajbWN/0TWSzvYAOKrlrS3LjjwbDzTr3BQzH84TLbLkBaMVGEUkJZUrVVkiN3XEVBpBUs5Cv5INN4L+UJ4kDy1u6LICzUVSSrQmHItuA+YiFHZ/WVJ18jISn0W7YZVyRqTo2sQIDAQAB";
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi-sandbox.dl.alipaydev.com/gateway.do");
alipayConfig.setAppId("2021004144652242");
alipayConfig.setPrivateKey(privateKey);
alipayConfig.setFormat("json");
alipayConfig.setAlipayPublicKey(alipayPublicKey);
alipayConfig.setCharset("UTF-8");
alipayConfig.setSignType("RSA2");
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
// 初始化SDK
AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
User byId = userService.getById(pay.getUserId());
ThrowUtils.throwIf(byId.getOpenId() == null, ErrorCode.NOT_FOUND_ERROR, "不是小程序用户");
@ -175,52 +188,60 @@ public class AlipayController {
}
@GetMapping("/test/close")
public String closeOrder(String orderNo) throws AlipayApiException {
public String closeOrder(String out_trade_no,Long orderId) throws AlipayApiException {
log.info("out_trade_no:" + out_trade_no);
AlipayClients clients = new AlipayClients();
AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();
AlipayTradeCloseModel model = new AlipayTradeCloseModel();
//model.setTradeNo(); 这是订单项
//订单项可能会有多个支付单
model.setTradeNo(orderNo);
model.setTradeNo(out_trade_no);
request.setBizModel(model);
request.setNotifyUrl(NOURL);
// request.setNotifyUrl(NOURL + "/close");
LambdaQueryWrapper<Orders> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Orders::getId, orderId);
Orders orders = ordersService.getOne(queryWrapper);
log.info("orders:" + orders);
ThrowUtils.throwIf(!orders.getPaymentStatus().equals(0),ErrorCode.SYSTEM_ERROR,"当前订单已支付或已退款");
orders.setPaymentStatus(3);
boolean update = ordersService.updateById(orders);
ThrowUtils.throwIf(!update, ErrorCode.OPERATION_ERROR, "修改订单状态失败");
AlipayTradeCloseResponse response = clients.alipayClient().execute(request);
//这里应该写进日志
log.info("订单已取消");
return response.getBody();
}
@GetMapping("/test/refund")
public String test_refund(String orderNo) throws AlipayApiException {
public String test_refund(String out_trade_no) throws AlipayApiException {
AlipayClients clients = new AlipayClients();
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
AlipayTradeRefundModel model = new AlipayTradeRefundModel();
QueryWrapper<Orders> ordersQueryWrapper = new QueryWrapper<>();
ordersQueryWrapper.eq("orderNumber", orderNo);
ordersQueryWrapper.eq("orderNumber", out_trade_no);
Orders orders = ordersService.getOne(ordersQueryWrapper);
model.setOutTradeNo(orderNo);
model.setOutTradeNo(out_trade_no);
model.setRefundAmount(String.valueOf(orders.getTotalPrice()));
//退款请求单号 要求唯一 需改
//model.setOutRequestNo("123");
String number = UniqueNumberGenerator.generateNumber();
model.setOutRequestNo(number);
log.info("outRequestNo:" + number);
request.setBizModel(model);
request.setNotifyUrl(NOURL);
AlipayTradeRefundResponse response = clients.alipayClient().execute(request);
String body = response.getBody();
ThrowUtils.throwIf(!orders.getPaymentStatus().equals(1),ErrorCode.SYSTEM_ERROR,"当前订单未支付");
orders.setPaymentStatus(2);
Date date = new Date();
orders.setUpdateTime(date);
boolean update = ordersService.updateById(orders);
ThrowUtils.throwIf(!update, ErrorCode.OPERATION_ERROR, "修改订单状态失败");
return body;
log.info("paymentStatus:" + orders.getPaymentStatus());
AlipayTradeRefundResponse response = clients.alipayClient().execute(request);
log.info("退款成功");
return response.getBody();
}
@GetMapping("/test/query")
@ -235,26 +256,10 @@ public class AlipayController {
request.setNotifyUrl(NOURL);
AlipayTradeQueryResponse response = clients.alipayClient().execute(request);
String body = response.getBody();
return body;
return response.getBody();
}
// private static AlipayConfig getAlipayConfig() {
// String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrh54evp6VX68kLvmWybc945JbHaJDRJf6bDSKNwQfCkvEZxfOwYTGXu7XfZq2G/qmFJ6Xp9KxV0yYrxPwjXwPMU4E78/ZaMZ44iSTSq+qvMJMBR7PJOX1MkW7EFfhUPmb+5S0KQurjMQadY4b2VxeHwVxTRPKAdsm0tnfgN8/pO7TfpyGOWX5dRSIruQ3c+MFmJOy0cSZZ4tGlidqZDS9v4YJpmw3u5dX4BvGKtNMPaAnxSpLCDp1fd/vh6ROl71QkLFR+3mNQcwvDOGNJ2Rq78bgfkIVp0BBMySk5Mfv6kunh0QMaxK8wi+Y9swv7Iiyy7U2/zrBvA+1i3e5ctH9AgMBAAECggEBAJSiNrTjbp13RVewUNyFvIAnc4n62sE5bgw0uS5PUAXpsQ/mWW3yqLAQURxvnaFSC1bgpTA630qGoDvp8fhPUYIEslt6xnvY26qiIxly7Vegqyiegzzx90YKIvxexBfdR/4O+aNHsfIcT02yMcsWBYEVlmzAYnZ4N0OkD+EpVcpaIBv2HwGsJnczz41GQVl9GX2DOL8j8+eSWhZM0Jq3d1ksgcfUHH1TT12XCbEE3fKJEMKKlrjVPrtTb+v9m6t0okOgjW+z+IR0zY1HBR92yC+0/CP4FfkbGBhKNxsmbyU4ilTmKINHMy40bqGqrEYo+LBzhEKBT82eMbg9cJbL68ECgYEA37dP5hWEfuTWAoAwduI6OW8kTwxNddIigzTV3qlqEeo21K6RQOOTeYKXrpMmYG65MU5J3xF7AYyhb3rMpega++22Qybxlrme88hqe0s/DeSToG2mw1zYLkkHb5+oT05fCOlLmFGPeLRBfJTxjM6wPNX/1NvGOEVC9DekXuauWZECgYEAxEhmSne07LD6J2sYqsbmOb0zdOpCNT0a+7SomZwiMpVFcsxFvZhYJlcLwyR2m3deLphxwQBPbyxe8TtOZST7P7APpoeI4c0t6PL44vG3eUh+GHFVyf1dbLwMGa9gQ0JFRwBH5iDD2hfnTNfmcNUYzBRHZQK60FFlPCd566hOG60CgYBNVNJbmEiKjJOlnaYjEiRKQi7s3DXSambfr93V7/3oX2vArO8s3P3XXNsNz3POlbeSYZuLbkF00aXkITCokMjzGMKOB+Iu1c8qObcFE4eiR8b4B69DjM51gWz+mtPVRiP3sp0c8+SCNt0EMYAlyjSFcvvSGn40aUyxmqJI47iU4QKBgFYStaCkO9eriBcvFKMXE7BwMpdrftsfz6xfPawW1rw9zzWXNGH+43D0rPjHDagBQXDHcuLCwxKqb3vzmN4ryG3WRBavyqvSMPa9Tb0faGisDHelg4xPKd/b2qaMzHbSIdUP33egGKKT5t9AshH6sKQVpHU8LDXb67vkR8e6h34FAoGAf21Aea9/+3FavddWC/5j0fvESN2U58X0xf4R/FZLa5QsT/iCAo4QqaeYZvF6csWR6lu0zJB88gA+4s6G6xP1JERL3LbE2pHjDe0eNOIsWSzsINICQQ2s3Gm5mh75+/8dfAsRiAPi9nS7FJ74Tcryb4+txeZKiBZgLnEFeRLOB3U=";
// String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsP/3AQ6DbZbQhFafYUdRS8F6jSXJzYfF3N14L48Jo+xlGp1FW8uq2bu8izP9qcuFxui2CzuQflo0BM+XmSmRt6KkmyGSvGmCdf4gC/doTT7xtMaQu72Mvezr69VC0Lp5iJeLVHzV5/BMFdgfGee5HnAUU5bn4Ytlqw14kCxgeLitZltvHtirq7vVCXlWyikbdtmV0HgmzaWbrC+jVyb/nk9oH8PpV5juJmhwEuiReEdKPKMdPoeJK3sZ9dHsOx+Bm3LkEY075fPvpHDtJFaLi/k7fFY+0oQxsX92qRL9kViOAhMonvFFKZFK06vxuPUtuZelGrzGttiOjVJRRGIiaQIDAQAB";
// AlipayConfig alipayConfig = new AlipayConfig();
// alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
// alipayConfig.setAppId("2021004144652242");
// alipayConfig.setPrivateKey(privateKey);
// alipayConfig.setFormat("json");
// alipayConfig.setAlipayPublicKey(alipayPublicKey);
// alipayConfig.setCharset("UTF-8");
// alipayConfig.setSignType("RSA2");
// return alipayConfig;
// }
@PostMapping("/notifyUrl")
@Transactional(rollbackFor = Exception.class)
public synchronized void aliPayNotifyUrl(HttpServletRequest request, HttpServletResponse response) {
@ -350,4 +355,18 @@ public class AlipayController {
}
return alipayConfig;
}
private static AlipayConfig getAlipayConfig() {
String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7rWG3si4XQlDEHjSe/ot98aCn/R25fCSiCBIUTTA6Wy3Gs5lk1XERw1N6loq8u9zR8vTQwzLnFmepwJx2sMLHGfJT3F6Y7Lx0z7gLYksMe+LIAfc+KYsfs0IyDvoKvwsm7XAzl8AYiqk1/p2dxc5etdvkLO7bXquyCDOclR3lL9NBgbJ6tH0fvcVd3RPmZk5Tb2hfn5JK1s/tAanbvFtKhLNCwX8qZp25+AfPakx2tRZkSgjh+fjA6ZElUnwq9ftHy16vfSmnX3C3LuDSKduo3EBkDhpGjTD5+zOs8tKGofW2gn347ouzXWnTz71ftzVwAgFUcOh4Ib0GVC9SKZBrAgMBAAECggEBAJEK8R8/tEFDfhnjYjWScYm3KLtLciJ8n+8dn6NS+DfRabJL8PutvUHGHAj8uWIdKg6T3sJMaVWQyjK16fYMq6umENLg17cGFquMMSeTIn8Wa3C5nDPNdXjdWAZJ7tJJTTwbeoBVAh+1YgqZqYRacCBgGf3hAARHyRfBIOodkEojc4oyzlbUGOz+Ee6/b+A9BZd84YWkbg/KlD9mlqSAYSGCKBM9nd8l1YIvr/4OgBn679x+A8pB8i5kGxP4fertZl2mkt75LigJ3Ab/vwoHDj1AuPjlUIce+PcTdxHqgNtIJSDWbop70BGPp0XQE9BRefPIPQfS9+2LO+eFeo4ESeECgYEA+DzH4cLoMYG9Hfq9IIbQyq6VJeip4/Lbv8h4RevGPHqyFIKB3fX7bHRlBB8hCnyX+zj4T/K50LEoZmo4tpVCv7YmRkyGRoF0QwaMgbo3bkaaCZeQnuPeZFaqyhszcJL1nhLghSNKcU75orStqf4H2mLL67VH1PkjelAWMrY1JVsCgYEAwYvMNzPkLG+p9MqGlkxgu2gQ6F4SdQp35XLHjygyTMG+qt/cPAbviyOILUhTLHP1s++kgw7z/qJPcNCQVVMWL6aBM40aRb+FiMajHouGe/q26zuDdtgsuqoN84/9phs7495Oa8ROxu6eZPuvU+OJNCgf/NMVkURbOpXtbe+yXjECgYBZwhiAQGqW5BOO0IgsR7MdZm0VrQApJTpiKUmb9rnSSocztVDiAjysJZYVHHBlC1IlC591wQ2BMV2rUoM5OdVN3r4OM0NmIQ754VdS3ROH801lZIFtgnV6kH/m3lkGPo1DYA4A9hbHy8emFnCpA+qxA4I6s2zKzF8Qrf6ozYt/+wKBgChyjrr6nTSsIViG+pluXMjNdrsY7cKH7YaF9i50uA5SbwZGwj/JM0ZgppTQCJHBqhdwfXDmLxeH1BI/g+pQ8tICef3L/zGUVNPAr1Yy0mgWfSOrzE2J388iuserz9Zm2p1EWB8tZ0krlO6Fqp5dbs73k7fCZT92iZo0uum+rggBAoGBAIO74oQpY3lY6OgvjZJAHcr9RiGPB7qQ+zmROxCqzFXdtNZ5sHb1Jdg+IsBcI7ZadFT28x/ENNpfO78mC+1j56mmN9BUpORBIcCaEzp2KYgP7e4FnWTluMvFV/2yBMlCfUEYHPfPK1TfD05oBJY4lTMD2qsT5RhS1ipFqagZgQ1X";
String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo9gmNSz8l/eH4Uem6hqNoK1t91Gu5evoooJKzZraxPYW9AyJwH8Mxbag3qVaRSalz+OIHHVqszUxah98DbvaxJbpY9tB2zaLSvxhXM4U5iGFR3TqdqqvxsXsfiu+a0JHauuGYtuuNmUwR7ZFVub8Ma/YBCHfELPvl1TcX8MgMlHqw3NQqcEXZZO8Ziyxel7CqgHDx5dFn1meHDFWTajbWN/0TWSzvYAOKrlrS3LjjwbDzTr3BQzH84TLbLkBaMVGEUkJZUrVVkiN3XEVBpBUs5Cv5INN4L+UJ4kDy1u6LICzUVSSrQmHItuA+YiFHZ/WVJ18jISn0W7YZVyRqTo2sQIDAQAB";
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi-sandbox.dl.alipaydev.com/gateway.do");
alipayConfig.setAppId("2021004144652242");
alipayConfig.setPrivateKey(privateKey);
alipayConfig.setFormat("json");
alipayConfig.setAlipayPublicKey(alipayPublicKey);
alipayConfig.setCharset("UTF-8");
alipayConfig.setSignType("RSA2");
return alipayConfig;
}
}

View File

@ -123,8 +123,17 @@ public class AppointmentsController {
ThrowUtils.throwIf(id < 0, ErrorCode.NULL_ERROR);
QueryWrapper<Appointments> queryWrapper = new QueryWrapper<>();
List<Appointments> appointmentsList = appointmentsService.queryAppointments(queryWrapper);
queryWrapper.eq("businessId", id);
List<Appointments> appointmentsList = appointmentsService.list(queryWrapper);
return ResultUtils.success(appointmentsList);
}
@ApiOperation(value = "根据Id查询预约信息")
@GetMapping("/getAppointments")
public BaseResponse<Appointments> queryByIdAppointments(@RequestParam Long appointmentsId){
ThrowUtils.throwIf(appointmentsId < 0, ErrorCode.PARAMS_ERROR);
Appointments appointments = appointmentsService.getById(appointmentsId);
return ResultUtils.success(appointments);
}
}

View File

@ -11,11 +11,14 @@ import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.domain.Business;
import com.cj.jiaqingjiayi.model.domain.BusinessAuth;
import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.BusinessDTO;
import com.cj.jiaqingjiayi.model.request.business.BusinessAddRequest;
import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest;
import com.cj.jiaqingjiayi.model.request.business.BusinessUpdateRequest;
import com.cj.jiaqingjiayi.model.vo.BusinessAdminVO;
import com.cj.jiaqingjiayi.model.vo.BusinessVO;
import com.cj.jiaqingjiayi.model.vo.CartDTO;
import com.cj.jiaqingjiayi.model.vo.CartVO;
import com.cj.jiaqingjiayi.service.BusinessAuthService;
import com.cj.jiaqingjiayi.service.BusinessService;
import com.cj.jiaqingjiayi.service.UserService;
@ -30,6 +33,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import static com.cj.jiaqingjiayi.contant.UserConstant.USER_SALT;
@ -105,12 +109,11 @@ public class BusinessController {
Business business = new Business();
// BeanUtils.copyProperties(businessUpdateRequest, business);
BeanCopyUtils.copyPropertiesIgnoreEmpty(businessUpdateRequest, business);
//更新不添加 只需要判断修改符不符合逻辑
businessService.validBusiness(business, false);
boolean updateById = businessService.updateById(business);
boolean updateById = businessService.updateBusiness(business);
ThrowUtils.throwIf(!updateById, ErrorCode.OPERATION_ERROR);
@ -160,9 +163,20 @@ public class BusinessController {
*/
@ApiOperation(value = "查询所有商家")
@PostMapping("/list")
public BaseResponse<List<Business>> listBusinessAll(){
public BaseResponse<List<BusinessDTO>> listBusinessAll(){
List<Business> businessList = businessService.list();
return new BaseResponse<>(0,businessList,"查询成功");
List<BusinessDTO> businessDTOS = new ArrayList<>();
for (Business business : businessList) {
QueryWrapper<BusinessAuth> queryWrapper = new QueryWrapper<BusinessAuth>();
queryWrapper.eq("businessId", business.getId());
BusinessAuth one = businessAuthService.getOne(queryWrapper);
BusinessDTO businessDTO = new BusinessDTO();
businessDTO.setBusinessAuth(one);
businessDTO.setBusiness(business);
businessDTOS.add(businessDTO);
}
return new BaseResponse<>(0,businessDTOS,"查询成功");
}
/**

View File

@ -181,7 +181,7 @@ public class CartController {
List<Cart> cartList = cartService.list(wrapper);
List<CartVO> cartVOList = this.getCartVOList(cartList);
// 遍历 UserRating 列表根据 userId 查询 User 信息
for (CartVO cartVO : cartVOList) {
Business business = businessService.getById(cartVO.getBusinessId());
CartDTO cartDTO = new CartDTO();

View File

@ -7,6 +7,7 @@ import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.common.ResultUtils;
import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.CommonRequest;
import com.cj.jiaqingjiayi.model.domain.*;
import com.cj.jiaqingjiayi.model.request.manicurist.*;
import com.cj.jiaqingjiayi.model.vo.ManicuristVO;
@ -16,6 +17,7 @@ import com.cj.jiaqingjiayi.utils.BeanCopyUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
@ -52,7 +54,7 @@ public class ManicuristController {
@Transactional(rollbackFor = Exception.class)
public BaseResponse<Long> AdminAddManicurist(@RequestBody AdminManicuristAddRequest adminManicuristAddRequest, HttpServletRequest request) {
//判断是否为管理员
userService.isAdmin(request);
// userService.isAdmin(request);
ThrowUtils.throwIf(adminManicuristAddRequest == null, ErrorCode.PARAMS_ERROR);
@ -111,7 +113,7 @@ public class ManicuristController {
@Transactional(rollbackFor = Exception.class)
public BaseResponse<Boolean> DeleteManicurist(long id, HttpServletRequest request){
//判断是否为管理员
userService.isAdmin(request);
// userService.isAdmin(request);
manicuristService.deleteMan(id);
return ResultUtils.success(true);
@ -138,10 +140,15 @@ public class ManicuristController {
}
BeanCopyUtils.copyPropertiesIgnoreEmpty(manicuristUpdateRequest, manicurist);
//校验一下
manicuristService.validManicurist(manicurist, false);
if (manicuristUpdateRequest.getAuditStatus() == 1){
Manicurist serviceById = manicuristService.getById(manicurist);
User user = userService.getById(serviceById.getUserId());
user.setUserRole(3);
}
boolean result = manicuristService.updateById(manicurist);
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
return ResultUtils.success(true, "修改成功");
@ -194,10 +201,15 @@ public class ManicuristController {
*/
@ApiOperation(value = "查询全部美甲师")
@PostMapping("/queryAll")
public BaseResponse<List<Manicurist>> QueryAllManicurist(HttpServletRequest request){
public BaseResponse<List<Manicurist>> QueryAllManicurist(@RequestBody CommonRequest commonRequest, HttpServletRequest request){
// userService.isAdmin(request);
List<Manicurist> manicuristList = manicuristService.list();
Long businessId = commonRequest.getId();
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(ObjectUtils.isNotEmpty(businessId),"businessId", businessId);
List<Manicurist> manicuristList = manicuristService.list(queryWrapper);
return ResultUtils.success(manicuristList);
}

View File

@ -137,12 +137,12 @@ public class ManicuristSignController {
@ApiOperation(value = "查询签约列表")
@GetMapping("/select")
@Transactional(rollbackFor = Exception.class)
public BaseResponse<List<ManicuristsignVO>> selectManicuristSign(@RequestParam String businessName){
public BaseResponse<List<ManicuristsignVO>> selectManicuristSign(@RequestParam Long businessId){
ThrowUtils.throwIf(businessName == null , ErrorCode.PARAMS_ERROR);
ThrowUtils.throwIf(businessId < 0 , ErrorCode.PARAMS_ERROR);
QueryWrapper<Manicuristsign> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("businessName", businessName);
queryWrapper.eq("businessId", businessId);
List<Manicuristsign> manicuristsignList = manicuristsignService.list(queryWrapper);
List<ManicuristsignVO> manicuristsignVOList = manicuristsignService.getManicuristsignVO(manicuristsignList);

View File

@ -2,24 +2,30 @@ package com.cj.jiaqingjiayi.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cj.jiaqingjiayi.common.BaseResponse;
import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.common.ResultUtils;
import com.cj.jiaqingjiayi.contant.CommonConstant;
import com.cj.jiaqingjiayi.contant.UserConstant;
import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.CommonRequest;
import com.cj.jiaqingjiayi.model.domain.*;
import com.cj.jiaqingjiayi.model.request.order.*;
import com.cj.jiaqingjiayi.model.vo.OrdersExcelVO;
import com.cj.jiaqingjiayi.model.vo.OrdersVO;
import com.cj.jiaqingjiayi.service.*;
import com.cj.jiaqingjiayi.utils.ExcelUtils;
import com.cj.jiaqingjiayi.utils.SqlUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
@ -28,10 +34,17 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -53,6 +66,9 @@ public class OrdersController {
@Resource
private BusinessService businessService;
@Resource
private AppointmentsService appointmentsService;
@Resource
private OrderItemsService orderItemsService;
@ -71,6 +87,44 @@ public class OrdersController {
if (orderAddRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
//校验是否登录
// User loginUser = userService.getLoginUser(request);
String appointmentTime = orderAddRequest.getAppointmentTime();
Long id = null;
if (ObjectUtils.isNotEmpty(appointmentTime)) {
LocalDateTime dateTime;
// 判断 appointmentTime 是否是 HH:mm 格式
if (appointmentTime.matches("\\d{2}:\\d{2}")) {
// 只有时间没有日期补上当前日期
LocalDate today = LocalDate.now();
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
LocalTime time = LocalTime.parse(appointmentTime, timeFormatter);
dateTime = LocalDateTime.of(today, time);
} else {
// 传入的是完整格式 yyyy-MM-dd HH:mm直接解析
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
dateTime = LocalDateTime.parse(appointmentTime, formatter);
}
// 转换成 Date 类型
Date date1 = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
Appointments appointments = new Appointments();
appointments.setAppointmentTime(date1);
BeanUtils.copyProperties(orderAddRequest, appointments);
appointments.setUserId(appointments.getUserId());
appointmentsService.valid(appointments);
// 返回预约号
id = appointmentsService.addAppointments(appointments);
ThrowUtils.throwIf(id < 0, ErrorCode.PARAMS_ERROR, "预约失败");
}
// 提取订单
Orders orders = new Orders();
// User loginUser = userService.getLoginUser(request);
@ -93,6 +147,7 @@ public class OrdersController {
return orderItems;
}).toList();
// 创建订单
orders.setAppointmentId(id);
long orderId = ordersService.addOrder(orders, orderItemsList);
return ResultUtils.success(orderId, "订单创建成功");
}
@ -193,14 +248,14 @@ public class OrdersController {
OrderQueryRequest orderQueryRequest = new OrderQueryRequest();
BeanUtils.copyProperties(myOrderQueryRequest, orderQueryRequest);
QueryWrapper<Orders> queryWrapper = ordersService.getQueryWrapper(orderQueryRequest);
if (userRole.equals(UserConstant.BUSINESS_ROLE)) {
// 商家获取订单
Business loginBusiness = businessService.getLoginBusiness(request);
queryWrapper.eq("businessId", loginBusiness.getId());
} else {
// 用户获取订单
queryWrapper.eq("userId", myOrderQueryRequest.getUserId());
}
// if (userRole.equals(UserConstant.BUSINESS_ROLE)) {
// // 商家获取订单
// Business loginBusiness = businessService.getLoginBusiness(request);
// queryWrapper.eq("businessId", loginBusiness.getId());
// } else {
// // 用户获取订单
// queryWrapper.eq("userId", myOrderQueryRequest.getUserId());
// }
Page<Orders> ordersPage = ordersService.page(new Page<>(current, size),
queryWrapper);
Page<OrdersVO> ordersVOPage = new Page<>(current, size, ordersPage.getTotal());
@ -389,7 +444,7 @@ public class OrdersController {
// 判断订单是否已被抢
if (orders == null || orders.getManicuristId() != null) {
return ResultUtils.success(false); // 订单已经被抢或不存在
return ResultUtils.success(false, "该订单已被抢"); // 订单已经被抢或不存在
}
// 更新订单的状态
@ -407,6 +462,44 @@ public class OrdersController {
return ResultUtils.success(true);
}
@PostMapping("/download")
public void download(@RequestBody OrderQueryRequest orderQueryRequest, HttpServletResponse response) throws IOException {
String startTime = orderQueryRequest.getStartTime();
String endTime = orderQueryRequest.getEndTime();
Long businessId = orderQueryRequest.getBusinessId();
String sortOrder = orderQueryRequest.getSortOrder();
String sortField = orderQueryRequest.getSortField();
// 获取数据
QueryWrapper<Orders> wrapper = new QueryWrapper<>();
wrapper.ge(StringUtils.isNotBlank(startTime), "createTime", startTime);
wrapper.le(StringUtils.isNotBlank(endTime), "createTime", endTime);
wrapper.eq("businessId", businessId).and(item -> item.eq("paymentStatus", 1).or().eq("paymentStatus", 2));
wrapper.orderBy(SqlUtils.validSortField(sortField), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
sortField);
List<Orders> ordersList = ordersService.list(wrapper);
List<OrdersExcelVO> ordersExcelVOList = ordersList.stream().map(item -> {
OrdersExcelVO ordersExcelVO = new OrdersExcelVO();
BeanUtils.copyProperties(item, ordersExcelVO);
//改变订单支付状态
if (item.getPaymentStatus() == 1) {
ordersExcelVO.setState("已完成");
} else if (item.getPaymentStatus() == 2) {
ordersExcelVO.setState("已退款");
}
// Date转字符串
ordersExcelVO.setCreateTime(ExcelUtils.dateToString(item.getCreateTime()));
return ordersExcelVO;
}).collect(Collectors.toList());
// 设置导出名称
ExcelUtils.setExcelResponseProp(response, "订单信息");
// 获取输出流名称
OutputStream outputStream = response.getOutputStream();
// 这里 需要指定写用哪个class去写然后写到第一个sheet名字为模板 然后文件流会自动关闭
EasyExcel.write(outputStream, OrdersExcelVO.class) // 对应实体类
.sheet("订单数据") // sheet页名称
.doWrite(ordersExcelVOList); // 导出的数据集合
}
}

View File

@ -7,14 +7,17 @@ import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.common.ResultUtils;
import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.mapper.UserMapper;
import com.cj.jiaqingjiayi.model.LoginUserDTO;
import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.user.*;
import com.cj.jiaqingjiayi.model.vo.LoginUserVO;
import com.cj.jiaqingjiayi.service.UserService;
import com.cj.jiaqingjiayi.utils.BeanCopyUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.jdbc.Null;
import org.springframework.beans.BeanUtils;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*;
@ -37,7 +40,6 @@ public class UserController {
@Resource
private UserService userService;
/**
* 用户注册请求接口
*
@ -69,7 +71,7 @@ public class UserController {
*/
@ApiOperation(value = "用户登录")
@PostMapping("/login")
public BaseResponse<LoginUserVO> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
public BaseResponse<LoginUserDTO> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
if (userLoginRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空");
}
@ -81,8 +83,8 @@ public class UserController {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空");
}
LoginUserVO loginUserVO = userService.userLogin(userAccount, userPassword, request);
return ResultUtils.success(loginUserVO);
LoginUserDTO loginUserDTO = userService.userLogin(userAccount, userPassword, request);
return ResultUtils.success(loginUserDTO);
}
/**
@ -255,9 +257,9 @@ public class UserController {
@PostMapping("/update")
public BaseResponse<Boolean> updateUser(@RequestBody UserUpdateRequest userUpdateRequest, HttpServletRequest request){
//判断是否为管理员
userService.isAdmin(request);
// userService.isAdmin(request);
User user = new User();
BeanUtils.copyProperties(userUpdateRequest, user);
BeanCopyUtils.copyPropertiesIgnoreEmpty(userUpdateRequest, user);
boolean res = userService.updateById(user);
if(!res){
throw new BusinessException(ErrorCode.PARAMS_ERROR, "该用户不存在");
@ -278,10 +280,10 @@ public class UserController {
if(userUpdateMyRequest == null){
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
User logingUser = userService.getLoginUser(request);
// User logingUser = userService.getLoginUser(request);
User user = new User();
BeanUtils.copyProperties(userUpdateMyRequest, user);
user.setId(logingUser.getId());
BeanCopyUtils.copyPropertiesIgnoreEmpty(userUpdateMyRequest,user);
boolean result = userService.updateById(user);
if(!result){
throw new BusinessException(ErrorCode.PARAMS_ERROR, "操作失败");

View File

@ -0,0 +1,13 @@
package com.cj.jiaqingjiayi.model;
import com.cj.jiaqingjiayi.model.domain.Business;
import com.cj.jiaqingjiayi.model.vo.LoginUserVO;
import lombok.Data;
@Data
public class LoginUserDTO {
LoginUserVO loginUserVO;
Business business;
}

View File

@ -59,6 +59,11 @@ public class Appointments implements Serializable {
*/
private Date appointmentTime;
/**
* 预约详细地址
*/
private String appointmentAddress;
/**
* 服务方式0 - 线上, 1 - 到店
*/

View File

@ -36,6 +36,11 @@ public class Manicuristsign implements Serializable {
*/
private String businessName;
/**
* 商家id
*/
private Long businessId;
/**
* 联系电话
*/

View File

@ -26,7 +26,7 @@ public class OrderItems implements Serializable {
private Long orderId;
/**
* 商品ID美甲款式
* 商品ID
*/
private Long commoditiesId;

View File

@ -0,0 +1,13 @@
package com.cj.jiaqingjiayi.model.request;
import com.cj.jiaqingjiayi.model.domain.Business;
import com.cj.jiaqingjiayi.model.domain.BusinessAuth;
import lombok.Data;
@Data
public class BusinessDTO {
private Business business;
private BusinessAuth businessAuth;
}

View File

@ -0,0 +1,12 @@
package com.cj.jiaqingjiayi.model.request;
import com.cj.jiaqingjiayi.model.domain.Manicurist;
import com.cj.jiaqingjiayi.model.vo.UserVO;
import lombok.Data;
@Data
public class UserDTO {
private UserVO userVO;
private Manicurist manicurist;
}

View File

@ -43,6 +43,11 @@ public class ManicuristUpdateRequest implements Serializable {
*/
private String email;
/**
* 美甲师状态 0 表示正常 1 表示禁用
*/
private Long manStatus;
/**
* 美甲师入职日期
*/

View File

@ -19,6 +19,11 @@ public class ManicuristSignAddRequest {
*/
private Long manicuristId;
/**
* 店铺Id
*/
private Long businessId;
/**
* 门店名称
*/

View File

@ -1,5 +1,7 @@
package com.cj.jiaqingjiayi.model.request.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serial;
@ -58,6 +60,37 @@ public class OrderAddRequest implements Serializable {
*/
private List<OrderItemsAddRequest> orderItemsAddRequest;
/**
* 预约ID
*/
// @TableId(type = IdType.AUTO)
// private Long id;
/**
* 商家名
*/
private String businessName;
/**
* 美甲师ID, 如果为空到店分配
*/
private Long manicuristId;
/**
* 美甲师名
*/
private String manicuristName;
/**
* 预约时间
*/
private String appointmentTime;
/**
* 预约详细地址
*/
private String appointmentAddress;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -29,6 +29,11 @@ public class OrderQueryRequest extends PageRequest implements Serializable {
*/
private Long businessId;
/**
* 美甲师id
*/
private Long manicuristId;
/**
* 订单号
*/

View File

@ -9,12 +9,14 @@ import java.io.Serializable;
public class UserUpdateMyRequest implements Serializable {
private static final long serialVersionUID = 1864770371473794809L;
private Long id;
/**
* 用户名
*/
private String username;
/**
* 用户头像
*/

View File

@ -22,7 +22,7 @@ public class AppointmentsVO {
/**
* 用户姓名
*/
private String username;
private String userName;
/**
* 手机号
@ -54,6 +54,11 @@ public class AppointmentsVO {
*/
private Date appointmentTime;
/**
* 预约详细地址
*/
private String appointmentAddress;
/**
* 服务方式0 - 线上, 1 - 到店
*/

View File

@ -0,0 +1,54 @@
package com.cj.jiaqingjiayi.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.math.BigDecimal;
/**
* Excel订单信息导出
*
* @author ASUS
*/
@Data
public class OrdersExcelVO {
/**
* 订单编号
*/
@ColumnWidth(20)
@NumberFormat("#")
@ExcelProperty(value = "订单编号", index = 0)
private Long id;
/**
* 下单时间
*/
@ColumnWidth(20)
@ExcelProperty(value = "下单时间", index = 1)
private String createTime;
/**
* 手机号
*/
@ColumnWidth(20)
@ExcelProperty(value = "手机号", index = 2)
private String phone;
/**
* 支付状态
*/
@ExcelProperty(value = "支付状态", index = 3)
private String state;
/**
* 订单金额
*/
@NumberFormat("0.00")
@ExcelProperty(value = "订单金额")
private BigDecimal totalPrice;
}

View File

@ -1,5 +1,6 @@
package com.cj.jiaqingjiayi.model.vo;
import com.cj.jiaqingjiayi.model.domain.Manicurist;
import com.cj.jiaqingjiayi.model.domain.OrderItems;
import lombok.Data;
@ -44,6 +45,11 @@ public class OrdersVO implements Serializable {
*/
private Long businessId;
/**
* 美甲师信息
*/
private ManicuristVO manicuristVO;
/**
* 商家信息
*/

View File

@ -69,5 +69,5 @@ public class UserVO implements Serializable {
/**
* 用户角色 0 - 普通用户 1 - 管理员 2 - 商家
*/
private String userRole;
private Integer userRole;
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.cj.jiaqingjiayi.model.domain.BusinessAuth;
import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest;
import com.cj.jiaqingjiayi.model.request.business.BusinessUpdateRequest;
import com.cj.jiaqingjiayi.model.vo.BusinessVO;
import javax.servlet.http.HttpServletRequest;
@ -58,4 +59,5 @@ public interface BusinessService extends IService<Business> {
*/
List<BusinessVO> findAllBusiness();
boolean updateBusiness(Business newBusiness);
}

View File

@ -2,6 +2,7 @@ package com.cj.jiaqingjiayi.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cj.jiaqingjiayi.model.LoginUserDTO;
import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.user.UserSearchRequest;
import com.cj.jiaqingjiayi.model.request.user.UserUpdatePasswordRequest;
@ -31,7 +32,7 @@ public interface UserService extends IService<User> {
* @param request 返回请求
* @return 脱敏后的用户信息
*/
LoginUserVO userLogin(String userAccount, String userPassword, HttpServletRequest request);
LoginUserDTO userLogin(String userAccount, String userPassword, HttpServletRequest request);
/**
* 用户注销

View File

@ -7,6 +7,7 @@ import com.alipay.api.domain.AlipayTradeCreateModel;
import com.alipay.api.request.AlipayTradeCreateRequest;
import com.alipay.api.response.AlipayTradeCreateResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.config.AlipayClients;
import com.cj.jiaqingjiayi.exception.BusinessException;
@ -23,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -47,8 +49,6 @@ public class AlipayServiceImpl implements AliPayService {
//创建实体类
AlipayTradeCreateModel model = new AlipayTradeCreateModel();
//请求参数 沙箱内部参数
String outTradeNo = UniqueNumberGenerator.generateNumber();
Orders order = ordersService.getById(orderId);
@ -72,12 +72,12 @@ public class AlipayServiceImpl implements AliPayService {
model.setTotalAmount(String.valueOf(amount));
model.setSubject(subject);
model.setProductCode("JSAPI_PAY");
model.setBuyerId("2088722034659383");
model.setBuyerId("2088722038161604");
model.setOpAppId("2021004144652242");
///回调地址
aliRequest.setNotifyUrl("http://39.101.78.35:1107/api/Alipay/notifyUrl");
aliRequest.setBizModel(model);
///回调地址
// aliRequest.setNotifyUrl("http://39.101.78.35:1107/api/Alipay/notifyUrl");
String trade_no = null;
try {
AlipayTradeCreateResponse response = alipayClient.execute(aliRequest);
@ -88,6 +88,11 @@ public class AlipayServiceImpl implements AliPayService {
} catch (AlipayApiException e) {
e.printStackTrace();
}
order.setPaymentStatus(1);
boolean update1 = ordersService.updateById(order);
ThrowUtils.throwIf(!update1, ErrorCode.OPERATION_ERROR, "修改订单状态失败");
return trade_no;
}
}

View File

@ -2,6 +2,7 @@ package com.cj.jiaqingjiayi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cj.jiaqingjiayi.common.ErrorCode;
@ -10,9 +11,11 @@ import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.domain.*;
import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest;
import com.cj.jiaqingjiayi.model.request.business.BusinessUpdateRequest;
import com.cj.jiaqingjiayi.model.vo.BusinessVO;
import com.cj.jiaqingjiayi.service.*;
import com.cj.jiaqingjiayi.mapper.BusinessMapper;
import com.cj.jiaqingjiayi.utils.BeanCopyUtils;
import com.cj.jiaqingjiayi.utils.RegexUtils;
import com.cj.jiaqingjiayi.utils.SqlUtils;
import org.apache.commons.lang3.ObjectUtils;
@ -50,6 +53,9 @@ public class BusinessServiceImpl extends ServiceImpl<BusinessMapper, Business>
@Resource
private BusinessAuthService businessAuthService;
@Resource
private ManicuristsignService manicuristsignService;
@Override
@Transactional(rollbackFor = Exception.class)
public synchronized void addBusiness(User user, Business business, BusinessAuth businessAuth) {
@ -115,12 +121,12 @@ public class BusinessServiceImpl extends ServiceImpl<BusinessMapper, Business>
}
// 有参数可以校验参数 保证商家名字唯一
if (StringUtils.isNotBlank(businessName)) {
QueryWrapper<Business> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("businessName", businessName);
long count = this.count(queryWrapper);
ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "门店名称重复");
}
// if (StringUtils.isNotBlank(businessName)) {
// QueryWrapper<Business> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("businessName", businessName);
// long count = this.count(queryWrapper);
// ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "门店名称重复");
// }
//校验手机号格式
if (StringUtils.isNotBlank(businessPhone)) {
@ -240,6 +246,21 @@ public class BusinessServiceImpl extends ServiceImpl<BusinessMapper, Business>
return businessVOs;
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateBusiness(Business newBusiness) {
if (ObjectUtils.isNotEmpty(newBusiness.getBusinessName())){
manicuristsignService.update(new LambdaUpdateWrapper<Manicuristsign>()
.eq(Manicuristsign::getBusinessId, newBusiness.getId())
.set(Manicuristsign::getBusinessName, newBusiness.getBusinessName()));
}
Business business = new Business();
BeanCopyUtils.copyPropertiesIgnoreEmpty(newBusiness, business);
return this.updateById(business);
}
}

View File

@ -147,6 +147,7 @@ public class ManicuristServiceImpl extends ServiceImpl<ManicuristMapper, Manicur
Long id = manicurist.getId();
String manicuristName = manicurist.getManicuristName();
String manicuristPhone = manicurist.getPhone();
Long userId = manicurist.getUserId();
Integer gender = manicurist.getGender();
//只在添加时严格校验 保证商家信息是全的
@ -154,6 +155,10 @@ public class ManicuristServiceImpl extends ServiceImpl<ManicuristMapper, Manicur
if (StringUtils.isAnyBlank(manicuristName, manicuristPhone) || gender == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "信息不全");
}
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("userId", userId);
Manicurist userIdMan = this.getOne(queryWrapper);
ThrowUtils.throwIf(userIdMan != null, ErrorCode.PARAMS_ERROR,"该用户已经申请了美甲师!");
}
if(!add){
@ -161,12 +166,12 @@ public class ManicuristServiceImpl extends ServiceImpl<ManicuristMapper, Manicur
ThrowUtils.throwIf(byId == null, ErrorCode.NULL_ERROR, "美甲师不存在");
}
if(StringUtils.isNotBlank(manicuristName)){
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("manicuristName", manicuristName);
long count = this.count(queryWrapper);
ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "美甲师名称重复");
}
// if(StringUtils.isNotBlank(manicuristName)){
// QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("manicuristName", manicuristName);
// long count = this.count(queryWrapper);
// ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "美甲师名称重复");
// }
//校验手机号格式
if (StringUtils.isNotBlank(manicuristPhone)) {

View File

@ -9,13 +9,16 @@ import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.contant.CommonConstant;
import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.model.domain.Business;
import com.cj.jiaqingjiayi.model.domain.Manicurist;
import com.cj.jiaqingjiayi.model.domain.OrderItems;
import com.cj.jiaqingjiayi.model.domain.Orders;
import com.cj.jiaqingjiayi.model.request.order.OrderQueryRequest;
import com.cj.jiaqingjiayi.model.vo.BusinessVO;
import com.cj.jiaqingjiayi.model.vo.ManicuristVO;
import com.cj.jiaqingjiayi.model.vo.OrderItemsVO;
import com.cj.jiaqingjiayi.model.vo.OrdersVO;
import com.cj.jiaqingjiayi.service.BusinessService;
import com.cj.jiaqingjiayi.service.ManicuristService;
import com.cj.jiaqingjiayi.service.OrderItemsService;
import com.cj.jiaqingjiayi.service.OrdersService;
import com.cj.jiaqingjiayi.mapper.OrdersMapper;
@ -52,6 +55,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
@Resource
private BusinessService businessService;
@Resource
private ManicuristService manicuristService;
@Transactional(rollbackFor = Exception.class)
@Override
@ -119,6 +125,14 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
BusinessVO businessVO = businessService.getBusinessVO(business);
ordersVO.setBusinessVO(businessVO);
Long manicuristId = orders.getManicuristId();
Manicurist manicurist = null;
if (manicuristId != null && manicuristId > 0) {
manicurist = manicuristService.getById(manicuristId);
}
ManicuristVO manicuristVO = manicuristService.getManicuristVO(manicurist);
ordersVO.setManicuristVO(manicuristVO);
// 关联查询订单详情信息
Long orderId = orders.getId();
QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
@ -165,6 +179,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
Long id = orderQueryRequest.getId();
Long userId = orderQueryRequest.getUserId();
Long businessId = orderQueryRequest.getBusinessId();
Long manicuristId = orderQueryRequest.getManicuristId();
String orderNumber = orderQueryRequest.getOrderNumber();
Integer claimStatus = orderQueryRequest.getClaimStatus();
Integer state = orderQueryRequest.getPaymentStatus();
@ -172,13 +187,16 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
String endTime = orderQueryRequest.getEndTime();
String sortField = orderQueryRequest.getSortField();
String sortOrder = orderQueryRequest.getSortOrder();
Integer serviceMode = orderQueryRequest.getServiceMode();
QueryWrapper<Orders> queryWrapper = new QueryWrapper<>();
queryWrapper.like(ObjectUtils.isNotEmpty(id), "id", id);
queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id);
queryWrapper.eq(ObjectUtils.isNotEmpty(userId), "userId", userId);
queryWrapper.eq(ObjectUtils.isNotEmpty(businessId), "businessId", businessId);
queryWrapper.eq(ObjectUtils.isNotEmpty(manicuristId), "manicuristId", manicuristId);
queryWrapper.eq(ObjectUtils.isNotEmpty(orderNumber), "orderNumber", orderNumber);
queryWrapper.eq(ObjectUtils.isNotEmpty(state), "paymentStatus", state);
queryWrapper.ge(claimStatus != null, "claimStatus", claimStatus);
queryWrapper.eq(ObjectUtils.isNotEmpty(serviceMode), "serviceMode", serviceMode);
queryWrapper.eq(claimStatus != null, "claimStatus", claimStatus);
queryWrapper.ge(StringUtils.isNotBlank(startTime), "createTime", startTime);
queryWrapper.le(StringUtils.isNotBlank(endTime), "createTime", endTime);
queryWrapper.orderBy(SqlUtils.validSortField(sortField), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),

View File

@ -1,19 +1,25 @@
package com.cj.jiaqingjiayi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.mapper.BusinessMapper;
import com.cj.jiaqingjiayi.mapper.UserMapper;
import com.cj.jiaqingjiayi.model.LoginUserDTO;
import com.cj.jiaqingjiayi.model.domain.Business;
import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.user.UserSearchRequest;
import com.cj.jiaqingjiayi.model.request.user.UserUpdatePasswordRequest;
import com.cj.jiaqingjiayi.model.vo.LoginUserVO;
import com.cj.jiaqingjiayi.service.BusinessService;
import com.cj.jiaqingjiayi.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
@ -35,6 +41,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
@Resource
private UserMapper userMapper;
@Resource
private BusinessMapper businessMapper;
/**
* 盐值 对密码进行混淆加密
*/
@ -109,7 +119,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
*/
@Override
public LoginUserVO userLogin(String userAccount, String userPassword, HttpServletRequest request) {
public LoginUserDTO userLogin(String userAccount, String userPassword, HttpServletRequest request) {
//非空
if (StringUtils.isAllBlank(userAccount, userPassword)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "参数为空");
@ -123,7 +133,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
}
//正则表达式看账户包不包含特殊字符
String validPattern = "[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
String validPattern = "[ `~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);
@ -138,14 +148,23 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
queryWrapper.eq("userPassword", encodePassword);
User user = userMapper.selectOne(queryWrapper);
//用户不存在
if (user == null) {
if (user == null || !userAccount.equals(user.getUserAccount()) || !encodePassword.equals(user.getUserPassword())) {
log.info("user login failed, userAccount Cannot match userPassword");
System.out.println(userAccount + "------" + user.getUserAccount());
throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户账号或密码有误!");
}
LoginUserDTO loginUserDTO = new LoginUserDTO();
LoginUserVO loginUserVO = this.getLoginUserVO(user);
loginUserDTO.setLoginUserVO(loginUserVO);
LambdaQueryWrapper<Business> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Business::getUserId, user.getId());
Business business = businessMapper.selectOne(lambdaQueryWrapper);
loginUserDTO.setBusiness(business);
//用户登陆成功
request.getSession().setAttribute(USER_LOGIN_STATE, user);
return this.getLoginUserVO(user);
return loginUserDTO;
}
/**

View File

@ -14,6 +14,7 @@
<result property="appointmentTime" column="appointmentTime" jdbcType="TIMESTAMP"/>
<result property="serviceMode" column="serviceMode" jdbcType="TINYINT"/>
<result property="notes" column="notes" jdbcType="VARCHAR"/>
<result property="appointmentAddress" column="appointmentAddress" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/>
<result property="orderId" column="orderId" jdbcType="BIGINT"/>
<result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
@ -29,6 +30,6 @@
appointmentTime,serviceMode,
notes,status,createTime,
updateTime,isDelete,businessName,
manicuristName,orderId
appointmentAddress,manicuristName,orderId
</sql>
</mapper>

View File

@ -8,6 +8,7 @@
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="manicuristId" column="manicuristId" jdbcType="BIGINT"/>
<result property="businessId" column="businessId" jdbcType="BIGINT"/>
<result property="businessName" column="businessName" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="salary" column="salary" jdbcType="DECIMAL"/>
@ -25,6 +26,6 @@
businessName,phone,salary,
signTime,tenure,manicuristLv,
auditStatus,isDelete,createTime,
updateTime
businessId,updateTime
</sql>
</mapper>

View File

@ -14,6 +14,7 @@
<result property="appointmentTime" column="appointmentTime" jdbcType="TIMESTAMP"/>
<result property="serviceMode" column="serviceMode" jdbcType="TINYINT"/>
<result property="notes" column="notes" jdbcType="VARCHAR"/>
<result property="appointmentAddress" column="appointmentAddress" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/>
<result property="orderId" column="orderId" jdbcType="BIGINT"/>
<result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
@ -29,6 +30,6 @@
appointmentTime,serviceMode,
notes,status,createTime,
updateTime,isDelete,businessName,
manicuristName,orderId
appointmentAddress,manicuristName,orderId
</sql>
</mapper>

View File

@ -8,6 +8,7 @@
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="manicuristId" column="manicuristId" jdbcType="BIGINT"/>
<result property="businessId" column="businessId" jdbcType="BIGINT"/>
<result property="businessName" column="businessName" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="salary" column="salary" jdbcType="DECIMAL"/>
@ -25,6 +26,6 @@
businessName,phone,salary,
signTime,tenure,manicuristLv,
auditStatus,isDelete,createTime,
updateTime
businessId,updateTime
</sql>
</mapper>

View File

@ -0,0 +1,3 @@
com\cj\jiaqingjiayi\controller\OrdersController.class
com\cj\jiaqingjiayi\utils\ExcelUtils.class
com\cj\jiaqingjiayi\model\vo\OrdersExcelVO.class

View File

@ -23,7 +23,9 @@ E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\c
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\service\impl\CommoditiesServiceImpl.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\config\CorsConfig.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\config\Knife4jConfig.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\UserDTO.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\user\UserUpdateMyRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\utils\ExcelUtils.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\common\ResultUtils.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\utils\RegexUtils.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\user\UserRegisterRequest.java
@ -41,6 +43,7 @@ E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\c
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\order\OrderItemsAddRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\controller\UserRatingController.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\utils\SqlUtils.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\BusinessDTO.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\specifications\SpecificationsAddRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\AlipayTradeCreateRequest1.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\controller\BusinessController.java
@ -60,6 +63,7 @@ E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\c
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\order\OrderCancelRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\mapper\CollectMapper.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\mapper\ManicuristAuthMapper.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\vo\OrdersExcelVO.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\user\UserDeleteRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\domain\UserRating.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\vo\AttributeVO.java
@ -67,6 +71,7 @@ E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\c
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\CreateAlipayRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\service\CartService.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\order\OrderQueryRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\LoginUserDTO.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\contant\RegexConstant.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\appointments\AppointmentsUpdateRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\domain\Collect.java