GoodsInfoController.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. String sysCompanyId = configService.selectConfigByKey("sys.company.id");
  69. List<GoodsInfo> list;
  70. startPage();
  71. if(ShiroUtils.getCompanyId()!=Long.parseLong(sysCompanyId)){
  72. goodsInfo.setCompanyId(ShiroUtils.getCompanyId());
  73. list = goodsInfoService.selectGoodsInfoList(goodsInfo);
  74. }else{
  75. list = goodsInfoService.selectGoodsInfoListByAdmin(goodsInfo);
  76. }
  77. return getDataTable(list);
  78. }
  79. /**
  80. * 新增商品基础详情
  81. */
  82. @GetMapping("/add")
  83. public String add(ModelMap mmp)
  84. {
  85. Boolean isSystemUser = false;
  86. /*判断是否是系统内部人员*/
  87. if(ShiroUtils.getCompanyId()==Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
  88. isSystemUser=true;
  89. }
  90. SysCompany sysCompany = sysCompanyService.selectSysCompanyById(ShiroUtils.getCompanyId());
  91. mmp.addAttribute("sysCompany",sysCompany);
  92. mmp.addAttribute("isSystemUser",isSystemUser);
  93. return prefix + "/add";
  94. }
  95. /**
  96. * 新增保存商品基础详情
  97. */
  98. @RequiresPermissions("goods:info:add")
  99. @Log(title = "商品基础详情", businessType = BusinessType.INSERT)
  100. @PostMapping("/add")
  101. @ResponseBody
  102. public AjaxResult addSave(GoodsInfo goodsInfo)
  103. {
  104. if(StringUtils.isNotEmpty(goodsInfo.getCover())){
  105. //获取base64文件后缀
  106. String houzhui = goodsInfo.getCover().split(";")[0].split("\\/")[1];
  107. //获取base64值
  108. String base64 = goodsInfo.getCover().substring( goodsInfo.getCover().indexOf(",") + 1);
  109. //base64转文件 并返回展示url
  110. String fileUrl = FileUploadUtils.base64ToFile(base64,FileUploadUtils.getDefaultBaseDir()+"/content",System.currentTimeMillis()+"."+houzhui);
  111. goodsInfo.setCover(fileUrl);
  112. }
  113. goodsInfo.setCreateBy(ShiroUtils.getLoginName());
  114. return toAjax(goodsInfoService.insertGoodsInfo(goodsInfo));
  115. }
  116. /**
  117. * 修改商品基础详情
  118. */
  119. @GetMapping("/edit/{id}")
  120. public String edit(@PathVariable("id") Long id,String isShow, ModelMap mmap)
  121. {
  122. Boolean isSystemUser = false;
  123. /*判断是否是系统内部人员*/
  124. if(ShiroUtils.getCompanyId()==Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
  125. isSystemUser=true;
  126. }
  127. SysCompany sysCompany = sysCompanyService.selectSysCompanyById(ShiroUtils.getCompanyId());
  128. mmap.put("sysCompany",sysCompany);
  129. mmap.put("isSystemUser",isSystemUser);
  130. GoodsInfo goodsInfo = goodsInfoService.selectGoodsInfoById(id);
  131. mmap.put("goodsInfo", goodsInfo);
  132. mmap.put("isShow", StringUtils.isNotEmpty(isShow)?true:false);
  133. if(goodsInfo.getSlideshow()!=null){
  134. mmap.put("slideshows",Convert.toStrArray(goodsInfo.getSlideshow()));
  135. }
  136. return prefix + "/edit";
  137. }
  138. /**
  139. * 修改保存商品基础详情
  140. */
  141. @RequiresPermissions("goods:info:edit")
  142. @Log(title = "商品基础详情", businessType = BusinessType.UPDATE)
  143. @PostMapping("/edit")
  144. @ResponseBody
  145. public AjaxResult editSave(GoodsInfo goodsInfo)
  146. {
  147. if(StringUtils.isNotEmpty(goodsInfo.getCover())){
  148. //获取base64文件后缀
  149. String houzhui = goodsInfo.getCover().split(";")[0].split("\\/")[1];
  150. //获取base64值
  151. String base64 = goodsInfo.getCover().substring( goodsInfo.getCover().indexOf(",") + 1);
  152. //base64转文件 并返回展示url
  153. String fileUrl = FileUploadUtils.base64ToFile(base64,FileUploadUtils.getDefaultBaseDir()+"/content",System.currentTimeMillis()+"."+houzhui);
  154. goodsInfo.setCover(fileUrl);
  155. }
  156. return toAjax(goodsInfoService.updateGoodsInfo(goodsInfo));
  157. }
  158. /**
  159. * 删除商品基础详情
  160. */
  161. @RequiresPermissions("goods:info:remove")
  162. @Log(title = "商品基础详情", businessType = BusinessType.DELETE)
  163. @PostMapping( "/remove")
  164. @ResponseBody
  165. public AjaxResult remove(String ids)
  166. {
  167. List<GoodsInfo> goodsInfos = goodsInfoService.selectGoodsInfoByIds(ids);
  168. for(GoodsInfo gi:goodsInfos){
  169. if(gi.getPutawayFlag().equals("1")){
  170. throw new BusinessException("已上架商品不能删除");
  171. }
  172. }
  173. return toAjax(goodsInfoService.deleteGoodsInfoByIds(ids));
  174. }
  175. /**
  176. * 商品上下架
  177. */
  178. @RequiresPermissions("goods:info:putaway")
  179. @PostMapping("/putaway")
  180. @ResponseBody
  181. public Object putaway(String ids,String putawayFlag)
  182. {
  183. int i = goodsInfoService.putawayGooodsInfo(ids,putawayFlag);
  184. return toAjax(i);
  185. }
  186. }