123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package cn.efunbox.audio.impl.hag;
- import cn.efunbox.audio.entity.hag.HagOrder;
- import cn.efunbox.audio.repository.hag.HagOrderRepository;
- import cn.efunbox.audio.service.hag.HagOrderService;
- import cn.efunbox.audio.vo.hag.HagSkillReq;
- import cn.efunbox.audio.vo.hag.HagSkillResp;
- import cn.efunbox.audio.vo.hag.OrderSyncResult;
- import com.alibaba.fastjson.JSON;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.util.CollectionUtils;
- import java.util.*;
- /**
- * HagOrderServiceImpl
- * Created by xusq on 2019/12/25.
- */
- @Slf4j
- @Service
- public class HagOrderServiceImpl implements HagOrderService {
- @Autowired
- private HagOrderRepository hagOrderRepository;
- @Override
- public HagSkillResp save(HagSkillReq skillReq) {
- log.info("HAG sync order param : {}", JSON.toJSONString(skillReq));
- HagSkillReq.Endpoint endpoint = skillReq.getEndpoint();
- if (Objects.isNull(endpoint)) {
- return fillFailResp("400","参数错误");
- }
- HagSkillReq.Endpoint.Device device = endpoint.getDevice();
- if (Objects.isNull(device)) {
- return fillFailResp("400","device信息为空");
- }
- String deviceId = device.getDeviceId();
- if (StringUtils.isBlank(deviceId)) {
- return fillFailResp("400","deviceId为空");
- }
- HagSkillReq.HagInquire inquire = skillReq.getInquire();
- if (Objects.isNull(inquire) || Objects.isNull(inquire.getOrderRight())) {
- return fillFailResp("400","订单参数信息为空");
- }
- HagSkillReq.HagInquire.OrderRight orderRight = inquire.getOrderRight();
- List<HagSkillReq.HagInquire.OrderRight.ResourceRight> resourceRights = orderRight.getResourceRights();
- if (CollectionUtils.isEmpty(resourceRights)) {
- return fillFailResp("400","resourceRights为空");
- }
- String hagOrderId = orderRight.getOrderId();
- if (StringUtils.isBlank(hagOrderId)) {
- return fillFailResp("400","orderId为空");
- }
- HagOrder hagOrder = hagOrderRepository.findByOrderId(hagOrderId);
- if (Objects.nonNull(hagOrder)) {
- return fillSuccessResp(hagOrder.getId());
- }
- hagOrder = convertOrderObj(orderRight,resourceRights,deviceId);
- if (Objects.isNull(hagOrder)) {
- return fillFailResp("500","订单同步失败");
- }
- return fillSuccessResp(hagOrder.getId());
- }
- private HagOrder convertOrderObj(HagSkillReq.HagInquire.OrderRight orderRight, List<HagSkillReq.HagInquire.OrderRight.ResourceRight> resourceRights, String deviceId) {
- HagOrder hagOrder = new HagOrder();
- hagOrder.setSkuId(orderRight.getSkuId());
- hagOrder.setDeviceId(deviceId);
- hagOrder.setOrderId(orderRight.getOrderId());
- hagOrder.setAmount(orderRight.getAmount());
- hagOrder.setBoughtTime(orderRight.getBoughtTime());
- hagOrder.setCurrency(orderRight.getCurrency());
- String resourceId = resourceRights.get(0).getResourceId();
- hagOrder.setContentId(resourceId);
- hagOrder = hagOrderRepository.save(hagOrder);
- return hagOrder;
- }
- private HagSkillResp fillSuccessResp(String orderId) {
- HagSkillResp hagSkillResp = new HagSkillResp();
- hagSkillResp.setVersion("1.0.0");
- HagSkillResp.Reply<Map> reply = new HagSkillResp.Reply();
- reply.setIsEndSession(Boolean.TRUE);
- HagSkillResp.Reply.Command command = new HagSkillResp.Reply.Command();
- command.setNamespace("Charge");
- command.setName("SyncOrderRightCommandBody");
- OrderSyncResult orderSyncResult = new OrderSyncResult();
- orderSyncResult.setResultCode("SUCCESS");
- orderSyncResult.setCpOrderId(orderId);
- Map<String,OrderSyncResult> syncResultMap = new HashMap<>();
- syncResultMap.put("syncResult",orderSyncResult);
- command.setBody(syncResultMap);
- reply.setCommands(Arrays.asList(command));
- hagSkillResp.setReply(reply);
- return hagSkillResp;
- }
- private HagSkillResp fillFailResp(String errorCode,String errorMessage) {
- HagSkillResp hagSkillResp = new HagSkillResp();
- hagSkillResp.setErrorCode(errorCode);
- hagSkillResp.setErrorMessage(errorMessage);
- hagSkillResp.setVersion("1.0.0");
- HagSkillResp.Reply<OrderSyncResult> reply = new HagSkillResp.Reply();
- reply.setIsEndSession(Boolean.TRUE);
- HagSkillResp.Reply.Command command = new HagSkillResp.Reply.Command();
- command.setNamespace("Charge");
- command.setName("SyncOrderRightCommandBody");
- OrderSyncResult orderSyncResult = new OrderSyncResult();
- orderSyncResult.setResultCode("FAIL");
- orderSyncResult.setCpOrderId("");
- Map<String,OrderSyncResult> syncResultMap = new HashMap<>();
- syncResultMap.put("syncResult",orderSyncResult);
- command.setBody(syncResultMap);
- reply.setCommands(Arrays.asList(command));
- hagSkillResp.setReply(reply);
- return hagSkillResp;
- }
- }
|