修改诺干问题

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> <version>4.13.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.3</version>
</dependency>
<dependency> <dependency>
<groupId>org.aspectj</groupId> <groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId> <artifactId>aspectjtools</artifactId>

View File

@ -2,6 +2,8 @@ create database jqjy;
use jqjy; use jqjy;
show variables like 'lower_case_table_names';
create table user create table user
( (
username varchar(256) null comment '用户昵称', username varchar(256) null comment '用户昵称',
@ -171,23 +173,25 @@ create table if not exists manicurist
INDEX idx_userId (userId) INDEX idx_userId (userId)
) comment ='美甲师表' COLLATE = utf8mb4_unicode_ci; ) comment ='美甲师表' COLLATE = utf8mb4_unicode_ci;
create table if not exists manicuristSign CREATE TABLE IF NOT EXISTS manicuristSign
( (
id BIGINT AUTO_INCREMENT PRIMARY KEY, id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) not null comment '姓名', name VARCHAR(100) NOT NULL COMMENT '姓名',
manicuristId BIGINT NOT NULL COMMENT '美甲师ID关联美甲师表', 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 '联系电话', phone VARCHAR(20) COMMENT '联系电话',
salary DECIMAL(10, 2) comment '期望工资薪资', salary DECIMAL(10, 2) COMMENT '期望工资薪资',
signTime VARCHAR(100) not null comment '签约时长', signTime VARCHAR(100) NOT NULL COMMENT '签约时长',
tenure VARCHAR(100) not null comment '工龄', tenure VARCHAR(100) NOT NULL COMMENT '工龄',
manicuristLv VARCHAR(100) not null comment '美甲师等级', manicuristLv VARCHAR(100) NOT NULL COMMENT '美甲师等级',
auditStatus TINYINT DEFAULT 0 comment '审核状态0-待审核1-审核通过2-审核不通过', auditStatus TINYINT DEFAULT 0 COMMENT '审核状态0-待审核1-审核通过2-审核不通过',
isDelete TINYINT DEFAULT 0 comment '逻辑删除标志0 表示未删除1 表示已删除', isDelete TINYINT DEFAULT 0 COMMENT '逻辑删除标志0 表示未删除1 表示已删除',
createTime DATETIME DEFAULT CURRENT_TIMESTAMP not null comment '记录创建时间', createTime DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间',
updateTime DATETIME DEFAULT CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP 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 CREATE TABLE IF NOT EXISTS manicurist_auth
( (
@ -207,22 +211,23 @@ CREATE TABLE IF NOT EXISTS manicurist_auth
-- 预约表 -- 预约表
CREATE TABLE IF NOT EXISTS appointments CREATE TABLE IF NOT EXISTS appointments
( (
id bigint auto_increment comment '预约ID' primary key, id bigint auto_increment comment '预约ID' primary key,
userId bigint not null comment '用户ID关联用户表', userId bigint not null comment '用户ID关联用户表',
userName varchar(100) not null comment '用户姓名', userName varchar(100) not null comment '用户姓名',
phone varchar(64) not null comment '手机号', phone varchar(64) not null comment '手机号',
businessId bigint not null comment '商家ID关联商家表', businessId bigint not null comment '商家ID关联商家表',
businessName varchar(512) null comment '商家名称', businessName varchar(512) null comment '商家名称',
manicuristId bigint null comment '美甲师ID, 如果为空到店分配', manicuristId bigint null comment '美甲师ID, 如果为空到店分配',
manicuristName varchar(100) null comment '美甲师姓名', manicuristName varchar(100) null comment '美甲师姓名',
appointmentTime datetime not null comment '预约时间', appointmentTime datetime not null comment '预约时间',
serviceMode tinyint default 1 not null comment '服务方式0 - 到店, 1 - 上门)', serviceMode tinyint default 1 not null comment '服务方式0 - 线上, 1 - 到店)',
notes varchar(128) null comment '备注', notes varchar(128) null comment '备注',
status tinyint default 0 not null comment '预约状态0 - 已确认, 1 - 已完成, 2 - 已取消)', status tinyint default 0 not null comment '预约状态0 - 已确认, 1 - 已完成, 2 - 已取消)',
createTime datetime default CURRENT_TIMESTAMP not null comment '创建时间', createTime datetime default CURRENT_TIMESTAMP not null comment '创建时间',
updateTime datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', updateTime datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
isDelete tinyint default 0 not null comment '是否删除', isDelete tinyint default 0 not null comment '是否删除',
orderId bigint null comment '订单ID关联订单表', orderId bigint null comment '订单ID关联订单表',
appointmentAddress varchar(512) null comment '预约地址',
INDEX idx_userId (userId), INDEX idx_userId (userId),
INDEX idx_businessId (businessId), INDEX idx_businessId (businessId),
INDEX idx_manicuristId (manicuristId), 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.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils; import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.mapper.UserMapper; 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.OrderItems;
import com.cj.jiaqingjiayi.model.domain.Orders; import com.cj.jiaqingjiayi.model.domain.Orders;
import com.cj.jiaqingjiayi.model.domain.User; import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.AlipayTradeCreateRequest1; import com.cj.jiaqingjiayi.model.request.AlipayTradeCreateRequest1;
import com.cj.jiaqingjiayi.model.request.CreateAlipayRequest; 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.model.vo.UserVO;
import com.cj.jiaqingjiayi.service.AliPayService; import com.cj.jiaqingjiayi.service.*;
import com.cj.jiaqingjiayi.service.OrderItemsService;
import com.cj.jiaqingjiayi.service.OrdersService;
import com.cj.jiaqingjiayi.service.UserService;
import com.cj.jiaqingjiayi.utils.RandomNumberGenerator; import com.cj.jiaqingjiayi.utils.RandomNumberGenerator;
import com.cj.jiaqingjiayi.utils.UniqueNumberGenerator;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -80,6 +80,9 @@ public class AlipayController {
@Resource @Resource
private OrderItemsService orderItemsService; private OrderItemsService orderItemsService;
@Resource
private ManicuristService manicuristService;
@Resource @Resource
private RandomNumberGenerator randomNumberGenerator; private RandomNumberGenerator randomNumberGenerator;
@ -94,7 +97,7 @@ public class AlipayController {
* @throws AlipayApiException 支付宝api异常 * @throws AlipayApiException 支付宝api异常
*/ */
@GetMapping("/parseCode") @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); AlipayConfig alipayConfig = choiceServer(severId);
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig); AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
@ -111,6 +114,7 @@ public class AlipayController {
User oid = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, response.getOpenId())); User oid = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getOpenId, response.getOpenId()));
UserVO userVO = new UserVO(); UserVO userVO = new UserVO();
UserDTO userDTO = new UserDTO();
if (response1.isSuccess()) { if (response1.isSuccess()) {
if (oid == null) { if (oid == null) {
User user = new User(); User user = new User();
@ -123,17 +127,34 @@ public class AlipayController {
req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE,user); req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE,user);
BeanUtils.copyProperties(user, userVO); BeanUtils.copyProperties(user, userVO);
userVO.setSessionId(req.getSession().getId()); 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); req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE, oid);
BeanUtils.copyProperties(oid, userVO); BeanUtils.copyProperties(oid, userVO);
userVO.setSessionId(req.getSession().getId()); 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); req.getSession().setAttribute(RedisKeyConstant.USER_LOGIN_STATE,oid);
BeanUtils.copyProperties(oid, userVO); BeanUtils.copyProperties(oid, userVO);
userVO.setSessionId(req.getSession().getId()); 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); // User loginUser = userService.getLoginUser(request);
// String miniOpenId = loginUser.getOpenId(); // 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"; // 初始化SDK
AlipayConfig alipayConfig = new AlipayConfig(); AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
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);
User byId = userService.getById(pay.getUserId()); User byId = userService.getById(pay.getUserId());
ThrowUtils.throwIf(byId.getOpenId() == null, ErrorCode.NOT_FOUND_ERROR, "不是小程序用户"); ThrowUtils.throwIf(byId.getOpenId() == null, ErrorCode.NOT_FOUND_ERROR, "不是小程序用户");
@ -175,52 +188,60 @@ public class AlipayController {
} }
@GetMapping("/test/close") @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(); AlipayClients clients = new AlipayClients();
AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();
AlipayTradeCloseModel model = new AlipayTradeCloseModel(); AlipayTradeCloseModel model = new AlipayTradeCloseModel();
//model.setTradeNo(); 这是订单项 //model.setTradeNo(); 这是订单项
//订单项可能会有多个支付单 //订单项可能会有多个支付单
model.setTradeNo(orderNo); model.setTradeNo(out_trade_no);
request.setBizModel(model); 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); AlipayTradeCloseResponse response = clients.alipayClient().execute(request);
//这里应该写进日志 //这里应该写进日志
log.info("订单已取消");
return response.getBody(); return response.getBody();
} }
@GetMapping("/test/refund") @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(); AlipayClients clients = new AlipayClients();
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
AlipayTradeRefundModel model = new AlipayTradeRefundModel(); AlipayTradeRefundModel model = new AlipayTradeRefundModel();
QueryWrapper<Orders> ordersQueryWrapper = new QueryWrapper<>(); QueryWrapper<Orders> ordersQueryWrapper = new QueryWrapper<>();
ordersQueryWrapper.eq("orderNumber", orderNo); ordersQueryWrapper.eq("orderNumber", out_trade_no);
Orders orders = ordersService.getOne(ordersQueryWrapper); Orders orders = ordersService.getOne(ordersQueryWrapper);
model.setOutTradeNo(orderNo); model.setOutTradeNo(out_trade_no);
model.setRefundAmount(String.valueOf(orders.getTotalPrice())); model.setRefundAmount(String.valueOf(orders.getTotalPrice()));
//退款请求单号 要求唯一 需改 //退款请求单号 要求唯一 需改
//model.setOutRequestNo("123"); String number = UniqueNumberGenerator.generateNumber();
model.setOutRequestNo(number);
log.info("outRequestNo:" + number);
request.setBizModel(model); request.setBizModel(model);
request.setNotifyUrl(NOURL); ThrowUtils.throwIf(!orders.getPaymentStatus().equals(1),ErrorCode.SYSTEM_ERROR,"当前订单未支付");
AlipayTradeRefundResponse response = clients.alipayClient().execute(request);
String body = response.getBody();
orders.setPaymentStatus(2); orders.setPaymentStatus(2);
Date date = new Date();
orders.setUpdateTime(date);
boolean update = ordersService.updateById(orders); boolean update = ordersService.updateById(orders);
ThrowUtils.throwIf(!update, ErrorCode.OPERATION_ERROR, "修改订单状态失败"); 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") @GetMapping("/test/query")
@ -235,26 +256,10 @@ public class AlipayController {
request.setNotifyUrl(NOURL); request.setNotifyUrl(NOURL);
AlipayTradeQueryResponse response = clients.alipayClient().execute(request); AlipayTradeQueryResponse response = clients.alipayClient().execute(request);
String body = response.getBody(); return response.getBody();
return body;
} }
// 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") @PostMapping("/notifyUrl")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public synchronized void aliPayNotifyUrl(HttpServletRequest request, HttpServletResponse response) { public synchronized void aliPayNotifyUrl(HttpServletRequest request, HttpServletResponse response) {
@ -350,4 +355,18 @@ public class AlipayController {
} }
return alipayConfig; 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); ThrowUtils.throwIf(id < 0, ErrorCode.NULL_ERROR);
QueryWrapper<Appointments> queryWrapper = new QueryWrapper<>(); 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); 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.Business;
import com.cj.jiaqingjiayi.model.domain.BusinessAuth; import com.cj.jiaqingjiayi.model.domain.BusinessAuth;
import com.cj.jiaqingjiayi.model.domain.User; 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.BusinessAddRequest;
import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest; import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest;
import com.cj.jiaqingjiayi.model.request.business.BusinessUpdateRequest; import com.cj.jiaqingjiayi.model.request.business.BusinessUpdateRequest;
import com.cj.jiaqingjiayi.model.vo.BusinessAdminVO; import com.cj.jiaqingjiayi.model.vo.BusinessAdminVO;
import com.cj.jiaqingjiayi.model.vo.BusinessVO; 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.BusinessAuthService;
import com.cj.jiaqingjiayi.service.BusinessService; import com.cj.jiaqingjiayi.service.BusinessService;
import com.cj.jiaqingjiayi.service.UserService; import com.cj.jiaqingjiayi.service.UserService;
@ -30,6 +33,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.cj.jiaqingjiayi.contant.UserConstant.USER_SALT; import static com.cj.jiaqingjiayi.contant.UserConstant.USER_SALT;
@ -105,12 +109,11 @@ public class BusinessController {
Business business = new Business(); Business business = new Business();
// BeanUtils.copyProperties(businessUpdateRequest, business);
BeanCopyUtils.copyPropertiesIgnoreEmpty(businessUpdateRequest, business); BeanCopyUtils.copyPropertiesIgnoreEmpty(businessUpdateRequest, business);
//更新不添加 只需要判断修改符不符合逻辑 //更新不添加 只需要判断修改符不符合逻辑
businessService.validBusiness(business, false); businessService.validBusiness(business, false);
boolean updateById = businessService.updateById(business); boolean updateById = businessService.updateBusiness(business);
ThrowUtils.throwIf(!updateById, ErrorCode.OPERATION_ERROR); ThrowUtils.throwIf(!updateById, ErrorCode.OPERATION_ERROR);
@ -160,9 +163,20 @@ public class BusinessController {
*/ */
@ApiOperation(value = "查询所有商家") @ApiOperation(value = "查询所有商家")
@PostMapping("/list") @PostMapping("/list")
public BaseResponse<List<Business>> listBusinessAll(){ public BaseResponse<List<BusinessDTO>> listBusinessAll(){
List<Business> businessList = businessService.list(); 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<Cart> cartList = cartService.list(wrapper);
List<CartVO> cartVOList = this.getCartVOList(cartList); List<CartVO> cartVOList = this.getCartVOList(cartList);
// 遍历 UserRating 列表根据 userId 查询 User 信息
for (CartVO cartVO : cartVOList) { for (CartVO cartVO : cartVOList) {
Business business = businessService.getById(cartVO.getBusinessId()); Business business = businessService.getById(cartVO.getBusinessId());
CartDTO cartDTO = new CartDTO(); 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.common.ResultUtils;
import com.cj.jiaqingjiayi.exception.BusinessException; import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils; import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.CommonRequest;
import com.cj.jiaqingjiayi.model.domain.*; import com.cj.jiaqingjiayi.model.domain.*;
import com.cj.jiaqingjiayi.model.request.manicurist.*; import com.cj.jiaqingjiayi.model.request.manicurist.*;
import com.cj.jiaqingjiayi.model.vo.ManicuristVO; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
@ -52,7 +54,7 @@ public class ManicuristController {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BaseResponse<Long> AdminAddManicurist(@RequestBody AdminManicuristAddRequest adminManicuristAddRequest, HttpServletRequest request) { public BaseResponse<Long> AdminAddManicurist(@RequestBody AdminManicuristAddRequest adminManicuristAddRequest, HttpServletRequest request) {
//判断是否为管理员 //判断是否为管理员
userService.isAdmin(request); // userService.isAdmin(request);
ThrowUtils.throwIf(adminManicuristAddRequest == null, ErrorCode.PARAMS_ERROR); ThrowUtils.throwIf(adminManicuristAddRequest == null, ErrorCode.PARAMS_ERROR);
@ -111,7 +113,7 @@ public class ManicuristController {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BaseResponse<Boolean> DeleteManicurist(long id, HttpServletRequest request){ public BaseResponse<Boolean> DeleteManicurist(long id, HttpServletRequest request){
//判断是否为管理员 //判断是否为管理员
userService.isAdmin(request); // userService.isAdmin(request);
manicuristService.deleteMan(id); manicuristService.deleteMan(id);
return ResultUtils.success(true); return ResultUtils.success(true);
@ -138,10 +140,15 @@ public class ManicuristController {
} }
BeanCopyUtils.copyPropertiesIgnoreEmpty(manicuristUpdateRequest, manicurist); BeanCopyUtils.copyPropertiesIgnoreEmpty(manicuristUpdateRequest, manicurist);
//校验一下 //校验一下
manicuristService.validManicurist(manicurist, false); 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); boolean result = manicuristService.updateById(manicurist);
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR); ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
return ResultUtils.success(true, "修改成功"); return ResultUtils.success(true, "修改成功");
@ -194,10 +201,15 @@ public class ManicuristController {
*/ */
@ApiOperation(value = "查询全部美甲师") @ApiOperation(value = "查询全部美甲师")
@PostMapping("/queryAll") @PostMapping("/queryAll")
public BaseResponse<List<Manicurist>> QueryAllManicurist(HttpServletRequest request){ public BaseResponse<List<Manicurist>> QueryAllManicurist(@RequestBody CommonRequest commonRequest, HttpServletRequest request){
// userService.isAdmin(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); return ResultUtils.success(manicuristList);
} }

View File

@ -137,12 +137,12 @@ public class ManicuristSignController {
@ApiOperation(value = "查询签约列表") @ApiOperation(value = "查询签约列表")
@GetMapping("/select") @GetMapping("/select")
@Transactional(rollbackFor = Exception.class) @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<Manicuristsign> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("businessName", businessName); queryWrapper.eq("businessId", businessId);
List<Manicuristsign> manicuristsignList = manicuristsignService.list(queryWrapper); List<Manicuristsign> manicuristsignList = manicuristsignService.list(queryWrapper);
List<ManicuristsignVO> manicuristsignVOList = manicuristsignService.getManicuristsignVO(manicuristsignList); 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cj.jiaqingjiayi.common.BaseResponse; import com.cj.jiaqingjiayi.common.BaseResponse;
import com.cj.jiaqingjiayi.common.ErrorCode; import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.common.ResultUtils; import com.cj.jiaqingjiayi.common.ResultUtils;
import com.cj.jiaqingjiayi.contant.CommonConstant;
import com.cj.jiaqingjiayi.contant.UserConstant; import com.cj.jiaqingjiayi.contant.UserConstant;
import com.cj.jiaqingjiayi.exception.BusinessException; import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils; import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.CommonRequest; import com.cj.jiaqingjiayi.model.CommonRequest;
import com.cj.jiaqingjiayi.model.domain.*; import com.cj.jiaqingjiayi.model.domain.*;
import com.cj.jiaqingjiayi.model.request.order.*; 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.model.vo.OrdersVO;
import com.cj.jiaqingjiayi.service.*; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -28,10 +34,17 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -53,6 +66,9 @@ public class OrdersController {
@Resource @Resource
private BusinessService businessService; private BusinessService businessService;
@Resource
private AppointmentsService appointmentsService;
@Resource @Resource
private OrderItemsService orderItemsService; private OrderItemsService orderItemsService;
@ -71,6 +87,44 @@ public class OrdersController {
if (orderAddRequest == null) { if (orderAddRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR); 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(); Orders orders = new Orders();
// User loginUser = userService.getLoginUser(request); // User loginUser = userService.getLoginUser(request);
@ -93,6 +147,7 @@ public class OrdersController {
return orderItems; return orderItems;
}).toList(); }).toList();
// 创建订单 // 创建订单
orders.setAppointmentId(id);
long orderId = ordersService.addOrder(orders, orderItemsList); long orderId = ordersService.addOrder(orders, orderItemsList);
return ResultUtils.success(orderId, "订单创建成功"); return ResultUtils.success(orderId, "订单创建成功");
} }
@ -193,14 +248,14 @@ public class OrdersController {
OrderQueryRequest orderQueryRequest = new OrderQueryRequest(); OrderQueryRequest orderQueryRequest = new OrderQueryRequest();
BeanUtils.copyProperties(myOrderQueryRequest, orderQueryRequest); BeanUtils.copyProperties(myOrderQueryRequest, orderQueryRequest);
QueryWrapper<Orders> queryWrapper = ordersService.getQueryWrapper(orderQueryRequest); QueryWrapper<Orders> queryWrapper = ordersService.getQueryWrapper(orderQueryRequest);
if (userRole.equals(UserConstant.BUSINESS_ROLE)) { // if (userRole.equals(UserConstant.BUSINESS_ROLE)) {
// 商家获取订单 // // 商家获取订单
Business loginBusiness = businessService.getLoginBusiness(request); // Business loginBusiness = businessService.getLoginBusiness(request);
queryWrapper.eq("businessId", loginBusiness.getId()); // queryWrapper.eq("businessId", loginBusiness.getId());
} else { // } else {
// 用户获取订单 // // 用户获取订单
queryWrapper.eq("userId", myOrderQueryRequest.getUserId()); // queryWrapper.eq("userId", myOrderQueryRequest.getUserId());
} // }
Page<Orders> ordersPage = ordersService.page(new Page<>(current, size), Page<Orders> ordersPage = ordersService.page(new Page<>(current, size),
queryWrapper); queryWrapper);
Page<OrdersVO> ordersVOPage = new Page<>(current, size, ordersPage.getTotal()); Page<OrdersVO> ordersVOPage = new Page<>(current, size, ordersPage.getTotal());
@ -389,7 +444,7 @@ public class OrdersController {
// 判断订单是否已被抢 // 判断订单是否已被抢
if (orders == null || orders.getManicuristId() != null) { 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); 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.common.ResultUtils;
import com.cj.jiaqingjiayi.exception.BusinessException; import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.mapper.UserMapper; import com.cj.jiaqingjiayi.mapper.UserMapper;
import com.cj.jiaqingjiayi.model.LoginUserDTO;
import com.cj.jiaqingjiayi.model.domain.User; import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.user.*; import com.cj.jiaqingjiayi.model.request.user.*;
import com.cj.jiaqingjiayi.model.vo.LoginUserVO; import com.cj.jiaqingjiayi.model.vo.LoginUserVO;
import com.cj.jiaqingjiayi.service.UserService; import com.cj.jiaqingjiayi.service.UserService;
import com.cj.jiaqingjiayi.utils.BeanCopyUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.jdbc.Null;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -37,7 +40,6 @@ public class UserController {
@Resource @Resource
private UserService userService; private UserService userService;
/** /**
* 用户注册请求接口 * 用户注册请求接口
* *
@ -69,7 +71,7 @@ public class UserController {
*/ */
@ApiOperation(value = "用户登录") @ApiOperation(value = "用户登录")
@PostMapping("/login") @PostMapping("/login")
public BaseResponse<LoginUserVO> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) { public BaseResponse<LoginUserDTO> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
if (userLoginRequest == null) { if (userLoginRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空"); throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空");
} }
@ -81,8 +83,8 @@ public class UserController {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空"); throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数为空");
} }
LoginUserVO loginUserVO = userService.userLogin(userAccount, userPassword, request); LoginUserDTO loginUserDTO = userService.userLogin(userAccount, userPassword, request);
return ResultUtils.success(loginUserVO); return ResultUtils.success(loginUserDTO);
} }
/** /**
@ -255,9 +257,9 @@ public class UserController {
@PostMapping("/update") @PostMapping("/update")
public BaseResponse<Boolean> updateUser(@RequestBody UserUpdateRequest userUpdateRequest, HttpServletRequest request){ public BaseResponse<Boolean> updateUser(@RequestBody UserUpdateRequest userUpdateRequest, HttpServletRequest request){
//判断是否为管理员 //判断是否为管理员
userService.isAdmin(request); // userService.isAdmin(request);
User user = new User(); User user = new User();
BeanUtils.copyProperties(userUpdateRequest, user); BeanCopyUtils.copyPropertiesIgnoreEmpty(userUpdateRequest, user);
boolean res = userService.updateById(user); boolean res = userService.updateById(user);
if(!res){ if(!res){
throw new BusinessException(ErrorCode.PARAMS_ERROR, "该用户不存在"); throw new BusinessException(ErrorCode.PARAMS_ERROR, "该用户不存在");
@ -278,10 +280,10 @@ public class UserController {
if(userUpdateMyRequest == null){ if(userUpdateMyRequest == null){
throw new BusinessException(ErrorCode.PARAMS_ERROR); throw new BusinessException(ErrorCode.PARAMS_ERROR);
} }
User logingUser = userService.getLoginUser(request); // User logingUser = userService.getLoginUser(request);
User user = new User(); User user = new User();
BeanUtils.copyProperties(userUpdateMyRequest, user); BeanCopyUtils.copyPropertiesIgnoreEmpty(userUpdateMyRequest,user);
user.setId(logingUser.getId());
boolean result = userService.updateById(user); boolean result = userService.updateById(user);
if(!result){ if(!result){
throw new BusinessException(ErrorCode.PARAMS_ERROR, "操作失败"); 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 Date appointmentTime;
/**
* 预约详细地址
*/
private String appointmentAddress;
/** /**
* 服务方式0 - 线上, 1 - 到店 * 服务方式0 - 线上, 1 - 到店
*/ */

View File

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

View File

@ -26,7 +26,7 @@ public class OrderItems implements Serializable {
private Long orderId; private Long orderId;
/** /**
* 商品ID美甲款式 * 商品ID
*/ */
private Long commoditiesId; 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; private String email;
/**
* 美甲师状态 0 表示正常 1 表示禁用
*/
private Long manStatus;
/** /**
* 美甲师入职日期 * 美甲师入职日期
*/ */

View File

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

View File

@ -1,5 +1,7 @@
package com.cj.jiaqingjiayi.model.request.order; package com.cj.jiaqingjiayi.model.request.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -58,6 +60,37 @@ public class OrderAddRequest implements Serializable {
*/ */
private List<OrderItemsAddRequest> orderItemsAddRequest; 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 @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

View File

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

View File

@ -9,12 +9,14 @@ import java.io.Serializable;
public class UserUpdateMyRequest implements Serializable { public class UserUpdateMyRequest implements Serializable {
private static final long serialVersionUID = 1864770371473794809L; private static final long serialVersionUID = 1864770371473794809L;
private Long id;
/** /**
* 用户名 * 用户名
*/ */
private String username; 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 Date appointmentTime;
/**
* 预约详细地址
*/
private String appointmentAddress;
/** /**
* 服务方式0 - 线上, 1 - 到店 * 服务方式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; package com.cj.jiaqingjiayi.model.vo;
import com.cj.jiaqingjiayi.model.domain.Manicurist;
import com.cj.jiaqingjiayi.model.domain.OrderItems; import com.cj.jiaqingjiayi.model.domain.OrderItems;
import lombok.Data; import lombok.Data;
@ -44,6 +45,11 @@ public class OrdersVO implements Serializable {
*/ */
private Long businessId; private Long businessId;
/**
* 美甲师信息
*/
private ManicuristVO manicuristVO;
/** /**
* 商家信息 * 商家信息
*/ */

View File

@ -69,5 +69,5 @@ public class UserVO implements Serializable {
/** /**
* 用户角色 0 - 普通用户 1 - 管理员 2 - 商家 * 用户角色 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.BusinessAuth;
import com.cj.jiaqingjiayi.model.domain.User; import com.cj.jiaqingjiayi.model.domain.User;
import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest; 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.model.vo.BusinessVO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -58,4 +59,5 @@ public interface BusinessService extends IService<Business> {
*/ */
List<BusinessVO> findAllBusiness(); 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.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService; 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.domain.User;
import com.cj.jiaqingjiayi.model.request.user.UserSearchRequest; import com.cj.jiaqingjiayi.model.request.user.UserSearchRequest;
import com.cj.jiaqingjiayi.model.request.user.UserUpdatePasswordRequest; import com.cj.jiaqingjiayi.model.request.user.UserUpdatePasswordRequest;
@ -31,7 +32,7 @@ public interface UserService extends IService<User> {
* @param request 返回请求 * @param request 返回请求
* @return 脱敏后的用户信息 * @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.request.AlipayTradeCreateRequest;
import com.alipay.api.response.AlipayTradeCreateResponse; import com.alipay.api.response.AlipayTradeCreateResponse;
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.cj.jiaqingjiayi.common.ErrorCode; import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.config.AlipayClients; import com.cj.jiaqingjiayi.config.AlipayClients;
import com.cj.jiaqingjiayi.exception.BusinessException; import com.cj.jiaqingjiayi.exception.BusinessException;
@ -23,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -47,8 +49,6 @@ public class AlipayServiceImpl implements AliPayService {
//创建实体类 //创建实体类
AlipayTradeCreateModel model = new AlipayTradeCreateModel(); AlipayTradeCreateModel model = new AlipayTradeCreateModel();
//请求参数 沙箱内部参数
String outTradeNo = UniqueNumberGenerator.generateNumber(); String outTradeNo = UniqueNumberGenerator.generateNumber();
Orders order = ordersService.getById(orderId); Orders order = ordersService.getById(orderId);
@ -72,12 +72,12 @@ public class AlipayServiceImpl implements AliPayService {
model.setTotalAmount(String.valueOf(amount)); model.setTotalAmount(String.valueOf(amount));
model.setSubject(subject); model.setSubject(subject);
model.setProductCode("JSAPI_PAY"); model.setProductCode("JSAPI_PAY");
model.setBuyerId("2088722034659383"); model.setBuyerId("2088722038161604");
model.setOpAppId("2021004144652242"); model.setOpAppId("2021004144652242");
///回调地址
aliRequest.setNotifyUrl("http://39.101.78.35:1107/api/Alipay/notifyUrl");
aliRequest.setBizModel(model); aliRequest.setBizModel(model);
///回调地址
// aliRequest.setNotifyUrl("http://39.101.78.35:1107/api/Alipay/notifyUrl");
String trade_no = null; String trade_no = null;
try { try {
AlipayTradeCreateResponse response = alipayClient.execute(aliRequest); AlipayTradeCreateResponse response = alipayClient.execute(aliRequest);
@ -88,6 +88,11 @@ public class AlipayServiceImpl implements AliPayService {
} catch (AlipayApiException e) { } catch (AlipayApiException e) {
e.printStackTrace(); e.printStackTrace();
} }
order.setPaymentStatus(1);
boolean update1 = ordersService.updateById(order);
ThrowUtils.throwIf(!update1, ErrorCode.OPERATION_ERROR, "修改订单状态失败");
return trade_no; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cj.jiaqingjiayi.common.ErrorCode; 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.exception.ThrowUtils;
import com.cj.jiaqingjiayi.model.domain.*; import com.cj.jiaqingjiayi.model.domain.*;
import com.cj.jiaqingjiayi.model.request.business.BusinessQueryRequest; 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.model.vo.BusinessVO;
import com.cj.jiaqingjiayi.service.*; import com.cj.jiaqingjiayi.service.*;
import com.cj.jiaqingjiayi.mapper.BusinessMapper; import com.cj.jiaqingjiayi.mapper.BusinessMapper;
import com.cj.jiaqingjiayi.utils.BeanCopyUtils;
import com.cj.jiaqingjiayi.utils.RegexUtils; import com.cj.jiaqingjiayi.utils.RegexUtils;
import com.cj.jiaqingjiayi.utils.SqlUtils; import com.cj.jiaqingjiayi.utils.SqlUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@ -50,6 +53,9 @@ public class BusinessServiceImpl extends ServiceImpl<BusinessMapper, Business>
@Resource @Resource
private BusinessAuthService businessAuthService; private BusinessAuthService businessAuthService;
@Resource
private ManicuristsignService manicuristsignService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public synchronized void addBusiness(User user, Business business, BusinessAuth businessAuth) { 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)) { // if (StringUtils.isNotBlank(businessName)) {
QueryWrapper<Business> queryWrapper = new QueryWrapper<>(); // QueryWrapper<Business> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("businessName", businessName); // queryWrapper.eq("businessName", businessName);
long count = this.count(queryWrapper); // long count = this.count(queryWrapper);
ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "门店名称重复"); // ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "门店名称重复");
} // }
//校验手机号格式 //校验手机号格式
if (StringUtils.isNotBlank(businessPhone)) { if (StringUtils.isNotBlank(businessPhone)) {
@ -240,6 +246,21 @@ public class BusinessServiceImpl extends ServiceImpl<BusinessMapper, Business>
return businessVOs; 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(); Long id = manicurist.getId();
String manicuristName = manicurist.getManicuristName(); String manicuristName = manicurist.getManicuristName();
String manicuristPhone = manicurist.getPhone(); String manicuristPhone = manicurist.getPhone();
Long userId = manicurist.getUserId();
Integer gender = manicurist.getGender(); Integer gender = manicurist.getGender();
//只在添加时严格校验 保证商家信息是全的 //只在添加时严格校验 保证商家信息是全的
@ -154,6 +155,10 @@ public class ManicuristServiceImpl extends ServiceImpl<ManicuristMapper, Manicur
if (StringUtils.isAnyBlank(manicuristName, manicuristPhone) || gender == null) { if (StringUtils.isAnyBlank(manicuristName, manicuristPhone) || gender == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "信息不全"); 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){ if(!add){
@ -161,12 +166,12 @@ public class ManicuristServiceImpl extends ServiceImpl<ManicuristMapper, Manicur
ThrowUtils.throwIf(byId == null, ErrorCode.NULL_ERROR, "美甲师不存在"); ThrowUtils.throwIf(byId == null, ErrorCode.NULL_ERROR, "美甲师不存在");
} }
if(StringUtils.isNotBlank(manicuristName)){ // if(StringUtils.isNotBlank(manicuristName)){
QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>(); // QueryWrapper<Manicurist> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("manicuristName", manicuristName); // queryWrapper.eq("manicuristName", manicuristName);
long count = this.count(queryWrapper); // long count = this.count(queryWrapper);
ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "美甲师名称重复"); // ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "美甲师名称重复");
} // }
//校验手机号格式 //校验手机号格式
if (StringUtils.isNotBlank(manicuristPhone)) { 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.contant.CommonConstant;
import com.cj.jiaqingjiayi.exception.BusinessException; import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.model.domain.Business; 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.OrderItems;
import com.cj.jiaqingjiayi.model.domain.Orders; import com.cj.jiaqingjiayi.model.domain.Orders;
import com.cj.jiaqingjiayi.model.request.order.OrderQueryRequest; import com.cj.jiaqingjiayi.model.request.order.OrderQueryRequest;
import com.cj.jiaqingjiayi.model.vo.BusinessVO; 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.OrderItemsVO;
import com.cj.jiaqingjiayi.model.vo.OrdersVO; import com.cj.jiaqingjiayi.model.vo.OrdersVO;
import com.cj.jiaqingjiayi.service.BusinessService; import com.cj.jiaqingjiayi.service.BusinessService;
import com.cj.jiaqingjiayi.service.ManicuristService;
import com.cj.jiaqingjiayi.service.OrderItemsService; import com.cj.jiaqingjiayi.service.OrderItemsService;
import com.cj.jiaqingjiayi.service.OrdersService; import com.cj.jiaqingjiayi.service.OrdersService;
import com.cj.jiaqingjiayi.mapper.OrdersMapper; import com.cj.jiaqingjiayi.mapper.OrdersMapper;
@ -52,6 +55,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
@Resource @Resource
private BusinessService businessService; private BusinessService businessService;
@Resource
private ManicuristService manicuristService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
@ -119,6 +125,14 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
BusinessVO businessVO = businessService.getBusinessVO(business); BusinessVO businessVO = businessService.getBusinessVO(business);
ordersVO.setBusinessVO(businessVO); 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(); Long orderId = orders.getId();
QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>(); QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
@ -165,6 +179,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
Long id = orderQueryRequest.getId(); Long id = orderQueryRequest.getId();
Long userId = orderQueryRequest.getUserId(); Long userId = orderQueryRequest.getUserId();
Long businessId = orderQueryRequest.getBusinessId(); Long businessId = orderQueryRequest.getBusinessId();
Long manicuristId = orderQueryRequest.getManicuristId();
String orderNumber = orderQueryRequest.getOrderNumber(); String orderNumber = orderQueryRequest.getOrderNumber();
Integer claimStatus = orderQueryRequest.getClaimStatus(); Integer claimStatus = orderQueryRequest.getClaimStatus();
Integer state = orderQueryRequest.getPaymentStatus(); Integer state = orderQueryRequest.getPaymentStatus();
@ -172,13 +187,16 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
String endTime = orderQueryRequest.getEndTime(); String endTime = orderQueryRequest.getEndTime();
String sortField = orderQueryRequest.getSortField(); String sortField = orderQueryRequest.getSortField();
String sortOrder = orderQueryRequest.getSortOrder(); String sortOrder = orderQueryRequest.getSortOrder();
Integer serviceMode = orderQueryRequest.getServiceMode();
QueryWrapper<Orders> queryWrapper = new QueryWrapper<>(); 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(userId), "userId", userId);
queryWrapper.eq(ObjectUtils.isNotEmpty(businessId), "businessId", businessId); 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(orderNumber), "orderNumber", orderNumber);
queryWrapper.eq(ObjectUtils.isNotEmpty(state), "paymentStatus", state); 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.ge(StringUtils.isNotBlank(startTime), "createTime", startTime);
queryWrapper.le(StringUtils.isNotBlank(endTime), "createTime", endTime); queryWrapper.le(StringUtils.isNotBlank(endTime), "createTime", endTime);
queryWrapper.orderBy(SqlUtils.validSortField(sortField), sortOrder.equals(CommonConstant.SORT_ORDER_ASC), queryWrapper.orderBy(SqlUtils.validSortField(sortField), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),

View File

@ -1,19 +1,25 @@
package com.cj.jiaqingjiayi.service.impl; 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.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cj.jiaqingjiayi.common.ErrorCode; import com.cj.jiaqingjiayi.common.ErrorCode;
import com.cj.jiaqingjiayi.exception.BusinessException; import com.cj.jiaqingjiayi.exception.BusinessException;
import com.cj.jiaqingjiayi.exception.ThrowUtils; import com.cj.jiaqingjiayi.exception.ThrowUtils;
import com.cj.jiaqingjiayi.mapper.BusinessMapper;
import com.cj.jiaqingjiayi.mapper.UserMapper; 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.domain.User;
import com.cj.jiaqingjiayi.model.request.user.UserSearchRequest; import com.cj.jiaqingjiayi.model.request.user.UserSearchRequest;
import com.cj.jiaqingjiayi.model.request.user.UserUpdatePasswordRequest; import com.cj.jiaqingjiayi.model.request.user.UserUpdatePasswordRequest;
import com.cj.jiaqingjiayi.model.vo.LoginUserVO; import com.cj.jiaqingjiayi.model.vo.LoginUserVO;
import com.cj.jiaqingjiayi.service.BusinessService;
import com.cj.jiaqingjiayi.service.UserService; import com.cj.jiaqingjiayi.service.UserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
@ -35,6 +41,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
@Resource @Resource
private UserMapper userMapper; private UserMapper userMapper;
@Resource
private BusinessMapper businessMapper;
/** /**
* 盐值 对密码进行混淆加密 * 盐值 对密码进行混淆加密
*/ */
@ -109,7 +119,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
*/ */
@Override @Override
public LoginUserVO userLogin(String userAccount, String userPassword, HttpServletRequest request) { public LoginUserDTO userLogin(String userAccount, String userPassword, HttpServletRequest request) {
//非空 //非空
if (StringUtils.isAllBlank(userAccount, userPassword)) { if (StringUtils.isAllBlank(userAccount, userPassword)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "参数为空"); 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); Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);
@ -138,14 +148,23 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
queryWrapper.eq("userPassword", encodePassword); queryWrapper.eq("userPassword", encodePassword);
User user = userMapper.selectOne(queryWrapper); 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"); log.info("user login failed, userAccount Cannot match userPassword");
System.out.println(userAccount + "------" + user.getUserAccount());
throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户账号或密码有误!"); 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); 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="appointmentTime" column="appointmentTime" jdbcType="TIMESTAMP"/>
<result property="serviceMode" column="serviceMode" jdbcType="TINYINT"/> <result property="serviceMode" column="serviceMode" jdbcType="TINYINT"/>
<result property="notes" column="notes" jdbcType="VARCHAR"/> <result property="notes" column="notes" jdbcType="VARCHAR"/>
<result property="appointmentAddress" column="appointmentAddress" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="TINYINT"/> <result property="status" column="status" jdbcType="TINYINT"/>
<result property="orderId" column="orderId" jdbcType="BIGINT"/> <result property="orderId" column="orderId" jdbcType="BIGINT"/>
<result property="createTime" column="createTime" jdbcType="TIMESTAMP"/> <result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
@ -29,6 +30,6 @@
appointmentTime,serviceMode, appointmentTime,serviceMode,
notes,status,createTime, notes,status,createTime,
updateTime,isDelete,businessName, updateTime,isDelete,businessName,
manicuristName,orderId appointmentAddress,manicuristName,orderId
</sql> </sql>
</mapper> </mapper>

View File

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

View File

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

View File

@ -8,6 +8,7 @@
<id property="id" column="id" jdbcType="BIGINT"/> <id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/> <result property="name" column="name" jdbcType="VARCHAR"/>
<result property="manicuristId" column="manicuristId" jdbcType="BIGINT"/> <result property="manicuristId" column="manicuristId" jdbcType="BIGINT"/>
<result property="businessId" column="businessId" jdbcType="BIGINT"/>
<result property="businessName" column="businessName" jdbcType="VARCHAR"/> <result property="businessName" column="businessName" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/> <result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="salary" column="salary" jdbcType="DECIMAL"/> <result property="salary" column="salary" jdbcType="DECIMAL"/>
@ -25,6 +26,6 @@
businessName,phone,salary, businessName,phone,salary,
signTime,tenure,manicuristLv, signTime,tenure,manicuristLv,
auditStatus,isDelete,createTime, auditStatus,isDelete,createTime,
updateTime businessId,updateTime
</sql> </sql>
</mapper> </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\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\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\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\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\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\utils\RegexUtils.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\request\user\UserRegisterRequest.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\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\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\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\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\model\request\AlipayTradeCreateRequest1.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\controller\BusinessController.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\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\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\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\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\domain\UserRating.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\vo\AttributeVO.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\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\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\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\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\request\appointments\AppointmentsUpdateRequest.java
E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\domain\Collect.java E:\gitjiaqingjiayi\jiaqingjiayi-houduan\project\jiaqingjiayi\src\main\java\com\cj\jiaqingjiayi\model\domain\Collect.java