package com.gszc.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.gszc.entity.Custom; import com.gszc.entity.Invoice; import com.gszc.entity.InvoiceHeader; import com.gszc.mapper.CustomMapper; import com.gszc.mapper.InvoiceHeaderMapper; import com.gszc.mapper.InvoiceMapper; import com.gszc.service.IInvoiceService; import com.gszc.util.KdniaoTrackQueryAPI; import com.gszc.util.Uuid8Utils; import org.apache.ibatis.session.RowBounds; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; /** *

* 服务实现类 *

* * @author ky * @since 2020-04-27 */ @Service @Transactional public class InvoiceServiceImpl extends ServiceImpl implements IInvoiceService { @Autowired InvoiceMapper invoiceMapper; @Autowired InvoiceHeaderMapper invoiceHeaderMapper; @Autowired CustomServiceImpl customService; @Autowired CustomMapper customMapper; public void addInvoice(Invoice invoice){ String id = Uuid8Utils.generateShortUUID(); invoice.setId(id); invoice.setStatusCode("disable"); invoice.setCreateDate(new Date()); invoice.setModifyDate(new Date()); invoiceMapper.insert(invoice); } public List invoiceList(String userId,String type){ List list = new ArrayList<>(); List customs = customService.customList(userId,null); for(Custom custom:customs){ Wrapper customId = new EntityWrapper().eq("custom_id", custom.getId()); if(null==type){ }else if(type.equals("disable")){ customId.eq("status_code","disable"); }else if(type.equals("enable")){ customId.eq("status_code","enable"); } List invoiceList = invoiceMapper.selectList(customId); if(invoiceList.size()>0){ list.addAll(invoiceList); } } return list; } public JSONObject invoiceDetail(String invoiceId){ JSONObject jsonObject = new JSONObject(); Invoice invoice = invoiceMapper.selectById(invoiceId); InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoice.getInvoiceHeaderId()); jsonObject.put("invoice",invoice); jsonObject.put("invoiceHeader",invoiceHeader); return jsonObject; } public List invoiceHeaderList(String userId){ List invoiceHeaderList = invoiceHeaderMapper.selectList(new EntityWrapper().eq("mini_user_id", userId)); return invoiceHeaderList; } public void addInvoiceHeader(InvoiceHeader invoiceHeader){ String uuid = UUID.randomUUID().toString(); invoiceHeader.setId(uuid); invoiceHeader.setCreateDate(new Date()); invoiceHeader.setModifyDate(new Date()); invoiceHeaderMapper.insert(invoiceHeader); } public void updateInvoiceHeader(InvoiceHeader invoiceHeader){ invoiceHeader.setModifyDate(new Date()); invoiceHeaderMapper.updateById(invoiceHeader); } public void deleteInvoiceHeader(String invoiceHeaderId){ invoiceHeaderMapper.deleteById(invoiceHeaderId); } public InvoiceHeader invoiceHeaderDetail(String invoiceHeaderId){ InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId); return invoiceHeader; } public JSONObject pcDisableInvoiceList(Integer pageNum,Integer pageSize){ Integer count = invoiceMapper.selectCount(new EntityWrapper().eq("status_code", "disable")); List invoiceList = invoiceMapper.selectPage(new RowBounds((pageNum-1)*pageSize,pageSize),new EntityWrapper().eq("status_code", "disable").orderBy("create_date",false)); for(Invoice invoice :invoiceList){ String invoiceHeaderId = invoice.getInvoiceHeaderId(); String customId = invoice.getCustomId(); Custom custom = customMapper.selectById(customId); InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId); invoice.setCustomName(custom.getCompanyName()); invoice.setInvoiceHeaderName(invoiceHeader.getCompanyName()); } JSONObject jsonObject = new JSONObject(); jsonObject.put("count",count); jsonObject.put("invoiceList",invoiceList); return jsonObject; } public JSONObject pcEnableInvoiceList(Integer pageNum,Integer pageSize){ Integer count = invoiceMapper.selectCount(new EntityWrapper().eq("status_code", "enable")); List invoiceList = invoiceMapper.selectPage(new RowBounds((pageNum-1)*pageSize,pageSize),new EntityWrapper().eq("status_code", "enable").orderBy("create_date",false)); for(Invoice invoice :invoiceList){ String invoiceHeaderId = invoice.getInvoiceHeaderId(); String customId = invoice.getCustomId(); Custom custom = customMapper.selectById(customId); InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId); invoice.setCustomName(custom.getCompanyName()); invoice.setInvoiceHeaderName(invoiceHeader.getCompanyName()); } JSONObject jsonObject = new JSONObject(); jsonObject.put("count",count); jsonObject.put("invoiceList",invoiceList); return jsonObject; } public void invoiceConfirm(String invoiceId,String trackingCompany,String trackingCode,String trackingImg){ Invoice invoice = new Invoice(); invoice.setId(invoiceId); invoice.setStatusCode("enable"); invoice.setModifyDate(new Date()); invoice.setTrackingCompany(trackingCompany); invoice.setTrackingCode(trackingCode); invoice.setTrackingImg(trackingImg); invoiceMapper.updateById(invoice); } public JSONObject trackingDetail(String trackingCompany,String trackingCode){ KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI(); JSONObject orderTracesByJson = new JSONObject(); try { String orderTracesByJsonString = api.getOrderTracesByJson(trackingCompany, trackingCode); orderTracesByJson = JSONObject.parseObject(orderTracesByJsonString); } catch (Exception e) { e.printStackTrace(); return orderTracesByJson; } return orderTracesByJson; } }