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.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.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 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() ); KeyPair privateKey = wxFaPiaoService.getPrivateKey(); HeaderDto headerDto = new HeaderDto(); headerDto.setCallback_url(faPiaoDto.getCallbackUrl()); 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 = wxFaPiaoService.createAuthorization( "POST", canonicalUrl, parseObj, privateKey ); // 创建httppost try { HttpClient httpClient = new HttpClient(); PostMethod post = new PostMethod(baseUrl+canonicalUrl); post.setRequestHeader("Accept", "application/json"); post.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"); post.setRequestHeader("Content-Type", "application/json"); post.setRequestHeader("Connection", "keep-alive"); post.setRequestHeader("Authorization", "WECHATPAY2-SHA256-RSA2048 "+postStr); RequestEntity entity = new StringRequestEntity(parseObj, "text/html", "utf-8"); post.setRequestEntity(entity); httpClient.executeMethod(post); String responseBodyAsString = post.getResponseBodyAsString(); cn.hutool.json.JSONObject maps = JSONUtil.parseObj(responseBodyAsString); System.out.println(maps); } catch (IOException e) { e.printStackTrace(); } return new FebsResponse().success().message("操作成功"); } @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 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= times){ // timesOneSign = timesOneSign + 1; // symbol = 0; // } // }else{ // symbol = 0; // } // } // // System.out.println(timesOneSign); // } }