yujian
2019-11-25 7e78f38c4fbb1fd5a3141646fe27aa6bfa37316e
vip信息统计
9个文件已修改
203 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2CountMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/integral/IntegralDetailMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2CountMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralDetailMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/HongBaoV2CountServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralDetailServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/count/HongBaoV2CountService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/user/integral/IntegralDetailService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -1,6 +1,9 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -13,11 +16,15 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.SMSHistory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
import com.yeshi.fanli.entity.push.DeviceActive;
import com.yeshi.fanli.entity.shop.BanLiShopOrder;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.homemodule.HomeNavbarUserService;
import com.yeshi.fanli.service.inter.money.UserMoneyService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
@@ -26,6 +33,7 @@
import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
import com.yeshi.fanli.service.inter.push.DeviceTokenOPPOService;
import com.yeshi.fanli.service.inter.push.DeviceTokenVIVOService;
import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.user.BindRemindService;
@@ -40,8 +48,11 @@
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
@@ -134,7 +145,22 @@
    @Resource
    private BindRemindService bindRemindService;
    @Resource
    private UserVIPInfoService userVIPInfoService;
    @Resource
    private HongBaoV2CountService hongBaoV2CountService;
    @Resource
    private IntegralDetailService integralDetailService;
    @Resource
    private BanLiShopOrderService banLiShopOrderService;
    @Resource
    private ConfigService configService;
    /**
     * 新版登录 V1.5.3
     * 
@@ -302,4 +328,81 @@
        out.print(JsonUtil.loadTrueResult("记录成功"));
    }
    /**
     * 获取vip信息
     * @param acceptData
     * @param uid
     * @param out
     */
    @RequestMapping(value = "getVIPInfo")
    public void getVIPInfo(AcceptData acceptData, Long uid, PrintWriter out) {
        if (uid == null || uid <= 0) {
            out.print(JsonUtil.loadFalseResult("用户id为空"));
            return;
        }
        UserInfo userInfo = userInfoService.selectByPKey(uid);
        if (userInfo == null) {
            out.print(JsonUtil.loadFalseResult("该用户不存在"));
            return;
        }
        JSONObject data = new JSONObject();
        data.put("id", uid);
        data.put("nickName", userInfo.getNickName());
        data.put("portrait", userInfo.getPortrait());
        UserVIPInfo userVIPInfo = userVIPInfoService.selectByUid(uid);
        boolean vip = false;
        if (userVIPInfo != null && userVIPInfo.getState() != null
                && userVIPInfo.getState() == UserVIPInfo.STATE_SUCCESS) {
            vip = true;
            data.put("applyTime", userVIPInfo.getSuccessTime());
        }
        data.put("vip", vip);
        // 省钱 -自购产生返利
        BigDecimal rewardPurchase = hongBaoV2CountService.getRewardMoneyBySelf(uid);
        data.put("rurchaseReward", rewardPurchase.setScale(2));
        BigDecimal conserveMoney = rewardPurchase;
        if (!vip) { // 少省钱:  自购产生返利  * 5/12
            BigDecimal rate1 = new BigDecimal(5);
            BigDecimal rate2 = new BigDecimal(12);
            conserveMoney = MoneyBigDecimalUtil.mul2(rewardPurchase,  MoneyBigDecimalUtil.div(rate1, rate2));
        }
        data.put("conserveMoney", conserveMoney.setScale(2));
        // 分享赚
        BigDecimal rewardShare = hongBaoV2CountService.getRewardMoneyByShare(uid);
        // 邀请赚
        BigDecimal rewardInvite = hongBaoV2CountService.getRewardMoneyByInvite(uid);
        BigDecimal earnMoney = rewardShare;
        if (vip) { // 赚钱=分享+邀请
            earnMoney = MoneyBigDecimalUtil.add(rewardShare, rewardInvite );
        } else { // 少赚钱: 分享赚* 5/12
            BigDecimal rate1 = new BigDecimal(5);
            BigDecimal rate2 = new BigDecimal(12);
            earnMoney = MoneyBigDecimalUtil.mul2(rewardShare,  MoneyBigDecimalUtil.div(rate1, rate2));
        }
        data.put("earnMoney", earnMoney.setScale(2));
        // 注:1.有效一级队员定义:2019年1月1日起,自购或分享1笔且付款总金额不小于1元(退款为失效);
        long teamNum = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, "2019-01-01", new BigDecimal(1));
        data.put("teamNum", teamNum);
        // 累计金币
        BigDecimal goldCoin = integralDetailService.getCumulativeMoney(uid);
        data.put("goldCoin", goldCoin.setScale(0));
        // 帮助链接
        data.put("helpLink", configService.get("help_link_vip_info"));
        // 使用红包次数
        List<Integer> list = new ArrayList<Integer>();
        list.add(BanLiShopOrder.STATE_SUCCESS);
        data.put("shopNum", banLiShopOrderService.countByUidAndState(uid, list));
        out.print(JsonUtil.loadTrueResult(data));
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2CountMapper.java
@@ -196,5 +196,14 @@
     * @return
     */
    BigDecimal getRewardMoneyByUid(@Param("uid") Long uid, @Param("list") List<Integer> list);
    /**
     *  注:1.有效一级队员定义:2019年1月1日起,自购或分享1笔且付款总金额不小于 payment 元(退款为失效
     * @param uid
     * @param list 类型
     * @return
     */
    long countValidOrderTeamUserByUid(@Param("uid") Long uid, @Param("date") String date,
            @Param("payment") BigDecimal payment);
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/integral/IntegralDetailMapper.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.dao.mybatis.integral;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -76,4 +77,12 @@
     */
    List<IntegralMonthVO> selectMonthMoneyByUid(@Param("uid") Long uid, @Param("dateFormat") List<String> dateFormat);
    
    /**
     * 统计历史到账
     * @param uniqueKey
     * @return
     */
    BigDecimal getCumulativeMoney(@Param("uid") Long uid);
}
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2CountMapper.xml
@@ -378,7 +378,7 @@
    <select id="getRewardMoneyByUid" resultType="BigDecimal">
        SELECT IFNULL(SUM(v2.`hb_money`),0) FROM yeshi_ec_hongbao_v2 v2
        WHERE v2.`hb_uid` = #{uid}
        WHERE v2.`hb_uid` = #{uid}  AND v2.`hb_state` = 3
        <if test="list != null and list.size() > 0">
            AND
            <foreach collection="list" item="item" open="(" separator="OR" close=")">
