From 7966b494ddea2c27ecec6ed031521cb889ab19f5 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 25 Apr 2025 15:18:19 +0800 Subject: [PATCH] feat(mall): 增加会员列表核销员设置功能并优化相关页面 --- src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 152 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java index 6b0cc57..3f9d310 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java @@ -1,18 +1,25 @@ 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; @@ -20,6 +27,13 @@ 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 @@ -34,6 +48,7 @@ private final ICommonService commonService; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final WxFaPiaoService wxFaPiaoService; @PostMapping(value = "/bonusSystemSetting") public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) { @@ -52,13 +67,106 @@ 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); - return new FebsResponse().success(); + + 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") @@ -74,4 +182,43 @@ 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); +// } } -- Gitblit v1.9.1