GoodsInfoController.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.dgtly.goods.controller;
  2. import java.awt.*;
  3. import java.util.List;
  4. import com.dgtly.common.core.text.Convert;
  5. import com.dgtly.common.exception.BusinessException;
  6. import com.dgtly.common.utils.StringUtils;
  7. import com.dgtly.common.utils.file.FileUploadUtils;
  8. import com.dgtly.framework.util.ShiroUtils;
  9. import com.dgtly.system.domain.SysCompany;
  10. import com.dgtly.system.service.ISysCompanyService;
  11. import com.dgtly.system.service.ISysConfigService;
  12. import org.apache.shiro.authz.annotation.RequiresPermissions;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.ModelMap;
  16. import org.springframework.web.bind.annotation.GetMapping;
  17. import org.springframework.web.bind.annotation.PathVariable;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import com.dgtly.common.annotation.Log;
  22. import com.dgtly.common.enums.BusinessType;
  23. import com.dgtly.goods.domain.GoodsInfo;
  24. import com.dgtly.goods.service.IGoodsInfoService;
  25. import com.dgtly.common.core.controller.BaseController;
  26. import com.dgtly.common.core.domain.AjaxResult;
  27. import com.dgtly.common.utils.poi.ExcelUtil;
  28. import com.dgtly.common.core.page.TableDataInfo;
  29. import org.springframework.web.multipart.MultipartFile;
  30. /**
  31. * 商品基础详情Controller
  32. *
  33. * @author dgtly
  34. * @date 2020-02-13
  35. */
  36. @Controller
  37. @RequestMapping("/goods/info")
  38. public class GoodsInfoController extends BaseController
  39. {
  40. private String prefix = "goods/info";
  41. @Autowired
  42. private IGoodsInfoService goodsInfoService;
  43. @Autowired
  44. private ISysCompanyService sysCompanyService;
  45. @Autowired
  46. private ISysConfigService configService;
  47. @RequiresPermissions("goods:info:view")
  48. @GetMapping()
  49. public String info(ModelMap mmp)
  50. {
  51. Boolean isSystemUser = false;
  52. /*判断是否是系统内部人员*/
  53. if(ShiroUtils.getCompanyId()==Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
  54. isSystemUser=true;
  55. }
  56. mmp.addAttribute("isSystemUser",isSystemUser);
  57. return prefix + "/info";
  58. }
  59. /**
  60. * 查询商品基础详情列表
  61. */
  62. @RequiresPermissions("goods:info:list")
  63. @PostMapping("/list")
  64. @ResponseBody
  65. public TableDataInfo list(GoodsInfo goodsInfo)
  66. {
  67. /*判断是否是系统内部人员*/
  68. if(ShiroUtils.getCompanyId()!=Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
  69. goodsInfo.setCompanyId(ShiroUtils.getCompanyId());
  70. }else{
  71. /*系统内部人员只能查看已上架商品*/
  72. goodsInfo.setPutawayFlag("1");
  73. }
  74. startPage();
  75. List<GoodsInfo> list = goodsInfoService.selectGoodsInfoList(goodsInfo);
  76. return getDataTable(list);
  77. }
  78. /**
  79. * 新增商品基础详情
  80. */
  81. @GetMapping("/add")
  82. public String add(ModelMap mmp)
  83. {
  84. Boolean isSystemUser = false;
  85. /*判断是否是系统内部人员*/
  86. if(ShiroUtils.getCompanyId()==Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
  87. isSystemUser=true;
  88. }
  89. SysCompany sysCompany = sysCompanyService.selectSysCompanyById(ShiroUtils.getCompanyId());
  90. mmp.addAttribute("sysCompany",sysCompany);
  91. mmp.addAttribute("isSystemUser",isSystemUser);
  92. return prefix + "/add";
  93. }
  94. /**
  95. * 新增保存商品基础详情
  96. */
  97. @RequiresPermissions("goods:info:add")
  98. @Log(title = "商品基础详情", businessType = BusinessType.INSERT)
  99. @PostMapping("/add")
  100. @ResponseBody
  101. public AjaxResult addSave(GoodsInfo goodsInfo)
  102. {
  103. if(StringUtils.isNotEmpty(goodsInfo.getCover())){
  104. //获取base64文件后缀
  105. String houzhui = goodsInfo.getCover().split(";")[0].split("\\/")[1];
  106. //获取base64值
  107. String base64 = goodsInfo.getCover().substring( goodsInfo.getCover().indexOf(",") + 1);
  108. //base64转文件 并返回展示url
  109. String fileUrl = FileUploadUtils.base64ToFile(base64,FileUploadUtils.getDefaultBaseDir()+"/content",System.currentTimeMillis()+"."+houzhui);
  110. goodsInfo.setCover(fileUrl);
  111. }
  112. return toAjax(goodsInfoService.insertGoodsInfo(goodsInfo));
  113. }
  114. /**
  115. * 修改商品基础详情
  116. */
  117. @GetMapping("/edit/{id}")
  118. public String edit(@PathVariable("id") Long id,String isShow, ModelMap mmap)
  119. {
  120. Boolean isSystemUser = false;
  121. /*判断是否是系统内部人员*/
  122. if(ShiroUtils.getCompanyId()==Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
  123. isSystemUser=true;
  124. }
  125. SysCompany sysCompany = sysCompanyService.selectSysCompanyById(ShiroUtils.getCompanyId());
  126. mmap.put("sysCompany",sysCompany);
  127. mmap.put("isSystemUser",isSystemUser);
  128. GoodsInfo goodsInfo = goodsInfoService.selectGoodsInfoById(id);
  129. mmap.put("goodsInfo", goodsInfo);
  130. mmap.put("isShow", StringUtils.isNotEmpty(isShow)?true:false);
  131. if(goodsInfo.getSlideshow()!=null){
  132. mmap.put("slideshows",Convert.toStrArray(goodsInfo.getSlideshow()));
  133. }
  134. return prefix + "/edit";
  135. }
  136. /**
  137. * 修改保存商品基础详情
  138. */
  139. @RequiresPermissions("goods:info:edit")
  140. @Log(title = "商品基础详情", businessType = BusinessType.UPDATE)
  141. @PostMapping("/edit")
  142. @ResponseBody
  143. public AjaxResult editSave(GoodsInfo goodsInfo)
  144. {
  145. if(StringUtils.isNotEmpty(goodsInfo.getCover())){
  146. //获取base64文件后缀
  147. String houzhui = goodsInfo.getCover().split(";")[0].split("\\/")[1];
  148. //获取base64值
  149. String base64 = goodsInfo.getCover().substring( goodsInfo.getCover().indexOf(",") + 1);
  150. //base64转文件 并返回展示url
  151. String fileUrl = FileUploadUtils.base64ToFile(base64,FileUploadUtils.getDefaultBaseDir()+"/content",System.currentTimeMillis()+"."+houzhui);
  152. goodsInfo.setCover(fileUrl);
  153. }
  154. return toAjax(goodsInfoService.updateGoodsInfo(goodsInfo));
  155. }
  156. /**
  157. * 删除商品基础详情
  158. */
  159. @RequiresPermissions("goods:info:remove")
  160. @Log(title = "商品基础详情", businessType = BusinessType.DELETE)
  161. @PostMapping( "/remove")
  162. @ResponseBody
  163. public AjaxResult remove(String ids)
  164. {
  165. List<GoodsInfo> goodsInfos = goodsInfoService.selectGoodsInfoByIds(ids);
  166. for(GoodsInfo gi:goodsInfos){
  167. if(gi.getPutawayFlag().equals("1")){
  168. throw new BusinessException("已上架商品不能删除");
  169. }
  170. }
  171. return toAjax(goodsInfoService.deleteGoodsInfoByIds(ids));
  172. }
  173. /**
  174. * 商品上下架
  175. */
  176. @RequiresPermissions("goods:info:putaway")
  177. @PostMapping("/putaway")
  178. @ResponseBody
  179. public Object putaway(String ids,String putawayFlag)
  180. {
  181. int i = goodsInfoService.putawayGooodsInfo(ids,putawayFlag);
  182. return toAjax(i);
  183. }
  184. }