| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.uuid.IdUtils; |
| | | import com.ruoyi.common.core.utils.uuid.UUID; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.order.domain.dto.*; |
| | | import com.ruoyi.order.domain.pojo.order.ConsumerGoods; |
| | |
| | | import com.ruoyi.order.mapper.order.OrderMapper; |
| | | import com.ruoyi.order.service.order.OrderService; |
| | | import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Override |
| | | public void createNewOrder(MerNewOrderDto merNewOrderDto){ |
| | | Long userId = merNewOrderDto.getBuyUserId(); |
| | | //如果非指定用户判断是否需要通过手机号创建新用户 |
| | | if(userId==null){ |
| | | String name = merNewOrderDto.getName(); |
| | | String mobile = merNewOrderDto.getMobile(); |
| | | SysUser sysUser = remoteUserService.getSysUserByMobile(mobile).getData(); |
| | | if(sysUser==null){ |
| | | Member member = remoteMemberService.getMemberByMobile(mobile).getData(); |
| | | SysUser sysUser; |
| | | if(member!=null){ |
| | | sysUser = remoteUserService.getSysUser(member.getUserId()).getData(); |
| | | }else{ |
| | | //创建新用户 |
| | | String memberId = IdUtils.simpleUUID(); |
| | | sysUser = new SysUser(); |
| | | sysUser.setUserName(mobile); |
| | | sysUser.setUserName(memberId); |
| | | sysUser.setUserType("03"); |
| | | sysUser.setNickName(name); |
| | | sysUser.setPhonenumber(mobile); |
| | | sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | String password = "hongruitang"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | | log.debug("sysUser"+sysUser.toString()); |
| | | sysUser = remoteUserService.registerUser(sysUser).getData(); |
| | | userId = sysUser.getUserId(); |
| | | }else{ |
| | | userId = sysUser.getUserId(); |
| | | member = new Member(); |
| | | member.setMemberId(memberId); |
| | | member.setUserId(sysUser.getUserId()); |
| | | member.setMobile(mobile); |
| | | member.setRealName(name); |
| | | member.setNickName(name); |
| | | remoteMemberService.createNewMember(member); |
| | | } |
| | | userId = sysUser.getUserId(); |
| | | } |
| | | //创建订单 |
| | | //创建订单计算 |
| | | List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList(); |
| | | String goodsId; |
| | | Integer buyNum; |
| | |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | Long shopId = merNewOrderDto.getShopId(); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | Map<Long,AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | if(null != appMemberCouponVoList){ |
| | |
| | | //商户定制价格 |
| | | AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); |
| | | appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); |
| | | appShopGoodsGetDto.setShopId(merNewOrderDto.getShopId()); |
| | | appShopGoodsGetDto.setShopId(shopId); |
| | | ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); |
| | | if(shopGoods!=null){ |
| | | goodsPrice = shopGoods.getSalesPrice(); |
| | |
| | | buyNumBig = BigDecimal.valueOf(buyNum); |
| | | goodsTotalPrice = goodsPrice.multiply(buyNumBig); |
| | | goodsRealPrice = goodsTotalPrice; |
| | | //优惠券计算 |
| | | if(memberCouponId!=null){ |
| | | appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); |
| | | if(null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))){ |
| | |
| | | orderGoods.setGoodsType(goods.getGoodsType()); |
| | | orderGoodsService.save(orderGoods); |
| | | } |
| | | //创建订单 |
| | | Order order = new Order(); |
| | | order.setOrderId(orderId); |
| | | order.setDelFlag(0); |
| | | order.setOrderStatus(3); |
| | | order.setOrderNo(orderNo); |
| | | order.setOrderFrom(3); |
| | | order.setShopId(merNewOrderDto.getShopId()); |
| | | order.setShopId(shopId); |
| | | order.setUserId(userId); |
| | | order.setOrderMoney(orderGoodsMoney); |
| | | order.setCouponMoney(couponDiscount); |
| | |
| | | if(member!=null&&member.getBindingFlag()!=1){ |
| | | //绑定商户 |
| | | AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); |
| | | appMemberBindingDto.setShopId(merNewOrderDto.getShopId()); |
| | | appMemberBindingDto.setShopId(shopId); |
| | | appMemberBindingDto.setShopName(shop.getShopName()); |
| | | appMemberBindingDto.setUserId(userId); |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | |
| | | } |
| | | return merMemberNoClearOrderVoList; |
| | | } |
| | | |
| | | /** |
| | | * 获取用户订单统计 |
| | | * @param mgtMemberOrderTotalDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto){ |
| | | MgtMemberOrderTotalVo mgtMemberOrderTotalVo = orderMapper.getMgtMemberOrderTotal(mgtMemberOrderTotalDto); |
| | | return mgtMemberOrderTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * 分页获取用户订单列表 |
| | | * @param page |
| | | * @param mgtMemberOrderPageDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto){ |
| | | List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto); |
| | | if(mgtMemberOrderPageVoList!=null&&!mgtMemberOrderPageVoList.isEmpty()){ |
| | | Long shopId; |
| | | Shop shop; |
| | | for(MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList){ |
| | | shopId = mgtMemberOrderPageVo.getShopId(); |
| | | shop = remoteShopService.getShop(shopId).getData(); |
| | | mgtMemberOrderPageVo.setShopName(shop.getShopName()); |
| | | } |
| | | } |
| | | return mgtMemberOrderPageVoList; |
| | | } |
| | | } |