| | |
| | | import cc.mrbird.febs.common.annotation.ControllerEndpoint; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.mall.dto.AdminAgentAmountDto; |
| | | import cc.mrbird.febs.mall.dto.AdminAgentDetailDto; |
| | | import cc.mrbird.febs.mall.dto.CashOutSettingDto; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; |
| | | import cc.mrbird.febs.mall.service.ICommonService; |
| | | import cc.mrbird.febs.mall.service.IMallCountryDeliveryService; |
| | | import cc.mrbird.febs.mall.service.ISystemService; |
| | | import cc.mrbird.febs.pay.model.HeaderDto; |
| | | import cc.mrbird.febs.pay.service.WxFaPiaoService; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.httpclient.HttpClient; |
| | | import org.apache.commons.httpclient.methods.PostMethod; |
| | | import org.apache.commons.httpclient.methods.RequestEntity; |
| | | import org.apache.commons.httpclient.methods.StringRequestEntity; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.security.KeyPair; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.security.PrivateKey; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | |
| | | private final ICommonService commonService; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | private final WxFaPiaoService wxFaPiaoService; |
| | | private final IMallCountryDeliveryService countryDeliveryService; |
| | | |
| | | @PostMapping(value = "/bonusSystemSetting") |
| | | public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) { |
| | |
| | | public FebsResponse cashOutSetting(CashOutSettingDto cashOutSettingDto) { |
| | | commonService.addDataDic(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode(), cashOutSettingDto, "提现设置"); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @PostMapping(value = "/lwPayConfig") |
| | | @ControllerEndpoint(operation = "保存LWPAY配置") |
| | | public FebsResponse lwPayConfig(LwPayConfigDto dto) { |
| | | if (StrUtil.isBlank(dto.getMemberId())) { |
| | | return new FebsResponse().fail().message("商户号不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getSecretKey())) { |
| | | return new FebsResponse().fail().message("签名密钥不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getNotifyUrl())) { |
| | | return new FebsResponse().fail().message("回调地址不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getReturnUrl())) { |
| | | return new FebsResponse().fail().message("跳转地址不能为空"); |
| | | } |
| | | commonService.addDataDic("LWPAY_CONFIG", "MEMBER_ID", dto.getMemberId(), "LWPAY商户号", false); |
| | | commonService.addDataDic("LWPAY_CONFIG", "SECRET_KEY", dto.getSecretKey(), "LWPAY签名密钥", false); |
| | | commonService.addDataDic("LWPAY_CONFIG", "NOTIFY_URL", dto.getNotifyUrl(), "LWPAY异步回调地址", false); |
| | | commonService.addDataDic("LWPAY_CONFIG", "RETURN_URL", dto.getReturnUrl(), "LWPAY支付完成跳转地址", false); |
| | | return new FebsResponse().success().message("保存成功"); |
| | | } |
| | | |
| | | @PostMapping(value = "/tokenviewConfig") |
| | | @ControllerEndpoint(operation = "保存Tokenview配置") |
| | | public FebsResponse tokenviewConfig(TokenviewConfigDto dto) { |
| | | if (StrUtil.isBlank(dto.getWebhookSecret())) { |
| | | return new FebsResponse().fail().message("签名密钥不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getTrc20UsdtAddress())) { |
| | | return new FebsResponse().fail().message("收款地址不能为空"); |
| | | } |
| | | commonService.addDataDic("TOKENVIEW_CONFIG", "WEBHOOK_SECRET", dto.getWebhookSecret(), "Tokenview Webhook签名密钥", false); |
| | | commonService.addDataDic("TOKENVIEW_CONFIG", "TRC20_USDT_ADDRESS", dto.getTrc20UsdtAddress(), "TRC20 USDT收款地址", false); |
| | | return new FebsResponse().success().message("保存成功"); |
| | | } |
| | | |
| | | @PostMapping(value = "/salesService") |
| | | @ControllerEndpoint(operation = "保存售后服务配置") |
| | | public FebsResponse salesService(SalesServiceDto dto) { |
| | | if (StrUtil.isBlank(dto.getWhatsApp())) { |
| | | return new FebsResponse().fail().message("WhatsApp不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getPhone())) { |
| | | return new FebsResponse().fail().message("联系电话不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getEmail())) { |
| | | return new FebsResponse().fail().message("联系邮箱不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getAddress())) { |
| | | return new FebsResponse().fail().message("联系地址不能为空"); |
| | | } |
| | | if (StrUtil.isBlank(dto.getWorkingHours())) { |
| | | return new FebsResponse().fail().message("工作时间不能为空"); |
| | | } |
| | | commonService.addDataDic("SALES_SERVICE", "WHATSAPP", dto.getWhatsApp(), "WhatsApp号码", false); |
| | | commonService.addDataDic("SALES_SERVICE", "PHONE", dto.getPhone(), "联系电话", false); |
| | | commonService.addDataDic("SALES_SERVICE", "EMAIL", dto.getEmail(), "联系邮箱", false); |
| | | commonService.addDataDic("SALES_SERVICE", "ADDRESS", dto.getAddress(), "联系地址", false); |
| | | commonService.addDataDic("SALES_SERVICE", "WORKINGHOURS", dto.getWorkingHours(), "工作时间", false); |
| | | return new FebsResponse().success().message("保存成功"); |
| | | } |
| | | |
| | | @GetMapping(value = "/countryDeliveryList") |
| | | public FebsResponse countryDeliveryList() { |
| | | return countryDeliveryService.list(); |
| | | } |
| | | |
| | | @PostMapping(value = "/countryDeliverySave") |
| | | @ControllerEndpoint(operation = "保存国家运费配置") |
| | | public FebsResponse countryDeliverySave(@Validated CountryDeliveryDto dto) { |
| | | return countryDeliveryService.saveOrUpdate(dto); |
| | | } |
| | | |
| | | @GetMapping(value = "/countryDeliveryDelete/{id}") |
| | | @ControllerEndpoint(operation = "删除国家运费配置") |
| | | public FebsResponse countryDeliveryDelete(@PathVariable Long id) { |
| | | return countryDeliveryService.delete(id); |
| | | } |
| | | |
| | | @PostMapping(value = "/agentAmountSetSetting") |
| | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @PostMapping(value = "/faPiaoSet") |
| | | public FebsResponse faPiaoSet(FaPiaoDto faPiaoDto) { |
| | | dataDictionaryCustomMapper.updateDicValueByTypeAndCode( |
| | | DataDictionaryEnum.FP_CALLBACK_URL.getType(), |
| | | DataDictionaryEnum.FP_CALLBACK_URL.getCode(), |
| | | faPiaoDto.getCallbackUrl() |
| | | ); |
| | | HeaderDto headerDto = new HeaderDto(); |
| | | headerDto.setCallback_url("https://api.blnka.cn/api/xcxPay/fapiaoCallBack"); |
| | | headerDto.setShow_fapiao_cell(false); |
| | | String parseObj = JSONUtil.parseObj(headerDto).toString(); |
| | | String baseUrl = "https://api.mch.weixin.qq.com"; |
| | | String canonicalUrl = "/v3/new-tax-control-fapiao/merchant/development-config"; |
| | | String postStr = null; |
| | | try { |
| | | |
| | | PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3(); |
| | | postStr = wxFaPiaoService.createAuthorization( |
| | | "PATCH", |
| | | baseUrl+canonicalUrl, |
| | | parseObj, |
| | | privateKey |
| | | ); |
| | | } catch (NoSuchAlgorithmException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | String token = AppContants.FP_TOKEN_HEADER_TYPE+postStr; |
| | | System.out.println("WECHATPAY2-SHA256-RSA2048 "+postStr); |
| | | String s = wxFaPiaoService.sendPatch(baseUrl + canonicalUrl, parseObj, token); |
| | | log.info("配置开发选项:"+s); |
| | | |
| | | return new FebsResponse().success().message(s); |
| | | } |
| | | |
| | | @PostMapping(value = "/agentDetail") |
| | | public FebsResponse agentDetail(AdminAgentDetailDto adminAgentDetailDto) { |
| | | DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @PostMapping(value = "/indexVideoSet") |
| | | public FebsResponse indexVideoSet(AdminIndexVideoDto adminIndexVideoDto) { |
| | | DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.VIDEO_URL_INDEX.getType(), |
| | | DataDictionaryEnum.VIDEO_URL_INDEX.getCode() |
| | | ); |
| | | if(ObjectUtil.isEmpty(dic)){ |
| | | return new FebsResponse().fail().message("请刷新页面重试"); |
| | | } |
| | | dic.setValue(adminIndexVideoDto.getVideoUrl()); |
| | | dataDictionaryCustomMapper.updateById(dic); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | // public static void main(String[] args) { |
| | | // List<Integer> lines = Arrays.asList(new Integer[]{1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}); |
| | | // //数字连续出现的计数 |