AuthProductApi.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. package com.caimei.controller.auth;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.caimei.model.ResponseJson;
  4. import com.caimei.model.dto.ProductSaveDto;
  5. import com.caimei.model.vo.ProductFormVo;
  6. import com.caimei.model.vo.ProductListVo;
  7. import com.caimei.model.vo.ProductTypeListVo;
  8. import com.caimei.service.auth.AuthProductService;
  9. import com.github.pagehelper.PageInfo;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiImplicitParam;
  12. import io.swagger.annotations.ApiImplicitParams;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.RequiredArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.io.IOException;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * 授权商品API
  23. * @author Aslee
  24. * @date 2021/5/17
  25. */
  26. @Api(tags = "认证商品API")
  27. @Slf4j
  28. @RestController
  29. @RequiredArgsConstructor
  30. @RequestMapping("/auth/product")
  31. public class AuthProductApi {
  32. private final AuthProductService authProductService;
  33. /**
  34. * 授权商品列表
  35. */
  36. @ApiOperation("授权商品列表")
  37. @ApiImplicitParams({
  38. @ApiImplicitParam(name = "listType", required = false, value = "列表类型:1商品列表,2管理员商品审核列表,3供应商商品审核列表"),
  39. @ApiImplicitParam(name = "authId", required = true, value = "授权id"),
  40. @ApiImplicitParam(name = "productName", required = false, value = "商品名称"),
  41. @ApiImplicitParam(name = "snCode", required = false, value = "商品SN码"),
  42. @ApiImplicitParam(name = "status", required = false, value = "上线状态:0下线,1上线,2待上线"),
  43. @ApiImplicitParam(name = "auditStatus", required = false, value = "审核状态:0审核未通过,1审核通过,2待审核"),
  44. @ApiImplicitParam(name = "shopAuditStatus", required = false, value = "供应商审核状态:0未审核,1已审核"),
  45. @ApiImplicitParam(name = "pageNum", required = false, value = "第几页"),
  46. @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
  47. })
  48. @GetMapping("/list")
  49. public ResponseJson<PageInfo<ProductListVo>> getProductList(Integer listType, Integer authId, String productName,
  50. String snCode, Integer status, Integer auditStatus, Integer shopAuditStatus,
  51. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  52. @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
  53. return authProductService.getProductList(listType, authId, productName, snCode, status, auditStatus, shopAuditStatus, pageNum, pageSize);
  54. }
  55. /**
  56. * 更新授权商品状态
  57. */
  58. @ApiOperation("更新授权商品状态")
  59. @ApiImplicitParam(name = "params", value = "productId:授权商品id;status:上线状态:0已下线,1已上线,2待上线", required = true)
  60. @PostMapping("/update/status")
  61. public ResponseJson updateProductStatus(@RequestBody Map<String,Integer> params) {
  62. Integer productId = params.get("productId");
  63. Integer status = params.get("status");
  64. return authProductService.updateProductStatus(productId, status);
  65. }
  66. /**
  67. * 删除授权商品
  68. */
  69. @ApiOperation("删除授权商品")
  70. @ApiImplicitParam(name = "params", value = "productId:授权商品id", required = true)
  71. @PostMapping("/delete")
  72. public ResponseJson deleteProduct(@RequestBody Map<String,Integer> params) {
  73. Integer productId = params.get("productId");
  74. return authProductService.deleteProduct(productId);
  75. }
  76. /**
  77. * 添加/编辑授权商品
  78. * @param productSaveDto {
  79. * productId 授权商品id
  80. * authId 授权id
  81. * brandId 品牌id
  82. * productTypeId 设备分类id
  83. * snCode 商品SN码
  84. * productImage 商品图片
  85. * certificateImage 授权牌照
  86. * addQrCodeFlag 是否生成二维码授权牌:0否,1是
  87. * addTemplateType 生成二维码授权牌模板:1左下,2右边,3左边
  88. * purchaseWay 购买渠道
  89. * invoiceImage 发票图片
  90. * status 上线状态:0已下线,1已上线,2待上线
  91. * createBy 创建人id
  92. * paramList 商品参数列表
  93. * }
  94. */
  95. @ApiOperation("添加/编辑授权商品")
  96. @PostMapping("/save")
  97. public ResponseJson saveProduct(@RequestBody ProductSaveDto productSaveDto) throws IOException {
  98. return authProductService.saveProduct(productSaveDto, false, 1);
  99. }
  100. /**
  101. * 获取授权商品回显数据
  102. *
  103. * @param productId 授权商品id
  104. * @return ProductFormVo
  105. */
  106. @ApiOperation("授权商品回显数据")
  107. @ApiImplicitParam(name = "productId", required = true, value = "授权商品id")
  108. @GetMapping("/form/data")
  109. public ResponseJson<ProductFormVo> getProductFormData(Integer productId) {
  110. return authProductService.getProductFormData(productId);
  111. }
  112. /**
  113. * 更新所有商品的水印图片
  114. */
  115. @ApiOperation("更新所有商品的水印图片")
  116. @PostMapping("/update/all/watermark")
  117. public ResponseJson updateAllWatermark(){
  118. return authProductService.updateAllWaterMark();
  119. }
  120. /**
  121. * 审核商品
  122. */
  123. @ApiOperation("审核商品")
  124. @ApiImplicitParam(name = "params", value = "productId:授权商品id;auditStatus:审核状态:0审核未通过,1审核通过,2待审核;" +
  125. "invalidReason:审核不通过原因;auditBy:审核人用户id;source:来源:1管理员审核,2供应商审核", required = true)
  126. @PostMapping("/audit")
  127. public ResponseJson auditProduct(@RequestBody String params) {
  128. JSONObject paramsMap = JSONObject.parseObject(params);
  129. Integer productId = paramsMap.getInteger("productId");
  130. Integer auditStatus = paramsMap.getInteger("auditStatus");
  131. String invalidReason = paramsMap.getString("invalidReason");
  132. Integer auditBy = paramsMap.getInteger("auditBy");
  133. Integer source = paramsMap.getInteger("source");
  134. return authProductService.auditProduct(productId, auditStatus, invalidReason, auditBy, source);
  135. }
  136. @ApiOperation("添加/编辑设备分类")
  137. @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id;authUserId:供应商用户id;name:设备分类名称;image:图片;createBy:创建人用户id;", required = true)
  138. @PostMapping("/type/save")
  139. public ResponseJson saveProductType(@RequestBody String params) throws IOException {
  140. JSONObject paramsMap = JSONObject.parseObject(params);
  141. Integer productTypeId = paramsMap.getInteger("productTypeId");
  142. Integer authUserId = paramsMap.getInteger("authUserId");
  143. String name = paramsMap.getString("name");
  144. String image = paramsMap.getString("image");
  145. Integer createBy = paramsMap.getInteger("createBy");
  146. if (null == authUserId) {
  147. return ResponseJson.error("参数异常,供应商用户id不能为空");
  148. }
  149. if (StringUtils.isEmpty(name)) {
  150. return ResponseJson.error("参数异常,设备分类名称不能为空");
  151. }
  152. if (StringUtils.isEmpty(image)) {
  153. return ResponseJson.error("参数异常,图片不能为空");
  154. }
  155. return authProductService.saveProductType(productTypeId, authUserId, name, image, createBy);
  156. }
  157. @ApiOperation("删除设备分类")
  158. @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id", required = true)
  159. @PostMapping("/type/delete")
  160. public ResponseJson deleteProductType(@RequestBody Map<String,Integer> params) {
  161. Integer productTypeId = params.get("productTypeId");
  162. if (null == productTypeId) {
  163. return ResponseJson.error("参数异常,设备分类id不能为空");
  164. }
  165. return authProductService.deleteProductType(productTypeId);
  166. }
  167. @ApiOperation("更新设备分类状态")
  168. @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id;status:上线状态:0已下线,1已上线,2待上线", required = true)
  169. @PostMapping("/type/update/status")
  170. public ResponseJson updateProductTypeStatus(@RequestBody Map<String,Integer> params) {
  171. Integer productTypeId = params.get("productTypeId");
  172. Integer status = params.get("status");
  173. if (productTypeId == null) {
  174. return ResponseJson.error("请输入设备分类id");
  175. }
  176. if (status == null) {
  177. return ResponseJson.error("请输入要更新的状态值");
  178. } else if (status != 0 && status != 1) {
  179. return ResponseJson.error("状态值只能为0或1");
  180. }
  181. return authProductService.updateProductTypeStatus(productTypeId, status);
  182. }
  183. @ApiOperation("设备分类列表")
  184. @ApiImplicitParams({
  185. @ApiImplicitParam(name = "listType", required = false, value = "列表类型:1设备分类列表,2设备分类审核列表"),
  186. @ApiImplicitParam(name = "authUserId", required = true, value = "供应商用户id"),
  187. @ApiImplicitParam(name = "name", required = false, value = "设备分类名称"),
  188. @ApiImplicitParam(name = "status", required = false, value = "上线状态:0下线,1上线,2待上线"),
  189. @ApiImplicitParam(name = "auditStatus", required = false, value = "审核状态:0审核未通过,1审核通过,2待审核"),
  190. @ApiImplicitParam(name = "pageNum", required = false, value = "第几页"),
  191. @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
  192. })
  193. @GetMapping("/type/list")
  194. public ResponseJson<PageInfo<ProductTypeListVo>> getProductTypeList(Integer listType, Integer authUserId, String name, Integer status, Integer auditStatus,
  195. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  196. @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
  197. if (null == authUserId) {
  198. return ResponseJson.error("参数异常,供应商用户id不能为空", null);
  199. }
  200. return authProductService.getProductTypeList(listType, authUserId, name, status, auditStatus, pageNum, pageSize);
  201. }
  202. @ApiOperation("设备分类下拉框列表")
  203. @ApiImplicitParam(name = "authUserId", required = true, value = "供应商用户id")
  204. @GetMapping("/type/select")
  205. public ResponseJson<List<ProductTypeListVo>> getProductTypeSelectList(Integer authUserId) {
  206. if (null == authUserId) {
  207. return ResponseJson.error("参数异常,供应商用户id不能为空", null);
  208. }
  209. return authProductService.getProductTypeSelectList(authUserId);
  210. }
  211. @ApiOperation("审核设备分类")
  212. @ApiImplicitParam(name = "params", value = "productTypeId:设备分类id;auditStatus:审核状态:0审核未通过,1审核通过,2待审核;invalidReason:审核不通过原因;auditBy:审核人用户id", required = true)
  213. @PostMapping("/type/audit")
  214. public ResponseJson auditProductType(@RequestBody String params) {
  215. JSONObject paramsMap = JSONObject.parseObject(params);
  216. Integer productTypeId = paramsMap.getInteger("productTypeId");
  217. Integer auditStatus = paramsMap.getInteger("auditStatus");
  218. String invalidReason = paramsMap.getString("invalidReason");
  219. Integer auditBy = paramsMap.getInteger("auditBy");
  220. if (productTypeId == null) {
  221. return ResponseJson.error("请输入商品id");
  222. }
  223. if (auditStatus == null) {
  224. return ResponseJson.error("请输入审核结果");
  225. }
  226. if (auditStatus == 0 && StringUtils.isEmpty(invalidReason)) {
  227. return ResponseJson.error("请输入审核不通过的原因");
  228. }
  229. if (auditBy == null) {
  230. return ResponseJson.error("请输入审核人用户id");
  231. }
  232. return authProductService.auditProductType(productTypeId, auditStatus, invalidReason, auditBy);
  233. }
  234. }