123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.emato.ccnet.wx.service.impl;
- import com.emato.ccnet.wx.contants.Contants;
- import com.emato.ccnet.wx.dao.entity.ccnet.WxOrderGoods;
- import com.emato.ccnet.wx.dao.entity.wx.WxOrderGoodsDate;
- import com.emato.ccnet.wx.dao.mapper.ccnet.WxOrderGoodsMapper;
- import com.emato.ccnet.wx.manager.snow.SnowflakeUtil;
- import com.emato.ccnet.wx.service.WxOrderGoodsService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- @Service("wxOrderGoodsService")
- public class WxOrderGoodsServiceImpl implements WxOrderGoodsService {
- @Autowired
- private WxOrderGoodsMapper wxOrderGoodsMapper;
- private static final Logger logger = LoggerFactory.getLogger(WxOrderGoodsServiceImpl.class);
- @Override
- public WxOrderGoods add(WxOrderGoods record) {
- record.setCreateTime(new Date());
- if(this.wxOrderGoodsMapper.insertSelective(record)==1) {
- return record;
- }
- return null;
- }
- @Override
- public boolean delete(String wxOrderGoodsSn) {
- return this.wxOrderGoodsMapper.deleteByPrimaryKey(wxOrderGoodsSn)==1;
- }
- @Override
- public WxOrderGoods update(WxOrderGoods record) {
- if(this.wxOrderGoodsMapper.updateByPrimaryKeySelective(record)==1) {
- return record;
- }
- return null;
- }
- @Override
- public WxOrderGoods get(String wxOrderGoodsSn) {
- return this.wxOrderGoodsMapper.selectByPrimaryKey(wxOrderGoodsSn);
- }
- /**
- * 增加微信商品详情
- * @param list
- * @return
- */
- @Override
- public int addWxOrderGoodsList(List list) {
- //本地微信订单商品集合新增
- List<WxOrderGoods> insertWxOrderList = new ArrayList<>();
- //微信订单商品数据
- List<WxOrderGoodsDate> wxOrderGoodsDateList = (List<WxOrderGoodsDate>) list;
- for(WxOrderGoodsDate wxOrderGoodsDate:wxOrderGoodsDateList){
- //查找本地是否有商品详情数据,如果有就删除
- List<WxOrderGoods> wxOrderGoodsList = getWxOrderGoodsByWxOrderId(wxOrderGoodsDate.getWxOrderId());
- if (wxOrderGoodsList != null && wxOrderGoodsList.size() > 0) {
- wxOrderGoodsMapper.deleteWxOrderGoodsByWxOrderId(wxOrderGoodsDate.getWxOrderId());
- }
- //添加微信订单详情记录集合
- insertWxOrderList.add(assembleWxOrder(wxOrderGoodsDate));
- }
- //批量微信订单数据
- if(insertWxOrderList.size() > 0 && wxOrderGoodsMapper.insertWxOrderGoodsBatch(insertWxOrderList) <= 0){
- logger.error("批量插入,微信订单详情记录失败");
- return 0;
- }
- return 1;
- }
- /**
- * 通过微信的微信id查找微信商品详情
- * @param wxOrderId
- * @return
- */
- @Override
- public List<WxOrderGoods> getWxOrderGoodsByWxOrderId(String wxOrderId) {
- return wxOrderGoodsMapper.getWxOrderGoodsByWxOrderId(wxOrderId);
- }
- /**
- * 初始微信订单详情数据
- * @param wxOrderGoodsDate
- * @return
- */
- private WxOrderGoods assembleWxOrder(WxOrderGoodsDate wxOrderGoodsDate) {
- WxOrderGoods wxOrderGoods = new WxOrderGoods();
- String wxOrderSn = SnowflakeUtil.getSnowNextId() + Contants.WX;
- wxOrderGoods.setWxOrderGoodsSn(wxOrderSn);
- wxOrderGoods.setWxOrderId(wxOrderGoodsDate.getWxOrderId());
- wxOrderGoods.setItemNo(wxOrderGoodsDate.getItemNo());
- wxOrderGoods.setItemName(wxOrderGoodsDate.getItemName());
- //wxOrderGoods.setItemDescribe();
- wxOrderGoods.setBarCode(wxOrderGoodsDate.getBarCode());
- wxOrderGoods.setUnit(wxOrderGoodsDate.getUnit());
- wxOrderGoods.setQty(wxOrderGoodsDate.getQty());
- BigDecimal acturalPrice = wxOrderGoodsDate.getTotalPrice();
- BigDecimal acturalTax = wxOrderGoodsDate.getTaxTotal();
- BigDecimal price = acturalPrice.divide(new BigDecimal(1).add(acturalTax),2,BigDecimal.ROUND_HALF_UP);
- price = price.divide(wxOrderGoodsDate.getQty(),2,BigDecimal.ROUND_HALF_UP);
- wxOrderGoods.setPrice(price);
- wxOrderGoods.setTotalPrice(price.multiply(wxOrderGoodsDate.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP));
- wxOrderGoods.setTaxPrice(acturalPrice.divide(wxOrderGoodsDate.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP));
- wxOrderGoods.setActuralPrice(acturalPrice);
- wxOrderGoods.setCountry(wxOrderGoodsDate.getCountry());
- wxOrderGoods.setCiqGno(wxOrderGoodsDate.getCiqGno());
- wxOrderGoods.setGcode(wxOrderGoodsDate.getGcode());
- wxOrderGoods.setGmodel(wxOrderGoodsDate.getGmodel());
- wxOrderGoods.setCiqGmodel(wxOrderGoodsDate.getCiqGmodel());
- wxOrderGoods.setBrand(wxOrderGoodsDate.getBrand());
- wxOrderGoods.setCreateTime(new Date());
- return wxOrderGoods;
- }
- }
|