| | |
| | | package com.yeshi.fanli.service.impl.user.cloud;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.context.annotation.Lazy;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.user.cloud.UserCloudOrderMapper;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
|
| | | import com.yeshi.fanli.exception.user.cloud.UserCloudOrderException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
|
| | |
|
| | |
|
| | | @Service
|
| | | public class UserCloudOrderServiceImpl implements UserCloudOrderService {
|
| | |
|
| | | @Resource
|
| | | private UserCloudOrderMapper userCloudOrderMapper;
|
| | |
|
| | | @Lazy
|
| | | @Resource
|
| | | private UserCloudService userCloudService;
|
| | | |
| | | @Override
|
| | | public UserCloudOrder addCloudOrder(Long uid, String type) throws UserCloudOrderException{
|
| | | if (uid == null) |
| | | throw new UserCloudOrderException(1, "用户未登录");
|
| | | |
| | | CloudOrderMenuEnum menuEnum = CloudOrderMenuEnum.getMenuEnum(type);
|
| | | if (menuEnum == null) |
| | | throw new UserCloudOrderException(1, "请选择正确套餐");
|
| | | |
| | | UserCloudOrder cloudOrder = new UserCloudOrder();
|
| | | cloudOrder.setUid(uid);
|
| | | cloudOrder.setState(false);
|
| | | cloudOrder.setType(menuEnum);
|
| | | cloudOrder.setMoney(BigDecimal.valueOf(menuEnum.getMoney()));
|
| | | cloudOrder.setCreateTime(new Date());
|
| | | cloudOrder.setUpdateTime(new Date());
|
| | | userCloudOrderMapper.insertSelective(cloudOrder);
|
| | | return cloudOrder;
|
| | | }
|
| | | |
| | | @Override
|
| | | public void updateByPrimaryKeySelective(UserCloudOrder cloudOrder) {
|
| | | userCloudOrderMapper.updateByPrimaryKeySelective(cloudOrder);
|
| | | }
|
| | | |
| | | @Override
|
| | | public UserCloudOrder selectByPrimaryKey(Long id) {
|
| | | return userCloudOrderMapper.selectByPrimaryKey(id);
|
| | | }
|
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void cloudPayCloudSuccess(Long orderId) throws UserCloudOrderException{
|
| | | UserCloudOrder cloudOrder = userCloudOrderMapper.selectForUpdate(orderId);
|
| | | if (cloudOrder == null)
|
| | | throw new UserCloudOrderException(1, "订单信息不存在");
|
| | | |
| | | if (cloudOrder.getState()) |
| | | return; // 已支付成功更新
|
| | | |
| | | UserCloudOrder updateOrder = new UserCloudOrder();
|
| | | updateOrder.setState(true);
|
| | | updateOrder.setId(cloudOrder.getId());
|
| | | updateOrder.setUpdateTime(new Date());
|
| | | userCloudOrderMapper.updateByPrimaryKeySelective(updateOrder);
|
| | | |
| | | // 创建开通信息
|
| | | try {
|
| | | userCloudService.openCloud(cloudOrder.getUid(), cloudOrder.getId(), cloudOrder.getType());
|
| | | } catch (Exception e) {
|
| | | LogHelper.error(e);
|
| | | }
|
| | | }
|
| | | |
| | | @Override
|
| | | public UserCloudOrder getLastOrderByUnpaid(Long uid, String type) {
|
| | | return userCloudOrderMapper.getLastOrderByUnpaid(uid, type);
|
| | | }
|
| | | |
| | | @Override
|
| | | public UserCloudOrder getLastOrderByPayEnd(Long uid, String type) {
|
| | | return userCloudOrderMapper.getLastOrderByPayEnd(uid, type);
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public List<UserCloudOrder> getOrderRecord(int page, int count, Long uid, Integer state) {
|
| | | return userCloudOrderMapper.getOrderRecord((page-1)* count, count, uid, state);
|
| | | }
|
| | | |
| | | @Override
|
| | | public long countOrderRecord(Long uid, Integer state) {
|
| | | Long count = userCloudOrderMapper.countOrderRecord(uid, state);
|
| | | if (count == null)
|
| | | count = 0L;
|
| | | return count;
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public List<UserCloudOrder> getLasthourByUnpaid() {
|
| | | return userCloudOrderMapper.getLasthourByUnpaid();
|
| | | }
|
| | | }
|
| | | package com.yeshi.fanli.service.impl.user.cloud; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.fanli.dao.mybatis.user.cloud.UserCloudOrderMapper; |
| | | import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum; |
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder; |
| | | import com.yeshi.fanli.exception.user.cloud.UserCloudOrderException; |
| | | import com.yeshi.fanli.log.LogHelper; |
| | | import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService; |
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService; |
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudService; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | |
| | | @Service |
| | | public class UserCloudOrderServiceImpl implements UserCloudOrderService { |
| | | |
| | | @Resource |
| | | private UserCloudOrderMapper userCloudOrderMapper; |
| | | |
| | | @Lazy |
| | | @Resource |
| | | private UserCloudService userCloudService; |
| | | |
| | | |
| | | @Transactional |
| | | @Override |
| | | public UserCloudOrder addCloudOrder(Long uid, String type) throws UserCloudOrderException { |
| | | if (uid == null) |
| | | throw new UserCloudOrderException(1, "用户未登录"); |
| | | |
| | | CloudOrderMenuEnum menuEnum = CloudOrderMenuEnum.getMenuEnum(type); |
| | | if (menuEnum == null) |
| | | throw new UserCloudOrderException(1, "请选择正确套餐"); |
| | | |
| | | if (menuEnum == CloudOrderMenuEnum.robotMonthHalfPrice || menuEnum == CloudOrderMenuEnum.robotMonthVip) { |
| | | List<UserCloudOrder> list = userCloudOrderMapper.list(menuEnum.name(), uid, true); |
| | | if (list != null && list.size() > 0) |
| | | throw new UserCloudOrderException(1, "只能购买一次"); |
| | | } |
| | | UserCloudOrder cloudOrder = new UserCloudOrder(); |
| | | cloudOrder.setUid(uid); |
| | | cloudOrder.setState(false); |
| | | cloudOrder.setType(menuEnum); |
| | | cloudOrder.setMoney(BigDecimal.valueOf(menuEnum.getMoney())); |
| | | cloudOrder.setCreateTime(new Date()); |
| | | cloudOrder.setUpdateTime(new Date()); |
| | | userCloudOrderMapper.insertSelective(cloudOrder); |
| | | return cloudOrder; |
| | | } |
| | | |
| | | @Override |
| | | public void updateByPrimaryKeySelective(UserCloudOrder cloudOrder) { |
| | | userCloudOrderMapper.updateByPrimaryKeySelective(cloudOrder); |
| | | } |
| | | |
| | | @Override |
| | | public UserCloudOrder selectByPrimaryKey(Long id) { |
| | | return userCloudOrderMapper.selectByPrimaryKey(id); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void cloudPayCloudSuccess(Long orderId) throws UserCloudOrderException { |
| | | UserCloudOrder cloudOrder = userCloudOrderMapper.selectForUpdate(orderId); |
| | | if (cloudOrder == null) |
| | | throw new UserCloudOrderException(1, "订单信息不存在"); |
| | | |
| | | if (cloudOrder.getState()) |
| | | return; // 已支付成功更新 |
| | | |
| | | UserCloudOrder updateOrder = new UserCloudOrder(); |
| | | updateOrder.setState(true); |
| | | updateOrder.setId(cloudOrder.getId()); |
| | | updateOrder.setDesc("成功开通" + cloudOrder.getType().getDescShow()); |
| | | updateOrder.setUpdateTime(new Date()); |
| | | userCloudOrderMapper.updateByPrimaryKeySelective(updateOrder); |
| | | |
| | | // 创建开通信息 |
| | | try { |
| | | userCloudService.openCloud(cloudOrder.getUid(), cloudOrder.getId(), cloudOrder.getType()); |
| | | } catch (Exception e) { |
| | | LogHelper.error(e); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public UserCloudOrder getLastOrderByUnpaid(Long uid, String type) { |
| | | return userCloudOrderMapper.getLastOrderByUnpaid(uid, type); |
| | | } |
| | | |
| | | @Override |
| | | public UserCloudOrder getLastOrderByPayEnd(Long uid, String type) { |
| | | return userCloudOrderMapper.getLastOrderByPayEnd(uid, type); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<UserCloudOrder> getOrderRecord(int page, int count, Long uid, Integer state) { |
| | | return userCloudOrderMapper.getOrderRecord((page - 1) * count, count, uid, state); |
| | | } |
| | | |
| | | @Override |
| | | public long countOrderRecord(Long uid, Integer state) { |
| | | Long count = userCloudOrderMapper.countOrderRecord(uid, state); |
| | | if (count == null) |
| | | count = 0L; |
| | | return count; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<UserCloudOrder> getLasthourByUnpaid() { |
| | | return userCloudOrderMapper.getLasthourByUnpaid(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<UserCloudOrder> query(int page, int count, String key, Integer state) { |
| | | return userCloudOrderMapper.query((page - 1) * count, count, key, state); |
| | | } |
| | | |
| | | @Override |
| | | public long count(String key, Integer state) { |
| | | Long count = userCloudOrderMapper.count(key, state); |
| | | if (count == null) |
| | | count = 0L; |
| | | return count; |
| | | } |
| | | |
| | | |
| | | } |