| | |
| | | import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.TaoBaoConstant;
|
| | | import com.yeshi.fanli.util.factory.CommonGoodsFactory;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
|
| | |
| | |
|
| | | @Resource(name = "taskExecutor")
|
| | | private TaskExecutor executor;
|
| | | |
| | |
|
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinRecordMapper userTaoLiJinRecordMapper;
|
| | | |
| | |
|
| | | @Resource
|
| | | private CommonGoodsService commonGoodsService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private HongBaoManageService hongBaoManageService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserMoneyExtraService userMoneyExtraService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinReportService userTaoLiJinReportService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinDetailService userTaoLiJinDetailService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinOriginService userTaoLiJinOriginService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private ConfigTaoLiJinService configTaoLiJinService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserOtherMsgNotificationService userOtherMsgNotificationService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public UserTaoLiJinRecord selectByPrimaryKey(Long id){
|
| | | public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
|
| | | return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods) throws UserTaoLiJinRecordException{
|
| | | public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
|
| | | throws UserTaoLiJinRecordException {
|
| | | Date date = new Date();
|
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
| | | SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
| | |
| | | }
|
| | | // 新人红包 自购一元
|
| | | BigDecimal perface = new BigDecimal(1);
|
| | | |
| | | return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime,
|
| | | sendEndTime, null, useEndTime);
|
| | |
|
| | | String pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT;
|
| | | if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0)
|
| | | pid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID;
|
| | | return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
|
| | | useEndTime, pid);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public UserTaoLiJinRecord createShareTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods) throws UserTaoLiJinRecordException{
|
| | | public UserTaoLiJinRecord createShareTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
|
| | | throws UserTaoLiJinRecordException {
|
| | | Date date = new Date();
|
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
| | | SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
| | |
| | | } catch (ParseException e2) {
|
| | | e2.printStackTrace();
|
| | | }
|
| | | |
| | |
|
| | | boolean isNewUser = userInfoExtraService.isNewUser(uid);
|
| | | if (isNewUser) {
|
| | | // 判定为老用户: 新人只要使用了新人红包,也就是那1块钱,那么,他看到的分享爆款中的商品-就只能分享。
|
| | |
| | | isNewUser = false;
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | BigDecimal perface = null;
|
| | | if (isNewUser) {
|
| | | perface = new BigDecimal(1);
|
| | |
| | | // 计算推广红包
|
| | | String warningRate = configTaoLiJinService.getValueByKey("warning_value");
|
| | | perface = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
|
| | | }
|
| | | |
| | | return createUserTaoLiJin(2, uid, goods.getAuctionId(), perface, totalNum, name, sendStartTime,
|
| | | sendEndTime, null, useEndTime);
|
| | | }
|
| | |
|
| | | return createUserTaoLiJin(2, uid, goods.getAuctionId(), perface, totalNum, name, sendStartTime, sendEndTime,
|
| | | null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public UserTaoLiJinRecord createUserTaoLiJin(int origin, Long uid, Long auctionId, BigDecimal perface, int totalNum, String name,
|
| | | Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime) throws UserTaoLiJinRecordException{
|
| | | Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime,String pid) throws UserTaoLiJinRecordException{
|
| | |
|
| | | // 用户剩余可以淘礼金验证
|
| | | UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
|
| | |
| | | }
|
| | |
|
| | | // 创建淘礼金红包
|
| | | TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime);
|
| | | TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, pid);
|
| | | if (taoLiJinDTO == null) {
|
| | | throw new UserTaoLiJinRecordException(101, "红包创建失败");
|
| | | }
|
| | |
| | | return record;
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public List<UserTaoLiJinRecordVO> getRecordByUid(long start, int count, Long uid){
|
| | | public List<UserTaoLiJinRecordVO> getRecordByUid(long start, int count, Long uid) {
|
| | | List<UserTaoLiJinRecordVO> list = userTaoLiJinRecordMapper.getRecordByUid(start, count, uid);
|
| | | if (list == null || list.size() == 0) {
|
| | | return list;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | List<Long> listGoodsId = new ArrayList<Long>();
|
| | | for (UserTaoLiJinRecordVO userTaoLiJinRecordVO: list) {
|
| | | for (UserTaoLiJinRecordVO userTaoLiJinRecordVO : list) {
|
| | | listGoodsId.add(userTaoLiJinRecordVO.getAuctionId());
|
| | | }
|
| | | |
| | |
|
| | | if (listGoodsId.size() == 0) {
|
| | | return null;
|
| | | }
|
| | | |
| | |
|
| | | List<CommonGoods> listGoods = commonGoodsService.getByListGoodsId(listGoodsId);
|
| | | if (listGoods == null || listGoods.size() == 0) {
|
| | | return null;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | // 组织相关数据
|
| | | for (UserTaoLiJinRecordVO userTaoLiJinRecordVO: list) {
|
| | | for (UserTaoLiJinRecordVO userTaoLiJinRecordVO : list) {
|
| | | long auctionId = userTaoLiJinRecordVO.getAuctionId().longValue();
|
| | | |
| | |
|
| | | // 商品信息
|
| | | for (int i = 0; i< listGoods.size(); i++) {
|
| | | for (int i = 0; i < listGoods.size(); i++) {
|
| | | CommonGoods commonGoods = listGoods.get(i);
|
| | | long goodsId = commonGoods.getGoodsId().longValue();
|
| | | if (auctionId == goodsId) {
|
| | | userTaoLiJinRecordVO.setTitle(commonGoods.getTitle());
|
| | | userTaoLiJinRecordVO.setPictUrl(commonGoods.getPicture());
|
| | | if(CommonGoods.SHOP_TYPE_TB == commonGoods.getShopType()) {
|
| | | if (CommonGoods.SHOP_TYPE_TB == commonGoods.getShopType()) {
|
| | | userTaoLiJinRecordVO.setUserType(0);
|
| | | } else {
|
| | | userTaoLiJinRecordVO.setUserType(1);
|
| | |
| | | break;
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | // 计算剩余未领取数量
|
| | | int winNum = userTaoLiJinRecordVO.getWinNum();
|
| | | int totalNum = userTaoLiJinRecordVO.getTotalNum();
|
| | | userTaoLiJinRecordVO.setSurplusNum(totalNum - winNum);
|
| | | |
| | | |
| | |
|
| | | // 计算分享奖金
|
| | | BigDecimal shareMoney = new BigDecimal(0);
|
| | | BigDecimal commission = userTaoLiJinRecordVO.getCommission();
|
| | | if (commission != null && commission.compareTo(shareMoney) > 1) {
|
| | | BigDecimal shareRate = hongBaoManageService.getShareRate();
|
| | | shareMoney = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(commission, new BigDecimal("0.01")), MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
|
| | | shareMoney = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(commission, new BigDecimal("0.01")),
|
| | | MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
|
| | | shareMoney = BigDecimalUtil.getWithNoZera(shareMoney);
|
| | | }
|
| | | |
| | |
|
| | | ClientTextStyleVO desc = new ClientTextStyleVO();
|
| | | desc.setColor("#FFFFFF");
|
| | | desc.setContent("预估分享奖金:¥" + shareMoney);
|
| | |
| | | }
|
| | | return list;
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public long countRecordByUid(Long uid) {
|
| | | return userTaoLiJinRecordMapper.countRecordByUid(uid);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public long countTodayNum(Long uid) {
|
| | | return userTaoLiJinRecordMapper.countTodayNum(uid);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public BigDecimal getShareHongBaoByUidAndGoodsId(Long uid, Long goodsId) {
|
| | | return userTaoLiJinRecordMapper.getShareHongBaoByUidAndGoodsId(uid, goodsId);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public UserTaoLiJinRecord getByRightsId(String rightsId) {
|
| | | return userTaoLiJinRecordMapper.getByRightsId(rightsId);
|
| | | }
|
| | | |
| | |
|
| | | }
|