package cc.mrbird.febs.mall.controller;
|
|
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.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.ISystemService;
|
import cc.mrbird.febs.pay.model.HeaderDto;
|
import cc.mrbird.febs.pay.service.WxFaPiaoService;
|
import cn.hutool.core.util.ObjectUtil;
|
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.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;
|
|
@Slf4j
|
@Validated
|
@RestController
|
@RequiredArgsConstructor
|
@RequestMapping(value = "/admin/system")
|
public class AdminSystemController {
|
|
@Autowired
|
private ISystemService systemService;
|
|
private final ICommonService commonService;
|
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
|
private final WxFaPiaoService wxFaPiaoService;
|
|
@PostMapping(value = "/bonusSystemSetting")
|
public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) {
|
systemService.bonusSystemSetting(map);
|
return new FebsResponse().success().message("设置成功");
|
}
|
|
@PostMapping(value = "/cashOutSetting")
|
public FebsResponse cashOutSetting(CashOutSettingDto cashOutSettingDto) {
|
commonService.addDataDic(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode(), cashOutSettingDto, "提现设置");
|
return new FebsResponse().success();
|
}
|
|
@PostMapping(value = "/agentAmountSetSetting")
|
public FebsResponse agentAmountSetSetting(AdminAgentAmountDto adminAgentAmountDto) {
|
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.PRICE_AMOUNT.getType(), DataDictionaryEnum.PRICE_AMOUNT.getCode()
|
);
|
if(ObjectUtil.isEmpty(dic)){
|
return new FebsResponse().fail().message("请刷新页面重试");
|
}
|
|
DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_STATE.getType(),
|
DataDictionaryEnum.GIVE_STATE.getCode());
|
if(ObjectUtil.isEmpty(giveStateDic)){
|
return new FebsResponse().fail().message("请刷新页面重试");
|
}
|
|
DataDictionaryCustom activityBulletinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.ACTIVITY_BULLETIN.getType(),
|
DataDictionaryEnum.ACTIVITY_BULLETIN.getCode());
|
if(ObjectUtil.isEmpty(activityBulletinDic)){
|
return new FebsResponse().fail().message("请刷新页面重试");
|
}
|
|
DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_AMOUNT.getType(),
|
DataDictionaryEnum.GIVE_AMOUNT.getCode());
|
if(ObjectUtil.isEmpty(giveAmountDic)){
|
return new FebsResponse().fail().message("请刷新页面重试");
|
}
|
|
DataDictionaryCustom chargeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CHARGE_AMOUNT.getType(),
|
DataDictionaryEnum.CHARGE_AMOUNT.getCode());
|
if(ObjectUtil.isEmpty(chargeAmountDic)){
|
return new FebsResponse().fail().message("请刷新页面重试");
|
}
|
|
String giveState = adminAgentAmountDto.getGiveState();
|
if(1 == Integer.parseInt(giveState)){
|
if(ObjectUtil.isEmpty(adminAgentAmountDto.getActivityBulletin())){
|
return new FebsResponse().fail().message("活动公告不能为空");
|
}
|
if(ObjectUtil.isEmpty(adminAgentAmountDto.getGiveAmount())){
|
return new FebsResponse().fail().message("请输入正确的赠送金额");
|
}
|
if(BigDecimal.ZERO.compareTo(new BigDecimal(adminAgentAmountDto.getGiveAmount())) > 0){
|
return new FebsResponse().fail().message("请输入正确的赠送金额");
|
}
|
if(ObjectUtil.isEmpty(adminAgentAmountDto.getChargeAmount())){
|
return new FebsResponse().fail().message("请输入正确的充值金额");
|
}
|
if(BigDecimal.ZERO.compareTo(new BigDecimal(adminAgentAmountDto.getChargeAmount())) > 0){
|
return new FebsResponse().fail().message("请输入正确的充值金额");
|
}
|
}
|
|
dic.setValue(adminAgentAmountDto.getAgentAmountValue());
|
dataDictionaryCustomMapper.updateById(dic);
|
|
giveStateDic.setValue(adminAgentAmountDto.getGiveState());
|
dataDictionaryCustomMapper.updateById(giveStateDic);
|
|
activityBulletinDic.setValue(adminAgentAmountDto.getActivityBulletin());
|
dataDictionaryCustomMapper.updateById(activityBulletinDic);
|
|
giveAmountDic.setValue(adminAgentAmountDto.getGiveAmount());
|
dataDictionaryCustomMapper.updateById(giveAmountDic);
|
|
chargeAmountDic.setValue(adminAgentAmountDto.getChargeAmount());
|
dataDictionaryCustomMapper.updateById(chargeAmountDic);
|
|
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(
|
DataDictionaryEnum.AGENT_DETAILS.getType(), DataDictionaryEnum.AGENT_DETAILS.getCode()
|
);
|
|
if(ObjectUtil.isEmpty(dic)){
|
return new FebsResponse().fail().message("请刷新页面重试");
|
}
|
dic.setValue(adminAgentDetailDto.getAgentDetail());
|
dataDictionaryCustomMapper.updateById(dic);
|
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});
|
// //数字连续出现的计数
|
// Integer symbol = 0;
|
// //数字连续出现的次数限制
|
// Integer times = 3;
|
// //出现的数字
|
// Integer symbolNum = 1;
|
// //满足规则的次数
|
// Integer timesOneSign = 0;
|
// for(int i=0;i<lines.size();i++){
|
// if(symbolNum == lines.get(i)){
|
// symbol = symbol + 1;
|
// if(symbol >= times){
|
// timesOneSign = timesOneSign + 1;
|
// symbol = 0;
|
// }
|
// }else{
|
// symbol = 0;
|
// }
|
// }
|
//
|
// System.out.println(timesOneSign);
|
// }
|
}
|