package com.jflyfox.api.controller; import com.alibaba.fastjson.JSON; import com.jfinal.aop.Before; import com.jfinal.kit.HttpKit; import com.jflyfox.api.constant.ApiConstant; import com.jflyfox.api.entity.TbCommodity; import com.jflyfox.api.form.ApiForm; import com.jflyfox.api.form.ApiResp; import com.jflyfox.api.interceptor.ApiInterceptor; import com.jflyfox.api.service.IOrderServer; import com.jflyfox.api.service.impl.ICommodityServiceImpl; import com.jflyfox.api.service.impl.IOrderServerImpl; import com.jflyfox.component.base.BaseProjectController; import com.jflyfox.component.util.JFlyFoxUtils; import com.jflyfox.jfinal.component.annotation.ControllerBind; import com.jflyfox.system.user.SysUser; /** * @author :likai * @date :Created in 2020/6/22 9:20 * @description: */ @ControllerBind(controllerKey = "/api/commodity") @Before(ApiInterceptor.class) public class CommodityController extends BaseProjectController { ICommodityServiceImpl commodityService = new ICommodityServiceImpl(); IOrderServer orderServer = new IOrderServerImpl(); /** * 列表页 */ public void list() { ApiForm form = getForm(); getSysUser(form); ApiResp resp = commodityService.page(form); renderJson(resp); } /** * 获取详情 */ public void info() { ApiForm form = getForm(); getSysUser(form); Integer id = getParaToInt(); TbCommodity commodity = commodityService.info(id); renderJson(new ApiResp(form).setData(commodity)); } /** * 下拉选项 */ public void option() { ApiForm form = getForm(); SysUser user = super.getSysUser(form); if (user == null) return; ApiResp resp = commodityService.list(form, user); renderJson(resp); } /** * 添加商品 */ public void add() { TbCommodity model = JSON.parseObject(HttpKit.readData(getRequest()), TbCommodity.class); ApiForm form = getForm(); SysUser user = getSysUser(form); if (user == null) return; if (checkName(form, model)) return; model.put("create_time", getNow()); model.put("create_id", user.getUserid()); model.save(); renderJson(new ApiResp(form).setData(model)); } /** * 获取当前用户 并鉴权 * * @param form * @return */ public SysUser getSysUser(ApiForm form) { SysUser user = super.getSysUser(form); if (user == null) return user; if (user.getInt("usertype") != JFlyFoxUtils.USER_TYPE_NORMAL) { renderJson(new ApiResp(form).setCode(ApiConstant.CODE_FAIL).setMsg("无权限访问")); return null; } return user; } /** * 修改商品 */ public void edit() { ApiForm form = getForm(); SysUser user = getSysUser(form); if (user == null) return; TbCommodity model = JSON.parseObject(HttpKit.readData(getRequest()), TbCommodity.class); if (orderServer.findByCommodityId(model.getInt("id")) != null) { renderJson(new ApiResp(form).setCode(ApiConstant.CODE_FAIL).setMsg("商品已使用,无法修改!")); return; } if (checkName(form, model)) return; model.update(); renderJson(new ApiResp(form)); } /** * 检查商品名称 * * @param form * @param model * @return */ private boolean checkName(ApiForm form, TbCommodity model) { TbCommodity commodity = model.findFirstByWhere("where name = ?", model.getStr("name")); if (commodity != null && commodity.getInt("id") != model.getInt("id")) { renderJson(new ApiResp(form).setCode(ApiConstant.CODE_FAIL).setMsg("商品名称已存在!")); return true; } if (commodity != null && commodity.getInt("id") != model.getInt("id")) { renderJson(new ApiResp(form).setCode(ApiConstant.CODE_FAIL).setMsg("商品名称已存在!")); return true; } return false; } /** * 删除商品 */ public void delete() { ApiForm form = getForm(); SysUser user = getSysUser(form); if (user == null) return; Integer id = getParaToInt(); if (orderServer.findByCommodityId(id) != null) { renderJson(new ApiResp(form).setCode(ApiConstant.CODE_FAIL).setMsg("商品已使用,无法删除!")); return; } TbCommodity.dao.deleteById(id); renderJson(new ApiResp(form)); } public ApiForm getForm() { ApiForm form = getBean(ApiForm.class, null); return form; } }