| | |
| | | import com.ks.goldcorn.mapper.GoldCornConsumeSourceMapper; |
| | | import com.ks.goldcorn.mapper.GoldCornGetSourceMapper; |
| | | import com.ks.goldcorn.pojo.DO.*; |
| | | import com.ks.goldcorn.service.GoldCornBalanceManager; |
| | | import com.ks.goldcorn.service.GoldCornRecordManager; |
| | | import org.springframework.stereotype.Service; |
| | | import org.apache.dubbo.config.annotation.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | @Service |
| | | @Service(version = "1.0") |
| | | public class GoldCornTradeServiceImpl implements GoldCornTradeService { |
| | | |
| | | @Resource |
| | |
| | | * @throws GoldAppException |
| | | * @throws GoldUserException |
| | | */ |
| | | private GoldCornAppInfo validateAppAndUser(String appCode, String uid) throws GoldAppException, GoldUserException { |
| | | private Long validateAppAndUser(String appCode, String uid) throws GoldAppException, GoldUserException { |
| | | GoldCornAppInfo appInfo = goldCornAppInfoMapper.selectByAppCode(appCode); |
| | | if (appInfo == null) { |
| | | throw new GoldAppException(GoldAppException.CODE_NOT_EXIST, "app is not exist"); |
| | |
| | | throw new GoldUserException(GoldUserException.CODE_NOT_EXIST, "uid is not exist"); |
| | | } |
| | | |
| | | return appInfo; |
| | | return appInfo.getId(); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void addGoldCorn(String appCode, String uid, GoldCornGetSource source) throws GoldAppException, GoldUserException, GoldTradeException { |
| | | GoldCornAppInfo app = validateAppAndUser(appCode, uid); |
| | | source = goldCornGetSourceMapper.selectByPrimaryKey(source.getId()); |
| | | public void addGoldCorn(String appCode, String uid, String sourceCode, String title, String desc) throws GoldAppException, GoldUserException, GoldTradeException { |
| | | Long appId = validateAppAndUser(appCode, uid); |
| | | GoldCornGetSource source = goldCornGetSourceMapper.selectByAppIdAndSourceCode(appId, sourceCode); |
| | | if (source == null) { |
| | | throw new GoldUserException(GoldTradeException.CODE_NOT_EXIST, "source is not exist"); |
| | | } |
| | | |
| | | //加记录 |
| | | GoldCornRecord record = new GoldCornRecord(); |
| | | record.setAppId(app.getId()); |
| | | record.setAppId(appId); |
| | | record.setGoldCorn(source.getGoldCorn()); |
| | | record.setSourceId(source.getId()); |
| | | record.setType(GoldCornRecord.TYPE_GET); |
| | | record.setUid(uid); |
| | | if (title != null) { |
| | | record.setTitle(title); |
| | | } else { |
| | | record.setTitle(source.getSourceName()); |
| | | } |
| | | if (desc != null) { |
| | | record.setDesc(desc); |
| | | } else { |
| | | record.setDesc(source.getSourceDesc()); |
| | | } |
| | | try { |
| | | goldCornRecordManager.addRecord(record); |
| | | } catch (GoldRecordException e) { |
| | | throw new GoldTradeException(GoldTradeException.CODE_ADD_RECORD_FAIL, "添加记录失败"); |
| | | } |
| | | //加余额 |
| | | goldCornBalanceManager.addMoney(app.getId(), uid, source.getGoldCorn()); |
| | | goldCornBalanceManager.addMoney(appId, uid, source.getGoldCorn()); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void consumeGoldCorn(String appCode, String uid, GoldCornConsumeSource source) throws GoldAppException, GoldUserException, GoldTradeException { |
| | | GoldCornAppInfo app = validateAppAndUser(appCode, uid); |
| | | source = goldCornConsumeSourceMapper.selectByPrimaryKey(source.getId()); |
| | | public void consumeGoldCorn(String appCode, String uid, String sourceCode, String title, String desc) throws GoldAppException, GoldUserException, GoldTradeException { |
| | | Long appId = validateAppAndUser(appCode, uid); |
| | | GoldCornConsumeSource source = goldCornConsumeSourceMapper.selectByAppIdAndSourceCode(appId, sourceCode); |
| | | if (source == null) { |
| | | throw new GoldUserException(GoldTradeException.CODE_NOT_EXIST, "source is not exist"); |
| | | } |
| | | |
| | | //减余额 |
| | | goldCornBalanceManager.subMoney(appId, uid, source.getGoldCorn()); |
| | | |
| | | //加记录 |
| | | GoldCornRecord record = new GoldCornRecord(); |
| | | record.setAppId(app.getId()); |
| | | record.setAppId(appId); |
| | | record.setGoldCorn(source.getGoldCorn()); |
| | | record.setSourceId(source.getId()); |
| | | record.setType(GoldCornRecord.TYPE_CONSUME); |
| | | record.setUid(uid); |
| | | if (title != null) { |
| | | record.setTitle(title); |
| | | } else { |
| | | record.setTitle(source.getSourceName()); |
| | | } |
| | | if (desc != null) { |
| | | record.setDesc(desc); |
| | | } else { |
| | | record.setDesc(source.getSourceDesc()); |
| | | } |
| | | try { |
| | | goldCornRecordManager.addRecord(record); |
| | | } catch (GoldRecordException e) { |
| | | throw new GoldTradeException(GoldTradeException.CODE_ADD_RECORD_FAIL, "添加记录失败"); |
| | | } |
| | | //减余额 |
| | | goldCornBalanceManager.subMoney(app.getId(), uid, source.getGoldCorn()); |
| | | |
| | | |
| | | } |
| | | } |