CommodityController.java
4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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;
}
}