|  |  |  | 
|---|
|  |  |  | 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.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.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.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 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final ICommonService commonService; | 
|---|
|  |  |  | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; | 
|---|
|  |  |  | private final WxFaPiaoService wxFaPiaoService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping(value = "/bonusSystemSetting") | 
|---|
|  |  |  | public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.getActivityBulletin()) | 
|---|
|  |  |  | || BigDecimal.ZERO.compareTo(new BigDecimal(adminAgentAmountDto.getActivityBulletin())) > 0){ | 
|---|
|  |  |  | 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("请输入正确的充值金额"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | giveAmountDic.setValue(adminAgentAmountDto.getGiveAmount()); | 
|---|
|  |  |  | dataDictionaryCustomMapper.updateById(giveAmountDic); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | 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") | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  | } | 
|---|