/**
* 添加消费记录
*/
@Override
@Transactional
public
UserProductMapExecution addUserProductMap(UserProductMap userProductMap)
throws
UserProductMapOperationException {
if
(userProductMap !=
null
&& userProductMap.getUser().getUserId() !=
null
&& userProductMap.getShop().getShopId() !=
null
&& userProductMap.getOperator().getUserId() !=
null
) {
userProductMap.setCreateTime(
new
Date());
try
{
int
effectedNum = userProductMapDao.insertUserProductMap(userProductMap);
if
(effectedNum <=
0
) {
throw
new
UserProductMapOperationException(
"添加消费记录失败"
);
}
if
(userProductMap.getPoint() !=
null
&& userProductMap.getPoint() >
0
) {
UserShopMap userShopMap = userShopMapDao.queryUserShopMap(userProductMap.getUser().getUserId(),
userProductMap.getShop().getShopId());
if
(userShopMap !=
null
&& userShopMap.getUserShopId() !=
null
) {
userShopMap.setPoint(userShopMap.getPoint() + userProductMap.getPoint());
effectedNum = userShopMapDao.updateUserShopMapPoint(userShopMap);
if
(effectedNum <=
0
) {
throw
new
UserProductMapOperationException(
"更新积分信息失败"
);
}
}
else
{
userShopMap = compactUserShopMap4Add(userProductMap.getUser().getUserId(),
userProductMap.getShop().getShopId(), userProductMap.getPoint());
effectedNum = userShopMapDao.insertUserShopMap(userShopMap);
if
(effectedNum <=
0
) {
throw
new
UserProductMapOperationException(
"积分信息创建失败"
);
}
}
}
return
new
UserProductMapExecution(UserProductMapStateEnum.SUCCESS, userProductMap);
}
catch
(Exception e) {
throw
new
UserProductMapOperationException(
"添加授权失败:"
+ e.toString());
}
}
else
{
return
new
UserProductMapExecution(UserProductMapStateEnum.NULL_USERPRODUCT_INFO);
}
}