From 4ef5bf9e64a1eb32e18829c0146a94b3b702fb84 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 31 五月 2019 18:21:42 +0800
Subject: [PATCH] 添加用户推荐商品删除
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java | 117 ++++++++++++++++++++++++++++++++--------------------------
1 files changed, 64 insertions(+), 53 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java
index 2eed9df..1901c46 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java
@@ -1,6 +1,5 @@
package com.yeshi.fanli.service.impl.user;
-import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
@@ -9,11 +8,6 @@
import javax.annotation.Resource;
-import org.hibernate.HibernateException;
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.hibernate.Transaction;
-import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -22,81 +16,78 @@
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayFundTransToaccountTransferRequest;
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
-import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper;
import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
import com.yeshi.fanli.dao.mybatis.BindingAccountMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
-import com.yeshi.fanli.dao.user.BindingAccountDao;
-import com.yeshi.fanli.entity.bus.user.AccountDetails;
+import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
+import com.yeshi.fanli.entity.bus.user.UserAccountBindingHistory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.exception.AlipayAccountException;
import com.yeshi.fanli.exception.AlipayTransferException;
import com.yeshi.fanli.exception.BindingAccountException;
+import com.yeshi.fanli.exception.money.UserMoneyDetailException;
+import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
+import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
+import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.factory.AccountDetailsFactory;
+import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import net.sf.json.JSONObject;
@Service
public class BindingAccountServiceImpl implements BindingAccountService {
-
- @Resource
- private BindingAccountDao bindingAccountDao;
@Resource
private BindingAccountMapper bindingAccountMapper;
@Resource
private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
@Resource
private UserInfoMapper userInfoMapper;
- @Resource
- private AccountDetailsMapper accountDetailsMapper;
+
@Resource
private UserNotificationService userNotificationService;
+ @Resource
+ private UserAccountBindingHistoryService userAccountBindingHistoryService;
+
+ @Resource
+ private UserMoneyDetailMapper userMoneyDetailMapper;
+
+ @Resource
+ private UserMoneyService userMoneyService;
+
public List<BindingAccount> getBindingAccountByUid(long uid) {
- return bindingAccountDao.list("from BindingAccount ba where ba.userInfo.id=?", new Serializable[] { uid });
+ return bindingAccountMapper.selectByUid(uid);
}
public void addBindingAccount(BindingAccount addAccount) throws BindingAccountException {
- List<BindingAccount> list = bindingAccountDao.list(
- "from BindingAccount ba where ba.userInfo.id=? and ba.type=?",
- new Serializable[] { addAccount.getUserInfo().getId(), addAccount.getType() });
- if (list == null || list.size() == 0) {
- bindingAccountDao.save(addAccount);
+ BindingAccount account = bindingAccountMapper.selectByUidAndType(addAccount.getUserInfo().getId(),
+ addAccount.getType());
+
+ if (account == null) {
+ bindingAccountMapper.insertSelective(addAccount);
} else {
throw new BindingAccountException(Constant.BA_EXIST);
}
}
- public Integer deleteBindingAccount(final BindingAccount account) {
- return (Integer) bindingAccountDao.excute(new HibernateCallback() {
-
- public Integer doInHibernate(Session session) throws HibernateException {
- Transaction transaction = session.beginTransaction();
- Query delete = session.createQuery("delete BindingAccount ba where ba.userInfo.id=? and ba.type=?");
- delete.setLong(0, account.getUserInfo().getId());
- delete.setInteger(1, account.getType());
- int update = delete.executeUpdate();
- transaction.commit();
- return update;
- }
-
- });
+ @Transactional
+ public Integer deleteBindingAccount(BindingAccount account) {
+ BindingAccount oldAccount = bindingAccountMapper.selectByUidAndType(account.getUserInfo().getId(),
+ account.getType());
+ if (oldAccount != null)
+ bindingAccountMapper.deleteByPrimaryKey(oldAccount.getId());
+ return 1;
}
public BindingAccount getBindingAccountByUidAndType(long uid, int type) {
-
- List<BindingAccount> list = bindingAccountDao
- .list("from BindingAccount ba where ba.userInfo.id=? and ba.type=?", new Serializable[] { uid, type });
- if (list != null && list.size() != 0) {
- return list.get(0);
- }
- return null;
+ BindingAccount account = bindingAccountMapper.selectByUidAndType(uid, type);
+ return account;
}
@Override
@@ -109,11 +100,11 @@
bindingAccount.setName(name);
bindingAccount.setType(BindingAccount.TYPE_ALIPAY);
bindingAccount.setUserInfo(new UserInfo(uid));
- bindingAccountDao.create(bindingAccount);
+ bindingAccountMapper.insertSelective(bindingAccount);
} else {
bindingAccount.setName(name);
bindingAccount.setAccount(account);
- bindingAccountDao.update(bindingAccount);
+ bindingAccountMapper.updateByPrimaryKeySelective(bindingAccount);
}
return bindingAccount;
}
@@ -153,13 +144,12 @@
UserInfo userInfo = userInfoMapper.selectByPrimaryKeyForUpdate(uid);
if (userInfo.getMyHongBao().compareTo(new BigDecimal("0")) <= 0)
- throw new AlipayAccountException(AlipayAccountException.CODE_NO_MONEY, "浣犵殑璐︽埛鐩墠娌℃湁浣欓锛屾殏鏃朵笉鑳界粦瀹氭敮浠樺疂鎻愮幇");
+ throw new AlipayAccountException(AlipayAccountException.CODE_NO_MONEY, "浣犵殑璐︽埛鐩墠娌℃湁浣欓锛屾棤闇�缁戝畾鎻愮幇甯愬彿銆�");
// 闇�瑕佽浆璐﹂獙璇�
BigDecimal money = new BigDecimal("0.1");
transferAlipayWithVerify(account, name);
- // 鎵f
- userInfoMapper.subHongBaoByUid(uid, money);
+
// 杞处鎴愬姛
// 鎻掑叆杞处鎴愬姛琛�
AlipayAccountValidNormalHistory history = new AlipayAccountValidNormalHistory();
@@ -168,10 +158,21 @@
history.setName(name);
history.setUid(uid);
alipayAccountValidNormalHistoryMapper.insertSelective(history);
- // 璧勯噾璁板綍 绔欏唴淇�
- AccountDetails accountDetails = AccountDetailsFactory.create("-" + money.toString(),
- AccountDetailsFactory.VALID_ALIPAY_ACCOUNT, null, null, new UserInfo(uid));
- accountDetailsMapper.insertSelective(accountDetails);
+ UserMoneyDetail userMoneyDetail = null;
+ // 鏂扮増璧勯噾
+ try {
+ userMoneyDetail = UserMoneyDetailFactory.createExtractAccountValid(history, money);
+ } catch (UserMoneyDetailException e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+
+ // 鎵f
+ userMoneyService.subUserMoney(uid, money, userMoneyDetail);
+
userNotificationService.alipayAccountValidRight(uid, money, account);
}
@@ -209,6 +210,17 @@
@Override
public BindingAccount changeAlipayBindingWithVerify(Long uid, String name, String account)
throws AlipayTransferException, AlipayApiException, AlipayAccountException {
+ BindingAccount bindingAccount = bindingAccountMapper.selectByUidAndType(uid, BindingAccount.TYPE_ALIPAY);
+ if (bindingAccount != null) {
+ // 楠岃瘉鏄惁7澶╁唴鏇存崲浜嗘墜鏈哄彿
+ UserAccountBindingHistory history = userAccountBindingHistoryService.getLatestHistory(uid,
+ UserAccountBindingHistory.TYPE_PHONE);
+ // 鎵嬫満鍙锋洿鎹㈢粦瀹氱殑7澶╁唴涓嶈兘鎻愮幇
+ if (history != null && !history.getFirst()
+ && (System.currentTimeMillis() - history.getCreateTime().getTime()) > 1000 * 60 * 60 * 24 * 7L) {
+ throw new AlipayAccountException(111, "淇敼鎵嬫満鍙�7澶╁唴涓嶅厑璁镐慨鏀规敮浠樺疂璐﹀彿");
+ }
+ }
try {
validAlipayAccount(uid, account, name);
@@ -220,7 +232,6 @@
throw new AlipayAccountException(e1.getCode(), e1.getMsg());
}
- BindingAccount bindingAccount = bindingAccountMapper.selectByUidAndType(uid, BindingAccount.TYPE_ALIPAY);
if (bindingAccount == null)// 鍒涘缓璐﹀彿
{
bindingAccount = new BindingAccount();
@@ -254,7 +265,7 @@
caLatest.setTimeInMillis(latest.getCreateTime().getTime());
Calendar nowLatest = Calendar.getInstance();
if (caLatest.get(Calendar.MONTH) == nowLatest.get(Calendar.MONTH))// 涓婃鏇存敼鍜岀幇鍦ㄦ槸鍚屼竴涓湀
- throw new BindingAccountException(2, "鏈湀鏀粯瀹濈粦瀹氭鏁拌秴闄�");
+ throw new BindingAccountException(2, "姣忔湀浠呭彲淇敼1娆℃彁鐜拌处鍙凤紝璇蜂笅鏈堝啀璇曞惂銆�");
}
return true;
}
--
Gitblit v1.8.0