首页>代码>ssm(spring+spring mvc+mybatis)开发餐厅收银管理系统>/RCMS-master/src/controller/DeskBillController.java
package controller;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import pojo.BillSummary;
import pojo.BillSummaryPager;
import pojo.Desk;
import pojo.DeskBillPager;
import pojo.DeskInfo_detail;
import pojo.Deskbill;
import service.desk.DeskService;
import service.deskbill.DeskBillService;
import tools.BillCodeUtil;
import tools.PagerTools;
import tools.RedisUtil;

import com.alibaba.fastjson.JSON;

@Controller
public class DeskBillController {
	@Autowired
	private DeskBillService deskBillService;
	@Resource(name="redisUtil")
	private RedisUtil redisUtil;
	@Autowired
	private DeskService deskService;
	
	
	// ajax结账
	@RequestMapping("/pay.do")
	@ResponseBody
	public Object pay(Deskbill deskBill) {
		deskBill.setBillCode(BillCodeUtil.getBillCode());// 设置账单编号为当前毫秒数
		deskBillService.addDeskBill(deskBill);//添加账单
		int deskBillId=deskBill.getId();//得到本次账单的id
		int deskId=deskBill.getDeskId();//得到该账单所属的桌位id
		Desk desk=deskService.getDeskById(deskId+"");//查询该ID的桌位
		String deskCode=desk.getDeskCode();//得到桌位编号
		//从缓存取出菜单列表,并且遍历账单列表一条一条插入账单详情
		List<DeskInfo_detail> deskDishes=redisUtil.getList(deskCode);//取出菜单列表
		if(deskDishes!=null){
			for (DeskInfo_detail deskInfo_detail : deskDishes) {
				if(deskInfo_detail.getDrinkBillCode()!=null && !deskInfo_detail.getDrinkBillCode().equals("")){//增加销售信息
					deskBillService.sellDrink(deskInfo_detail.getDrinkBillCode(),deskInfo_detail.getDishNum());
				}
				deskInfo_detail.setDeskBillId(deskBillId);
				deskBillService.addDeskBillDetail(deskInfo_detail);
			}
			//滞空桌位号码,删除缓存内数据
			redisUtil.del(deskCode);//删除缓存数据
			desk.setStatus(1);
			desk.setPeopleNum(0);
			deskService.updateDesk(desk);
		}
		return JSON.toJSONString("OK");
	}

	//今日账单
	@RequestMapping("/todayBill.html")
	public String showTodayBill(HttpSession session, Model model, DeskBillPager pager, BillSummaryPager bpager){
		if(session.getAttribute("user")==null){//权限控制
			return "redirect:login.html";
		}
		int totalCount=deskBillService.getCount(new Date());//查询当天账单总条数
		bpager.setOpr("today");//设置查询类型
		bpager.setFirstData(0);
		bpager.setPageSize(1);
		pager.setBillDate(new Date());//设置日期为当天
		pager.setTotalCount(totalCount);//设置总数
		pager.setPageSize(PagerTools.deskBillPagerSize);//设置每一页数据量
		pager.count();//格式化数据
		model.addAttribute("billSummarys", deskBillService.getBillSummarys(bpager));//当天账单汇总
		List<Deskbill> deskBills=deskBillService.getDekBills(pager);//分页查询
		pager.setList(deskBills);//将数据保存在pager对象内
		model.addAttribute("deskBillpager", pager);
		return "/bill/bill";
	}
	//ajax加载桌位账单详情
	@RequestMapping("/getBillDetail.do")
	@ResponseBody
	public Object getBillDetail(Deskbill deskbill){
		List<DeskInfo_detail> deskInfo_details=null;
		if(deskbill!=null){
			deskInfo_details=deskBillService.getDeskInfo_detailByDeskBillId(deskbill.getId());
		}
		return JSON.toJSONString(deskInfo_details);
	}
		
