From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期二, 22 一月 2019 15:58:24 +0800 Subject: [PATCH] 邀请码添加返回状态 --- fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java | 326 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 198 insertions(+), 128 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java index a95acfd..f604d7a 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java @@ -2,15 +2,18 @@ import java.io.Serializable; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import org.apache.ibatis.annotations.Param; +import net.sf.json.JSONObject; + import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.SQLQuery; @@ -22,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import org.yeshi.utils.DateUtil; import com.yeshi.fanli.dao.hongbao.HongBaoDao; import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper; @@ -33,6 +37,7 @@ import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper; +import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; import com.yeshi.fanli.dao.mybatis.order.OrderItemMapper; import com.yeshi.fanli.dao.mybatis.order.OrderMapper; import com.yeshi.fanli.entity.admin.OrderAdmin; @@ -47,8 +52,10 @@ import com.yeshi.fanli.entity.bus.user.ThreeSaleGift; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.common.Config; +import com.yeshi.fanli.entity.money.UserMoneyDetail; import com.yeshi.fanli.entity.taobao.OrderVital; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; +import com.yeshi.fanli.exception.money.UserMoneyDetailException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemConfigService; @@ -59,7 +66,6 @@ import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.order.OrderItemServcie; import com.yeshi.fanli.service.inter.order.OrderService; -import com.yeshi.fanli.service.inter.push.PushService; import com.yeshi.fanli.service.inter.user.AccountDetailsService; import com.yeshi.fanli.service.inter.user.AccountMessageService; import com.yeshi.fanli.service.inter.user.MoneyRecordService; @@ -75,11 +81,10 @@ import com.yeshi.fanli.util.factory.AccountDetailsFactory; import com.yeshi.fanli.util.factory.AccountMessageFactory; import com.yeshi.fanli.util.factory.HongBaoFactory; +import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; import com.yeshi.fanli.util.push.XiaoMiPushUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; - -import net.sf.json.JSONObject; @Service public class HongBaoServiceImpl implements HongBaoService { @@ -164,6 +169,9 @@ @Resource private UserNotificationService userNotificationService; + + @Resource + private UserMoneyDetailMapper userMoneyDetailMapper; private static final String NEW_USER_HONGBAO = "new_user_hongbao"; @@ -441,6 +449,18 @@ AccountDetails ac = AccountDetailsFactory.create("+" + money, AccountDetailsFactory.XINREN, null, null, form); accountDetailsMapper.insertSelective(ac); + // 鏂扮増璧勯噾鏄庣粏 + try { + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createNewerHongBao(hongBao); + userMoneyDetail.setId(ac.getId()); + userMoneyDetailMapper.insert(userMoneyDetail); + } catch (UserMoneyDetailException e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } userInfoMapper.addHongBaoByUid(form.getId(), new BigDecimal(money)); userNotificationService.newerHongBao(form.getId(), new BigDecimal(money)); @@ -870,8 +890,8 @@ @Transactional public void updateHongBao(HongBao hongBao, TaoBaoOrder taoBaoOrder) { - BigDecimal rate = new BigDecimal(hongBaoManageMapper.selectByKey("hongbao_goods_proportion").getValue()) - .divide(new BigDecimal(100)); + BigDecimal proportion = hongBaoManageService.getFanLiRate(); + BigDecimal rate = proportion.divide(new BigDecimal(100)); // 鏇存柊绾㈠寘椤� HongBao updateHongBao = new HongBao(); updateHongBao.setId(hongBao.getId()); @@ -976,127 +996,6 @@ System.out.println("璁㈠崟:" + order); } - @Transactional - @Override - public void addHongBao(Order order, TaoBaoOrder taoBaoOrder, Long orderItemId) { - OrderItem orderItem = orderItemMapper.selectByPrimaryKey(orderItemId); - // 璁㈠崟杩斿埄姣斾緥 - BigDecimal baseRate = new BigDecimal(hongBaoManageMapper.selectByKey("hongbao_goods_proportion").getValue()) - .divide(new BigDecimal(100)); - - // 鍒涘缓绾㈠寘 - JSONObject data = new JSONObject(); - HongBao hongBao = null; - if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) - // 璁㈠崟缁撶畻搴旇鍙栫粨绠楅噾棰濅笌棰勪及鏀跺叆 - hongBao = HongBaoFactory.createHongBao(MoneyBigDecimalUtil.mul(baseRate, taoBaoOrder.geteIncome()), - data.toString(), order.getId(), null, order.getUserInfo(), 1, taoBaoOrder.getSettlement(), - taoBaoOrder.getAuctionId()); - else - hongBao = HongBaoFactory.createHongBao(MoneyBigDecimalUtil.mul(baseRate, taoBaoOrder.getEstimate()), - data.toString(), order.getId(), null, order.getUserInfo(), 1, taoBaoOrder.getPayment(), - taoBaoOrder.getAuctionId()); - - hongBao.setOrderId(taoBaoOrder.getOrderId()); - hongBao.setOrderItemId(orderItem.getId()); - hongBao.setPreGettime(0L); - if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻") - && !StringUtil.isNullOrEmpty(taoBaoOrder.getSettlementTime())) - hongBao.setBalanceTime( - new Date(TimeUtil.convertToTimeTemp(taoBaoOrder.getSettlementTime(), "yyyy-MM-dd HH:mm:ss"))); - - UserInfo boss = threeSaleMapper.selectBoss(order.getUserInfo().getId()); - - if (boss != null) { - hongBao.setHasChild(true); - } - - hongBaoMapper.insertSelective(hongBao); - // 閫氱煡鐢ㄦ埛璁㈠崟琚粺璁� - if (!taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥")) { - try { - userNotificationService.orderFanliStatisticed(hongBao.getUserInfo().getId(), order.getOrderId()); - } catch (Exception e) { - } - } - - // 鎻愭垚璁㈠崟涓嶅鐞嗗け鏁堣鍗� - if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥")) - return; - if (boss != null) { - // 璁$畻涓婄骇杩斿埄閲戦 - HongBaoManage hbm = hongBaoManageMapper - .selectByKey("sale_6_" + (boss.getRank() == null ? 0 : boss.getRank())); - BigDecimal rate = null; - if (hbm == null) - rate = new BigDecimal(0); - else - rate = new BigDecimal(hbm.getValue()).divide(new BigDecimal(100)); - if (rate.compareTo(new BigDecimal(0)) > 0) { - HongBao hongBao2 = null; - if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) { - // 璁㈠崟缁撶畻搴旇鍙栫粨绠楅噾棰濅笌棰勪及鏀跺叆 - hongBao2 = HongBaoFactory.createHongBao( - MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.geteIncome(), baseRate)), - null, hongBao, boss, Constant.ONESALE); - } else { - hongBao2 = HongBaoFactory.createHongBao( - MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)), - null, hongBao, boss, Constant.ONESALE); - } - - HongBaoFactory.createHongBao( - MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)), - null, hongBao, boss, Constant.ONESALE); - // 璁剧疆璁㈠崟鍙� - hongBao2.setOrderId(taoBaoOrder.getOrderId()); - - hongBaoMapper.insertSelective(hongBao2); - - try { - // 閫氱煡鎻愭垚璁㈠崟琚粺璁� - userNotificationService.tiChengStatisticed(hongBao2.getUserInfo().getId(), hongBao2.getOrderId(), - hongBao2.getMoney()); - } catch (Exception e) { - } - - } - - UserInfo boss2 = threeSaleMapper.selectBoss(boss.getId()); - // 璁$畻涓婁笂绾ц繑鍒� - if (boss2 != null) { - hbm = hongBaoManageMapper.selectByKey("sale_7_" + (boss.getRank() == null ? 0 : boss.getRank())); - if (hbm == null) - rate = new BigDecimal(0); - else - rate = new BigDecimal(hbm.getValue()).divide(new BigDecimal(100)); - if (rate.compareTo(new BigDecimal(0)) > 0) { - // 璁㈠崟缁撶畻搴旇鍙栫粨绠楅噾棰濅笌棰勪及鏀跺叆 - HongBao hongBao3 = null; - if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) - hongBao3 = HongBaoFactory.createHongBao( - MoneyBigDecimalUtil.mul(rate, - MoneyBigDecimalUtil.mul(taoBaoOrder.geteIncome(), baseRate)), - null, hongBao, boss2, Constant.TWOSALE); - else - hongBao3 = HongBaoFactory.createHongBao( - MoneyBigDecimalUtil.mul(rate, - MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)), - null, hongBao, boss2, Constant.TWOSALE); - // 璁剧疆杩斿埄璁㈠崟鍙� - hongBao3.setOrderId(taoBaoOrder.getOrderId()); - hongBaoMapper.insertSelective(hongBao3); - - try { - // 閫氱煡鎻愭垚璁㈠崟琚粺璁� - userNotificationService.tiChengStatisticed(hongBao3.getUserInfo().getId(), - hongBao3.getOrderId(), hongBao3.getMoney()); - } catch (Exception e) { - } - } - } - } - } @Override public BigDecimal getTotalTiChengMoney(Long uid) { @@ -1205,8 +1104,179 @@ @Override public int getTotalTiChengCount(Long uid) { - return hongBaoMapper.getTotalTiChengCount(uid); } + + @Override + public List<Map<String, Object>> count24HOderByChannel(String channel, Integer type, String years, + String startTime, String endTime) throws Exception{ + return hongBaoMapper.count24HOderByChannel(channel, type, years, startTime, endTime); + } + + @Override + public List<Map<String, Object>> countHistoryOderByChannel(String channel, Integer type, String years, + String startTime, String endTime) throws Exception{ + + return hongBaoMapper.countHistoryOderByChannel(channel, type, years, + startTime, endTime); + } + + + public List<Object> dayFactory(String startTime, String endTime, List<Map<String, Object>> list) throws Exception { + + List<Object> listObject = new ArrayList<Object>(); + + if (startTime.equals(endTime)) { + + Map<String, Object> map = list.get(0); + Object payMoney = map.get("payMoney"); + Object countOrder = map.get("countOrder"); + Object commision = map.get("commision"); + + if (payMoney == null) { + map.put("payMoney", 0); + } + if (countOrder == null) { + map.put("countOrder", 0); + } + if (commision == null) { + map.put("commision", 0); + } + listObject.add(map); + return listObject; + } + + + String plusDay = ""; + for (int i = 0; i < 1000 ; i++) { + if (i == 0) { + plusDay = startTime; + } else { + plusDay = DateUtil.plusDay(i, startTime); + } + + Map<String, Object> mapObject = new HashMap<String, Object>(); + Object payMoney = null; + Object countOrder = null; + Object commision = null; + + for (int j = 0; j < list.size(); j++) { + Map<String, Object> map = list.get(j); + Object createDate = map.get("showDate"); + String month = createDate.toString(); + if (plusDay.equalsIgnoreCase(month)) { + payMoney = map.get("payMoney"); + countOrder = map.get("countOrder"); + commision = map.get("commision"); + break; + } + } + + if (payMoney == null) { + payMoney = 0; + } + mapObject.put("payMoney", payMoney); + + if (countOrder == null) { + countOrder = 0; + } + mapObject.put("countOrder", countOrder); + + if (commision == null) { + commision = 0; + } + mapObject.put("commision", commision); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd"); + Date parseDate = sdf.parse(plusDay.toString()); + + mapObject.put("showDate", sdf2.format(parseDate)); + + listObject.add(mapObject); + + if (plusDay.equals(endTime)) { + break; // 鏃堕棿缁撴潫 + } + } + + return listObject; + } + + + public List<Object> monthFactory(List<Map<String, Object>> list) { + + List<Object> listObject = new ArrayList<Object>(); + // 12 涓湀澶勭悊 + for (int i = 1; i <= 12; i++) { + Map<String, Object> mapObject = new HashMap<String, Object>(); + Object payMoney = null; + Object countOrder = null; + Object commision = null; + + for (int j = 0; j < list.size(); j++) { + Map<String, Object> map = list.get(j); + Object createDate = map.get("showDate"); + String month = createDate.toString(); + if ((i+"").equalsIgnoreCase(month) || i == Integer.parseInt(month)) { + payMoney = map.get("payMoney"); + countOrder = map.get("countOrder"); + commision = map.get("commision"); + break; + } + } + + if (payMoney == null) { + payMoney = 0; + } + mapObject.put("payMoney", payMoney); + + if (countOrder == null) { + countOrder = 0; + } + mapObject.put("countOrder", countOrder); + + if (commision == null) { + commision = 0; + } + mapObject.put("commision", commision); + + mapObject.put("showDate", i + "鏈�"); + + listObject.add(mapObject); + } + return listObject; + } + + public List<Object> yearFactory(List<Map<String, Object>> list) { + + List<Object> listObject = new ArrayList<Object>(); + + for (int i = 0; i < list.size(); i++) { + Map<String, Object> map = list.get(i); + Object payMoney = map.get("payMoney"); + Object countOrder = map.get("countOrder"); + Object commision = map.get("commision"); + + if (payMoney == null) { + payMoney = 0; + } + map.put("payMoney", payMoney); + + if (countOrder == null) { + countOrder = 0; + } + map.put("countOrder", countOrder); + + if (commision == null) { + commision = 0; + } + map.put("commision", commision); + + listObject.add(map); + } + + return listObject; + } } -- Gitblit v1.8.0