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;
|
|
|
@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);
|
}
|
|
|
@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;
|
}
|
|
|
}
|