	//日账单
	@RequestMapping("/dateBill.html")
	public String showDateBill(HttpSession session,Model model,BillSummaryPager bpager){
		if(session.getAttribute("user")==null){//权限控制
			return "redirect:login.html";
		}
		if(bpager.getBeginDate()!=null && bpager.getEndDate()==null){//当只填写了开始日期时单独查询这天的账单
			bpager.setOpr("otherday");
			bpager.setOthDate(bpager.getBeginDate());
			bpager.setTotalCount(1);//给pager设置总数据量
			bpager.setPageSize(PagerTools.billSummaryPagerSize);//设置页面大小
			bpager.count();//格式化数据
		}else if(bpager.getBeginDate()!=null && bpager.getEndDate()!=null){//都填写了
			int  billSummaryCount=deskBillService.getBillSummaryCount(bpager);//得到总数据量
			bpager.setTotalCount(billSummaryCount);//给pager设置总数据量
			bpager.setPageSize(PagerTools.billSummaryPagerSize);//设置页面大小
			bpager.count();//格式化数据
		}else{//都没填写
			bpager.setOpr("date");
			int  billSummaryCount=deskBillService.getBillSummaryCount(bpager);//得到总数据量
			bpager.setTotalCount(billSummaryCount);//给pager设置总数据量
			bpager.setPageSize(PagerTools.billSummaryPagerSize);//设置页面大小
			bpager.count();//格式化数据
		}
		bpager.setList(deskBillService.getBillSummarys(bpager));
		model.addAttribute("bpager", bpager);
		return "/bill/datebill";
	}
	
	//日详情
	@ResponseBody
	@RequestMapping("/ajax")
	public ModelAndView ajax(ModelAndView m,DeskBillPager dpager,BillSummaryPager bpager){
		int totalCount=deskBillService.getCount(dpager.getBillDate());//查询当天账单总条数
		bpager.setOpr("otherday");//设置查询类型
		bpager.setFirstData(0);
		bpager.setPageSize(1);
		dpager.setTotalCount(totalCount);//设置总数
		dpager.setPageSize(PagerTools.deskBillPagerSize);//设置每一页数据量
		dpager.count();//格式化数据
		Map map=new HashMap();
		map.put("billSummarys",  deskBillService.getBillSummarys(bpager));//当天账单汇总
		List<Deskbill> deskBills=deskBillService.getDekBills(dpager);//分页查询
		dpager.setList(deskBills);//将数据保存在pager对象内
		m.setViewName("/bill/dateDetail");
		map.put("deskBillpager", dpager);
		m.addAllObjects(map);
		m.addObject("a", "CHANGEX");
		return m;
	}

	//ajax查看账单曲线
	@RequestMapping("/chart.do")
	@ResponseBody
	public Object showDateChart(BillSummaryPager bpager){
		List<BillSummary> billSummarys=deskBillService.getBillSummarys(bpager);
		return JSON.toJSONString(billSummarys);
	};


	//月账单
	@RequestMapping("/monthBill.html")
	public String showMonthBill(HttpSession session,Model model,BillSummaryPager bpager){
		if(session.getAttribute("user")==null){//权限控制
			return "redirect:login.html";
		}
		bpager.setOpr("month");
		int  billSummaryCount=deskBillService.getBillSummaryCount(bpager);//得到总数据量
		bpager.setTotalCount(billSummaryCount);//给pager设置总数据量
		bpager.setPageSize(PagerTools.billSummaryPagerSize);//设置页面大小
		bpager.count();//格式化数据
		bpager.setList(deskBillService.getBillSummarys(bpager));
		model.addAttribute("bpager", bpager);
		return "/bill/monthbill";
	}
	//年账单
	@RequestMapping("/yearBill.html")
	public String showYearBill(HttpSession session, Model model, BillSummaryPager bpager){
		if(session.getAttribute("user")==null){//权限控制
			return "redirect:login.html";
		}
		bpager.setOpr("year");
		int  billSummaryCount=deskBillService.getBillSummaryCount(bpager);//得到总数据量
		bpager.setTotalCount(billSummaryCount);//给pager设置总数据量
		bpager.setPageSize(PagerTools.billSummaryPagerSize);//设置页面大小
		bpager.count();//格式化数据
		bpager.setList(deskBillService.getBillSummarys(bpager));
		model.addAttribute("bpager", bpager);
		return "/bill/yearbill";
	}
}
最近下载更多
lilong007  LV22 2023年12月30日
xiongwei11231  LV8 2023年5月25日
604183463  LV2 2023年2月28日
阳光12345  LV3 2023年1月11日
LITIANYU084414  LV11 2022年12月29日
ZYK123321  LV2 2022年12月1日
见不远万里  LV6 2022年11月23日
ttppbb  LV4 2022年10月15日
qwer123546  LV13 2022年9月28日
123456mg  LV3 2022年5月15日
最近浏览更多
gzcznb  LV8 11月6日
krispeng  LV13 10月3日
TY0165  LV20 6月23日
happySuperman  LV2 6月4日
隔壁马 5月5日
暂无贡献等级
swqxhycl 4月22日
暂无贡献等级
 LV7 3月29日
13188866605  LV12 3月26日
admin_z  LV22 1月28日
lilong007  LV22 2023年12月30日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友