package cn.zqh.brand.service.impl;
import cn.zqh.bean.api.CommonResult;
import cn.zqh.bean.api.ResultCode;
import cn.zqh.bean.bo.*;
import cn.zqh.brand.client.CommodityClient;
import cn.zqh.brand.client.StoreClient;
import cn.zqh.brand.client.UserClient;
import cn.zqh.brand.config.BSException;
import cn.zqh.brand.holder.LoginUserHolder;
import cn.zqh.brand.mapper.BrandMapper;
import cn.zqh.brand.mapper.OrderMapper;
import cn.zqh.brand.mapper.ShopCarMapper;
import cn.zqh.brand.service.OrderService;
import cn.zqh.uuid.utils.SnowflakeId;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author zqh
* @since 2023-03-01
*/
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Dydj> implements OrderService {
@Resource
private OrderMapper orderMapper;
@Autowired
private CommodityClient commodityClient;
@Autowired
private UserClient userClient;
@Autowired
private LoginUserHolder loginUserHolder;
@Resource
private BrandMapper brandMapper;
@Resource
private ShopCarMapper shopCarMapper;
@Autowired
private StoreClient storeClient;
/**
* @Author: zqh
* @Date:
* @Description: 商品购买(添加订单)
*/
@Override
public CommonResult buyACommodity(String commodityId, Integer number) {
UserDTO currentUser = loginUserHolder.getCurrentUser();
if (currentUser == null) {
throw new BSException(ResultCode.UNAUTHORIZED.getCode(),ResultCode.UNAUTHORIZED.getMessage());
}
//查询购买商品信息
Commodity commodity = commodityClient.gCommodity(commodityId);
//查询购买者信息
User user = userClient.getUserById(currentUser.getId());
//看用户钱是否足够
if (user.getHavaMoney() < commodity.getPrice() * number){
return CommonResult.failed("余额不足");
}
//看购买量是否大于库存量
if (number > commodity.getNumber()){
return CommonResult.failed(" 库存不足");
}
//购买者钱减少
AdminChangeUserInfo adminChangeUserInfo = new AdminChangeUserInfo();
adminChangeUserInfo.setId(user.getUserId())
.setEmail(user.getQqEmail())
.setName(user.getNickName())
.setSex(user.getSex())
.setAvatar(user.getAvatar())
.setIntro(user.getIntro())
.setAddress(user.getAddress())
.setIsStore(user.getIsStore())
.setMoney(user.getHavaMoney() - (commodity.getPrice() * number))
.setIsDelete(user.getIsDelete());
String objectCommonResult = userClient.adminChangeInfo(adminChangeUserInfo);
if (!objectCommonResult.equals("SUCCESS")) {
return CommonResult.failed();
}
//商品库存量减少
Brand brand = brandMapper.selectOne(new QueryWrapper<Brand>().eq("Brand_id", commodity.getBrandId()));
AdminChangeCommodity adminChangeCommodity = new AdminChangeCommodity();
adminChangeCommodity.setCommodityId(commodity.getCommodityId())
.setCommodityName(commodity.getCommodityName())
.setAvatar(commodity.getAvatar())
.setIntro(commodity.getIntro())
.setStyle(commodity.getStyle())
.setPrice(commodity.getPrice())
.setNumber(commodity.getNumber() - number)
.setSalesVolume(commodity.getSalesVolume())
.setBrandId(brand.getBrandId());
String commonResult1 = commodityClient.ModifyTheProductInformationBasedOnTheAdministrator(adminChangeCommodity);
System.out.println("555555555555555555555555555");
if (!"SUCCESS".equals(commonResult1)) {
return CommonResult.failed();
}
//增加一个订单
Commodity commodity1 = commodityClient.gCommodity(commodityId);
Dydj order = new Dydj();
order.setOrderId("order"+ SnowflakeId.nextId())
.setUserId(user.getUserId())
.setStoreId(commodity1.getStoreId())
.setCommodityId(commodityId)
.setNumber(number)
.setPrice(number * commodity.getPrice())
.setAddress(user.getAddress())
.setIsDelete(0)
.setStyle(1);
int i = orderMapper.insert(order);
if (i != 1){
return CommonResult.failed();
}
System.out.println("666666666666666");
//店主钱增加
Store store = storeClient.getStoreInformationByStoreId(commodity1.getStoreId());
User user1 = userClient.getUserById(store.getUserId());
AdminChangeUserInfo adminChangeUserInfo1 = new AdminChangeUserInfo();
adminChangeUserInfo1.setId(user1.getUserId())
.setEmail(user1.getQqEmail())
.setName(user1.getNickName())
.setSex(user1.getSex())
.setAvatar(user1.getAvatar())
.setIntro(user1.getIntro())
.setAddress(user1.getAddress())
.setIsStore(user1.getIsStore())
.setMoney(user1.getHavaMoney() + (commodity.getPrice() * number))
.setIsDelete(user1.getIsDelete());
String commonResult2 = userClient.adminChangeInfo(adminChangeUserInfo1);
if (!"SUCCESS".equals(commonResult2)) {
return CommonResult.failed();
}
return CommonResult.success(ResultCode.SUCCESS);
}
/**
* @Author: zqh
* @Date:
* @Description: 把购物车里的商品提交订单
*/
@Override
public CommonResult submitTheorderForCart(String shopCarId) {
UserDTO currentUser = loginUserHolder.getCurrentUser();
User user = userClient.getUserById(currentUser.getId());
//删除购物车中信息
ShopCar shopCar = shopCarMapper.selectById(shopCarId);
EsCommodity commodity = commodityClient.getCommodityById(shopCar.getCommodityId());
Commodity commodity1 = commodityClient.gCommodity(shopCar.getCommodityId());
Dydj order = new Dydj();
order.setOrderId("order"+SnowflakeId.nextId())
.setUserId(user.getUserId())
.setStoreId(commodity1.getStoreId())
.setCommodityId(commodity.getCommodityId())
.setAddress(user.getAddress())
.setNumber(shopCar.getNumber())
.setPrice(shopCar.getMoney())
.setIsDelete(0)
.setStyle(1);
int i = orderMapper.insert(order);
if (i != 1){
return CommonResult.failed();
}
//店主钱增加
Store store = storeClient.getStoreInformationByStoreId(commodity1.getStoreId());
User user1 = userClient.getUserById(store.getUserId());
AdminChangeUserInfo adminChangeUserInfo1 = new AdminChangeUserInfo();
adminChangeUserInfo1.setId(user1.getUserId())
.setEmail(user1.getQqEmail())
.setName(user1.getNickName())
.setSex(user1.getSex())
.setAvatar(user1.getAvatar())
.setIntro(user1.getIntro())
.setAddress(user1.getAddress())
.setIsStore(user1.getIsStore())
.setMoney(user1.getHavaMoney() + shopCar.getMoney())
.setIsDelete(user1.getIsDelete());
String commonResult2 = userClient.ad
没有合适的资源?快使用搜索试试~ 我知道了~
峰少 / 毕业设计 空袭毕业设计
共357个文件
java:201个
class:97个
xml:41个
需积分: 0 0 下载量 97 浏览量
2023-03-13
21:53:37
上传
评论
收藏 1.26MB ZIP 举报
温馨提示
峰少 / 毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
峰少 / 毕业设计 空袭毕业设计 (357个子文件)
EsCommodity.class 9KB
Commodity.class 9KB
User.class 8KB
User.class 8KB
Oauth2ServerConfig.class 7KB
ResourceServerConfig.class 7KB
UserPlus.class 7KB
Store.class 6KB
AdminChangeUserInfo.class 6KB
Comment.class 6KB
AdminChangeCommodity.class 6KB
AuthorizationManager.class 6KB
Router.class 6KB
RouterController.class 5KB
Router.class 5KB
UserChangeCommodity.class 5KB
AuthUserServiceImpl.class 5KB
CommonResult.class 5KB
SecurityUserPlus.class 5KB
Brand.class 5KB
SecurityUser.class 4KB
AuthController.class 4KB
RouterServiceImpl.class 4KB
Pfoods.class 4KB
SearchBean.class 4KB
UserDTO.class 4KB
UserDTO.class 4KB
AdminChangeRouter.class 4KB
RouterServiceImpl.class 4KB
AuthGlobalFilter.class 4KB
AdminChangeStore.class 4KB
WebSecurityConfig.class 4KB
SnowflakeId.class 3KB
IgnoreUrlsRemoveJwtFilter.class 3KB
UserPermissionConnect.class 3KB
UserServiceImpl.class 3KB
Oauth2TokenDto.class 3KB
UserChangeStore.class 3KB
Permission.class 3KB
ResourceServiceImpl.class 3KB
RestfulAccessDeniedHandler.class 3KB
RestAuthenticationEntryPoint.class 3KB
AddANewRouter.class 3KB
SwaggerConfig.class 2KB
SwaggerConfig.class 2KB
Pstore.class 2KB
ElasticSearchCommodity.class 2KB
BSException.class 2KB
BSException.class 2KB
BSException.class 2KB
ResultCode.class 2KB
RedisRepositoryConfig.class 2KB
RedisRepositoryConfig.class 2KB
RedisRepositoryConfig.class 2KB
CreateABrandParams.class 2KB
LoginUserHolder.class 2KB
IgnoreUrlsConfig.class 2KB
CorsConfig.class 2KB
RouterController.class 2KB
Oauth2TokenDto$Oauth2TokenDtoBuilder.class 2KB
JwtTokenEnhancer.class 2KB
GlobalExceptionHandler.class 2KB
GlobalExceptionHandler.class 2KB
GlobalExceptionHandler.class 2KB
Oauth2ExceptionHandler.class 1KB
MyMetaObjectHandler.class 1KB
MyMetaObjectHandler.class 1KB
MyMetaObjectHandler.class 1KB
KeyPairController.class 1KB
RouterApplication.class 1KB
MyISqlInjectorConfig.class 948B
AuthApplication.class 945B
MessageConstant.class 897B
UserMapper.class 892B
GatewayApplication.class 874B
MyISqlInjectorConfig.class 868B
test.class 824B
RouterService.class 789B
UserPermissionConnectServiceImpl.class 777B
MyISqlInjectorConfig.class 766B
RouterService.class 731B
PermissionServiceImpl.class 700B
PageConfig.class 690B
UserController.class 685B
RepeatSubmit.class 574B
RouterMapper.class 485B
AuthConstant.class 448B
UserService.class 447B
OperationRecord.class 446B
RedisConstant.class 415B
RedisConstant.class 409B
UserPermissionConnectService.class 352B
UserPermissionConnectMapper.class 341B
PermissionService.class 319B
PermissionMapper.class 308B
RouterMapper.class 296B
IErrorCode.class 185B
.gitignore 227B
OrderServiceImpl.java 15KB
CommodityServiceImpl.java 14KB
共 357 条
- 1
- 2
- 3
- 4
资源评论
墨柒子
- 粉丝: 15
- 资源: 196
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功