package com.hzs.member.share.controller.api;

import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EShareType;
import com.hzs.common.core.utils.sign.Base64Util;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.third.share.IShareServiceApi;
import com.hzs.third.share.dto.ShareServiceDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * 会员分享相关控制器
 */
@Slf4j
@RestController
@RequestMapping("/api/share")
public class ApiShareController {

    @DubboReference
    IShareServiceApi iShareServiceApi;

//    /**
//     * 获取海粉分享码
//     *
//     * @return
//     */
//    @GetMapping("/fans-code")
//    public AjaxResult fansCode() {
//        Long userId = SecurityUtils.getUserId();
//        // 海粉注册分享人就是自己
//        R<String> resultR = iShareServiceApi.queryShareCode(ShareServiceDTO.builder()
//                .eShareType(EShareType.FANS)
//                .pkBusiness(userId)
//                .pkCountry(SecurityUtils.getPkCountry())
//                .userId(userId)
//                .build());
//        if (resultR.isSuccess()) {
//            return AjaxResult.success("", resultR.getData());
//        }
//        return AjaxResult.error();
//    }

    /**
     * 获取188分享码（H5）
     *
     * @return
     */
    @GetMapping("/fans-code-h5")
    public AjaxResult fansCodeH5() {
        Long userId = SecurityUtils.getUserId();
        // 188注册分享人就是自己
        R<String> resultR = iShareServiceApi.queryShareCode(ShareServiceDTO.builder()
                .eShareType(EShareType.FANS)
                .pkBusiness(userId)
                .pkCountry(SecurityUtils.getPkCountry())
                .userId(userId)
                .build());
        if (resultR.isSuccess()) {
            Map<String, String> resultMap = new HashMap<>();
            resultMap.put("dataUrl", resultR.getData());
            // 前端无法根据URL生成海报，此处需要转一下base64
            resultMap.put("dataStr", Base64Util.toUrlBase64(resultR.getData()));
            return AjaxResult.success(resultMap);
        }
        return AjaxResult.error();
    }

//    /**
//     * 获取分享专区分享码
//     *
//     * @return
//     */
//    @GetMapping("/share-code")
//    public AjaxResult shareCode() {
//        Long userId = SecurityUtils.getUserId();
//        // 分享专区分享人就是自己
//        R<String> resultR = iShareServiceApi.queryShareCode(ShareServiceDTO.builder()
//                .eShareType(EShareType.SHARE)
//                .pkBusiness(userId)
//                .pkCountry(SecurityUtils.getPkCountry())
//                .userId(userId)
//                .build());
//        if (resultR.isSuccess()) {
//            return AjaxResult.success("", resultR.getData());
//        }
//        return AjaxResult.error();
//    }
//
//    /**
//     * 获取分享专区分享码（H5）
//     *
//     * @return
//     */
//    @GetMapping("/share-code-h5")
//    public AjaxResult shareCodeH5() {
//        Long userId = SecurityUtils.getUserId();
//        // 分享专区分享人就是自己
//        R<String> resultR = iShareServiceApi.queryShareCode(ShareServiceDTO.builder()
//                .eShareType(EShareType.SHARE)
//                .pkBusiness(userId)
//                .pkCountry(SecurityUtils.getPkCountry())
//                .userId(userId)
//                .build());
//        if (resultR.isSuccess()) {
//            Map<String, String> resultMap = new HashMap<>();
//            resultMap.put("dataUrl", resultR.getData());
//            // 前端无法根据URL生成海报，此处需要转一下base64
//            resultMap.put("dataStr", Base64Util.toUrlBase64(resultR.getData()));
//            return AjaxResult.success(resultMap);
//        }
//        return AjaxResult.error();
//    }

}
