| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490 |
- package com.style24.admin.biz.web;
- import java.awt.Image;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Collection;
- import javax.imageio.ImageIO;
- import javax.servlet.http.HttpServletRequest;
- import javax.swing.ImageIcon;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.core.env.Environment;
- import org.springframework.core.io.InputStreamResource;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.ModelAndView;
- import com.fasterxml.jackson.core.type.TypeReference;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.style24.admin.biz.service.TsaCommonService;
- import com.style24.admin.biz.service.TsaCustomerService;
- import com.style24.admin.biz.service.TsaGoodsService;
- import com.style24.admin.biz.service.TsaRendererService;
- import com.style24.admin.biz.service.TsaSystemService;
- import com.style24.admin.support.controller.TsaBaseController;
- import com.style24.admin.support.security.session.TsaSession;
- import com.style24.core.biz.service.TscKakaotalkService;
- import com.style24.core.support.message.TscMessageByLocale;
- import com.style24.persistence.TscPageRequest;
- import com.style24.persistence.domain.AdKeyword;
- import com.style24.persistence.domain.AdKeywordGoods;
- import com.style24.persistence.domain.Brand;
- import com.style24.persistence.domain.Color;
- import com.style24.persistence.domain.FreeGoods;
- import com.style24.persistence.domain.Goods;
- import com.style24.persistence.domain.GoodsCompose;
- import com.style24.persistence.domain.GoodsContents;
- import com.style24.persistence.domain.GoodsContentsData;
- import com.style24.persistence.domain.GoodsEpSkip;
- import com.style24.persistence.domain.GoodsHst;
- import com.style24.persistence.domain.GoodsImg;
- import com.style24.persistence.domain.GoodsMass;
- import com.style24.persistence.domain.GoodsNaverLowestPrice;
- import com.style24.persistence.domain.GoodsNotiInfo;
- import com.style24.persistence.domain.GoodsPriceRes;
- import com.style24.persistence.domain.GoodsResSell;
- import com.style24.persistence.domain.GoodsSafeNo;
- import com.style24.persistence.domain.GoodsSearch;
- import com.style24.persistence.domain.GoodsSupplyPrice;
- import com.style24.persistence.domain.GoodsTnmRes;
- import com.style24.persistence.domain.GoodsVideo;
- import com.style24.persistence.domain.IfIncomelot;
- import com.style24.persistence.domain.Itemkind;
- import com.style24.persistence.domain.NotiInfo;
- import com.style24.persistence.domain.Notice;
- import com.style24.persistence.domain.NoticeGoods;
- import com.style24.persistence.domain.Option;
- import com.style24.persistence.domain.ReinboundInform;
- import com.style24.persistence.domain.SizeInfo;
- import com.style24.persistence.domain.User;
- import com.style24.persistence.domain.WmsColorMapping;
- import com.style24.persistence.domain.WmsGoods;
- import com.style24.persistence.domain.WmsSeasonMapping;
- import com.style24.persistence.domain.WmsStyleYearMapping;
- import lombok.extern.slf4j.Slf4j;
- import com.gagaframework.excel.GagaExcelUtil;
- import com.gagaframework.web.parameter.GagaMap;
- import com.gagaframework.web.rest.server.GagaResponse;
- import com.gagaframework.web.rest.server.GagaResponseStatus;
- import com.gagaframework.web.util.GagaDateUtil;
- import com.gagaframework.web.util.GagaFileUtil;
- import com.gagaframework.web.util.GagaStringUtil;
- /**
- * 상품관리 Controller
- *
- * @author eskim
- * @since 2020. 10. 16
- */
- @Controller
- @RequestMapping("/goods")
- @Slf4j
- public class TsaGoodsController extends TsaBaseController {
- @Autowired
- private TscMessageByLocale message;
- @Autowired
- private Environment env;
- @Autowired
- private TsaGoodsService goodsService;
- @Autowired
- private TsaRendererService rendererService;
- @Autowired
- private TsaCommonService commonService;
- @Autowired
- private TsaSystemService systemService;
- @Autowired
- private TscKakaotalkService coreKakaotalkService;
- @Autowired
- private TsaCustomerService customerService;
- @Autowired
- private ObjectMapper mapper;
- private static final int EXCEL_ROW_COUNT = 500;
- /**
- * 품목관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/itemkind/base/form")
- public ModelAndView itemkindBaseForm() {
- ModelAndView mav = new ModelAndView();
- // 정보고시 목록
- mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
- mav.setViewName("goods/ItemkindBaseForm");
- return mav;
- }
- /**
- * 품목관리 조회
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @PostMapping("/itemkind/base/list")
- @ResponseBody
- public Collection<Itemkind> getItemkindList(@RequestBody Itemkind itemkind) {
- return goodsService.getItemkindList(itemkind);
- }
- /**
- * 품목 관리 저장/등록
- *
- * @param itemkindList
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @PostMapping("/itemkind/save")
- @ResponseBody
- public GagaResponse saveItemkindInfo(@RequestBody Collection<Itemkind> itemkindList) {
- goodsService.saveItemkindInfo(itemkindList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 품목관리 삭제
- *
- * @param itemkindList
- * @author eskim
- * @since 2020. 10. 16
- */
- @PostMapping("/itemkind/delete")
- @ResponseBody
- public GagaResponse deleteItemkindInfo(@RequestBody Collection<Itemkind> itemkindList) {
- goodsService.deleteItemkindInfo(itemkindList);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 색상관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/color/form")
- public ModelAndView colorForm() {
- ModelAndView mav = new ModelAndView();
- // 대표컬러목록
- mav.addObject("groupColorCodeList", rendererService.getColorGrpCdRgbList());
- // 대표컬러명목록
- mav.addObject("groupColorCodeNmList", rendererService.getCommonCodeList("G072"));
- mav.setViewName("goods/ColorForm");
- return mav;
- }
- /**
- * 색상 조회
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @PostMapping("/color/list")
- @ResponseBody
- public Collection<Color> getColorList(@RequestBody Color color) {
- return goodsService.getColorList(color);
- }
- /**
- * 색상 저장
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @PostMapping("/color/save")
- @ResponseBody
- public GagaResponse saveColor(@RequestBody Collection<Color> colorList) {
- goodsService.saveColor(colorList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * WMS 시즌매핑 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @GetMapping("/wms/season/form")
- public ModelAndView seasonForm() {
- ModelAndView mav = new ModelAndView();
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- mav.setViewName("goods/WmsSeasonMappingForm");
- return mav;
- }
- /**
- * WMS 시즌 매핑 조회
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/wms/season/mapping/list")
- @ResponseBody
- public Collection<WmsSeasonMapping> getWmsSeasonMappingList(@RequestBody WmsSeasonMapping wmsSeasonMapping) {
- return goodsService.getWmsSeasonMappingList(wmsSeasonMapping);
- }
- /**
- * WMS 시즌 매핑 저장
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/wms/season/mapping/save")
- @ResponseBody
- public GagaResponse saveWmsSeasonMapping(@RequestBody Collection<WmsSeasonMapping> wmsSeasonMappingList) {
- goodsService.saveWmsSeasonMapping(wmsSeasonMappingList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 고시정보관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/notiinfo/form")
- public ModelAndView notiinfoForm() {
- ModelAndView mav = new ModelAndView();
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 정보고시 분류별 항목
- mav.addObject("niItemCdList", rendererService.getAvailCommonCodeList("G005"));
- mav.setViewName("goods/NotiinfoForm");
- return mav;
- }
- /**
- * 정보고시관리 조회
- *
- * @param notiInfo
- * @return
- * @author eskim
- * @since 2010. 10. 19
- */
- @PostMapping("/notiInfo/list")
- @ResponseBody
- public Collection<NotiInfo> getNotiInfoList(NotiInfo notiInfo) {
- return goodsService.getNotiInfoList(notiInfo);
- }
- /**
- * 정보고시 항목 목록
- *
- * @param notiInfo
- * @return
- * @author eskim
- * @since 2010. 10. 19
- */
- @PostMapping("/notiInfo/item/list")
- @ResponseBody
- public Collection<NotiInfo> getNotiInfoItemList(@RequestBody NotiInfo notiInfo) {
- return goodsService.getNotiInfoItemList(notiInfo);
- }
- /**
- * 정보고시 상세 저장
- *
- * @param notiInfoList
- * @return
- * @author eskim
- * @since 2010. 10. 19
- */
- @PostMapping("/notiInfo/item/save")
- @ResponseBody
- public GagaResponse saveNotiInfoItem(@RequestBody Collection<NotiInfo> notiInfoList) {
- goodsService.saveNotiInfoItem(notiInfoList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * WMS 색상 매핑 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 12
- */
- @GetMapping("/wms/color/form")
- public ModelAndView wmsColorForm() {
- ModelAndView mav = new ModelAndView();
- Color color = new Color();
- mav.addObject("colorList", rendererService.getColorList(color));
- mav.setViewName("goods/WmsColorMappingForm");
- return mav;
- }
- /**
- * WMS 색상 매핑 조회
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 11. 12
- */
- @PostMapping("/wms/color/mapping/list")
- @ResponseBody
- public Collection<WmsColorMapping> getWmsColorMappingList(@RequestBody WmsColorMapping wmsColorMapping) {
- return goodsService.getWmsColorMappingList(wmsColorMapping);
- }
- /**
- * WMS 색상 매핑 저장
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 11. 12
- */
- @PostMapping("/wms/color/mapping/save")
- @ResponseBody
- public GagaResponse saveWmsColorMapping(@RequestBody Collection<WmsColorMapping> wmsColorMappingList) {
- goodsService.saveWmsColorMapping(wmsColorMappingList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * WMS 스타일년도 매핑 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 12
- */
- @GetMapping("/wms/styleYear/form")
- public ModelAndView wmsStyleYearForm() {
- ModelAndView mav = new ModelAndView();
- // 년도
- int fromYear = Integer.parseInt("2008");
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy"));
- mav.addObject("styleYearList", rendererService.getYearList(fromYear, 0, toYear - fromYear + 3));
- mav.setViewName("goods/WmsStyleYearMappingForm");
- return mav;
- }
- /**
- * WMS 스타일년도 매핑 조회
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/wms/styleYear/mapping/list")
- @ResponseBody
- public Collection<WmsStyleYearMapping> getWmsStyleYearMappingList(@RequestBody WmsStyleYearMapping wmsStyleYearMapping) {
- return goodsService.getWmsStyleYearMappingList(wmsStyleYearMapping);
- }
- /**
- * WMS 스타일년도 매핑 저장
- *
- * @param color
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/wms/styleYear/mapping/save")
- @ResponseBody
- public GagaResponse saveWmsStyleYearMapping(@RequestBody Collection<WmsStyleYearMapping> wmsStyleYearMappingList) {
- goodsService.saveWmsStyleYearMapping(wmsStyleYearMappingList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품목록 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/list/form")
- public ModelAndView listForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- // String supplyCompCd = "";
- // String selfYn = "Y";
- // if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- // supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- // selfYn = "N";
- // }
- // mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, selfYn));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 성별
- mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 연령대
- mav.addObject("ageGrpCdList", rendererService.getAvailCommonCodeList("G023"));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // 상품유형
- mav.addObject("goodsTypeList", rendererService.getAvailCommonCodeList("G056"));
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- mav.setViewName("goods/GoodsListForm");
- return mav;
- }
- /**
- * 상품목록 조회
- *
- * @return
- * @author eskim
- * @since 2020. 10. 20
- */
- @PostMapping("/list")
- @ResponseBody
- public GagaMap getGoodsList(@RequestBody GoodsSearch goodsSearch) {
- //log.info("[getGoodsList] goodsSearch = {}", goodsSearch);
- GagaMap result = new GagaMap();
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
- // 다다익선 업체+브랜드 상품조회시 사용
- if ("N".equals(goodsSearch.getPageingYn())) {
- goodsSearch.setPageable(null);
- }
- result.set("pageing", goodsSearch);
- result.set("goodsList", goodsService.getGoodsList(goodsSearch));
- return result;
- }
- /**
- * 상품목록 - 기본정보 엑셀다운로드
- *
- * @param goodsSearch
- * @return
- * @author eskim
- * @since 2020. 10. 21
- */
- @GetMapping("/info/excel/list")
- public ResponseEntity<InputStreamResource> downloadGoodsInfoExcelList(HttpServletRequest request, GoodsSearch goodsSearch) throws Exception {
- String excelfileName = "상품_기본정보_" + GagaDateUtil.getTodayDateTime() + ".xlsx";
- String excelFilenameWithPath = GagaFileUtil.getConcatenationPath(env.getProperty("download.path"), "excel", excelfileName);
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- log.info("[goodsSearch] ={}", goodsSearch);
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
- //log.info("[downloadGoodsInfoExcelList] goodsSearch = {}", goodsSearch);
- // 대용량엑셀파일다운로드는 이런 식으로 ...
- goodsService.getGoodsInfoExcelList(goodsSearch, excelFilenameWithPath);
- return GagaFileUtil.writeFile(request, excelFilenameWithPath);
- }
- /**
- * 상품 수정 항목 일괄변경
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 01. 17
- */
- @PostMapping("/state/update")
- @ResponseBody
- public GagaMap updateGoodsState(@RequestBody Goods goods) {
- GagaMap result = new GagaMap();
- result.set("status", GagaResponseStatus.SUCCESS.getCode()); // 200
- result.set("procJob", goods.getProcJob());
- String returnGoods = "";
- String resultFlag = "SUCC";
- if (!"G001_0000".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A000".equals(TsaSession.getInfo().getRoleCd())
- && !"G001_A001".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A100".equals(TsaSession.getInfo().getRoleCd())
- && !"G001_A101".equals(TsaSession.getInfo().getRoleCd())) {
- throw new IllegalStateException("권한이 없습니다.");
- }
- // 상품 상태 변경일 경우 체크
- if ("goodsStat".equals(goods.getProcJob()) && ("G008_40".equals(goods.getGoodsStat()) || "G008_90".equals(goods.getGoodsStat()))) {
- // 이미지
- Collection<Goods> goodsList = goodsService.getGoodsImgsYn(goods);
- for (Goods tmpGoods : goodsList) {
- if ("N".equals(tmpGoods.getGoodsImageYn())) {
- returnGoods += tmpGoods.getGoodsCd() + ",";
- } else {
- // 택가/판매가 입력 여부 확인
- Goods dataGoods = goodsService.getGoods(tmpGoods);
- if (dataGoods == null) {
- returnGoods += tmpGoods.getGoodsCd() + ",";
- continue;
- }
- if (dataGoods.getListPrice() <= 0 || dataGoods.getCurrPrice() <= 0) {
- returnGoods += tmpGoods.getGoodsCd() + ",";
- continue;
- }
- // 옵션 등록 여부 확인 - 일반상품만 확인
- if ("G056_N".equals(dataGoods.getGoodsType())) {
- Option stock = new Option();
- stock.setGoodsCd(tmpGoods.getGoodsCd());
- int stockCnt = goodsService.getGoodsOptionCount(stock);
- if (stockCnt <= 0) {
- returnGoods += tmpGoods.getGoodsCd() + ",";
- continue;
- }
- }
- //고시정보
- if ("G056_N".equals(dataGoods.getGoodsType())) {
- GoodsNotiInfo goodsNotiInfo = new GoodsNotiInfo();
- goodsNotiInfo.setGoodsCd(tmpGoods.getGoodsCd());
- goodsNotiInfo.setNiClsfCd(tmpGoods.getNiClsfCd());
- Collection<GoodsNotiInfo> goodsNotiInfoList = goodsService.getGoodsNotiInfoList(goodsNotiInfo);
- if (goodsNotiInfoList == null || goodsNotiInfoList.isEmpty()) {
- returnGoods += tmpGoods.getGoodsCd() + ",";
- } else {
- for (GoodsNotiInfo tmpGoodsNotiInfo : goodsNotiInfoList) {
- if (StringUtils.isBlank(tmpGoodsNotiInfo.getNiContent())) {
- returnGoods += tmpGoods.getGoodsCd() + ",";
- break;
- }
- }
- }
- }
- }
- }
- if (returnGoods.length() > 0) {
- returnGoods = returnGoods.substring(0, returnGoods.lastIndexOf(","));
- //returnGoods = returnGoods.replaceAll(",", ",\n");
- resultFlag = "FAIL";
- result.set("resultFlag", resultFlag);
- result.set("returnGoods", returnGoods);
- return result;
- }
- }
- goodsService.updateGoodsState(goods);
- result.set("resultFlag", resultFlag);
- result.set("returnGoods", returnGoods);
- return result;
- }
- /**
- * 엑셀조회용 상품 저장
- *
- * @param goods
- * @return
- * @throws Exception
- * @author eskim
- * @since 2020. 10. 20
- */
- @PostMapping("/search/excelupload/save")
- @ResponseBody
- public GagaResponse saveExceluploadGoods(@RequestBody Goods goods) throws Exception {
- int cnt = 0;
- ObjectMapper mapper = new ObjectMapper();
- String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
- // DB 처리 시 사용되는 파라미터명(셀명) 설정
- String[] cellName = {"goodsCd"};
- Collection<GagaMap> ecxelGoodsList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goods.getExcelFileNm()), 0, cellName, 0);
- //건수
- if (ecxelGoodsList != null && ecxelGoodsList.size() > EXCEL_ROW_COUNT) {
- throw new IllegalStateException("엑셀 파일의 건수를 " + EXCEL_ROW_COUNT + "건 이하로 사용하세요.");
- }
- Collection<Goods> goodsList = new ArrayList<>();
- for (GagaMap map : ecxelGoodsList) {
- Goods tmpGoods = mapper.convertValue(map, Goods.class);
- tmpGoods.setRegNo(TsaSession.getInfo().getUserNo());
- tmpGoods.setProcJob(goods.getProcJob());
- goodsList.add(tmpGoods);
- cnt++;
- }
- goodsService.saveExceluploadGoods(goodsList, goods.getExcelFileNm());
- // 파일 삭제
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, goods.getExcelFileNm()));
- return super.ok("");
- }
- /**
- * 엑셀 업로드 상품 조회
- *
- * @param
- * @return GagaMap
- * @author eskim
- * @since 2020. 11. 02
- */
- @PostMapping("/excel/upload/goods/list")
- @ResponseBody
- public GagaMap getExcelUploadGoodsList() {
- GagaMap result = new GagaMap();
- GoodsSearch goodsSearch = new GoodsSearch();
- goodsSearch.setSearchGb("EXCEL");
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- result.set("goodsExcelList", goodsService.getGoodsList(goodsSearch));
- return result;
- }
- /**
- * 상품 상세 화면
- *
- * @param goodsCode - 상품코드
- * @return
- * @author eskim
- * @since 2020. 10. 23
- */
- @GetMapping("/detail/form")
- @ResponseBody
- public ModelAndView detailForm(Goods goods) {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd));
- // String selfYn = "Y";
- // if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- // supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- // selfYn = "N";
- // }
- // mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, selfYn));
- String[] goodsStatExceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", goodsStatExceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 성별
- mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // 정보고시 분류
- mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
- // 사용자 브랜드 조회
- mav.addObject("authBrandList", rendererService.getAuthBrandList(TsaSession.getInfo().getUserNo()));
- // 상품타입
- mav.addObject("goodsTypeList", rendererService.getAvailCommonCodeList("G056"));
- // 상품구분
- mav.addObject("goodsGbList", rendererService.getAvailCommonCodeList("G073"));
- // 유통구분
- //String[] distributionGbExceptCds = {"G065_20"};
- //mav.addObject("distributionGbList", rendererService.getCommonCodeList("G065", "Y", distributionGbExceptCds));
- mav.addObject("distributionGbList", rendererService.getCommonCodeList("G065", "Y"));
- // 상품연령대
- mav.addObject("ageGrpCdList", rendererService.getAvailCommonCodeList("G023"));
- // kc인증타입
- mav.addObject("certTypeList", rendererService.getAvailCommonCodeList("G081"));
- // kc인증대상구분
- mav.addObject("certTargetGbList", rendererService.getAvailCommonCodeList("G083"));
- // kc인증형태구분
- mav.addObject("certFormGbList", rendererService.getAvailCommonCodeList("G084"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 회원등급
- //mav.addObject("custGradeList", rendererService.getAvailCommonCodeList("G110"));
- mav.addObject("params", goods);
- mav.setViewName("goods/GoodsDetailForm");
- return mav;
- }
- /**
- * 상품 상세 조회
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 23
- */
- @PostMapping("/detail")
- @ResponseBody
- public Goods getGoodsDetail(Goods goods) {
- return goodsService.getGoods(goods);
- }
- /**
- * 상품 이력 조회
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 23
- */
- @GetMapping("/detail/hst/list")
- @ResponseBody
- public Collection<GoodsHst> getGoodsDetailHstList(Goods goods) {
- return goodsService.getGoodsHstList(goods);
- }
- /**
- * 컬러 옵셥 재고
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 26
- */
- @PostMapping("/detail/sizeStock/form")
- public ModelAndView getGoodsDetailSizeStockForm(Goods goods) {
- ModelAndView mav = new ModelAndView();
- mav.addObject("goods", goodsService.getGoods(goods));
- mav.addObject("goodsSizeList", goodsService.getGoodsSizeList(goods));
- mav.addObject("goodsColorList", goodsService.getGoodsColorList(goods));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- mav.setViewName("goods/GoodsDetailSizeStockForm");
- return mav;
- }
- /**
- * 상품 정보고시 조회
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 26
- */
- @PostMapping("/detail/notiInfo/list")
- @ResponseBody
- public Collection<GoodsNotiInfo> getGoodsDetailNotiInfoList(Goods goods) {
- GoodsNotiInfo goodsInfo = new GoodsNotiInfo();
- goodsInfo.setGoodsCd(goods.getGoodsCd());
- goodsInfo.setNiClsfCd(goods.getNiClsfCd());
- return goodsService.getGoodsNotiInfoList(goodsInfo);
- }
- /**
- * 상품의 정보고시 항목 목록
- *
- * @param notiInfo
- * @return
- * @author eskim
- * @since 2020. 10. 26
- */
- @PostMapping("/noti/goodsInfo/list")
- @ResponseBody
- public Collection<NotiInfo> getNotiGoodsInfoList(NotiInfo notiInfo) {
- return goodsService.getNotiGoodsInfoList(notiInfo);
- }
- /**
- * 상품 구매등급 조회
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 12. 11
- */
- @PostMapping("/detail/order/grade/list")
- @ResponseBody
- public Collection<Goods> getGoodsDetailOrderGradeList(Goods goods) {
- return goodsService.getGoodsDetailOrderGradeList(goods);
- }
- /**
- * 상품 안전인증 조회
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2021. 05. 10
- */
- @PostMapping("/detail/safe")
- @ResponseBody
- public GoodsSafeNo getGoodsDetailSafe(Goods goods) {
- return goodsService.getGoodsDetailSafe(goods);
- }
- /**
- * 구성상품 목록
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 27
- */
- @GetMapping("/detail/compose/list")
- @ResponseBody
- public Collection<GoodsCompose> getGoodsDetailComposeList(Goods goods) {
- return goodsService.getGoodsDetailComposeList(goods);
- }
- /**
- * 상품 안전인증번호 저장
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 12. 07
- */
- @PostMapping("/detail/certNum/save")
- @ResponseBody
- public GagaResponse saveGoodsDetailCertNum(@RequestBody GoodsSafeNo goodsSafeNo) {
- goodsService.saveGoodsDetailCertNum(goodsSafeNo);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 상세 저장
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 27
- */
- @PostMapping("/detail/save")
- @ResponseBody
- public GagaResponse saveGoodsDetail(@RequestBody Goods goods) {
- // 상품상태에 따른 이미지 정보 확인 - 상품상태가 승인대기나 승인 완료일 경우
- if ("G008_40".equals(goods.getGoodsStat()) || "G008_90".equals(goods.getGoodsStat())) {
- Collection<Goods> goodsList = goodsService.getGoodsImgsYn(goods);
- String goodsImageYn = "N";
- for (Goods tmpGoods : goodsList) {
- goodsImageYn = tmpGoods.getGoodsImageYn();
- }
- if ("N".equals(goodsImageYn)) {
- throw new IllegalStateException("필수 이미지나 고시정보가 등록되지 않은 상품은 '승인대기'나 '승인완료' 상태로 변경할 수 없습니다.");
- }
- }
- Collection<GoodsNotiInfo> notiList = null;
- Collection<GoodsCompose> goodComposeList = null;
- ObjectMapper mapper = new ObjectMapper();
- try {
- if (goods.getNotiList() != null) {
- notiList = mapper.readValue(goods.getNotiList(), new TypeReference<Collection<GoodsNotiInfo>>() {
- });
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- if (goods.getGoodsComposeList() != null) {
- goodComposeList = mapper.readValue(goods.getGoodsComposeList(), new TypeReference<Collection<GoodsCompose>>() {
- });
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- goods.setNotiListNew(notiList);
- goods.setGoodsComposeListNew(goodComposeList);
- goodsService.saveGoodsDetail(goods);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 이미지 보기 화면
- *
- * @param goodsCode - 상품코드
- * @return
- * @author eskim
- * @since 2020. 11. 09
- */
- @GetMapping("/image/form")
- @ResponseBody
- public ModelAndView imageMassForm(GoodsImg goodsImg) {
- ModelAndView mav = new ModelAndView();
- Collection<GoodsImg> goodsImgList = goodsService.getGoodsImgList(goodsImg);
- if (goodsImgList != null && !goodsImgList.isEmpty()) {
- mav.addObject("goodsImgList", goodsImgList);
- for (GoodsImg goodsImgInfo : goodsImgList) {
- if (goodsImgInfo.getDefaultImgYn().equals("Y")) {
- mav.addObject("defaultImgOrd", goodsImgInfo.getDispOrd());
- }
- if (goodsImgInfo.getMouseoverImgYn().equals("Y")) {
- mav.addObject("mouseoverImgOrd", goodsImgInfo.getDispOrd());
- }
- }
- } else { // 대표이미지와 마우스오버이미지가 없으면
- mav.addObject("goodsImgList", new ArrayList<GoodsImg>());
- mav.addObject("defaultImgOrd", "1");
- mav.addObject("mouseoverImgOrd", "1");
- }
- GoodsImg goodsModelInfo = goodsService.getGoodsModelInfo(goodsImg);
- if (goodsModelInfo != null) {
- mav.addObject("modelInfo", goodsModelInfo.getModelInfo());
- } else {
- mav.addObject("modelInfo", "");
- }
- mav.addObject("goodsImg", goodsImg);
- mav.setViewName("goods/GoodsImageForm");
- return mav;
- }
- /**
- * 상품 썸네일 이미지 저장 처리
- * @param goodsImgList - 상품이미지 목록
- * @return
- * @throws Exception
- * @author eskim
- * @since 2020. 12. 21
- */
- @RequestMapping(value = "/thumbnail/image/save", method = RequestMethod.POST)
- @ResponseBody
- public GagaResponse saveGoodsThumbnailImageList(@RequestBody Collection<GoodsImg> goodsImgList) throws Exception {
- if (goodsImgList == null || goodsImgList.isEmpty()) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
- String dextUploadPath = env.getProperty("upload.dext.target.path");
- String goodsTargetPath = env.getProperty("upload.goods.target.path");
- int index = 1;
- String strBrandNo = "";
- GoodsImg goodsModelInfo = new GoodsImg();
- // 오류 파일 목록
- Collection<File> errorFileList = new ArrayList<File>();
- Collection<File> errorFileDextList = new ArrayList<File>();
- // 1.업로드된 파일 rename 및 순서 재정렬
- for (GoodsImg goodsImg : goodsImgList) {
- goodsModelInfo.setGoodsCd(goodsImg.getGoodsCd());
- goodsModelInfo.setModelInfo(goodsImg.getModelInfo());
- // dx5에서 삭제한 파일은 skip
- if (goodsImg.getMode().equals("D")) {
- continue;
- }
- // 상품의 브랜드 번호 추출
- if (strBrandNo.isEmpty()) {
- Goods goods = new Goods();
- goods.setGoodsCd(goodsImg.getGoodsCd());
- Goods goodsInfo = goodsService.getGoods(goods);
- if (goodsInfo == null || goodsInfo.getGoodsCd().isEmpty()) {
- deleteErrorFileList(errorFileList);
- deleteErrorFileList(errorFileDextList);
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
- strBrandNo = String.valueOf(goodsInfo.getBrandNo());
- }
- String brandDir = GagaStringUtil.getLPadding(strBrandNo, 10, "0");
- if (goodsImg.getMode().equals("C")) { // 업로드 된 파일 rename 처리
- // String newFilename = goodsImg.getGoodsCd()
- // + "_" + goodsImg.getColorCd()
- // + "_" + String.valueOf(index)
- // + "(" + GagaDateUtil.getTodayTime() + ")"
- // + "." + StringUtils.getFilenameExtension(goodsImg.getSysImgNm());
- String newFilename = goodsImg.getSysImgNm();
- //브랜드 폴더 확인
- String goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsTargetPath, brandDir); // 브랜드 폴더
- File brandPath = new File(goodsUploadPath);
- if (!brandPath.exists()) {
- brandPath.mkdir();
- }
- goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsUploadPath, GagaDateUtil.getToday()); //브랜드+/+YYYYMMDD(UPLOAD 일 )
- String brandYmdDir = GagaFileUtil.getConcatenationPath(brandDir, GagaDateUtil.getToday()); //디비 저장용
- File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(goodsUploadPath, newFilename)));
- File newFile = new File(GagaFileUtil.getConcatenationPath(goodsUploadPath, uniqueFile.getName()));
- //log.info("newFile.getPath(): {}", newFile.getPath());
- errorFileList.add(newFile);
- File oldFile = new File(GagaFileUtil.getConcatenationPath(dextUploadPath, goodsImg.getSysImgNm()));
- errorFileDextList.add(oldFile);
- //log.info("oldFile.getPath(): {}", oldFile.getPath());
- File path = new File(goodsUploadPath);
- if (!path.exists()) {
- //log.info("mkdir ={}", goodsUploadPath);
- path.mkdir();
- }
- Image srcImg = getImageObject(oldFile);
- int width = srcImg.getWidth(null);
- int height = srcImg.getHeight(null);
- if (newFile.getName().contains("_X1")) {
- // if (width != height) {
- if (width != 1000 || height != 1000) {
- deleteErrorFileList(errorFileList);
- deleteErrorFileList(errorFileDextList);
- throw new IllegalStateException("외부몰용 상품이미지가 정사각형(1000x1000)이 아닙니다.");
- }
- // 외부몰연동용 이미지로 설정
- goodsImg.setExtmallImgYn("Y");
- }
- boolean copyFlag = GagaFileUtil.copyFile(oldFile, newFile);
- if (copyFlag) {
- //기존이미지 삭제
- GagaFileUtil.deleteFile(oldFile.getPath());
- }
- goodsImg.setDispOrd(index++);
- goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(brandYmdDir, newFile.getName()));
- goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(brandYmdDir, newFile.getName()));
- } else {
- goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(goodsImg.getSysImgUrl(), goodsImg.getSysImgNm()));
- goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(goodsImg.getSysImgUrl(), goodsImg.getSysImgNm()));
- goodsImg.setDispOrd(index++);
- }
- }
- // 2.dx5에서 삭제한 파일 실제 삭제 처리
- for (GoodsImg goodsImg : goodsImgList) {
- if (goodsImg.getMode().equals("D")) {
- //log.info("Original file to delete: {}", GagaFileUtil.getConcatenationPath(goodsTargetPath, goodsImg.getSysImgUrl(), goodsImg.getSysImgNm()));
- // 상품이미지 삭제
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(goodsTargetPath, goodsImg.getSysImgUrl(), goodsImg.getSysImgNm()));
- }
- }
- // 상품이미지 저장 처리
- goodsService.saveGoodsImageList(goodsImgList);
- // 모델정보 처리
- goodsModelInfo.setRegNo(TsaSession.getInfo().getUserNo());
- goodsModelInfo.setUpdNo(TsaSession.getInfo().getUserNo());
- goodsService.saveGoodsModelInfo(goodsModelInfo);
- return super.ok(message.getMessage("SUCC_0007"));
- }
- /*
- * 이미지 파일 확인
- */
- public static Image getImageObject(File f) throws IOException {
- Image objImg = null;
- String suffix = f.getName().substring(f.getName().lastIndexOf('.') + 1).toLowerCase();
- // if (suffix.equals("bmp") || suffix.equals("png") || suffix.equals("gif") || suffix.equals("jpg")) {
- if (suffix.equals("png") || suffix.equals("gif") || suffix.equals("jpg")) {
- objImg = ImageIO.read(f);
- } else {
- // ImageIcon을 활용해서 Image 생성
- // 이렇게 하는 이유는 getScaledInstance를 통해 구한 이미지를
- // PixelGrabber.grabPixels로 리사이즈 할 때 빠르게 처리하기 위함이다.
- objImg = new ImageIcon(f.toURI().toURL()).getImage();
- }
- return objImg;
- }
- /**
- * 파일 삭제
- *
- * @param errorFileList
- * @author eskim
- * @since 2021. 5. 16
- */
- private void deleteErrorFileList(Collection<File> errorFileList) {
- // 파일 삭제
- if (errorFileList != null && !errorFileList.isEmpty()) {
- for (File errorFile : errorFileList) {
- try {
- GagaFileUtil.deleteFile(errorFile.getPath());
- } catch (IOException e) {
- // Nothing Do
- }
- }
- }
- }
- /**
- * 세트상품구성 화면
- *
- * @param
- * @return
- * @author eskim
- * @since 2020. 05. 26
- */
- @GetMapping("/set/form")
- @ResponseBody
- public ModelAndView setForm(Goods goods) {
- ModelAndView mav = new ModelAndView();
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 성별
- mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 스타일년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 원산지
- mav.addObject("originCdList", rendererService.getAvailCommonCodeList("G076"));
- mav.addObject("params", goods);
- mav.setViewName("goods/GoodsSetForm");
- return mav;
- }
- /**
- * 세트 상품 등록
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 11. 04
- */
- @PostMapping("/set/save")
- @ResponseBody
- public GagaResponse saveGoodsSet(@RequestBody Goods goods) {
- goodsService.saveGoodsSet(goods);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 딜상품구성 화면
- *
- * @param
- * @return
- * @author eskim
- * @since 2020. 10. 29
- */
- @GetMapping("/deal/form")
- @ResponseBody
- public ModelAndView dealForm(Goods goods) {
- ModelAndView mav = new ModelAndView();
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 성별
- mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 스타일년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 매입유형
- mav.addObject("buyingTypeList", rendererService.getAvailCommonCodeList("G035"));
- // 색상
- // Color color = new Color();
- // mav.addObject("colorCdList", rendererService.getColorList(color));
- // 상품상태
- // mav.addObject("goodsStatList",
- // rendererService.getAvailCommonCodeList("G008"));
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 원산지
- mav.addObject("makOriginList", rendererService.getAvailCommonCodeList("G076"));
- mav.addObject("params", goods);
- mav.setViewName("goods/GoodsDealForm");
- return mav;
- }
- /**
- * 딜 상품 등록
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 30
- */
- @PostMapping("/deal/save")
- @ResponseBody
- public GagaResponse saveGoodsDeal(@RequestBody Goods goods) {
- goodsService.saveGoodsDeal(goods);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 대량 등록 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/mass/register/form")
- public ModelAndView massRegisterForm() {
- ModelAndView mav = new ModelAndView();
- // 상품상태
- mav.addObject("goodsStatList", rendererService.getAvailCommonCodeList("G008"));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // WMS 연동여부
- mav.addObject("wmsSyncYn", commonService.getWmsSyncYn());
- // 정보고시 목록
- mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
- // 사용자 업체
- User loginInfo = systemService.getUser(TsaSession.getInfo().getUserNo());
- String supplyCompCd = "NONE";
- if (loginInfo != null) {
- supplyCompCd = loginInfo.getSupplyCompCd();
- }
- mav.addObject("supplyCompCd", supplyCompCd);
- mav.setViewName("goods/GoodsMassRegisterForm");
- return mav;
- }
- /**
- * WMS입고상품관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/wms/incomelot/form")
- public ModelAndView wmsInstockForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- mav.setViewName("goods/GoodsWmsIncomelotForm");
- return mav;
- }
- /**
- * WMS입고상품관리 목록 조회
- *
- * @return
- * @author eskim
- * @since 2021. 01. 04
- */
- @PostMapping("/wms/incomelot/list")
- @ResponseBody
- public GagaMap getGoodsWmsIncomelotList(@RequestBody WmsGoods wmsGoods) {
- GagaMap result = new GagaMap();
- wmsGoods.setPageable(new TscPageRequest(wmsGoods.getPageNo() - 1, wmsGoods.getPageSize()));
- wmsGoods.getPageable().setTotalCount(goodsService.getGoodsWmsIncomelotListCount(wmsGoods));
- result.set("pageing", wmsGoods);
- result.set("goodsList", goodsService.getGoodsWmsIncomelotList(wmsGoods));
- return result;
- }
- /**
- * WMS 입고상품 사은품 등록
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2020. 10. 30
- */
- @PostMapping("/free/goods/save")
- @ResponseBody
- public GagaResponse saveFreeGoods(@RequestBody Collection<WmsGoods> wmsGoodsList) {
- goodsService.saveFreeGoods(wmsGoodsList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품품목변경관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 30
- */
- @GetMapping("/itemkind/form")
- public ModelAndView itemkindForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- String selfYn = "";
- // if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- // supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- // selfYn = "N";
- // }
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, selfYn));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // 카테고리 구분
- mav.addObject("cateGbList", rendererService.getAvailCommonCodeList("G032"));
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- mav.setViewName("goods/GoodsItemkindForm");
- return mav;
- }
- /**
- * 상품 품목 변경 저장
- *
- * @param goodsList
- * @return
- * @author eskim
- * @since 2020. 10. 23
- */
- @PostMapping("/itemKind/change/save")
- @ResponseBody
- public GagaResponse saveItemKindChange(@RequestBody Collection<Goods> goodsList) {
- goodsService.saveItemKindChange(goodsList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 입점 가격 관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/supply/price/form")
- public ModelAndView priceForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- // String supplyCompCd = "";
- // if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- // supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- // }
- // mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "N"));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- mav.setViewName("goods/GoodsSupplyPriceForm");
- return mav;
- }
- /**
- * 상품 가격승인관리 목록 조회
- *
- * @return
- * @author eskim
- * @since 2020. 11. 26
- */
- @PostMapping("/supply/price/list")
- @ResponseBody
- public Collection<GoodsSupplyPrice> getGoodsSupplyPriceList(@RequestBody GoodsSupplyPrice goodsSupplyPrice) {
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSupplyPrice.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSupplyPrice.getBrandList(), String[].class);
- goodsSupplyPrice.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSupplyPrice.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSupplyPrice.getSupplyCompList(), String[].class);
- goodsSupplyPrice.setMultiSupplyComp(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- return goodsService.getGoodsSupplyPriceList(goodsSupplyPrice);
- }
- /**
- * 상품 가격승인관리 승인 처리
- *
- * @param itemkindList
- * @return
- * @author eskim
- * @since 2020. 11. 26
- */
- @PostMapping("/supply/price/save")
- @ResponseBody
- public GagaResponse saveGoodsSupplyPrice(@RequestBody Collection<GoodsSupplyPrice> goodsSupplyPriceList) {
- if (!"G001_0000".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A000".equals(TsaSession.getInfo().getRoleCd())
- && !"G001_A001".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A100".equals(TsaSession.getInfo().getRoleCd())
- && !"G001_A101".equals(TsaSession.getInfo().getRoleCd())) {
- throw new IllegalStateException("권한이 없습니다.");
- }
- goodsService.saveGoodsSupplyPrice(goodsSupplyPriceList);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 타이틀예약관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 30
- */
- @GetMapping("/title/reserve/form")
- public ModelAndView titleReserveForm() {
- ModelAndView mav = new ModelAndView();
- // 사이트
- String supplyCompCd = "";
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- }
- // 공급업체
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- // mav.addObject("goodsStatList",
- // rendererService.getAvailCommonCodeList("G008"));
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 스타일년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- mav.setViewName("goods/GoodsTitleReserveForm");
- return mav;
- }
- /**
- * 상품 타이틀 관리 조회
- *
- * @return
- * @author eskim
- * @since 2020. 10. 30
- */
- @PostMapping("/title/reserve/list")
- @ResponseBody
- public GagaMap goodsTitleReserveList(@RequestBody GoodsSearch goodsSearch) {
- GagaMap result = new GagaMap();
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsTitleReserveCount(goodsSearch));
- result.set("pageing", goodsSearch);
- result.set("goodsTnmList", goodsService.getGoodsTitleReserveList(goodsSearch));
- return result;
- }
- /**
- * 상품등록 타이틀 예약등록 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 02
- */
- @GetMapping("/title/reserve/popup/form")
- @ResponseBody
- public ModelAndView goodsRsvtTnmListForm(GoodsTnmRes goodsTnmRes) {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("goods/GoodsTitleReservePopupForm");
- return mav;
- }
- /**
- * 상품 타이틀 예약 저장
- *
- * @param goodsTnmRes
- * @return
- * @author eskim
- * @since 2020. 11. 02
- */
- @PostMapping("/title/reserve/save")
- @ResponseBody
- public GagaResponse saveGoodsRsvtTnm(@RequestBody GoodsTnmRes goodsTnmRes) {
- goodsService.saveGoodsRsvtTnm(goodsTnmRes);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 타이틀 예약 삭제
- *
- * @param goodsTnmRes
- * @return
- * @author eskim
- * @since 2020. 11. 02
- */
- @PostMapping("/title/reserve/delete")
- @ResponseBody
- public GagaResponse deleteGoodsRsvtTnm(@RequestBody GoodsTnmRes goodsTnmRes) {
- goodsService.deleteGoodsRsvtTnm(goodsTnmRes);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 상품 동영상관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 16
- */
- @GetMapping("/video/form")
- public ModelAndView videoForm() {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("goods/GoodsVideoForm");
- return mav;
- }
- /**
- * 상품 동영상 목록 조회
- *
- * @param goodsVideo
- * @return
- * @author eskim
- * @since 2020. 11. 16
- */
- @PostMapping("/video/list")
- @ResponseBody
- public Collection<GoodsVideo> getGoodsVideoList(@RequestBody GoodsVideo goodsVideo) {
- return goodsService.getGoodsVideoList(goodsVideo);
- }
- /**
- * 상품 동영상 미노출 변경
- *
- * @return
- * @author eskim
- * @since 2020. 11. 16
- */
- @PostMapping("/video/update/notUse")
- @ResponseBody
- public GagaResponse updateNotUseGoodsVideo(@RequestBody Collection<GoodsVideo> goodsVideos) {
- goodsService.updateNotUseGoodsVideo(goodsVideos);
- return super.ok(message.getMessage("SUCC_0009"));
- }
- /**
- * 상품동영상 수정/저장
- *
- * @return
- * @author eskim
- * @since 2020. 11. 16
- */
- @PostMapping("/video/save")
- @ResponseBody
- public GagaResponse saveGoodsVideo(@RequestBody GoodsVideo goodsVideo) {
- goodsService.saveGoodsVideo(goodsVideo);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품동영상 엑셀 저장
- *
- * @param goods
- * @return
- * @throws Exception
- * @author eskim
- * @since 2020. 11. 16
- */
- @PostMapping("/video/excel/save")
- @ResponseBody
- public GagaResponse saveExcelGoodsVideo(@RequestBody GoodsVideo goodsVideo) throws Exception {
- String[] cellName = null;
- // DB 처리 시 사용되는 파라미터명(셀명) 설정
- cellName = new String[2];
- cellName[0] = "goodsCd";
- cellName[1] = "kmcKey";
- String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
- Collection<GagaMap> dataList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goodsVideo.getExcelFileNm()), 0, cellName);
- int cnt = goodsService.saveExcelGoodsVideo(dataList);
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, goodsVideo.getExcelFileNm()));
- return super.ok(cnt + " 건 처리되었습니다.");
- }
- /**
- * 상품 EP제외상품관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 03
- */
- @GetMapping("/ep/skip/form")
- public ModelAndView epSkipForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- // String supplyCompCd = "";
- // mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- String[] exceptCds = {"G001_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- mav.setViewName("goods/GoodsEpSkipForm");
- return mav;
- }
- /**
- * 네이버 EP 제외 상품 조회
- *
- * @return
- * @author eskim
- * @since 2020. 11. 03
- */
- @PostMapping("/ep/skip/list")
- @ResponseBody
- public GagaMap goodsEpSkipList(@RequestBody GoodsSearch goodsSearch) {
- log.info("[goodsEpSkipList] goodsSearch = {}", goodsSearch);
- GagaMap result = new GagaMap();
- // 입점업체담당자는 업체코드 설정
- if ("B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsEpSkipCount(goodsSearch));
- log.info("[goodsEpSkipList] goodsSearch = {}", goodsSearch);
- result.set("pageing", goodsSearch);
- result.set("goodsEpSkipList", goodsService.getGoodsEpSkipList(goodsSearch));
- return result;
- }
- /**
- * 네이버 EP 제외 상품 예약등록 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 03
- */
- @GetMapping("/ep/skip/popup/form")
- @ResponseBody
- public ModelAndView goodsEpSkipPopupForm(GoodsEpSkip goodsEpSkip) {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("goods/GoodsEpSkipPopupForm");
- return mav;
- }
- /**
- * 네이버 EP 제외 상품 예약 저장
- *
- * @param goodsEpSkip
- * @return GagaResponse
- * @author eskim
- * @since 2020. 11. 03
- */
- @PostMapping("/rsvt/ep/skip/save")
- @ResponseBody
- public GagaResponse saveGoodsRsvtEpSkip(@RequestBody GoodsEpSkip goodsEpSkip) {
- goodsService.saveGoodsRsvtEpSkip(goodsEpSkip);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 네이버 EP 제외 상품 예약 삭제
- *
- * @param goodsEpSkip
- * @return GagaResponse
- * @author eskim
- * @since 2020. 11. 03
- */
- @PostMapping("/rsvt/ep/skip/delete")
- @ResponseBody
- public GagaResponse deleteGoodsEpSkip(@RequestBody GoodsEpSkip goodsEpSkip) {
- goodsService.deleteGoodsEpSkip(goodsEpSkip);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 상품 재입고알림관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/reinbound/inform/form")
- public ModelAndView reinboundInformForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 카테고리 구분
- mav.addObject("cateGbList", rendererService.getAvailCommonCodeList("G032"));
- // 상품상태
- mav.addObject("goodsStatList", rendererService.getAvailCommonCodeList("G008"));
- mav.setViewName("goods/GoodsReinboundInformForm");
- return mav;
- }
- /**
- * 재입고알림 목록 조회
- *
- * @param goodsSearch
- * @return GagaMap
- * @author daehyoung
- * @since 2020. 07. 16
- */
- @PostMapping("/reinbound/inform/list")
- @ResponseBody
- public GagaMap getReinboundInformList(@RequestBody GoodsSearch goodsSearch) {
- GagaMap result = new GagaMap();
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getReinboundInformCount(goodsSearch));
- result.set("pageing", goodsSearch);
- result.set("reinboundInformList", goodsService.getReinboundInformList(goodsSearch));
- return result;
- }
- /**
- * 재입고알림 발송 처리
- *
- * @param params
- * @return GagaResponse
- * @author eskim
- * @since 2020. 12. 17
- */
- @PostMapping("/reinbound/inform/send")
- @ResponseBody
- public GagaResponse sendReinboundInform(@RequestBody ReinboundInform reinboundInform) {
- if (reinboundInform.getArrRinbdInfoSq().length <= 0) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
- int idx = 0;
- for (String rinbdInfoSq : reinboundInform.getArrRinbdInfoSq()) {
- GoodsSearch goodsSearch = new GoodsSearch();
- goodsSearch.setRinbdInfoSq(Integer.parseInt(rinbdInfoSq));
- Collection<ReinboundInform> list = goodsService.getReinboundInformList(goodsSearch);
- ReinboundInform oneParam = list.iterator().next();
- // 재고체크
- if (oneParam.getCurrStockQty() < 1 || "Y".equals(oneParam.getSoldoutYn())) {
- throw new IllegalStateException(oneParam.getGoodsCd() + "상품( 사이즈 : " + oneParam.getOptCd1() + " )은 가용재고가 없습니다.");
- }
- oneParam.setRegNo(TsaSession.getInfo().getUserNo());
- oneParam.setUpdNo(TsaSession.getInfo().getUserNo());
- // **** 알림톡 발송 start ****
- try {
- log.info("[카카오 알림톡 발송 정보] - 재입고알림 발송: " + oneParam.toString());
- GagaMap goods = new GagaMap();
- goods.set("custNo", oneParam.getCustNo());
- goods.set("custNm", oneParam.getCustNm());
- goods.set("goodsNm", oneParam.getGoodsNm());
- goods.set("optCd1", oneParam.getOptCd1Nm());
- goods.set("optCd2", oneParam.getOptCd2());
- goods.set("cellPhnno", oneParam.getCellPhnno());
- goods.set("goodsCd", oneParam.getGoodsCd());
- goods.set("colorCd", oneParam.getOptCd1());
- log.info("sendReinboundInform goods={}", goods);
- coreKakaotalkService.goodsRestock(goods, TsaSession.getInfo().getUserNo());
- } catch (Exception e) {
- e.getStackTrace();
- throw new IllegalStateException("재입고알림 알림톡 발송을 실패하였습니다.");
- }
- // **** 알림톡 발송 end ****
- // 재입고알림 발송처리
- // goodsService.sendReinboundInform(oneParam);
- idx++;
- }
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 예약판매관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/reserve/sell/form")
- public ModelAndView reserveSellForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- mav.setViewName("goods/GoodsReserveSellForm");
- return mav;
- }
- /**
- * 상품예약판매 목록 조회
- *
- * @param goodsSearch
- * @return GagaMap
- * @author eskim
- * @since 2020. 11. 12
- */
- @PostMapping("/reserve/sell/list")
- @ResponseBody
- public GagaMap goodsReserveSellList(@RequestBody GoodsSearch goodsSearch) {
- GagaMap result = new GagaMap();
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsResSellCount(goodsSearch));
- result.set("pageing", goodsSearch);
- result.set("goodsResSellList", goodsService.getGoodsResSellList(goodsSearch));
- return result;
- }
- /**
- * 상품예약판매 등록 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 12
- */
- @GetMapping("/reserve/sell/popup/form")
- @ResponseBody
- public ModelAndView goodsReserveSellRegistForm() {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("goods/GoodsReserveSellPopupForm");
- return mav;
- }
- /**
- * 상품예약판매 저장
- *
- * @param goodsResSell
- * @return GagaResponse
- * @author eskim
- * @since 2020. 11. 12
- */
- @PostMapping("/reserve/sell/regist/save")
- @ResponseBody
- public GagaResponse saveGoodsResSell(@RequestBody GoodsResSell goodsResSell) {
- goodsService.saveGoodsResSell(goodsResSell);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품예약판매 삭제
- *
- * @param goodsResSell
- * @return GagaResponse
- * @author eskim
- * @since 2020. 11. 12
- */
- @PostMapping("/reserve/sell/delete")
- @ResponseBody
- public GagaResponse deleteGoodsResSell(@RequestBody GoodsResSell goodsResSell) {
- goodsService.deleteGoodsResSell(goodsResSell);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 상품 상세공지 화면
- *
- * @return
- * @author eskim
- * @since 2020. 10. 16
- */
- @GetMapping("/notice/form")
- public ModelAndView detailNoticeForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- mav.setViewName("goods/GoodsNoticeForm");
- return mav;
- }
- /**
- * 상품 상세공지 목록
- * @param notice - 공지사항 정보
- * @return
- * @author eskim
- * @since 2020. 11. 05
- */
- @PostMapping("/notice/list")
- @ResponseBody
- public Collection<Notice> getNoticeList(@RequestBody GoodsSearch goodsSearch) {
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
- return goodsService.getNoticeList(goodsSearch);
- }
- /**
- * 상품 상세공지 상품목록
- * @param notice - 공지사항 정보
- * @return
- * @author eskim
- * @since 2020. 11. 06
- */
- @GetMapping("/notice/goods/list/{noticeSq}")
- @ResponseBody
- public Collection<NoticeGoods> getNoticeGoodsList(@PathVariable Integer noticeSq) {
- Notice notice = new Notice();
- notice.setNoticeSq(noticeSq);
- return goodsService.getNoticeGoodsList(notice);
- }
- /**
- * 상품 상세공지 저장/등록
- *
- * @param
- * @return
- * @author eskim
- * @since 2020. 11. 05
- */
- @PostMapping("/notice/save")
- @ResponseBody
- public GagaResponse saveNotice(@RequestBody Notice notice) {
- goodsService.saveNotice(notice);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 상세공지상품 삭제
- *
- * @param
- * @return
- * @author eskim
- * @since 2020. 11. 09
- */
- @PostMapping("/notice/goods/delete")
- @ResponseBody
- public GagaResponse deleteNoticeGoods(@RequestBody NoticeGoods noticeGoods) {
- goodsService.deleteNoticeGoods(noticeGoods);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 상품조회 팝업
- *
- * @return
- * @author eskim
- * @since 2020. 10. 26
- */
- @GetMapping("/popup/list/form")
- @ResponseBody
- public ModelAndView relationListForm(GoodsSearch goodsSearch) {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- // String supplyCompCd = "";
- // String selfYn = "Y";
- // if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- // supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- // selfYn = "N";
- // }
- // mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, selfYn));
- //mav.addObject("supplyCompList", rendererService.getSupplyCompanyList());
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 성별
- mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 연령대
- mav.addObject("ageGrpCdList", rendererService.getAvailCommonCodeList("G023"));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // 상품유형
- mav.addObject("goodsTypeList", rendererService.getAvailCommonCodeList("G056"));
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- mav.addObject("params", goodsSearch);
- mav.setViewName("goods/GoodsPopupListForm");
- return mav;
- }
- /**
- * 상품조회 팝업 조회
- *
- * @return
- * @author eskim
- * @since 2020. 10. 26
- */
- @PostMapping("/popup/list")
- @ResponseBody
- public GagaMap getPopupGoodsList(@RequestBody GoodsSearch goodsSearch) {
- GagaMap result = new GagaMap();
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- //log.info("[getPopupGoodsList] goodsSearch=>{}", goodsSearch);
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
- result.set("pageing", goodsSearch);
- result.set("goodsList", goodsService.getGoodsList(goodsSearch));
- return result;
- }
- /**
- * 상품 가격예약관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @GetMapping("/price/reserve/form")
- public ModelAndView priceReserveForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- // String supplyCompCd = "";
- // mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // MD
- mav.addObject("brandMdList", rendererService.getBrandMdList());
- mav.setViewName("goods/GoodsPriceReserveForm");
- return mav;
- }
- /**
- * 상품 가격예약 목록 조회
- *
- * @param goodsSearch
- * @return GagaMap
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/price/reserve/list")
- @ResponseBody
- public GagaMap goodsPriceReserveList(@RequestBody GoodsSearch goodsSearch) {
- GagaMap result = new GagaMap();
- // 입점업체담당자는 업체코드 설정
- if ("G001-B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsPriceResCount(goodsSearch));
- result.set("pageing", goodsSearch);
- result.set("goodsPriceResList", goodsService.getGoodsPriceResList(goodsSearch));
- return result;
- }
- /**
- * 상품 가격예약 등록 화면
- *
- * @return
- * @author eskim
- * @since 2020. 11. 13
- */
- @GetMapping("/price/reserve/popup/form")
- @ResponseBody
- public ModelAndView goodsPriceReserveRegistForm() {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("goods/GoodsPriceReservePopupForm");
- return mav;
- }
- /**
- * 상품 가격예약 저장
- *
- * @param goodsResSell
- * @return GagaResponse
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/price/reserve/save")
- @ResponseBody
- public GagaResponse saveGoodsPriceRes(@RequestBody GoodsPriceRes goodsPriceRes) {
- goodsService.createGoodPriceRes(goodsPriceRes);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 가격예약 삭제
- *
- * @param goodsResSell
- * @return GagaResponse
- * @author eskim
- * @since 2020. 11. 13
- */
- @PostMapping("/price/reserve/delete")
- @ResponseBody
- public GagaResponse deleteGoodsPriceRes(@RequestBody GoodsPriceRes goodsPriceRes) {
- goodsService.deleteGoodsPriceRes(goodsPriceRes);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 상품 가격예약 변경
- *
- * @param goods
- * @return
- * @throws Exception
- * @author eskim
- * @since 2020. 02. 20
- */
- @PostMapping("/price/excelupload/save")
- @ResponseBody
- public GagaResponse saveGoodsPriceResvExcelupload(@RequestBody Goods goods) throws Exception {
- ObjectMapper mapper = new ObjectMapper();
- String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
- // DB 처리 시 사용되는 파라미터명(셀명) 설정
- String[] cellName = {"goodsCd", "resGoodsPrice", "applyStdt", "applyEddt"};
- Collection<GagaMap> ecxelGoodsList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goods.getExcelFileNm()), 0, cellName, 0);
- //건수
- if (ecxelGoodsList != null && ecxelGoodsList.size() > EXCEL_ROW_COUNT) {
- throw new IllegalStateException("엑셀 파일의 건수를 " + EXCEL_ROW_COUNT + "건 이하로 사용하세요.");
- }
- Collection<GoodsPriceRes> goodsPriceList = new ArrayList<>();
- for (GagaMap map : ecxelGoodsList) {
- GoodsPriceRes goodsPriceRes = mapper.convertValue(map, GoodsPriceRes.class);
- goodsPriceList.add(goodsPriceRes);
- }
- goodsService.saveGoodsPriceExcelupload(goodsPriceList, goods.getExcelFileNm());
- // 파일 삭제
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, goods.getExcelFileNm()));
- return super.ok("");
- }
- /**
- * 네이버 최저가 조회 화면
- *
- * @return
- * @author eskim
- * @since 2020. 12. 03
- */
- @GetMapping("/naver/price/form")
- @ResponseBody
- public ModelAndView goodsNaverPriceForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- mav.setViewName("goods/GoodsNaverPriceForm");
- return mav;
- }
- /**
- * 상품 네이버 최저가 조회
- *
- * @return
- * @author eskim
- * @since 2020. 12. 03
- */
- @PostMapping("/naver/price/list")
- @ResponseBody
- public Collection<GoodsNaverLowestPrice> getGoodsNaverPriceList(@RequestBody GoodsSearch goodsSearch) {
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- return goodsService.getGoodsNaverPriceList(goodsSearch);
- }
- /**
- * 네이버 최저가 상품 정보 조회
- *
- * @return
- * @author eskim
- * @since 2020. 10. 03
- */
- @PostMapping("/naver/lowest/price/save")
- @ResponseBody
- public Collection<GoodsNaverLowestPrice> saveGoodsNaverPrice(@RequestBody GoodsSearch goodsSearch) {
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
- return goodsService.saveGoodsNaverPrice(goodsSearch);
- }
- /**
- * 네이버 최저가 엑셀다운로드
- *
- * @param goodsSearch
- * @return
- * @author eskim
- * @since 2021. 07. 09
- */
- @GetMapping("/naver/excel/list")
- public ResponseEntity<InputStreamResource> downloadGoodsNaverExcelList(HttpServletRequest request, GoodsSearch goodsSearch) throws Exception {
- String excelfileName = "상품_네이버_" + GagaDateUtil.getTodayDateTime() + ".xlsx";
- String excelFilenameWithPath = GagaFileUtil.getConcatenationPath(env.getProperty("download.path"), "excel", excelfileName);
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("EXTEND");
- } else if ("searchMasterGoodsCd".equals(goodsSearch.getSearch())) {
- goodsSearch.setSearchGb("MASTER");
- }
- }
- log.info("[goodsSearch] ={}", goodsSearch);
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
- //log.info("[downloadGoodsInfoExcelList] goodsSearch = {}", goodsSearch);
- // 대용량엑셀파일다운로드는 이런 식으로 ...
- goodsService.getGoodsNaverExcelList(goodsSearch, excelFilenameWithPath);
- return GagaFileUtil.writeFile(request, excelFilenameWithPath);
- }
- /**
- * 광고 키워드 관리 화면
- *
- * @return
- * @author eskim
- * @since 2020. 12. 11
- */
- @GetMapping("/ad/keyword/form")
- @ResponseBody
- public ModelAndView goodsAdForm() {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("goods/GoodsAdKeywordForm");
- return mav;
- }
- /**
- * 광고 키워드 목록
- * @param adKeyword
- * @return
- * @author eskim
- * @since 2020. 12. 15
- */
- @PostMapping("/ad/keyword/list")
- @ResponseBody
- public Collection<AdKeyword> getAdKeywordList(@RequestBody AdKeyword adKeyword) {
- return goodsService.getAdKeywordList(adKeyword);
- }
- /**
- * 광고 키워드 상품목록
- * @param adKeywordSq
- * @return
- * @author eskim
- * @since 2020. 12. 15
- */
- @GetMapping("/ad/keyword/goods/list/{adKeywordSq}")
- @ResponseBody
- public Collection<AdKeywordGoods> getAdKeywordGoodsList(@PathVariable Integer adKeywordSq) {
- AdKeyword adKeyword = new AdKeyword();
- adKeyword.setAdKeywordSq(adKeywordSq);
- return goodsService.getAdKeywordGoodsList(adKeyword);
- }
- /**
- * 광고 키워드 저장/등록
- *
- * @param adKeyword
- * @return
- * @author eskim
- * @since 2020. 12. 15
- */
- @PostMapping("/ad/keyword/save")
- @ResponseBody
- public GagaResponse saveAdKeywordGoods(@RequestBody AdKeyword adKeyword) {
- goodsService.saveAdKeywordGoods(adKeyword);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 광고 키워드 상품 삭제
- *
- * @param adKeywordGoods
- * @return
- * @author eskim
- * @since 2020. 12. 15
- */
- @PostMapping("/ad/keyword/goods/delete")
- @ResponseBody
- public GagaResponse deleteAdKeywordGoods(@RequestBody AdKeywordGoods adKeywordGoods) {
- goodsService.deleteAdKeywordGoods(adKeywordGoods);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 상품고시정보 화면
- * @return
- * @author gagamel
- * @since 2020. 12. 8
- */
- @GetMapping("/noti/info/form")
- public ModelAndView goodsNotiInfoForm() {
- ModelAndView mav = new ModelAndView();
- // 고시분류
- mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
- mav.setViewName("goods/GoodsNotiInfoForm");
- return mav;
- }
- /**
- * 고시분류별 상품고시정보 목록
- * @param goodsNotiInfo - 상품고시정보
- * @return
- * @author gagamel
- * @since 2021. 1. 21
- */
- @PostMapping("/noti/info/list")
- @ResponseBody
- public Collection<GoodsNotiInfo> getGoodsNotiInfoListByNotiClsf(@RequestBody GoodsNotiInfo goodsNotiInfo) {
- // multi row 검색관련 처리
- if (StringUtils.isNotBlank(goodsNotiInfo.getGoodsCd())) {
- goodsNotiInfo.setGoodsCds(goodsNotiInfo.getGoodsCd().replaceAll("\r", "").trim().split("\n"));
- }
- return goodsService.getGoodsNotiInfoListByNotiClsf(goodsNotiInfo);
- }
- /**
- * 고시분류의 칼럼 목록
- * @param niClsfCd - 고시분류코드
- * @return
- * @author gagamel
- * @since 2021. 1. 21
- */
- @GetMapping("/noti/info/column/{niClsfCd}")
- @ResponseBody
- public GoodsNotiInfo getNotiClsfColumnInfo(@PathVariable String niClsfCd) {
- return goodsService.getNotiClsfColumnInfo(niClsfCd);
- }
- /**
- * 사은품 상품 화면
- * @return
- * @author eskim
- * @since 2020. 12. 28
- */
- @GetMapping("/freeGoods/form")
- public ModelAndView goodsfreeGoodsForm() {
- ModelAndView mav = new ModelAndView();
- String supplyCompCd = "";
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- }
- // 공급업체
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- mav.setViewName("goods/GoodsFreeGoodsForm");
- return mav;
- }
- /**
- * 사은품조회 팝업
- * @return
- * @author xodud1202
- * @since 2021. 01. 10
- */
- @GetMapping("/freeGoods/popup/list/form")
- @ResponseBody
- public ModelAndView freeGoodsPopupListForm(FreeGoods freeGoodsSearch) {
- ModelAndView mav = new ModelAndView();
- mav.addObject("param", freeGoodsSearch);
- mav.setViewName("goods/FreeGoodsSearchForm");
- return mav;
- }
- /**
- * 사은품 상품 목록
- * @param adKeywordSq
- * @return
- * @author eskim
- * @since 2020. 12. 28
- */
- @PostMapping("/freeGoods/list")
- @ResponseBody
- public Collection<FreeGoods> getFreeGoodsList(@RequestBody GoodsSearch goodsSearch) {
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
- return goodsService.getFreeGoodsList(goodsSearch);
- }
- /**
- * 사은품 상품 저장
- *
- * @param freeGoods
- * @return
- * @author eskim
- * @since 2020. 12. 28
- */
- @PostMapping("/freeGoods/update")
- @ResponseBody
- public GagaResponse updateFreeGoods(@RequestBody FreeGoods freeGoods) {
- if (freeGoods.getNewSysImgNm() != null && !"".equals(freeGoods.getNewSysImgNm())) {
- String sysImgNm = freeGoods.getProductNo() + "_" + GagaDateUtil.getTodayDateTime() + "." + org.springframework.util.StringUtils.getFilenameExtension(freeGoods.getNewSysImgNm());
- String imgUploadPath = env.getProperty("upload.default.target.path");
- imgUploadPath = GagaFileUtil.getConcatenationPath(imgUploadPath, "contents", "freegoods");
- //기존이미지 삭제
- try {
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(imgUploadPath, freeGoods.getSysImgNm()));
- } catch (IOException e) {
- // nothing
- log.info("[updateFreeGoods 기존 이미지 삭제중 error]");
- //e.printStackTrace();
- }
- File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(imgUploadPath, sysImgNm)));
- File file = new File(GagaFileUtil.getConcatenationPath(imgUploadPath, freeGoods.getNewSysImgNm()));
- // Rename a file
- file.renameTo(uniqueFile);
- sysImgNm = "/contents/freegoods/" + sysImgNm;
- freeGoods.setSysImgNm(sysImgNm);
- }
- goodsService.updateFreeGoods(freeGoods);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품대량수정 엑셀 저장
- *
- * @param goodsMass
- * @return
- * @throws Exception
- * @author eskim
- * @since 2021. 1. 25
- */
- @PostMapping("/mass/excelupload/update")
- @ResponseBody
- public GagaResponse updateMassExceluploadGoods(@RequestBody GoodsMass goodsMass) throws Exception {
- String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
- Collection<GagaMap> ecxelGoodsList = new ArrayList<>();
- // 상품수장
- // DB 처리 시 사용되는 파라미터명(셀명) 설정 -
- String[] goodsNames = {"goodsCd", "goodsNm", "goodsTnm", "goodsSnm1", "itemkindCd", "seasonCd",
- "sexGb", "currPrice", "sellFeeRate", "goodsGb", "formalGb", "minOrdQty", "maxOrdQty", "dayMaxOrdQty",
- "giftPackYn", "newCustOrdYn", "pntPrate", "prePpntUsableYn", "pntMrate", "preMpntUsableYn",
- "returnableYn", "changeableYn", "taxGb", "ageGrpCd", "adultYn", "delvFeeCd", "optStr", "goodsContent",
- "niClsfCd", "niContent1", "niContent2",
- "niContent3", "niContent4", "niContent5", "niContent6", "niContent7", "niContent8", "niContent9",
- "niContent10", "niContent11", "niContent12", "niContent13", "niContent14", "niContent15", "niContent16",
- "niContent17", "niContent18", "niContent19", "niContent20", "niContent21", "niContent22", "niContent23",
- "niContent24", "niContent25", "niContent26", "niContent27", "niContent28"};
- ecxelGoodsList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goodsMass.getExcelFileNm()), 0, goodsNames, 0);
- //건수
- if (ecxelGoodsList != null && ecxelGoodsList.size() > EXCEL_ROW_COUNT) {
- throw new IllegalStateException("엑셀 파일의 건수를 " + EXCEL_ROW_COUNT + "건 이하로 사용하세요.");
- }
- // 입점담당자, 촬영업체
- if (!"G001_0000".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A000".equals(TsaSession.getInfo().getRoleCd()) &&
- !"G001_A001".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A100".equals(TsaSession.getInfo().getRoleCd()) &&
- !"G001_A101".equals(TsaSession.getInfo().getRoleCd())) {
- throw new IllegalStateException("권한이 없습니다.");
- }
- for (GagaMap gagaMap : ecxelGoodsList) {
- goodsService.updateMassExceluploadGoods(gagaMap, goodsMass.getProcJob());
- }
- // 파일 삭제
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, goodsMass.getExcelFileNm()));
- return super.ok("");
- }
- /**
- * 상품 대량등록 결과 조회
- *
- * @param goodsSearch
- * @return
- * @author eskim
- * @since 2020. 01. 25
- */
- @PostMapping("/reg/log/list")
- @ResponseBody
- public Collection<GoodsMass> getGoodsRegLogList(@RequestBody GoodsSearch goodsSearch) {
- return goodsService.getGoodsRegLogList(goodsSearch);
- }
- /**
- * 사이즈 정보관리
- * @return
- * @author eskim
- * @since 2021. 01. 26
- */
- @GetMapping("/size/info/form")
- @ResponseBody
- public ModelAndView sizeInfoForm() {
- ModelAndView mav = new ModelAndView();
- //자사브랜드
- Brand brand = new Brand();
- brand.setSelfYn("Y");
- mav.addObject("selfBrandList", rendererService.getBrandList(brand));
- mav.setViewName("goods/GoodsSizeInfoForm");
- return mav;
- }
- /**
- * 사이즈 정보 목록
- *
- * @param goodsSearch
- * @return
- * @author eskim
- * @since 2021. 01. 26
- */
- @PostMapping("/size/info/list")
- @ResponseBody
- public Collection<SizeInfo> getSizeInfoList(@RequestBody SizeInfo sizeInfo) {
- return goodsService.getSizeInfoList(sizeInfo);
- }
- /**
- * 사이즈 정보 저장
- *
- * @param sizeInfo
- * @return
- * @author eskim
- * @since 2021. 01. 27
- */
- @PostMapping("/size/info/save")
- @ResponseBody
- public GagaResponse saveSizeInfo(@RequestBody SizeInfo sizeInfo) {
- goodsService.saveSizeInfo(sizeInfo);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 총알배송 제외상품 관리
- * @return
- * @author eskim
- * @since 2021. 02. 25
- */
- @GetMapping("/quik/delivery/skip/form")
- @ResponseBody
- public ModelAndView quikDeliveryForm() {
- ModelAndView mav = new ModelAndView();
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- mav.setViewName("goods/GoodsQuikDeliverySkipForm");
- return mav;
- }
- /**
- * 총알배송 제외상품 조회
- *
- * @return
- * @author eskim
- * @since 2021. 02. 25
- */
- @PostMapping("/quik/delivery/list")
- @ResponseBody
- public GagaMap goodsQuikDeliveryList(@RequestBody GoodsSearch goodsSearch) {
- GagaMap result = new GagaMap();
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
- goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
- goodsSearch.getPageable().setTotalCount(goodsService.getGoodsQuikDeleverySkipCount(goodsSearch));
- result.set("pageing", goodsSearch);
- result.set("goodsList", goodsService.getGoodsQuikDeleverySkipList(goodsSearch));
- return result;
- }
- /**
- * 총알배송 제외상품 저장
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2021. 02. 25
- */
- @PostMapping("/quik/delivery/create")
- @ResponseBody
- public GagaResponse createGoodsQuikDeleverySkip(@RequestBody GoodsSearch goodsSearch) {
- Goods goods = new Goods();
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- goods.setArrGoodsCd(goodsSearch.getConditionList());
- }
- goodsService.createGoodsQuikDeleverySkip(goods);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 총알배송 제외상품 삭제
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2021. 02. 25
- */
- @PostMapping("/quik/delivery/delete")
- @ResponseBody
- public GagaResponse deleteGoodsQuikDeleverySkip(@RequestBody Goods goods) {
- goodsService.deleteGoodsQuikDeleverySkip(goods);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- /**
- * 총알배송 제외상품 엑셀 적용
- *
- * @param goods
- * @return
- * @throws Exception
- * @author eskim
- * @since 2020. 02. 20
- */
- @PostMapping("/quik/delivery/excelupload/save")
- @ResponseBody
- public GagaResponse saveGoodsSizeSoldoutExcelupload(@RequestBody Goods goods) throws Exception {
- ObjectMapper mapper = new ObjectMapper();
- String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
- // DB 처리 시 사용되는 파라미터명(셀명) 설정
- String[] cellName = {"goodsCd"};
- Collection<GagaMap> ecxelGoodsList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goods.getExcelFileNm()), 0, cellName, 0);
- //건수
- if (ecxelGoodsList != null && ecxelGoodsList.size() > EXCEL_ROW_COUNT) {
- throw new IllegalStateException("엑셀 파일의 건수를 " + EXCEL_ROW_COUNT + "건 이하로 사용하세요.");
- }
- Collection<Goods> goodsList = new ArrayList<>();
- for (GagaMap map : ecxelGoodsList) {
- Goods tmpGoods = mapper.convertValue(map, Goods.class);
- goodsList.add(tmpGoods);
- }
- goodsService.saveGoodsSizeSoldoutExcelupload(goodsList, goods.getExcelFileNm());
- // 파일 삭제
- GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, goods.getExcelFileNm()));
- return super.ok("");
- }
- /**
- * 입점 상품 화면
- *
- * @return
- * @author eskim
- * @since 2021. 04. 21
- */
- @GetMapping("/register/form")
- public ModelAndView registerForm() {
- ModelAndView mav = new ModelAndView();
- // // 상품상태
- // mav.addObject("goodsStatList", rendererService.getAvailCommonCodeList("G008"));
- // // 사용여부
- // mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // // WMS 연동여부
- // mav.addObject("wmsSyncYn", commonService.getWmsSyncYn());
- // // 정보고시 목록
- // mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
- // // 사용자 업체
- // User loginInfo = systemService.getUser(TsaSession.getInfo().getUserNo());
- // String supplyCompCd = "NONE";
- // if (loginInfo != null) {
- // supplyCompCd = loginInfo.getSupplyCompCd();
- // }
- // mav.addObject("supplyCompCd", supplyCompCd);
- mav.setViewName("goods/GoodsRegisterForm");
- return mav;
- }
- /**
- * 품목 목록 - 단건 조회
- *
- * @param itemkind
- * @return
- * @author eskim
- * @since 2021. 06. 27
- */
- @PostMapping("/itemkind/list")
- @ResponseBody
- public Collection<Itemkind> getItemkind(Itemkind itemkind) {
- return goodsService.getItemkindList(itemkind);
- }
- /**
- * WMS입고단품목록 화면
- *
- * @return
- * @author eskim
- * @since 2021. 06. 28
- */
- @GetMapping("/wms/incomelot/sku/form")
- public ModelAndView wmsInstockSkuForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String supplyCompCd = "";
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
- // 상품상태
- String[] exceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- mav.setViewName("goods/GoodsWmsIncomelotSkuForm");
- return mav;
- }
- /**
- * WMS입고단품목록 조회
- *
- * @return
- * @author eskim
- * @since 2021. 06. 28
- */
- @PostMapping("/wms/incomelot/sku/list")
- @ResponseBody
- public GagaMap getWmsIncomelotSkuList(@RequestBody IfIncomelot ifIncomelot) {
- GagaMap result = new GagaMap();
- ifIncomelot.setPageable(new TscPageRequest(ifIncomelot.getPageNo() - 1, ifIncomelot.getPageSize()));
- ifIncomelot.getPageable().setTotalCount(goodsService.getGoodsWmsIncomelotSkuListCount(ifIncomelot));
- result.set("pageing", ifIncomelot);
- result.set("goodsList", goodsService.getGoodsWmsIncomelotSkuList(ifIncomelot));
- return result;
- }
- /**
- * 자사 상품 화면
- *
- * @return
- * @author eskim
- * @since 2021. 07. 04
- */
- @GetMapping("/salf/register/form")
- public ModelAndView salfRegisterForm() {
- ModelAndView mav = new ModelAndView();
- // 공급업체
- String selfYn = "Y";
- String supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
- mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, selfYn));
- // 배송비정보
- mav.addObject("delvFeeCdList", rendererService.getSupplyDeliveryFeePolicyList(supplyCompCd));
- String[] goodsStatExceptCds = {"G008_00"};
- mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", goodsStatExceptCds));
- // 정상이월
- mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
- // 성별
- mav.addObject("sexGbList", rendererService.getAvailCommonCodeList("G007"));
- // 시즌
- mav.addObject("seasonList", rendererService.getAvailCommonCodeList("G006"));
- // 사용여부
- mav.addObject("useYnList", rendererService.getAvailCommonCodeList("G002"));
- // 품목
- mav.addObject("itemkindList", rendererService.getAllItemkindList());
- // 정보고시 분류
- mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
- // 사용자 브랜드 조회
- mav.addObject("authBrandList", rendererService.getSupplyCompanyBrandList(supplyCompCd));
- // 상품타입
- mav.addObject("goodsTypeList", rendererService.getAvailCommonCodeList("G056"));
- // 상품구분
- mav.addObject("goodsGbList", rendererService.getAvailCommonCodeList("G073"));
- // 유통구분
- String[] distributionGbExceptCds = {"G065_20"};
- mav.addObject("distributionGbList", rendererService.getCommonCodeList("G065", "Y", distributionGbExceptCds));
- // 상품연령대
- mav.addObject("ageGrpCdList", rendererService.getAvailCommonCodeList("G023"));
- // 원산지
- mav.addObject("originCdList", rendererService.getAvailCommonCodeList("G076"));
- // kc인증타입
- mav.addObject("certTypeList", rendererService.getAvailCommonCodeList("G081"));
- // kc인증대상구분
- mav.addObject("certTargetGbList", rendererService.getAvailCommonCodeList("G083"));
- // kc인증형태구분
- mav.addObject("certFormGbList", rendererService.getAvailCommonCodeList("G084"));
- // 년도
- int toYear = Integer.parseInt(GagaDateUtil.getToday("yyyy")) - 4;
- mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
- // 회원등급
- //mav.addObject("custGradeList", rendererService.getAvailCommonCodeList("G110"));
- // 출고처
- mav.addObject("delvLocCdList", rendererService.getSupplyDeliveryLocList(supplyCompCd));
- //mav.addObject("params", goods);
- mav.setViewName("goods/GoodsSalfRegisterForm");
- return mav;
- }
- /**
- * 자사 상품 등록
- *
- * @param goods
- * @return
- * @author eskim
- * @since 2021. 07. 04
- */
- @PostMapping("/salf/detail/create")
- @ResponseBody
- public GagaMap createSalfGoodsDetail(@RequestBody Goods goods) {
- GagaMap result = new GagaMap();
- Collection<GoodsNotiInfo> notiList = null;
- ObjectMapper mapper = new ObjectMapper();
- try {
- if (goods.getNotiList() != null) {
- notiList = mapper.readValue(goods.getNotiList(), new TypeReference<Collection<GoodsNotiInfo>>() {
- });
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- goods.setNotiListNew(notiList);
- goodsService.createSalfGoodsDetail(goods);
- result.set("goodsCd", goods.getGoodsCd());
- return result;
- }
-
- /**
- * 상품 상세 컨텐츠 화면
- *
- * @return
- * @author eskim
- * @since 2021. 07. 14
- */
- @GetMapping("/contents/form")
- public ModelAndView detailContentsForm() {
- ModelAndView mav = new ModelAndView();
-
- // 상품상세노출컨텐츠유형
- mav.addObject("goodsContentsTypeList", rendererService.getAvailCommonCodeList("G086"));
-
- mav.setViewName("goods/GoodsContentsForm");
- return mav;
- }
- /**
- * 상품 상세 컨텐츠 목록
- * @param notice - 공지사항 정보
- * @return
- * @author eskim
- * @since 2021. 07. 14
- */
- @PostMapping("/contents/list")
- @ResponseBody
- public Collection<GoodsContents> getGoodsContentsList(@RequestBody GoodsSearch goodsSearch) {
- // 입점업체담당자는 업체코드 설정
- if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
- goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
- goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
- }
- // multi row 검색관련 처리
- if (!StringUtils.isBlank(goodsSearch.getCondition())) {
- goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
- }
-
- if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
- try {
- String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
- goodsSearch.setMultiBrand(arrBrandCd);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
- try {
- String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
- goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
- }
- }
- return goodsService.getGoodsContentsList(goodsSearch);
- }
- /**
- * 상품 상세 컨텐츠 상품목록
- * @param notice - 공지사항 정보
- * @return
- * @author eskim
- * @since 2021. 07. 14
- */
- @GetMapping("/contents/goods/list/{goodsContentsSq}")
- @ResponseBody
- public Collection<GoodsContentsData> getContentsGoodsList(@PathVariable Integer goodsContentsSq) {
- GoodsContents goodsContents = new GoodsContents();
- goodsContents.setGoodsContentsSq(goodsContentsSq);
- return goodsService.getGoodsContentsDataList(goodsContents);
- }
- /**
- * 상품 상세 컨텐츠 저장/등록
- *
- * @param
- * @return
- * @author eskim
- * @since 2021. 07. 14
- */
- @PostMapping("/contents/save")
- @ResponseBody
- public GagaResponse saveContents(@RequestBody GoodsContents goodsContents) {
- goodsService.saveGoodsContent(goodsContents);
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 상품 상세 컨텐츠 상품 삭제
- *
- * @param
- * @return
- * @author eskim
- * @since 2021. 07. 14
- */
- @PostMapping("/contents/goods/delete")
- @ResponseBody
- public GagaResponse deleteContentsGoods(@RequestBody GoodsContentsData goodsContentsData) {
- goodsService.deleteGoodsContentGoods(goodsContentsData);
- return super.ok(message.getMessage("SUCC_0003"));
- }
- }
|