From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 五月 2020 17:13:23 +0800 Subject: [PATCH] 饿了么绘图,添加口碑 --- fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackExchangeServiceImpl.java | 134 ++++++++++++++++++++++---------------------- 1 files changed, 66 insertions(+), 68 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackExchangeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackExchangeServiceImpl.java index 5843a70..2a17ae5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackExchangeServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackExchangeServiceImpl.java @@ -21,7 +21,6 @@ import com.yeshi.fanli.entity.redpack.RedPackDetail; import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum; import com.yeshi.fanli.entity.redpack.RedPackExchange; -import com.yeshi.fanli.exception.redpack.RedPackBalanceException; import com.yeshi.fanli.exception.redpack.RedPackExchangeException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.money.UserMoneyService; @@ -30,7 +29,9 @@ import com.yeshi.fanli.service.inter.redpack.RedPackConfigService; import com.yeshi.fanli.service.inter.redpack.RedPackDetailService; import com.yeshi.fanli.service.inter.redpack.RedPackExchangeService; +import com.yeshi.fanli.service.inter.redpack.RedPackForbidService; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.factory.RedPackDetailFactory; @@ -39,82 +40,78 @@ @Resource private RedPackExchangeMapper redPackExchangeMapper; - + @Resource private RedPackConfigService redPackConfigService; - + @Resource private RedPackBalanceService redPackBalanceService; - + @Resource private UserMoneyService userMoneyService; @Resource private RedPackDetailService redPackDetailService; - + @Resource private UserMoneyMsgNotificationService userMoneyMsgNotificationService; - - + + @Resource + private RedPackForbidService redPackForbidService; + @Override - public List<RedPackExchange> query(Integer start, Integer count, String key, Integer state){ + public List<RedPackExchange> query(Integer start, Integer count, String key, Integer state) { return redPackExchangeMapper.query(start, count, key, state); } - + @Override - public Long count(String key, Integer state){ + public Long count(String key, Integer state) { return redPackExchangeMapper.count(key, state); } - + @Override public Long countByUidAndState(long uid, Integer state) { return redPackExchangeMapper.countByUidAndState(uid, state); } - + @Override - public BigDecimal countMoneyByUidAndState(Long uid, Integer state){ + public BigDecimal countMoneyByUidAndState(Long uid, Integer state) { return redPackExchangeMapper.countMoneyByUidAndState(uid, state); } - + @Override - public RedPackExchange selectByPrimaryKey(long id){ + public RedPackExchange selectByPrimaryKey(long id) { return redPackExchangeMapper.selectByPrimaryKey(id); } - - + @Override @Transactional(rollbackFor = Exception.class) public void exchangeCash(Long uid, BigDecimal amount) throws RedPackExchangeException { if (uid == null || amount == null) throw new RedPackExchangeException(1, "鍙傛暟涓嶆纭�"); + if (redPackForbidService.verifyForbid(uid)) + throw new RedPackExchangeException(1, "绾㈠寘鍔熻兘宸茶灏佺"); + String extractBanlenMin = redPackConfigService.getValueByKey("extract_banlen_min"); - - BigDecimal balance = null; - try { - balance = redPackBalanceService.getBalance(uid); - } catch (RedPackBalanceException e1) { - throw new RedPackExchangeException(1, e1.getMsg()); - } - + + BigDecimal balance = redPackBalanceService.getBalance(uid); if (balance == null || balance.compareTo(new BigDecimal(extractBanlenMin)) < 0) throw new RedPackExchangeException(1, "浣欓涓嶈冻" + extractBanlenMin + "鍏�"); - + if (balance.compareTo(amount) < 0) throw new RedPackExchangeException(1, "鎻愮幇浣欓涓嶈冻"); - + String moneyMin = redPackConfigService.getValueByKey("extract_money_min"); String moneyMax = redPackConfigService.getValueByKey("extract_money_max"); if (amount.compareTo(new BigDecimal(moneyMin)) < 0 || amount.compareTo(new BigDecimal(moneyMax)) > 0) throw new RedPackExchangeException(1, "鎻愮幇閲戦鑷冲皯" + moneyMin + "鍏冭嚦澶�" + moneyMax + "鍏�"); - - + long countToday = redPackExchangeMapper.countTodayByUid(uid); String extractDayMax = redPackConfigService.getValueByKey("extract_day_max"); - if (!StringUtil.isNullOrEmpty(extractDayMax) && countToday >= Long.parseLong(extractDayMax)) + if (!StringUtil.isNullOrEmpty(extractDayMax) && countToday >= Long.parseLong(extractDayMax)) throw new RedPackExchangeException(1, "浠婃棩绾㈠寘鎻愮幇娆℃暟瓒呴檺"); - - + Date nowDate = new Date(); // 鎻愮幇鐢宠 RedPackExchange exchange = new RedPackExchange(); @@ -123,7 +120,7 @@ exchange.setState(RedPackExchange.STATE_INIT); exchange.setCreateTime(nowDate); redPackExchangeMapper.insertSelective(exchange); - + // 鍑忓皯绾㈠寘 try { redPackBalanceService.subRedPack(uid, amount, RedPackDetailFactory.createExchange(exchange)); @@ -131,24 +128,26 @@ throw new RedPackExchangeException(1, "绾㈠寘淇℃伅寮傚父"); } } - - + @Override @Transactional(rollbackFor = Exception.class) public void passExchange(final long id, AdminUser admin) throws RedPackExchangeException { RedPackExchange record = redPackExchangeMapper.selectByPrimaryKey(id); - if (record == null) - throw new RedPackExchangeException(1,"鐢宠璁板綍宸蹭笉瀛樺湪"); + if (record == null) + throw new RedPackExchangeException(1, "鐢宠璁板綍宸蹭笉瀛樺湪"); if (RedPackExchange.STATE_INIT != record.getState()) - throw new RedPackExchangeException(1,"璇ョ敵璇峰凡琚鐞嗭紝璇峰埛鏂�"); + throw new RedPackExchangeException(1, "璇ョ敵璇峰凡琚鐞嗭紝璇峰埛鏂�"); + + if (redPackForbidService.verifyForbid(record.getUid())) + throw new RedPackExchangeException(1, "绾㈠寘鍔熻兘宸茶灏佺"); Date nowDate = new Date(); record.setAuditId(admin.getId()); record.setAuditTime(nowDate); record.setState(RedPackExchange.STATE_SUCCESS); redPackExchangeMapper.updateByPrimaryKeySelective(record); - + // 璧勯噾鏄庣粏-娣诲姞璧勯噾 UserMoneyDetail detail = new UserMoneyDetail(); detail.setCreateTime(new Date()); @@ -156,13 +155,13 @@ detail.setMoney(record.getMoney()); detail.setType(UserMoneyDetailTypeEnum.redPackExchange); detail.setTitle(UserMoneyDetailTypeEnum.redPackExchange.getDesc()); - detail.setDescInfo("浜�"+ TimeUtil.formatDate(record.getCreateTime()) +"鎻愮幇"); + detail.setDescInfo("浜�" + TimeUtil.formatDate(record.getCreateTime()) + "鎻愮幇"); detail.setUpdateTime(new Date()); detail.setUserInfo(new UserInfo(record.getUid())); - + // 娣诲姞璧勯噾 userMoneyService.addUserMoney(record.getUid(), record.getMoney(), detail); - + // 鏇存柊绾㈠寘鎻愮幇鏄庣粏 try { String identifyCode = StringUtil.Md5(RedPackDetailTypeEnum.redExchange.name() + ":" + record.getId()); @@ -172,58 +171,57 @@ redPackDetailService.updateByPrimaryKeySelective(updateDetail); } catch (Exception e) { LogHelper.errorDetailInfo(e); - throw new RedPackExchangeException(1,"鏇存柊鎻愮幇鏄庣粏鍑洪敊"); + throw new RedPackExchangeException(1, "鏇存柊鎻愮幇鏄庣粏鍑洪敊"); } - - try { - //娑堟伅 - SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm"); - String beizu = "绾㈠寘鎻愮幇鎴愬姛鍚庤鍒扳�滄垜鐨�-璐︽埛浣欓鈥濅腑鏌ョ湅"; - MsgRedPackExchangeContentDTO dto = new MsgRedPackExchangeContentDTO(); - dto.setTitle("绾㈠寘鎻愮幇"); - dto.setTime(sd.format(record.getCreateTime())); - dto.setHandle("浜哄伐瀹℃牳" + sd.format(new Date())); - dto.setMoney("楼" + record.getMoney().setScale(2)); - dto.setBalance("楼" + redPackBalanceService.getBalance(record.getUid())); - userMoneyMsgNotificationService.redPackMsg(record.getUid(), MsgTypeMoneyTypeEnum.redPackExchangePass, new Gson().toJson(dto), beizu); - } catch (RedPackBalanceException e) { - throw new RedPackExchangeException(1, e.getMsg()); - } + + // 娑堟伅 + SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm"); + String beizu = "绾㈠寘鎻愮幇鎴愬姛鍚庤鍒扳�滄垜鐨�-璐︽埛浣欓鈥濅腑鏌ョ湅"; + MsgRedPackExchangeContentDTO dto = new MsgRedPackExchangeContentDTO(); + dto.setTitle("绾㈠寘鎻愮幇"); + dto.setTime(sd.format(record.getCreateTime())); + dto.setHandle("浜哄伐瀹℃牳" + sd.format(new Date())); + dto.setMoney("楼" + record.getMoney().setScale(2)); + dto.setBalance("楼" + redPackBalanceService.getBalance(record.getUid())); + userMoneyMsgNotificationService.redPackMsg(record.getUid(), MsgTypeMoneyTypeEnum.redPackExchangePass, + new Gson().toJson(dto), beizu); + } - @Override @Transactional(rollbackFor = Exception.class) public void rejectExchange(long id, String reason, AdminUser admin) throws RedPackExchangeException { RedPackExchange record = redPackExchangeMapper.selectByPrimaryKey(id); - if (record == null) - throw new RedPackExchangeException(1,"鐢宠璁板綍宸蹭笉瀛樺湪"); + if (record == null) + throw new RedPackExchangeException(1, "鐢宠璁板綍宸蹭笉瀛樺湪"); if (RedPackExchange.STATE_INIT != record.getState()) - throw new RedPackExchangeException(1,"璇ョ敵璇峰凡琚鐞嗭紝璇峰埛鏂�"); - + throw new RedPackExchangeException(1, "璇ョ敵璇峰凡琚鐞嗭紝璇峰埛鏂�"); + record.setReason(reason); record.setAuditTime(new Date()); record.setAuditId(admin.getId()); record.setState(RedPackExchange.STATE_REJECT); redPackExchangeMapper.updateByPrimaryKeySelective(record); - + // 閫�鍥炵孩鍖� try { - redPackBalanceService.addRedPack(record.getUid(), record.getMoney(), RedPackDetailFactory.createExchangeReject(record)); + redPackBalanceService.addRedPack(record.getUid(), record.getMoney(), + RedPackDetailFactory.createExchangeReject(record)); } catch (Exception e) { LogHelper.errorDetailInfo(e); throw new RedPackExchangeException(1, "绾㈠寘閫�鍥炴椂鍑洪敊"); } - - //娑堟伅 + + // 娑堟伅 SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm"); MsgRedPackExchangeContentDTO dto = new MsgRedPackExchangeContentDTO(); dto.setTitle("绾㈠寘鎻愮幇"); dto.setReason(reason); dto.setHandle(""); // TODO 澶勭悊鏂瑰紡寰呭畾 dto.setTime(sd.format(record.getCreateTime())); - userMoneyMsgNotificationService.redPackMsg(record.getUid(), MsgTypeMoneyTypeEnum.redPackExchangeReject, new Gson().toJson(dto), null); + userMoneyMsgNotificationService.redPackMsg(record.getUid(), MsgTypeMoneyTypeEnum.redPackExchangeReject, + new Gson().toJson(dto), null); } } -- Gitblit v1.8.0