|  |  | 
 |  |  | import com.github.pagehelper.PageHelper; | 
 |  |  | import com.github.pagehelper.PageInfo; | 
 |  |  | import com.xzx.gc.common.utils.StringUtils; | 
 |  |  | import com.xzx.gc.common.constant.Constants; | 
 |  |  | import com.xzx.gc.common.exception.RestException; | 
 |  |  | import com.xzx.gc.common.utils.IdUtils; | 
 |  |  | import com.xzx.gc.entity.*; | 
 |  |  | import com.xzx.gc.shop.dto.*; | 
 |  |  | import com.xzx.gc.shop.mapper.*; | 
 |  |  | 
 |  |  | import tk.mybatis.mapper.entity.Example; | 
 |  |  |  | 
 |  |  | import javax.annotation.Resource; | 
 |  |  | import java.math.BigDecimal; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | @Service | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ScoreGoodsMapper scoreGoodsMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private ScoreDetailsMapper scoreDetailsMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IdUtils idUtils; | 
 |  |  |  | 
 |  |  |     public Map<String, Object> queryOrderList(QueryOrderListDto model) { | 
 |  |  |         String name = model.getName(); | 
 |  |  | 
 |  |  |         ScoreGoodsStyle style = scoreGoodsStyleMapper.selectByPrimaryKey(addGoodsOrderDto.getStyleId()); | 
 |  |  |         ScoreGoodsSku sku = scoreGoodsSkuMapper.selectByPrimaryKey(addGoodsOrderDto.getSkuId()); | 
 |  |  |         ScoreGoods goods = scoreGoodsMapper.selectByPrimaryKey(style.getGoodsId()); | 
 |  |  |         if (goods == null || ScoreGoods.ISSALE_NO.equals(goods.getIsSale())) { | 
 |  |  |             throw new RestException(-3, "商品不存在或已下架"); | 
 |  |  |         } | 
 |  |  |         AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(addGoodsOrderDto.getUserId()); | 
 |  |  |  | 
 |  |  |         if (accountInfo.getCollectScore() == null) { | 
 |  |  |             throw new RestException(-3, "积分不足"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         BigDecimal totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); | 
 |  |  |         BigDecimal score = new BigDecimal(accountInfo.getCollectScore()); | 
 |  |  |         if (score.compareTo(totalPrice) < 0) { | 
 |  |  |             throw new RestException(-3, "积分不足"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         ScoreOrder order = new ScoreOrder(); | 
 |  |  |         order.setOrderNo(idUtils.generate("JF", 9)); | 
 |  |  |         order.setCnt(addGoodsOrderDto.getCnt()); | 
 |  |  |         order.setTotalPrice(totalPrice); | 
 |  |  |         order.setCreatedTime(new Date()); | 
 |  |  |         order.setUserId(addGoodsOrderDto.getUserId()); | 
 |  |  |         order.setStatus(ScoreOrder.STATUS_READY); | 
 |  |  |         order.setGoodsName(goods.getName()); | 
 |  |  |         order.setRemark(addGoodsOrderDto.getRemark()); | 
 |  |  |         scoreOrderMapper.insert(order); | 
 |  |  |  | 
 |  |  |         ScoreOrderDetails orderDetails = new ScoreOrderDetails(); | 
 |  |  |         orderDetails.setGoodsName(goods.getName()); | 
 |  |  |         orderDetails.setStyle(style.getName()); | 
 |  |  |         orderDetails.setSku(sku.getName()); | 
 |  |  |         orderDetails.setOrderId(order.getId()); | 
 |  |  |         orderDetails.setCnt(addGoodsOrderDto.getCnt()); | 
 |  |  |         orderDetails.setTotalPrice(totalPrice); | 
 |  |  |         orderDetails.setUnitPrice(sku.getPresentPrice()); | 
 |  |  |         orderDetails.setGoodsId(goods.getId()); | 
 |  |  |         orderDetails.setThumb(goods.getThumb()); | 
 |  |  |         scoreOrderDetailsMapper.insert(orderDetails); | 
 |  |  |  | 
 |  |  |         AddressInfo addressInfo = addressInfoMapper.selectByPrimaryKey(addGoodsOrderDto.getAddressId()); | 
 |  |  |         AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(addGoodsOrderDto.getUserId()); | 
 |  |  |         ScoreExpressInfo expressInfo = new ScoreExpressInfo(); | 
 |  |  |         expressInfo.setUsername(addressInfo.getRelaName()); | 
 |  |  |         expressInfo.setPhone(addressInfo.getMobilePhone()); | 
 |  |  |         expressInfo.setUserId(addressInfo.getUserId()); | 
 |  |  |         expressInfo.setOrderId(order.getId()); | 
 |  |  |         StringBuffer address = new StringBuffer(); | 
 |  |  |         address.append(addressInfo.getAddressArea()); | 
 |  |  |         address.append(addressInfo.getDetailAddress()); | 
 |  |  |         if (StrUtil.isNotBlank(addressInfo.getTagName())) { | 
 |  |  |             address.append(StrUtil.isNotBlank(addressInfo.getHouseName()) ? addressInfo.getHouseName() : ""); | 
 |  |  |             if (Constants.ADDRESS_TYPE_HOME.equals(addressInfo.getTagName())) { | 
 |  |  |                 address.append(StrUtil.isNotBlank(addressInfo.getHouseNumber()) ? addressInfo.getHouseNumber() : ""); | 
 |  |  |                 address.append(StrUtil.isNotBlank(addressInfo.getUnitName()) ? addressInfo.getUnitName() : ""); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         expressInfo.setAddress(address.toString()); | 
 |  |  |         expressInfo.setCreatedTime(new Date()); | 
 |  |  |         scoreExpressInfoMapper.insert(expressInfo); | 
 |  |  |  | 
 |  |  |         BigDecimal remianScore = score.subtract(totalPrice).setScale(0, BigDecimal.ROUND_DOWN); | 
 |  |  |         accountInfo.setCollectScore(remianScore.toString()); | 
 |  |  |         accountInfoMapper.updateByPrimaryKey(accountInfo); | 
 |  |  |  | 
 |  |  |         ScoreDetails scoreDetails = new ScoreDetails(); | 
 |  |  |         scoreDetails.setOrderNo(order.getOrderNo()); | 
 |  |  |         scoreDetails.setUserId(addGoodsOrderDto.getUserId()); | 
 |  |  |         scoreDetails.setType(ScoreDetails.SCORE_TYPE_SHOPPING); | 
 |  |  |         scoreDetails.setOriginalScore(score); | 
 |  |  |         scoreDetails.setCurrentScore(remianScore); | 
 |  |  |         scoreDetails.setChangeScore(totalPrice); | 
 |  |  |         scoreDetailsMapper.insert(scoreDetails); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public Long cancelOrder(CancelOrderDto model) { |