package com.gszc.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
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.InvoiceHeaderMapper;
import com.gszc.mapper.InvoiceMapper;
import com.gszc.service.IInvoiceService;
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.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;
public void addInvoice(Invoice invoice){
String uuid = UUID.randomUUID().toString();
invoice.setId(uuid);
invoice.setCreateDate(LocalDateTime.now());
invoice.setModifyDate(LocalDateTime.now());
invoiceMapper.insert(invoice);
}
public List invoiceList(String userId){
List list = new ArrayList<>();
List customs = customService.customList(userId);
for(Custom custom:customs){
List invoiceList = invoiceMapper.selectList(new EntityWrapper().eq("custom_id", custom.getId()));
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(LocalDateTime.now());
invoiceHeader.setModifyDate(LocalDateTime.now());
invoiceHeaderMapper.insert(invoiceHeader);
}
public void updateInvoiceHeader(InvoiceHeader invoiceHeader){
invoiceHeader.setModifyDate(LocalDateTime.now());
invoiceHeaderMapper.updateById(invoiceHeader);
}
public void deleteInvoiceHeader(String invoiceHeaderId){
invoiceHeaderMapper.deleteById(invoiceHeaderId);
}
public InvoiceHeader invoiceHeaderDetail(String invoiceHeaderId){
InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId);
return invoiceHeader;
}
}