@@ -386,6 +386,15 @@
            </foreach>
        </if>
    </select>
    <select id="countValidOrderTeamUserByUid" resultType="Long">
        SELECT IFNULL(COUNT(*),0) FROM (SELECT DISTINCT co.`co_uid` FROM `yeshi_ec_common_order` co
        LEFT JOIN `yeshi_ec_hongbao_order` ho  ON co.`co_id` = ho.`ho_order_id`
        LEFT JOIN yeshi_ec_hongbao_v2 v2 ON v2.`hb_pid` = ho.`ho_hongbao_id`
        LEFT JOIN yeshi_ec_hongbao_v2 t2 ON t2.`hb_id` = v2.`hb_pid`
        WHERE v2.`hb_uid` = #{uid} AND co.`co_payment` <![CDATA[>=]]> #{payment} AND t2.`hb_state` = 3
            AND v2.`hb_create_time` > #{date}
            AND (t2.`hb_type` = 1 OR t2.`hb_type` = 20))A
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralDetailMapper.xml
@@ -131,4 +131,9 @@
       </foreach>
  </select>
  
  <select id="getCumulativeMoney" resultType="BigDecimal">
      SELECT IFNULL(SUM(d.`td_money`),0) FROM `yeshi_ec_integral_detail` d
    WHERE d.`td_uid` = #{uid} AND d.`td_money` > 0;
  </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/count/HongBaoV2CountServiceImpl.java
@@ -311,7 +311,30 @@
    @Override
    public BigDecimal getRewardMoneyBySelf(Long uid) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(HongBaoV2.STATE_YILINGQU);
        list.add(HongBaoV2.TYPE_ZIGOU);
        return hongBaoV2CountMapper.getRewardMoneyByUid(uid, list);
    }
    @Override
    public BigDecimal getRewardMoneyByShare(Long uid) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(HongBaoV2.TYPE_SHARE_GOODS);
        return hongBaoV2CountMapper.getRewardMoneyByUid(uid, list);
    }
    @Override
    public BigDecimal getRewardMoneyByInvite(Long uid) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(HongBaoV2.TYPE_YIJI);
        list.add(HongBaoV2.TYPE_ERJI);
        list.add(HongBaoV2.TYPE_SHARE_YIJI);
        list.add(HongBaoV2.TYPE_SHARE_ERJI);
        return hongBaoV2CountMapper.getRewardMoneyByUid(uid, list);
    }
    @Override
    public long countValidOrderTeamUserByUid(Long uid, String date, BigDecimal payment) {
        return hongBaoV2CountMapper.countValidOrderTeamUserByUid(uid, date, payment);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralDetailServiceImpl.java
@@ -191,5 +191,11 @@
        return monthCount + detailCount;
    }
    @Override
    public BigDecimal getCumulativeMoney(Long uid) {
        return integralDetailMapper.getCumulativeMoney(uid);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/count/HongBaoV2CountService.java
@@ -206,6 +206,29 @@
     * @param uid
     * @return
     */
    public BigDecimal getRewardMoneyBySelf(Long uid);
    public BigDecimal getRewardMoneyBySelf(Long uid);
    /**
     * 分享奖励到账金额
     * @param uid
     * @return
     */
    public BigDecimal getRewardMoneyByShare(Long uid);
    /**
     * 下级产生奖励到账金额
     * @param uid
     * @return
     */
    public BigDecimal getRewardMoneyByInvite(Long uid);
    /**
     * 有效一级队员定义:2019年1月1日起(date),自购或分享1笔且付款总金额不小于 payment 元(退款为失效
     * @param uid
     * @param date
     * @param payment
     * @return
     */
    public long countValidOrderTeamUserByUid(Long uid, String date, BigDecimal payment);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/user/integral/IntegralDetailService.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.service.inter.user.integral;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -40,4 +41,11 @@
     */
    public IntegralDetail getDetailByUniqueKey(String uniqueKey);
    /**
     * 查询历史到账金币
     * @param uid
     * @return
     */
    public BigDecimal getCumulativeMoney(Long uid);
}