IndexController.java 103 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318
  1. package com.szwl.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.fasterxml.jackson.core.JsonProcessingException;
  7. import com.fasterxml.jackson.databind.JsonNode;
  8. import com.fasterxml.jackson.databind.ObjectMapper;
  9. import com.google.gson.Gson;
  10. import com.qiniu.common.QiniuException;
  11. import com.qiniu.http.Response;
  12. import com.qiniu.storage.Configuration;
  13. import com.qiniu.storage.Region;
  14. import com.qiniu.storage.UploadManager;
  15. import com.qiniu.storage.model.DefaultPutRet;
  16. import com.qiniu.util.Auth;
  17. import com.szwl.constant.ConfigConsts;
  18. import com.szwl.constant.ResponseCodesEnum;
  19. import com.szwl.model.bean.*;
  20. import com.szwl.model.bo.JsonUtils;
  21. import com.szwl.model.bo.R;
  22. import com.szwl.model.bo.ResponseModel;
  23. import com.szwl.model.entity.*;
  24. import com.szwl.model.utils.AdminUtils;
  25. import com.szwl.model.utils.HttpClientSslUtils;
  26. import com.szwl.model.utils.PushUtils;
  27. import com.szwl.model.utils.YunPianSms;
  28. import com.szwl.service.*;
  29. import com.szwl.service.es.EsTEquipmentService;
  30. import com.szwl.util.IDGenerator;
  31. import com.szwl.util.WhoIsUtil;
  32. import io.swagger.annotations.Api;
  33. import io.swagger.annotations.ApiOperation;
  34. import org.apache.commons.io.IOUtils;
  35. import org.apache.commons.lang.StringUtils;
  36. import org.springframework.amqp.core.AmqpAdmin;
  37. import org.springframework.amqp.core.Binding;
  38. import org.springframework.amqp.core.Queue;
  39. import org.springframework.beans.factory.annotation.Autowired;
  40. import org.springframework.web.bind.annotation.*;
  41. import javax.annotation.Resource;
  42. import javax.servlet.ServletInputStream;
  43. import javax.servlet.http.HttpServletRequest;
  44. import javax.servlet.http.HttpServletResponse;
  45. import java.io.*;
  46. import java.math.BigDecimal;
  47. import java.math.RoundingMode;
  48. import java.text.ParseException;
  49. import java.text.SimpleDateFormat;
  50. import java.util.*;
  51. import static com.szwl.util.geoCoderUtil.getLocByLonLatVer;
  52. @Api(value = "/indexController", tags = {"设备信息上传接口"})
  53. @RestController
  54. @RequestMapping("/api/app_equipment/index")
  55. public class IndexController {
  56. @Autowired
  57. TAdminService adminService;
  58. @Autowired
  59. TEquipmentService equipmentService;
  60. @Autowired
  61. TEquipmentApplyService equipmentApplyService;
  62. @Autowired
  63. TProductService productService;
  64. @Autowired
  65. TProportionService proportionService;
  66. @Autowired
  67. TEquipmentDescService equipmentDescService;
  68. @Autowired
  69. EsTEquipmentService esTEquipmentService;
  70. @Autowired
  71. TParametersService parametersService;
  72. @Autowired
  73. TPriceService priceService;
  74. @Autowired
  75. TPromoCodeService promoCodeService;
  76. @Autowired
  77. TDiyFlowerService diyFlowerService;
  78. @Autowired
  79. TNameDictionaryService nameDictionaryService;
  80. @Autowired
  81. private AmqpAdmin amqpAdmin;
  82. @Autowired
  83. TWechatService wechatService;
  84. @Resource
  85. TLocationCheckService locationCheckService;
  86. @Autowired
  87. TGoodsDataService goodsDataService;
  88. private static final String appid = "07784f5fedb508046c841b391005b7de";
  89. @ApiOperation(value = "心跳")
  90. @RequestMapping(value = "/heart.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  91. @ResponseBody
  92. public String heart(@RequestBody EquipmentVo equipmentVo) {
  93. String clientId = equipmentVo.getClientId();
  94. Date lastUpdateTime = equipmentVo.getLastUpdateTime();
  95. // Double longitude = equipmentVo.getLongitude();
  96. // Double latitude = equipmentVo.getLatitude();
  97. String cabinetHd = equipmentVo.getCabinetHd();
  98. String cabinetTm = equipmentVo.getCabinetTm();
  99. String furnaceSp = equipmentVo.getFurnaceSp();
  100. String furnaceTm = equipmentVo.getFurnaceTm();
  101. String gtClientId = equipmentVo.getGtClientId();
  102. String volume = equipmentVo.getVolume();
  103. Integer eqeStatus = equipmentVo.getEqeStatus();
  104. Boolean is_sleep = equipmentVo.getIs_sleep();
  105. String netWorkingMode = equipmentVo.getNetWorkingMode();
  106. String numberOne = equipmentVo.getNumberOne();
  107. String candyGeneratorTm = equipmentVo.getCandyGeneratorTm();
  108. String outsideTm = equipmentVo.getOutsideTm();
  109. String outsideHd = equipmentVo.getOutsideHd();
  110. Integer workingMode = equipmentVo.getWorkingMode();
  111. //有记录,则进行修改
  112. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  113. query.eq(TEquipment::getClientId, clientId);
  114. TEquipment newEquipment = equipmentService.getOne(query);
  115. if (newEquipment != null) {
  116. newEquipment.setNetWorkingMode(netWorkingMode);
  117. if (StringUtils.isNotEmpty(cabinetTm)) {
  118. newEquipment.setCabinetTm(cabinetTm);
  119. }
  120. if (StringUtils.isNotEmpty(cabinetHd)) {
  121. newEquipment.setCabinetHd(cabinetHd);
  122. }
  123. if (StringUtils.isNotEmpty(furnaceSp)) {
  124. newEquipment.setFurnaceSp(furnaceSp);
  125. }
  126. if (StringUtils.isNotEmpty(furnaceTm)) {
  127. newEquipment.setFurnaceTm(furnaceTm);
  128. }
  129. newEquipment.setLastUpdateTime(lastUpdateTime);
  130. // newEquipment.setLongitude(longitude);
  131. if (eqeStatus != null) {
  132. newEquipment.setEqeStatus(eqeStatus);
  133. }
  134. if (is_sleep != null) {
  135. newEquipment.setIsSleep(is_sleep);
  136. }
  137. if (!StringUtils.isEmpty(furnaceTm)) {
  138. int fur = Integer.parseInt(furnaceTm);
  139. if (newEquipment.getEqeStatus() == 0 && fur > 150) {
  140. newEquipment.setEqeStatus(1);
  141. }
  142. if (newEquipment.getEqeStatus() == null && fur > 150) {
  143. newEquipment.setEqeStatus(1);
  144. }
  145. }
  146. if (!StringUtils.isEmpty(volume)) {
  147. newEquipment.setVolume(volume);
  148. }
  149. // newEquipment.setLatitude(latitude);
  150. newEquipment.setGtClientId(gtClientId);
  151. newEquipment.setModifyDate(new Date());
  152. equipmentService.updateById(newEquipment);
  153. TEquipmentDesc equipmentDesc = equipmentDescService.getById(newEquipment.getId());
  154. if (StringUtils.isNotEmpty(equipmentVo.getBlueSugar())) {
  155. equipmentDesc.setBlueSugar(equipmentVo.getBlueSugar());
  156. }
  157. if (StringUtils.isNotEmpty(equipmentVo.getRedSugar())) {
  158. equipmentDesc.setRedSugar(equipmentVo.getRedSugar());
  159. }
  160. if (StringUtils.isNotEmpty(equipmentVo.getYellowSugar())) {
  161. equipmentDesc.setYellowSugar(equipmentVo.getYellowSugar());
  162. }
  163. if (StringUtils.isNotEmpty(equipmentVo.getWhiteSugar())) {
  164. equipmentDesc.setWhiteSugar(equipmentVo.getWhiteSugar());
  165. }
  166. if (StringUtils.isNotEmpty(equipmentVo.getWater())) {
  167. equipmentDesc.setWater(equipmentVo.getWater());
  168. }
  169. if (StringUtils.isNotEmpty(equipmentVo.getWasteWater())) {
  170. equipmentDesc.setWasteWater(equipmentVo.getWasteWater());
  171. }
  172. if (StringUtils.isNotEmpty(equipmentVo.getStick())) {
  173. equipmentDesc.setStick(equipmentVo.getStick());
  174. }
  175. // 如果是爆米花机
  176. String machineType = newEquipment.getMachineType();
  177. if(StringUtils.isNotEmpty(machineType) && newEquipment.getMachineType().equals("1")) {
  178. // 爆米花机搅拌温度
  179. if (StringUtils.isNotEmpty(cabinetTm)) {
  180. equipmentDesc.setStirTm(cabinetTm);
  181. }
  182. // 爆米花机玉米发生器温度
  183. if (StringUtils.isNotEmpty(cabinetHd)) {
  184. equipmentDesc.setCornGeneratorTm(cabinetHd);
  185. }
  186. // 爆米花机杯子剩余量
  187. if (StringUtils.isNotEmpty(furnaceTm)) {
  188. equipmentDesc.setCupQuantity(Long.parseLong(furnaceTm));
  189. }
  190. }
  191. // 如果是雪糕机
  192. if (StringUtils.isNotEmpty(machineType) && newEquipment.getMachineType().equals("2")) {
  193. if (workingMode!= null) {
  194. equipmentDesc.setWorkingMode(workingMode);
  195. }
  196. }
  197. if (StringUtils.isNotEmpty(numberOne)) {
  198. equipmentDesc.setNumberOne(numberOne);
  199. }
  200. if (StringUtils.isNotEmpty(candyGeneratorTm)) {
  201. equipmentDesc.setCandyGeneratorTm(candyGeneratorTm);
  202. }
  203. if (StringUtils.isNotEmpty(outsideHd)) {
  204. equipmentDesc.setOutsideHd(outsideHd);
  205. }
  206. if (StringUtils.isNotEmpty(outsideTm)) {
  207. equipmentDesc.setOutsideTm(outsideTm);
  208. }
  209. equipmentDescService.updateById(equipmentDesc);
  210. return "心跳成功";
  211. }
  212. return "心跳失败";
  213. }
  214. /**
  215. * 设备初始化申请2
  216. */
  217. @ApiOperation(value = "设备初始化申请2")
  218. @RequestMapping(value = "/initNew2.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  219. @ResponseBody
  220. public String initNew2(String clientId, String managerId, String gtClientId, String equipmentType, String ip, String longitude, String latitude) throws IOException {
  221. if (StringUtils.isEmpty(clientId) || StringUtils.isEmpty(longitude) || StringUtils.isEmpty(latitude)) {
  222. return "设备编号、经纬度不能为空";
  223. }
  224. // 根据 clientId 查设备的 location,country
  225. LambdaQueryWrapper<TLocationCheck> lqw = Wrappers.lambdaQuery();
  226. lqw.eq(TLocationCheck::getClientId, clientId);
  227. TLocationCheck locationCheck = locationCheckService.getOne(lqw);
  228. if (Objects.isNull(locationCheck)) {
  229. return "生产部未录入改设备的位置信息";
  230. }
  231. // 判断ip是否属于国内,if 国内,放行
  232. double lon = Double.parseDouble(longitude);
  233. double lat = Double.parseDouble(latitude);
  234. // 经度范围在73至135之间,纬度范围在3至53之间,即国内区域
  235. // 经度:73~124,纬度17~47,经度排除韩国,纬度排除俄罗斯,海南以南
  236. if (!(lon >= 73) || !(lon <= 124) || !(lat >= 17) || !(lat <= 47)) {
  237. // 根据 ip 校验位置信息
  238. // String addr = WhoIsUtil.getLocByIp(ip);
  239. // 根据 longitude, latitude 校验位置信息
  240. String addr = null;
  241. try {
  242. addr = getLocByLonLatVer(longitude, latitude);
  243. } catch (Exception e) {
  244. throw new RuntimeException(e);
  245. }
  246. locationCheck.setIp(ip);
  247. locationCheck.setLongitude(longitude);
  248. locationCheck.setLatitude(latitude);
  249. locationCheck.setAddr(addr);
  250. locationCheckService.saveOrUpdate(locationCheck);
  251. String checkResult = locationCheckService.locCheckMsg(locationCheck, clientId, addr);
  252. if (checkResult.equals("fail")) {
  253. return "位置不匹配,请联系营销经理/售后处理";
  254. }
  255. }
  256. return this.initNew(clientId, managerId, gtClientId, equipmentType);
  257. }
  258. /**
  259. * 设备申请
  260. *
  261. * @param clientId 个推
  262. * @param managerId 管理系统id
  263. * @return
  264. */
  265. @ApiOperation(value = "设备申请")
  266. @RequestMapping(value = "/initNew.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  267. @ResponseBody
  268. public String initNew(String clientId, String managerId, String gtClientId, String equimentType) {
  269. String machineType = "0";
  270. String status = "0";
  271. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  272. query.like(TEquipment::getClientId, clientId);
  273. List<TEquipment> list = equipmentService.list(query);
  274. if (list.size() > 0) {
  275. TEquipment equipment = list.get(0);
  276. if (equipment.getAdminId() != 31) {
  277. if (!equipment.getClientId().substring(equipment.getClientId().length() - 3, equipment.getClientId().length()).equals("xxx")) {
  278. String managerId1 = equipment.getManagerId();
  279. if (!managerId.equals(managerId1)) {
  280. return "该设备未脱离";
  281. } else {
  282. return "该设备已经初始化";
  283. }
  284. }
  285. } else {
  286. status = "1";
  287. }
  288. }
  289. if (StringUtils.isEmpty(gtClientId)) {
  290. return "设备不能为空";
  291. }
  292. LambdaQueryWrapper<TEquipmentApply> query1 = Wrappers.lambdaQuery();
  293. query1.eq(TEquipmentApply::getClientId, clientId);
  294. query1.eq(TEquipmentApply::getStatusType, "1");
  295. query1.eq(TEquipmentApply::getManagerId, managerId);
  296. String dateStr = "2022-12-28 00:00:00";
  297. //获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
  298. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  299. try {
  300. //使用SimpleDateFormat的parse()方法生成Date
  301. Date date = sf.parse(dateStr);
  302. query1.gt(TEquipmentApply::getCreateDate, date);
  303. } catch (ParseException e) {
  304. e.printStackTrace();
  305. }
  306. List<TEquipmentApply> list1 = equipmentApplyService.list(query1);
  307. if (list1.size() > 0) {
  308. return "重复申请";
  309. }
  310. TEquipmentApply equipmentApply = new TEquipmentApply();
  311. equipmentApply.setStatusType(1);
  312. equipmentApply.setClientId(clientId);
  313. equipmentApply.setManagerId(managerId);
  314. equipmentApply.setGtClientId(gtClientId);
  315. Long adminId = AdminUtils.decrypt(false, managerId);
  316. TAdmin admin = adminService.getById(adminId);
  317. if (admin == null) {
  318. return "找不到商家";
  319. }
  320. //所属商家
  321. String username = admin.getUsername();
  322. equipmentApply.setAdminId(adminId);
  323. equipmentApply.setAdminUserName(username);
  324. equipmentApply.setEquimentType(equimentType);
  325. // 如果是爆米花
  326. if (equimentType.equals("P30")) {
  327. machineType = "1";
  328. }
  329. // 如果是冰淇淋
  330. if (equimentType.equals("SI320")) {
  331. machineType = "2";
  332. }
  333. equipmentApply.setMachineType(machineType);
  334. equipmentApply.setCreateDate(new Date());
  335. equipmentApply.setModifyDate(new Date());
  336. equipmentApplyService.save(equipmentApply);
  337. if (status.equals("1") || String.valueOf(adminId).equals("3") || String.valueOf(adminId).equals("31") || String.valueOf(adminId).equals("506") || String.valueOf(adminId).equals("1090")) {
  338. Long id = equipmentApply.getId();
  339. agree(id);
  340. return "设备申请成功";
  341. }
  342. if (admin.getApplyStartTime() != null && admin.getApplyEndTime() != null) {
  343. Date applyStartTime = admin.getApplyStartTime();
  344. Date applyEndTime = admin.getApplyEndTime();
  345. Date now = new Date();
  346. if (now.getTime() > applyStartTime.getTime() && now.getTime() < applyEndTime.getTime()) {
  347. Long id = equipmentApply.getId();
  348. agree(id);
  349. return "设备申请成功";
  350. }
  351. }
  352. return "设备申请中,请耐心等待";
  353. }
  354. // @ApiOperation(value = "同意设备申请")
  355. // @RequestMapping(value = "/agree", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  356. // @ResponseBody
  357. private void agree(Long id) {
  358. String status = "agreed";
  359. if (null != id) {
  360. TEquipmentApply equipmentApply = equipmentApplyService.getById(id);
  361. Integer statusType = equipmentApply.getStatusType();
  362. if (statusType > 1) {
  363. equipmentApply = null;
  364. }
  365. if (equipmentApply != null) {
  366. if (!StringUtils.isEmpty(status)) {
  367. if (status.equals("agreed")) {
  368. String clientId = equipmentApply.getClientId();
  369. //判断是否设备初始化
  370. Long adminId = equipmentApply.getAdminId();
  371. String adminLevel = equipmentApply.getAdminLevel();
  372. String adminUserName = equipmentApply.getAdminUserName();
  373. String gtClientId = equipmentApply.getGtClientId();
  374. String equimentType = equipmentApply.getEquimentType();
  375. String machineType = equipmentApply.getMachineType();
  376. TAdmin admin = adminService.getById(adminId);
  377. String companyType = admin.getCompanyType(); // 公司平台
  378. String old = "";
  379. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  380. query.like(TEquipment::getClientId, clientId + "xxx");
  381. List<TEquipment> list = equipmentService.list(query);
  382. LambdaQueryWrapper<TEquipment> query0 = Wrappers.lambdaQuery();
  383. query0.eq(TEquipment::getClientId, clientId);
  384. List<TEquipment> list2 = equipmentService.list(query0);
  385. equipmentApply.setStatusType(3);
  386. if (list.size() > 0 || list2.size() > 0) {
  387. //表示设备第二次申请了:主要为了区分脱离以及初始化
  388. old = "1";
  389. //重新修改设备名称
  390. TEquipment equipment = new TEquipment();
  391. if (list2.size() > 0) {
  392. equipment = list2.get(0);
  393. } else {
  394. equipment = list.get(0);
  395. }
  396. equipment.setClientId(clientId);
  397. equipment.setGtClientId(gtClientId);
  398. equipment.setAdminId(adminId);
  399. equipment.setAdminLevel(adminLevel);
  400. equipment.setAdminUserName(adminUserName);
  401. equipment.setMachineType(machineType);
  402. equipment.setCompanyType(companyType);
  403. if (equipmentApply.getEquimentType().equals("MG320-1")) {
  404. if (!equipmentApply.getEquimentType().equals(equipment.getEquimentType()) && equipment.getEquimentType().equals("MG320")) {
  405. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  406. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  407. List<TProduct> productList = productService.list(queryProduct);
  408. if (productList.size() == 18) {
  409. //从18种变成30种花型
  410. saveProductMG12(equipment.getId());
  411. }
  412. }
  413. equipment.setEquimentType("MG320");
  414. } else {
  415. equipment.setEquimentType(equipmentApply.getEquimentType());
  416. }
  417. // if (equipmentApply.getEquimentType().equals("MG330")) {
  418. // equipment.setEquimentType("MG330");
  419. // }
  420. // if (equipmentApply.getEquimentType().equals("P30")) {
  421. // equipment.setEquimentType(equipmentApply.getEquimentType());
  422. // }
  423. // if (equipmentApply.getEquimentType().equals("SI320")) {
  424. // equipment.setEquimentType(equipmentApply.getEquimentType());
  425. // }
  426. equipmentService.updateById(equipment);
  427. LambdaQueryWrapper<TProportion> queryProportion = Wrappers.lambdaQuery();
  428. queryProportion.eq(TProportion::getEquipmentId, equipment.getId());
  429. List<TProportion> list1 = proportionService.list(queryProportion);
  430. if (list1.size() > 0) {
  431. for (TProportion proportion : list1) {
  432. proportionService.removeById(proportion.getId());
  433. }
  434. }
  435. try {
  436. esTEquipmentService.updateDataById(equipment);
  437. } catch (Exception e) {
  438. e.printStackTrace();
  439. }
  440. if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  441. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  442. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  443. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")){
  444. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  445. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  446. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("2")){
  447. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  448. PushUtils.push(equipmentApply.getGtClientId(), "【冰淇淋】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  449. }
  450. if (equipment.getEquimentType().equals("280")) {
  451. equipmentService.sentMessage(clientId, PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  452. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  453. }
  454. LambdaQueryWrapper<TEquipmentDesc> lqw = Wrappers.lambdaQuery();
  455. lqw.eq(TEquipmentDesc::getEquipmentId, equipment.getId());
  456. List<TEquipmentDesc> equipmentDescs = equipmentDescService.list(lqw);
  457. if (equipmentDescs.size() == 0) {
  458. TEquipmentDesc equipmentDesc = new TEquipmentDesc();
  459. equipmentDesc.setEquipmentId(equipment.getId());
  460. equipmentDescService.save(equipmentDesc);
  461. }
  462. } else {
  463. TEquipment equipment = new TEquipment();
  464. equipment.setId(IDGenerator.commonID());
  465. equipment.setCreateDate(new Date());
  466. equipment.setModifyDate(new Date());
  467. equipment.setClientId(clientId);
  468. equipment.setManagerId(equipmentApply.getManagerId());
  469. equipment.setAdminId(adminId);
  470. equipment.setAdminLevel(adminLevel);
  471. equipment.setGtClientId(gtClientId);
  472. equipment.setAdminUserName(adminUserName);
  473. equipment.setIsUsing(true);
  474. equipment.setIsNetWork(true);
  475. equipment.setGuestPwd("123456");
  476. equipment.setAdminPwd("123456");
  477. equipment.setChannel("1");
  478. equipment.setProductTotal(0);
  479. equipment.setCompanyType(companyType);
  480. equipment.setMachineType(machineType);
  481. //设置默认规则
  482. equipment.setTimeRuleId(Long.valueOf(1));
  483. if (equimentType.equals("MG320-1")) {
  484. equipment.setEquimentType("MG320");
  485. } else {
  486. equipment.setEquimentType(equimentType);
  487. }
  488. if (!StringUtils.isEmpty(equimentType) && equimentType.equals("MG280")) {
  489. Long monthBegin = getMonthBegin(new Date());
  490. long time = System.currentTimeMillis();
  491. if (time < monthBegin) {
  492. equipment.setEndDate(new Date(monthBegin));
  493. } else {
  494. Date date = nextMonthDate();
  495. equipment.setEndDate(date);
  496. }
  497. equipmentService.sentMessage(clientId, PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  498. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  499. }
  500. equipmentService.save(equipment);
  501. if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  502. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  503. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  504. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")){
  505. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  506. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  507. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("2")){
  508. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  509. PushUtils.push(equipmentApply.getGtClientId(), "【冰淇淋】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  510. }
  511. LambdaQueryWrapper<TEquipment> query3 = Wrappers.lambdaQuery();
  512. query3.eq(TEquipment::getClientId, clientId);
  513. TEquipment tEquipment = equipmentService.getOne(query3);
  514. try {
  515. if (tEquipment != null) {
  516. esTEquipmentService.insertData(tEquipment);
  517. }
  518. } catch (Exception e) {
  519. e.printStackTrace();
  520. }
  521. TEquipmentDesc equipmentDesc = new TEquipmentDesc();
  522. equipmentDesc.setEquipmentId(tEquipment.getId());
  523. equipmentDescService.save(equipmentDesc);
  524. }
  525. //获取设备的id
  526. LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
  527. query1.eq(TEquipment::getClientId, clientId);
  528. TEquipment equipment = equipmentService.getOne(query1);
  529. Long equipmentId = equipment.getId();
  530. // 如果存在旧花型,就删除重新创建
  531. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  532. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  533. List<TProduct> productList = productService.list(queryProduct);
  534. if (productList.size() == 0) {
  535. // for (TProduct product : productList) {
  536. // productService.removeById(product.getId());
  537. // }
  538. if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  539. if (equipmentApply.getEquimentType() != null && equipmentApply.getEquimentType().equals("MG280")) {
  540. saveProductMG280(equipmentId);
  541. } else if (equipmentApply.getEquimentType() != null && equipmentApply.getEquimentType().equals("MG320-1")) {
  542. saveProductMG1(equipmentId);
  543. } else {
  544. saveProduct(equipmentId);
  545. }
  546. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")){
  547. if (equimentType.equals("P30")) {
  548. saveGoodsData(equipmentId, machineType, 6);
  549. }
  550. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("2")){
  551. if (equimentType.equals("SI320")) {
  552. saveGoodsData(equipmentId, machineType, 6);
  553. }
  554. }
  555. }
  556. if (String.valueOf(adminId).equals("3") || String.valueOf(adminId).equals("31") || String.valueOf(adminId).equals("506") || String.valueOf(adminId).equals("1090")) {
  557. //自动设置分销
  558. setProportion(adminId, equipmentId, clientId);
  559. }
  560. } else if (status.equals("rejected")) {
  561. equipmentApply.setStatusType(2);
  562. equipmentService.sentMessage(equipmentApply.getClientId(), PushUtils.buildJson("statusType", "rejected").toString());
  563. }
  564. equipmentApplyService.updateById(equipmentApply);
  565. }
  566. }
  567. }
  568. }
  569. private void setProportion(Long adminId, Long equipmentId, String clientId) {
  570. //先找到原账户的分销
  571. LambdaQueryWrapper<TProportion> query3 = Wrappers.lambdaQuery();
  572. query3.eq(TProportion::getAdminId, adminId);
  573. List<TProportion> list3 = proportionService.list(query3);
  574. if (list3.size() > 0) {
  575. TProportion adminProportion = list3.get(0);
  576. if (StringUtils.isEmpty(adminProportion.getClientId())) {
  577. TProportion equipmentProportion = new TProportion();
  578. equipmentProportion.setCreateDate(new Date());
  579. equipmentProportion.setModifyDate(new Date());
  580. equipmentProportion.setAdminId(adminId);
  581. equipmentProportion.setClientId(clientId);
  582. equipmentProportion.setEquipmentId(equipmentId);
  583. equipmentProportion.setAdminProportion(adminProportion.getAdminProportion());
  584. Integer type = adminProportion.getType();
  585. if (type != null) {
  586. switch (type) {
  587. case 1:
  588. equipmentProportion.setProportion(adminProportion.getAgencyProportion());
  589. equipmentProportion.setAgencyProportion(new BigDecimal("0.00"));
  590. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  591. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  592. equipmentProportion.setType(0);
  593. break;
  594. case 2:
  595. equipmentProportion.setProportion(adminProportion.getMerchantProportion());
  596. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  597. equipmentProportion.setAgencyId(adminProportion.getAgencyId());
  598. TAdmin byId = adminService.getById(adminProportion.getAgencyId());
  599. equipmentProportion.setAgencyName(byId.getUsername());
  600. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  601. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  602. equipmentProportion.setType(1);
  603. break;
  604. case 3:
  605. equipmentProportion.setProportion(adminProportion.getPersonageProportion());
  606. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  607. equipmentProportion.setAgencyId(adminProportion.getAgencyId());
  608. TAdmin byId1 = adminService.getById(adminProportion.getAgencyId());
  609. equipmentProportion.setAgencyName(byId1.getUsername());
  610. equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion());
  611. equipmentProportion.setMerchantId(adminProportion.getMerchantId());
  612. TAdmin byId2 = adminService.getById(adminProportion.getMerchantId());
  613. equipmentProportion.setMerchantName(byId2.getUsername());
  614. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  615. equipmentProportion.setType(2);
  616. break;
  617. }
  618. boolean save = proportionService.save(equipmentProportion);
  619. }
  620. }
  621. }
  622. }
  623. /**
  624. * 添加商品
  625. * @param id
  626. * @param machineType
  627. * @param number
  628. */
  629. private void saveGoodsData(Long id, String machineType, Integer number) {
  630. LambdaQueryWrapper<TGoodsData> wrapper = Wrappers.lambdaQuery();
  631. wrapper.eq(TGoodsData::getNumber, number);
  632. wrapper.eq(TGoodsData::getMachineType, machineType);
  633. TGoodsData goodsData = goodsDataService.getOne(wrapper);
  634. String goods = goodsData.getGoods();
  635. String[] str = goods.split(",");
  636. for (int i = 0; i < str.length; i++) {
  637. TProduct product = new TProduct();
  638. product.setCreateDate(new Date());
  639. product.setModifyDate(new Date());
  640. product.setEquipmentId(id);
  641. String[] split = str[i].split("-");
  642. product.setProductName(split[0]);
  643. product.setNo(split[1]);
  644. product.setRmbPrice(new BigDecimal(0.01));
  645. product.setCodePrice(new BigDecimal(0.01));
  646. productService.save(product);
  647. }
  648. }
  649. /**
  650. * 添加棉花糖产品
  651. *
  652. * @param id
  653. */
  654. private void saveProduct(Long id) {
  655. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  656. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"};
  657. for (int i = 0; i < str.length; i++) {
  658. TProduct product = new TProduct();
  659. product.setCreateDate(new Date());
  660. product.setModifyDate(new Date());
  661. product.setEquipmentId(id);
  662. String[] split = str[i].split("-");
  663. product.setProductName(split[0]);
  664. product.setNo(split[1]);
  665. product.setRmbPrice(new BigDecimal(0.01));
  666. product.setCodePrice(new BigDecimal(0.01));
  667. productService.save(product);
  668. }
  669. }
  670. private void saveProductMG280(Long id) {
  671. String[] str = {"水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"};
  672. for (int i = 0; i < str.length; i++) {
  673. TProduct product = new TProduct();
  674. product.setCreateDate(new Date());
  675. product.setModifyDate(new Date());
  676. product.setEquipmentId(id);
  677. String[] split = str[i].split("-");
  678. product.setProductName(split[0]);
  679. product.setNo(split[1]);
  680. product.setRmbPrice(new BigDecimal(0.01));
  681. product.setCodePrice(new BigDecimal(0.01));
  682. productService.save(product);
  683. }
  684. }
  685. private void saveProductMG1(Long id) {
  686. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
  687. "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
  688. "精灵蝶梦-A19", "夏日倾城-A20", "百花齐放-A21", "蜂缠蝶恋-A22", "豆蔻年华-A23", "星空幻想-A24", "坠入星空-A25", "雪花飞舞-A26", "春暖花开-A27", "花飞蝶舞-A28",
  689. "花样年华-A29", "心花怒放-A30"};
  690. for (int i = 0; i < str.length; i++) {
  691. TProduct product = new TProduct();
  692. product.setCreateDate(new Date());
  693. product.setModifyDate(new Date());
  694. product.setEquipmentId(id);
  695. String[] split = str[i].split("-");
  696. product.setProductName(split[0]);
  697. product.setNo(split[1]);
  698. product.setRmbPrice(new BigDecimal(0.01));
  699. product.setCodePrice(new BigDecimal(0.01));
  700. productService.save(product);
  701. }
  702. }
  703. private void saveProductMG12(Long id) {
  704. String[] str = {"精灵蝶梦-A19", "夏日倾城-A20", "百花齐放-A21", "蜂缠蝶恋-A22", "豆蔻年华-A23", "星空幻想-A24"
  705. , "坠入星空-A25", "雪花飞舞-A26", "春暖花开-A27", "花飞蝶舞-A28", "花样年华-A29", "心花怒放-A30"};
  706. for (int i = 0; i < str.length; i++) {
  707. TProduct product = new TProduct();
  708. product.setEquipmentId(id);
  709. product.setCreateDate(new Date());
  710. product.setModifyDate(new Date());
  711. String[] split = str[i].split("-");
  712. product.setProductName(split[0]);
  713. product.setNo(split[1]);
  714. product.setRmbPrice(new BigDecimal(0.01));
  715. product.setCodePrice(new BigDecimal(0.01));
  716. productService.save(product);
  717. }
  718. }
  719. private void saveProductMG22(Long id) {
  720. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  721. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19", "蜂缠蝶恋-A22", "坠入星空-A25", "花飞蝶舞-A28"};
  722. for (int i = 0; i < str.length; i++) {
  723. TProduct product = new TProduct();
  724. product.setCreateDate(new Date());
  725. product.setModifyDate(new Date());
  726. product.setEquipmentId(id);
  727. String[] split = str[i].split("-");
  728. product.setProductName(split[0]);
  729. product.setNo(split[1]);
  730. product.setRmbPrice(new BigDecimal(0.01));
  731. product.setCodePrice(new BigDecimal(0.01));
  732. productService.save(product);
  733. }
  734. }
  735. private void saveProductMG26(Long id) {
  736. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  737. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19", "蜂缠蝶恋-A22", "坠入星空-A25", "花飞蝶舞-A28",
  738. "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"};
  739. for (int i = 0; i < str.length; i++) {
  740. TProduct product = new TProduct();
  741. product.setCreateDate(new Date());
  742. product.setModifyDate(new Date());
  743. product.setEquipmentId(id);
  744. String[] split = str[i].split("-");
  745. product.setProductName(split[0]);
  746. product.setNo(split[1]);
  747. product.setRmbPrice(new BigDecimal(0.01));
  748. product.setCodePrice(new BigDecimal(0.01));
  749. productService.save(product);
  750. }
  751. }
  752. private void saveProductMG42(Long id) {
  753. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
  754. "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
  755. "精灵蝶梦-A19", "夏日倾城-A20", "百花齐放-A21", "蜂缠蝶恋-A22", "豆蔻年华-A23", "星空幻想-A24", "坠入星空-A25", "雪花飞舞-A26", "春暖花开-A27", "花飞蝶舞-A28",
  756. "花样年华-A29", "心花怒放-A30", "花好月圆-A37", "出水芙蓉-A38", "微光染晕-A39", "夏日莓莓-A40", "芳楚纷飞-A41", "晨夕光晕-A42", "坠入爱河-A43", "天马行空-A44",
  757. "灼灼其华-A45", "一帘幽梦-A46", "七月初夏-A47", "四月微风-A48"};
  758. for (int i = 0; i < str.length; i++) {
  759. TProduct product = new TProduct();
  760. product.setCreateDate(new Date());
  761. product.setModifyDate(new Date());
  762. product.setEquipmentId(id);
  763. String[] split = str[i].split("-");
  764. product.setProductName(split[0]);
  765. product.setNo(split[1]);
  766. product.setRmbPrice(new BigDecimal(0.01));
  767. product.setCodePrice(new BigDecimal(0.01));
  768. productService.save(product);
  769. }
  770. }
  771. /**
  772. * 添加爆米花产品
  773. *
  774. * @param id
  775. */
  776. private void saveProductP30(Long id) {
  777. String[] str = {"活力爆米花(正常糖)-B01", "活力爆米花(无糖)-B02", "活力爆米花(巧克力)-B03", "活力爆米花(焦糖)-B04", "活力爆米花(水蜜桃)-B05", "活力爆米花(蓝莓)-B06"};
  778. for (int i = 0; i < str.length; i++) {
  779. TProduct product = new TProduct();
  780. product.setCreateDate(new Date());
  781. product.setModifyDate(new Date());
  782. product.setEquipmentId(id);
  783. String[] split = str[i].split("-");
  784. product.setProductName(split[0]);
  785. product.setNo(split[1]);
  786. product.setRmbPrice(new BigDecimal(0.01));
  787. product.setCodePrice(new BigDecimal(0.01));
  788. productService.save(product);
  789. }
  790. }
  791. /**
  792. * 添加冰淇淋产品
  793. *
  794. * @param id
  795. */
  796. private void saveProductSI320(Long id) {
  797. LambdaQueryWrapper<TGoodsData> wrapper = Wrappers.lambdaQuery();
  798. wrapper.eq(TGoodsData::getNumber, 6);
  799. wrapper.eq(TGoodsData::getMachineType, "2");
  800. TGoodsData goodsData = goodsDataService.getOne(wrapper);
  801. String goods = goodsData.getGoods();
  802. String[] str = goods.split(",");
  803. for (int i = 0; i < str.length; i++) {
  804. TProduct product = new TProduct();
  805. product.setCreateDate(new Date());
  806. product.setModifyDate(new Date());
  807. product.setEquipmentId(id);
  808. String[] split = str[i].split("-");
  809. product.setProductName(split[0]);
  810. product.setNo(split[1]);
  811. product.setRmbPrice(new BigDecimal(0.01));
  812. product.setCodePrice(new BigDecimal(0.01));
  813. productService.save(product);
  814. }
  815. }
  816. /**
  817. * 获取指定日期所在月份开始的时间戳
  818. *
  819. * @param date 指定日期
  820. * @return
  821. */
  822. public static Long getMonthBegin(Date date) {
  823. Calendar c = Calendar.getInstance();
  824. c.setTime(date);
  825. //设置为10号,当前日期既为本月10号
  826. c.set(Calendar.DAY_OF_MONTH, 10);
  827. //将小时至0
  828. c.set(Calendar.HOUR_OF_DAY, 0);
  829. //将分钟至0
  830. c.set(Calendar.MINUTE, 0);
  831. //将秒至0
  832. c.set(Calendar.SECOND, 0);
  833. //将毫秒至0
  834. c.set(Calendar.MILLISECOND, 0);
  835. // 获取本月第一天的时间戳
  836. return c.getTimeInMillis();
  837. }
  838. public static Date nextMonthDate() {
  839. Calendar calendar = Calendar.getInstance();
  840. calendar.set(Calendar.DAY_OF_MONTH, 10);
  841. //将小时至0
  842. calendar.set(Calendar.HOUR_OF_DAY, 0);
  843. //将分钟至0
  844. calendar.set(Calendar.MINUTE, 0);
  845. //将秒至0
  846. calendar.set(Calendar.SECOND, 0);
  847. //将毫秒至0
  848. calendar.set(Calendar.MILLISECOND, 0);
  849. calendar.add(Calendar.MONTH, 1);
  850. return calendar.getTime();
  851. }
  852. /**
  853. * 改花型
  854. *
  855. * @param
  856. * @return
  857. */
  858. @RequestMapping(value = "/updateFlowers.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  859. @ResponseBody
  860. public String updateFlowers(String clientId, String number) {
  861. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  862. query.eq(TEquipment::getClientId, clientId);
  863. TEquipment equipment = equipmentService.getOne(query);
  864. if (equipment != null) {
  865. Long id = equipment.getId();
  866. //修改花型记录数目
  867. equipment.setFlowers(number);
  868. equipmentService.updateById(equipment);
  869. //修改设备描述表中的花型记录数目
  870. TEquipmentDesc equipmentDesc = equipmentDescService.getById(id);
  871. if (equipmentDesc != null) {
  872. equipmentDesc.setFlowers(number);
  873. equipmentDescService.updateById(equipmentDesc);
  874. } else {
  875. TEquipmentDesc equipmentDesc1 = new TEquipmentDesc();
  876. equipmentDesc1.setEquipmentId(id);
  877. equipmentDesc1.setFlowers(number);
  878. equipmentDescService.save(equipmentDesc1);
  879. }
  880. //删除旧花型
  881. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  882. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  883. List<TProduct> productList = productService.list(queryProduct);
  884. for (TProduct product : productList) {
  885. productService.removeById(product.getId());
  886. }
  887. // 机器类型
  888. String machineType = equipment.getMachineType();
  889. if(StringUtils.isEmpty(equipment.getMachineType())) {
  890. machineType = "0";
  891. }
  892. //创建花型
  893. saveGoodsData(id, machineType, Integer.parseInt(number));
  894. return "success";
  895. } else {
  896. return "error";
  897. }
  898. }
  899. /**
  900. * 设备类型 开机时上传
  901. *
  902. * @param clientId 个推
  903. * @return
  904. */
  905. @RequestMapping(value = "/equimentType.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  906. @ResponseBody
  907. public String equimentType(String clientId, String equimentType) {
  908. if (!StringUtils.isEmpty(equimentType)) {
  909. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  910. query.eq(TEquipment::getClientId, clientId);
  911. TEquipment equipment = equipmentService.getOne(query);
  912. equipment.setEquimentType(equimentType);
  913. equipmentService.updateById(equipment);
  914. }
  915. return "success";
  916. }
  917. /**
  918. * 设备地址 开机时上传
  919. *
  920. * @param clientId 个推
  921. * @return
  922. */
  923. @RequestMapping(value = "/equimentArea.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  924. @ResponseBody
  925. public String equimentArea(String clientId, String longitude, String latitude, String fullName) {
  926. if (!StringUtils.isEmpty(longitude) && !StringUtils.isEmpty(latitude) && !StringUtils.isEmpty(fullName)) {
  927. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  928. query.eq(TEquipment::getClientId, clientId);
  929. TEquipment equipment = equipmentService.getOne(query);
  930. equipment.setLatitude(Double.valueOf(latitude));
  931. equipment.setLongitude(Double.valueOf(longitude));
  932. equipment.setFullName(fullName + "-");
  933. equipmentService.updateById(equipment);
  934. return "success";
  935. }
  936. return "error";
  937. }
  938. /**
  939. * 商品调价
  940. */
  941. @RequestMapping(value = "/updateProduct.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  942. @ResponseBody
  943. public String updateProduct(@RequestBody List<ProductVo> productVos) {
  944. for (ProductVo product : productVos) {
  945. String clientId = product.getClientId();
  946. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  947. query.eq(TEquipment::getClientId, clientId);
  948. TEquipment equipment = equipmentService.getOne(query);
  949. Long id = equipment.getId();
  950. if (StringUtils.isNotEmpty(product.getShowType())) {
  951. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  952. queryProduct.eq(TProduct::getEquipmentId, id);
  953. queryProduct.eq(TProduct::getProductName, product.getProductName());
  954. TProduct tProduct = productService.getOnly(queryProduct);
  955. if (tProduct == null) {
  956. LambdaQueryWrapper<TNameDictionary> wrapper = Wrappers.lambdaQuery();
  957. wrapper.eq(TNameDictionary::getLanguage, "zh");
  958. wrapper.eq(TNameDictionary::getName, product.getProductName());
  959. TNameDictionary nameDictionary = nameDictionaryService.getOne(wrapper);
  960. LambdaQueryWrapper<TProduct> queryWrapper = Wrappers.lambdaQuery();
  961. queryWrapper.eq(TProduct::getEquipmentId, id);
  962. queryWrapper.eq(TProduct::getNo, nameDictionary.getNo());
  963. tProduct = productService.getOnly(queryWrapper);
  964. }
  965. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  966. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  967. tProduct.setShowType(product.getShowType());
  968. tProduct.setSellStatus(product.getSellStatus());
  969. productService.updateById(tProduct);
  970. } else {
  971. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  972. queryProduct.eq(TProduct::getEquipmentId, id);
  973. queryProduct.eq(TProduct::getProductName, product.getProductName());
  974. TProduct tProduct = productService.getOnly(queryProduct);
  975. if (tProduct == null) {
  976. LambdaQueryWrapper<TNameDictionary> wrapper = Wrappers.lambdaQuery();
  977. wrapper.eq(TNameDictionary::getLanguage, "zh");
  978. wrapper.eq(TNameDictionary::getName, product.getProductName());
  979. TNameDictionary nameDictionary = nameDictionaryService.getOne(wrapper);
  980. LambdaQueryWrapper<TProduct> queryWrapper = Wrappers.lambdaQuery();
  981. queryWrapper.eq(TProduct::getEquipmentId, id);
  982. queryWrapper.eq(TProduct::getNo, nameDictionary.getNo());
  983. tProduct = productService.getOnly(queryWrapper);
  984. }
  985. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  986. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  987. tProduct.setSellStatus(product.getSellStatus());
  988. productService.updateById(tProduct);
  989. }
  990. }
  991. return "调价成功";
  992. }
  993. public Double tran(Double d) {
  994. return new BigDecimal(d).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
  995. }
  996. public Double tran2(Double d) {
  997. return new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  998. }
  999. /**
  1000. * 密码修改
  1001. *
  1002. * @param clientId 设备个推Id
  1003. * @param pwdType 密码类型 1d代表修adminPwd,0代表guestPwd
  1004. * @return
  1005. * @Param pwd 密码内容
  1006. */
  1007. @RequestMapping(value = "/updatePwd.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1008. @ResponseBody
  1009. public String updatePwd(String clientId, String pwdType, String pwd) {
  1010. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1011. query.eq(TEquipment::getClientId, clientId);
  1012. TEquipment equipment = equipmentService.getOne(query);
  1013. if (equipment != null) {
  1014. if (!StringUtils.isEmpty(pwdType)) {
  1015. switch (pwdType) {
  1016. case "1":
  1017. equipment.setAdminPwd(pwd);
  1018. break;
  1019. case "0":
  1020. equipment.setGuestPwd(pwd);
  1021. break;
  1022. }
  1023. equipmentService.updateById(equipment);
  1024. return "更新密码成功";
  1025. }
  1026. }
  1027. return "更新密码失败";
  1028. }
  1029. /**
  1030. * 设备获取密码
  1031. */
  1032. @GetMapping(value = "/getPwd", produces = "text/html;charset=utf-8")
  1033. @ResponseBody
  1034. public String getPwd(String clientId) {
  1035. if (StringUtils.isEmpty(clientId)) {
  1036. return null;
  1037. }
  1038. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1039. query.eq(TEquipment::getClientId, clientId);
  1040. TEquipment equipment = equipmentService.getOne(query);
  1041. Map<String, String> map = new HashMap<>();
  1042. map.put("adminPwd", equipment.getAdminPwd());
  1043. map.put("guestPwd", equipment.getGuestPwd());
  1044. JSONObject jsonObject = new JSONObject();
  1045. jsonObject.put("code", 0);
  1046. jsonObject.put("data", JSONObject.toJSON(map).toString());
  1047. jsonObject.put("errmsg", "");
  1048. return jsonObject.toJSONString();
  1049. }
  1050. /**
  1051. * 修改支付方式
  1052. *
  1053. * @param clientId
  1054. * @param payType: 无需支付
  1055. * 线上支付
  1056. * 线下支付
  1057. * 线上/线下
  1058. * @return
  1059. */
  1060. @RequestMapping(value = "/updatePayType.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1061. @ResponseBody
  1062. public String updatePayType(String clientId, String payType) {
  1063. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1064. query.eq(TEquipment::getClientId, clientId);
  1065. TEquipment equipment = equipmentService.getOne(query);
  1066. if (equipment == null) {
  1067. return "修改支付方式失败";
  1068. }
  1069. equipment.setPayType(0);
  1070. equipmentService.updateById(equipment);
  1071. return "修改成功";
  1072. }
  1073. /**
  1074. * 日志上传
  1075. */
  1076. @RequestMapping(value = "/sendLog.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1077. @ResponseBody
  1078. public String uploadFile(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception {
  1079. //构造一个带指定 Region 对象的配置类
  1080. Configuration cfg = new Configuration(Region.region2());
  1081. cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
  1082. UploadManager uploadManager = new UploadManager(cfg);
  1083. //默认不指定key的情况下,以文件内容的hash值作为文件名
  1084. String key = "log/" + fileName + ".txt";
  1085. try {
  1086. ServletInputStream input = request.getInputStream();
  1087. Auth auth = Auth.create(ConfigConsts.QINIU_CLOUD_ACCESS_KEY, ConfigConsts.QINIU_CLOUD_SECRET_KEY);
  1088. String upToken = auth.uploadToken(ConfigConsts.QINIU_CLOUD_BUCKET, key);
  1089. Response responseMap = uploadManager.put(input, key, upToken, null, null);
  1090. //解析上传成功的结果
  1091. DefaultPutRet putRet = new Gson().fromJson(responseMap.bodyString(), DefaultPutRet.class);
  1092. System.out.println(putRet.key);
  1093. System.out.println(putRet.hash);
  1094. } catch (Exception ex) {
  1095. //响应信息 json字符串格式
  1096. Map<String, Object> responseMap = new HashMap<String, Object>();
  1097. responseMap.put("flag", false);
  1098. responseMap.put("errorMsg", ex.getMessage());
  1099. String jsonResponse = JSONObject.toJSONString(responseMap);
  1100. sendResponse(jsonResponse, response);
  1101. }
  1102. return "success";
  1103. }
  1104. /**
  1105. * 返回响应
  1106. *
  1107. * @throws Exception
  1108. */
  1109. private void sendResponse(String responseString, HttpServletResponse response) throws Exception {
  1110. response.setContentType("application/json;charset=UTF-8");
  1111. PrintWriter pw = null;
  1112. try {
  1113. pw = response.getWriter();
  1114. pw.write(responseString);
  1115. pw.flush();
  1116. } finally {
  1117. IOUtils.closeQuietly(pw);
  1118. }
  1119. }
  1120. /**
  1121. * 脱离系统
  1122. *
  1123. * @param clientId
  1124. * @return
  1125. */
  1126. @RequestMapping(value = "/separate.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1127. @ResponseBody
  1128. public String separate(String clientId) {
  1129. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1130. query.eq(TEquipment::getClientId, clientId);
  1131. TEquipment equipment = equipmentService.getOne(query);
  1132. if (equipment == null) {
  1133. return "该设备不存在";
  1134. }
  1135. equipmentService.sentMessage(clientId, PushUtils.buildJson("tuoji", "0").toString());
  1136. if ("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3, equipment.getClientId().length()))) {
  1137. return "脱离成功";
  1138. }
  1139. equipment.setClientId(equipment.getClientId() + "xxx");
  1140. equipmentService.updateById(equipment);
  1141. return "脱离成功";
  1142. }
  1143. /**
  1144. * 脱离系统
  1145. *
  1146. * @param clientId
  1147. * @return
  1148. */
  1149. @RequestMapping(value = "/updateClientId", method = RequestMethod.POST)
  1150. @ResponseBody
  1151. public String updateClientId(String clientId) {
  1152. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1153. query.eq(TEquipment::getClientId, clientId);
  1154. TEquipment equipment = equipmentService.getOne(query);
  1155. if (equipment == null) {
  1156. return "该设备不存在";
  1157. }
  1158. if ("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3, equipment.getClientId().length()))) {
  1159. return "脱离成功";
  1160. }
  1161. equipment.setClientId(equipment.getClientId() + "xxx");
  1162. equipment.setManagerId(null);
  1163. equipmentService.updateById(equipment);
  1164. return "脱离成功";
  1165. }
  1166. /**
  1167. * 修改设备联系人名称以及电话
  1168. */
  1169. @RequestMapping(value = "/updateContractPN.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1170. @ResponseBody
  1171. public String updateContractPN(String clientId, String contactName, String contactPhone) {
  1172. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1173. query.eq(TEquipment::getClientId, clientId);
  1174. TEquipment equipment = equipmentService.getOne(query);
  1175. if (equipment == null) {
  1176. return "该设备不存在";
  1177. }
  1178. equipment.setContactName(contactName);
  1179. equipment.setContactPhone(contactPhone);
  1180. equipmentService.updateById(equipment);
  1181. return "修改成功";
  1182. }
  1183. /**
  1184. * 设备上传公司电话
  1185. */
  1186. @RequestMapping(value = "/sentCompanyPhone.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1187. @ResponseBody
  1188. public String sentCompanyPhone(String clientId, String companyPhone) {
  1189. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1190. query.eq(TEquipment::getClientId, clientId);
  1191. TEquipment equipment = equipmentService.getOne(query);
  1192. if (equipment == null) {
  1193. return "该设备不存在";
  1194. }
  1195. equipment.setCompanyPhone(companyPhone);
  1196. equipmentService.updateById(equipment);
  1197. return "修改成功";
  1198. }
  1199. /**
  1200. * 获取二维码图片
  1201. */
  1202. @RequestMapping(value = "/getQrCodeImgUrl.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1203. @ResponseBody
  1204. public String getQrCodeImgUrl(String clientId) {
  1205. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1206. query.eq(TEquipment::getClientId, clientId);
  1207. TEquipment equipment = equipmentService.getOne(query);
  1208. if (equipment == null) {
  1209. return "404";
  1210. }
  1211. return "400";
  1212. }
  1213. /**
  1214. * 上传4G卡号
  1215. */
  1216. @RequestMapping(value = "/sentSimNo.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1217. @ResponseBody
  1218. public String sentSimNo(String clientId, String simNo) {
  1219. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1220. query.eq(TEquipment::getClientId, clientId);
  1221. TEquipment equipment = equipmentService.getOne(query);
  1222. if (equipment == null) {
  1223. return "该设备不存在";
  1224. }
  1225. equipment.setSimNo(simNo);
  1226. equipmentService.updateById(equipment);
  1227. return "修改成功";
  1228. }
  1229. /**
  1230. * 上传机器的apk版本
  1231. */
  1232. @RequestMapping(value = "/sendApkVersion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1233. @ResponseBody
  1234. public String sendApkVersion(String clientId, String apkVersion) {
  1235. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1236. query.eq(TEquipment::getClientId, clientId);
  1237. TEquipment equipment = equipmentService.getOne(query);
  1238. if (equipment == null) {
  1239. return "该设备不存在";
  1240. }
  1241. equipment.setApkVersion(apkVersion);
  1242. equipmentService.updateById(equipment);
  1243. return "success";
  1244. }
  1245. /**
  1246. * 上传机器的做糖状态
  1247. */
  1248. @RequestMapping(value = "/equipmentStatus.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1249. @ResponseBody
  1250. public String equipmentStatus(String clientId, String status) {
  1251. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1252. query.eq(TEquipment::getClientId, clientId);
  1253. TEquipment equipment = equipmentService.getOne(query);
  1254. if (equipment == null) {
  1255. return "该设备不存在";
  1256. }
  1257. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1258. //机器状态;0:空闲,1:在做糖;
  1259. equipmentDesc.setStatus(status);
  1260. equipmentDescService.updateById(equipmentDesc);
  1261. return "success";
  1262. }
  1263. /**
  1264. * 修改设备状态
  1265. *
  1266. * @param clientId
  1267. * @param eqeStatus 设备状态1开 0关
  1268. * @return
  1269. */
  1270. @RequestMapping(value = "/updateEqeStatus.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1271. @ResponseBody
  1272. public String updateEqeStatus(String clientId, Integer eqeStatus) {
  1273. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1274. query.eq(TEquipment::getClientId, clientId);
  1275. TEquipment equipment = equipmentService.getOne(query);
  1276. if (equipment == null) {
  1277. return "该设备不存在";
  1278. }
  1279. if (eqeStatus != null) {
  1280. equipment.setEqeStatus(eqeStatus);
  1281. equipment.setModifyDate(new Date());
  1282. equipmentService.updateById(equipment);
  1283. }
  1284. return "修改成功";
  1285. }
  1286. /**
  1287. * 新修改设备状态
  1288. *
  1289. * @param clientId
  1290. * @param eqeStatus 设备状态1开 0关
  1291. * @return
  1292. */
  1293. @RequestMapping(value = "/updateEqeStatusNew.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1294. @ResponseBody
  1295. public String updateEqeStatusNew(String clientId, Integer eqeStatus, String netTime) {
  1296. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1297. query.eq(TEquipment::getClientId, clientId);
  1298. TEquipment equipment = equipmentService.getOne(query);
  1299. if (equipment == null) {
  1300. return "该设备不存在";
  1301. }
  1302. // 设备名称
  1303. String name = equipment.getName();
  1304. // 如果为空就拿设备编号后六位
  1305. if(StringUtils.isEmpty(name)) {
  1306. name = equipment.getClientId().substring(equipment.getClientId().length() - 6);
  1307. }
  1308. if (eqeStatus != null) {
  1309. equipment.setNetwork(netTime);
  1310. equipment.setEqeStatus(eqeStatus);
  1311. // 查询是否有绑定微信
  1312. LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
  1313. wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
  1314. TWechat wechat = wechatService.getOne(wechatQuery);
  1315. // 如果有绑定微信
  1316. if (wechat != null && StringUtils.isNotEmpty(wechat.getOpenId())) {
  1317. // 发送模板消息
  1318. TAdmin admin = adminService.getById(equipment.getAdminId());
  1319. // 查询是申泽还是七云的
  1320. String companyType = admin.getCompanyType();
  1321. wechatService.sendOnOffMessage(wechat.getOpenId(), equipment.getClientId(), netTime, companyType, name, eqeStatus);
  1322. }
  1323. if (eqeStatus == 0) {
  1324. equipment.setCabinetTm("");
  1325. equipment.setCabinetHd("");
  1326. equipment.setFurnaceTm("");
  1327. equipment.setFurnaceSp("");
  1328. }
  1329. equipmentService.updateById(equipment);
  1330. }
  1331. return "修改成功";
  1332. }
  1333. /**
  1334. * 修改设备锁定状态
  1335. *
  1336. * @param clientId
  1337. * @param block
  1338. * @return
  1339. */
  1340. @RequestMapping(value = "/updateBlock.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1341. @ResponseBody
  1342. public String updateBlock(String clientId, Boolean block) {
  1343. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1344. query.eq(TEquipment::getClientId, clientId);
  1345. TEquipment equipment = equipmentService.getOne(query);
  1346. if (equipment == null) {
  1347. return "该设备不存在";
  1348. }
  1349. equipment.setIsBlocked(block);
  1350. equipmentService.updateById(equipment);
  1351. return "修改成功";
  1352. }
  1353. /**
  1354. * 修改设备睡眠状态
  1355. *
  1356. * @param clientId
  1357. * @param is_sleep
  1358. * @return
  1359. */
  1360. @RequestMapping(value = "/updateSleep.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1361. @ResponseBody
  1362. public String updateSleep(String clientId, Boolean is_sleep) {
  1363. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1364. query.eq(TEquipment::getClientId, clientId);
  1365. TEquipment equipment = equipmentService.getOne(query);
  1366. if (equipment == null) {
  1367. return "该设备不存在";
  1368. }
  1369. if (is_sleep != null) {
  1370. equipment.setIsSleep(is_sleep);
  1371. equipmentService.updateById(equipment);
  1372. }
  1373. return "修改成功";
  1374. }
  1375. /**
  1376. * 修改设备生产棉花糖个数
  1377. *
  1378. * @param clientId
  1379. * @param productTotal
  1380. * @return
  1381. */
  1382. @RequestMapping(value = "/updateProductTotal.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1383. @ResponseBody
  1384. public String updateProductTotal(String clientId, Integer productTotal) {
  1385. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1386. query.eq(TEquipment::getClientId, clientId);
  1387. TEquipment equipment = equipmentService.getOne(query);
  1388. if (equipment == null) {
  1389. return "该设备不存在";
  1390. }
  1391. Integer total = equipment.getProductTotal();
  1392. if (total == null) {
  1393. total = 0;
  1394. }
  1395. equipment.setProductTotal(total + productTotal);
  1396. equipmentService.updateById(equipment);
  1397. return "修改成功";
  1398. }
  1399. /**
  1400. * 修改设备共同参数/进阶参数
  1401. *
  1402. * @param
  1403. * @return
  1404. */
  1405. // @PostMapping(value = "/updateParam/{code}/{clientId}", produces = "application/json;charset=UTF-8")
  1406. // @ResponseBody
  1407. // public JsonMessage updateParam(@PathVariable Integer code, @PathVariable String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
  1408. // Equipment equipment = equipmentService.findByClientId(clientId);
  1409. // if (equipment == null) {
  1410. // return JsonMessage.error("设备不存在");
  1411. // }
  1412. // String param = JSONArray.toJSONString(commonParamVos);
  1413. // if (code == 0) {
  1414. // equipment.setCommonParameters(param);
  1415. // } else {
  1416. // equipment.setAdvancedParameters(param);
  1417. // }
  1418. // equipmentService.update(equipment);
  1419. // return JsonMessage.success("修改成功");
  1420. // }
  1421. /**
  1422. * 修改设备共同参数/进阶参数
  1423. * code 0:通用参数;1:进阶参数;2:调试页参数;3:湿度参数
  1424. *
  1425. * @param
  1426. * @return
  1427. */
  1428. @RequestMapping(value = "/updateParamNew", method = RequestMethod.POST)
  1429. @ResponseBody
  1430. public String updateParamNew(Integer code, String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
  1431. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1432. query.eq(TEquipment::getClientId, clientId);
  1433. TEquipment equipment = equipmentService.getOne(query);
  1434. if (equipment == null) {
  1435. return "设备不存在";
  1436. }
  1437. if (commonParamVos.size() <= 0) {
  1438. return "参数为空";
  1439. }
  1440. LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
  1441. queryParameters.eq(TParameters::getClientId, clientId);
  1442. queryParameters.eq(TParameters::getStatus, code);
  1443. queryParameters.eq(TParameters::getEquipmentId, equipment.getId());
  1444. List<TParameters> list = parametersService.list(queryParameters);
  1445. if (list.size() > 0) {
  1446. for (TParameters parameters : list) {
  1447. //删除旧的参数
  1448. parametersService.removeById(parameters.getId());
  1449. }
  1450. }
  1451. Date date = new Date();
  1452. for (CommonParamVo commonParamVo : commonParamVos) {
  1453. TParameters parameters = new TParameters();
  1454. parameters.setVal(commonParamVo.getVal());
  1455. parameters.setName(commonParamVo.getName());
  1456. parameters.setStatus(String.valueOf(code));
  1457. parameters.setClientId(clientId);
  1458. parameters.setEquipmentId(equipment.getId());
  1459. parameters.setCreateDate(date);
  1460. parameters.setModifyDate(date);
  1461. parametersService.save(parameters);
  1462. }
  1463. return "修改成功";
  1464. }
  1465. /**
  1466. * 修改单个设备共同参数/进阶参数
  1467. * code 0:通用参数;1:进阶参数;2:调试页参数;3:湿度参数
  1468. *
  1469. * @param
  1470. * @return
  1471. */
  1472. @PostMapping(value = "/updateAloneParam.htm", produces = "text/html;charset=utf-8")
  1473. @ResponseBody
  1474. public String updateAloneParam(String code, String clientId, String name, String val) {
  1475. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1476. query.eq(TEquipment::getClientId, clientId);
  1477. TEquipment equipment = equipmentService.getOne(query);
  1478. if (equipment == null) {
  1479. return "设备不存在";
  1480. }
  1481. LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
  1482. queryParameters.eq(TParameters::getClientId, clientId);
  1483. queryParameters.eq(TParameters::getStatus, code);
  1484. queryParameters.eq(TParameters::getName, name);
  1485. queryParameters.eq(TParameters::getEquipmentId, equipment.getId());
  1486. List<TParameters> list1 = parametersService.list(queryParameters);
  1487. if (list1.size() > 0) {
  1488. TParameters parameters = list1.get(0);
  1489. parameters.setVal(val);
  1490. parameters.setModifyDate(new Date());
  1491. parametersService.updateById(parameters);
  1492. }
  1493. return "修改成功";
  1494. }
  1495. /**
  1496. * 获取机器列表
  1497. */
  1498. @RequestMapping(value = "/getEquipmentList.htm", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
  1499. @ResponseBody
  1500. public String getByAdminAndProduct(String adminId, String name) {
  1501. JSONObject jsonObject = new JSONObject();
  1502. if (StringUtils.isEmpty(adminId)) {
  1503. jsonObject.put("code", 1);
  1504. jsonObject.put("errmsg", "adminId为空");
  1505. return jsonObject.toJSONString();
  1506. }
  1507. if (StringUtils.isEmpty(name)) {
  1508. jsonObject.put("code", 1);
  1509. jsonObject.put("errmsg", "name为空");
  1510. return jsonObject.toJSONString();
  1511. }
  1512. TAdmin admin = adminService.getById(adminId);
  1513. if (!admin.getUsername().equals(name)) {
  1514. jsonObject.put("code", 1);
  1515. jsonObject.put("errmsg", "name与adminId不匹配");
  1516. return jsonObject.toJSONString();
  1517. }
  1518. List<EquipmentDTO> list = new ArrayList<>();
  1519. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1520. query.eq(TEquipment::getAdminId, Long.valueOf(adminId));
  1521. List<TEquipment> equipmentList = equipmentService.list(query);
  1522. for (TEquipment equipment : equipmentList) {
  1523. EquipmentDTO equipmentDTO = new EquipmentDTO();
  1524. equipmentDTO.setClientId(equipment.getClientId());
  1525. equipmentDTO.setSn(equipment.getSn());
  1526. equipmentDTO.setName(equipment.getName());
  1527. equipmentDTO.setLatitude(equipment.getLatitude());
  1528. equipmentDTO.setLongitude(equipment.getLongitude());
  1529. equipmentDTO.setFullName(equipment.getFullName());
  1530. equipmentDTO.setEqeStatus(equipment.getEqeStatus());
  1531. list.add(equipmentDTO);
  1532. }
  1533. jsonObject.put("code", 0);
  1534. jsonObject.put("rows", JsonUtils.toJson(list));
  1535. jsonObject.put("errmsg", "");
  1536. jsonObject.put("total", list.size());
  1537. return jsonObject.toJSONString();
  1538. }
  1539. /**
  1540. * 获取商品信息
  1541. */
  1542. @RequestMapping(value = "/getProductions.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1543. @ResponseBody
  1544. public String getProductions(String adminId, String clientId) {
  1545. JSONObject jsonObject = new JSONObject();
  1546. if (StringUtils.isEmpty(adminId)) {
  1547. jsonObject.put("code", 1);
  1548. jsonObject.put("errmsg", "adminId为空");
  1549. return jsonObject.toJSONString();
  1550. }
  1551. if (StringUtils.isEmpty(clientId)) {
  1552. jsonObject.put("code", 1);
  1553. jsonObject.put("errmsg", "clientId为空");
  1554. return jsonObject.toJSONString();
  1555. }
  1556. TAdmin admin = adminService.getById(Long.valueOf(adminId));
  1557. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1558. query.eq(TEquipment::getClientId, clientId);
  1559. TEquipment equipment = equipmentService.getOne(query);
  1560. if (!equipment.getAdminId().toString().equals(admin.getId().toString())) {
  1561. jsonObject.put("code", 1);
  1562. jsonObject.put("errmsg", "clientId与adminId不匹配");
  1563. return jsonObject.toJSONString();
  1564. }
  1565. List<String> list = new ArrayList<>();
  1566. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  1567. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  1568. List<TProduct> products = productService.list(queryProduct);
  1569. for (TProduct product : products) {
  1570. list.add(product.getProductName());
  1571. }
  1572. jsonObject.put("code", 0);
  1573. jsonObject.put("productions", JsonUtils.toJson(list));
  1574. jsonObject.put("errmsg", "");
  1575. jsonObject.put("total", list.size());
  1576. return jsonObject.toJSONString();
  1577. }
  1578. /**
  1579. * 根据设备编号获取商品信息
  1580. */
  1581. @RequestMapping(value = "/getproducts", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1582. @ResponseBody
  1583. public String getproducts(String clientId) {
  1584. JSONObject jsonObject = new JSONObject();
  1585. if (StringUtils.isEmpty(clientId)) {
  1586. jsonObject.put("code", 1);
  1587. jsonObject.put("errmsg", "clientId为空");
  1588. return jsonObject.toJSONString();
  1589. }
  1590. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1591. query.eq(TEquipment::getClientId, clientId);
  1592. TEquipment equipment = equipmentService.getOne(query);
  1593. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  1594. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  1595. List<TProduct> products = productService.list(queryProduct);
  1596. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1597. for (TProduct product : products) {
  1598. product.setCreateDate(null);
  1599. product.setModifyDate(null);
  1600. if (StringUtils.isNotEmpty(equipmentDesc.getLanguage()) && !equipmentDesc.getLanguage().equals("zh") && StringUtils.isEmpty(product.getName())) {
  1601. LambdaQueryWrapper<TNameDictionary> queryWrapper = new LambdaQueryWrapper<>();
  1602. queryWrapper.eq(TNameDictionary::getLanguage, "zh");
  1603. queryWrapper.eq(TNameDictionary::getNo, product.getNo());
  1604. TNameDictionary nameDictionary = nameDictionaryService.getOne(queryWrapper);
  1605. if (nameDictionary != null) {
  1606. product.setProductName(nameDictionary.getName());
  1607. }
  1608. }
  1609. }
  1610. JSONObject jsonObject1 = new JSONObject();
  1611. jsonObject1.put("code", 0);
  1612. jsonObject1.put("data", JSONObject.toJSON(products).toString());
  1613. jsonObject1.put("errmsg", "");
  1614. return JSONObject.toJSON(products).toString();
  1615. }
  1616. /**
  1617. * 是否启用物料监控功能
  1618. * 0:不启用,1:启用
  1619. *
  1620. * @param clientId 个推
  1621. * @return
  1622. */
  1623. @RequestMapping(value = "/updateMaterialStatus.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1624. @ResponseBody
  1625. public String updateMaterialUse(String clientId, String isMaterialUse) {
  1626. if (!StringUtils.isEmpty(clientId) && !StringUtils.isEmpty(isMaterialUse)) {
  1627. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1628. query.eq(TEquipment::getClientId, clientId);
  1629. TEquipment equipment = equipmentService.getOne(query);
  1630. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1631. equipmentDesc.setIsMaterialUse(isMaterialUse);
  1632. equipmentDescService.updateById(equipmentDesc);
  1633. // 改变参数表里的状态
  1634. LambdaQueryWrapper<TParameters> queryWrapper = Wrappers.lambdaQuery();
  1635. queryWrapper.eq(TParameters::getClientId, clientId);
  1636. queryWrapper.eq(TParameters::getName, "M502");
  1637. TParameters parameters = parametersService.getOne(queryWrapper);
  1638. if (Objects.nonNull(parameters)) {
  1639. parameters.setVal(isMaterialUse);
  1640. parametersService.updateById(parameters);
  1641. }
  1642. return "success";
  1643. }
  1644. return "error";
  1645. }
  1646. //修改优惠码状态
  1647. @RequestMapping(value = "/updateCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1648. @ResponseBody
  1649. public String CardPay(String code, String clientId) {
  1650. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1651. query.eq(TEquipment::getClientId, clientId);
  1652. TEquipment equipment = equipmentService.getOne(query);
  1653. LambdaQueryWrapper<TPromoCode> query1 = Wrappers.lambdaQuery();
  1654. query1.eq(TPromoCode::getAdminId, equipment.getAdminId());
  1655. query1.eq(TPromoCode::getCode, code);
  1656. List<TPromoCode> list1 = promoCodeService.list(query1);
  1657. TPromoCode promoCode = list1.get(0);
  1658. promoCode.setIsUse("1");
  1659. promoCode.setUseBy(equipment.getName());
  1660. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1661. String time = sdf.format(new Date());
  1662. promoCode.setUseDate(time);
  1663. promoCodeService.updateById(promoCode);
  1664. return "success";
  1665. }
  1666. //验证优惠码
  1667. @RequestMapping(value = "/selectCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1668. @ResponseBody
  1669. public String selectCode(String code, String clientId) {
  1670. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1671. query.eq(TEquipment::getClientId, clientId);
  1672. TEquipment equipment = equipmentService.getOne(query);
  1673. //验证优惠码
  1674. LambdaQueryWrapper<TPromoCode> query1 = Wrappers.lambdaQuery();
  1675. query1.eq(TPromoCode::getCode, code);
  1676. List<TPromoCode> codeList = promoCodeService.list(query1);
  1677. TPromoCode promoCode = new TPromoCode();
  1678. if (codeList.size() == 0) {
  1679. //不存在
  1680. return "1";
  1681. }
  1682. for (TPromoCode cod : codeList) {
  1683. if (!cod.getAdminId().equals("1")) {
  1684. String adminId = cod.getAdminId();
  1685. String adminId1 = String.valueOf(equipment.getAdminId());
  1686. if (adminId.equals(adminId1)) {
  1687. promoCode = cod;
  1688. }
  1689. } else {
  1690. promoCode = cod;
  1691. }
  1692. }
  1693. if (promoCode.getAdminId() == null) {
  1694. //不是本机
  1695. return "3";
  1696. }
  1697. Date lastUseDate = null;
  1698. if (promoCode != null) {
  1699. lastUseDate = promoCode.getLastUseDate();
  1700. }
  1701. if (lastUseDate != null && lastUseDate.getTime() < ((new Date()).getTime())) {
  1702. promoCode.setIsUse("2");
  1703. promoCodeService.updateById(promoCode);
  1704. //过期
  1705. return "4";
  1706. }
  1707. if (promoCode.getId() == null) {
  1708. //不存在
  1709. return "1";
  1710. }
  1711. if (promoCode.getIsUse().equals("1")) {
  1712. //被使用
  1713. return "2";
  1714. }
  1715. if (!promoCode.getAdminId().equals("1")) {
  1716. if (String.valueOf(equipment.getAdminId()).equals(promoCode.getAdminId())) {
  1717. } else {
  1718. //不是本机
  1719. return "3";
  1720. }
  1721. }
  1722. if (promoCode.getDiscount() == null) {
  1723. //旧优惠码
  1724. return "0";
  1725. }
  1726. if (promoCode.getDiscount() != null && promoCode.getDiscount() == 0) {
  1727. //0折
  1728. return "0";
  1729. }
  1730. return "success";
  1731. }
  1732. //修改机器的分销
  1733. @RequestMapping(value = "/updateProportion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1734. @ResponseBody
  1735. public String updateProportion(String clientId) {
  1736. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1737. query.eq(TEquipment::getClientId, clientId);
  1738. TEquipment equipment = equipmentService.getOne(query);
  1739. if (equipment != null && equipment.getId() != null) {
  1740. TAdmin admin = adminService.getById(equipment.getAdminId());
  1741. String name = admin.getName();
  1742. //查询机器是否已经有设置分销
  1743. LambdaQueryWrapper<TProportion> query1 = Wrappers.lambdaQuery();
  1744. query1.eq(TProportion::getClientId, equipment.getClientId());
  1745. query1.eq(TProportion::getEquipmentId, equipment.getId());
  1746. List<TProportion> list1 = proportionService.list(query1);
  1747. if (list1.size() > 0) {
  1748. //已有
  1749. } else {
  1750. //没有,需要创建
  1751. //1,判断是否新机器
  1752. // Date createDate = equipment.getCreateDate();
  1753. // long time = createDate.getTime();
  1754. // DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1755. // String day= "2022-09-21 23:59:59";
  1756. // try {
  1757. // Date parse = simpleDateFormat.parse(day);
  1758. // if(time>parse.getTime()){
  1759. // return "新机器,不能已此方式生成分销!";
  1760. // }
  1761. // } catch (ParseException e) {
  1762. // e.printStackTrace();
  1763. // }
  1764. //先找到原账户的分销
  1765. LambdaQueryWrapper<TProportion> query2 = Wrappers.lambdaQuery();
  1766. query2.eq(TProportion::getAdminId, admin.getId());
  1767. List<TProportion> list2 = proportionService.list(query2);
  1768. if (list2.size() > 0) {
  1769. TProportion adminProportion = list2.get(0);
  1770. if (StringUtils.isEmpty(adminProportion.getClientId())) {
  1771. TProportion equipmentProportion = new TProportion();
  1772. equipmentProportion.setCreateDate(new Date());
  1773. equipmentProportion.setModifyDate(new Date());
  1774. equipmentProportion.setAdminId(admin.getId());
  1775. equipmentProportion.setClientId(equipment.getClientId());
  1776. equipmentProportion.setEquipmentId(equipment.getId());
  1777. equipmentProportion.setAdminProportion(adminProportion.getAdminProportion());
  1778. Integer type = adminProportion.getType();
  1779. switch (type) {
  1780. case 1:
  1781. equipmentProportion.setProportion(adminProportion.getAgencyProportion());
  1782. equipmentProportion.setAgencyProportion(new BigDecimal("0.00"));
  1783. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  1784. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  1785. equipmentProportion.setType(0);
  1786. break;
  1787. case 2:
  1788. equipmentProportion.setProportion(adminProportion.getMerchantProportion());
  1789. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  1790. equipmentProportion.setAgencyId(admin.getAgencyId());
  1791. TAdmin byId = adminService.getById(admin.getAgencyId());
  1792. equipmentProportion.setAgencyName(byId.getUsername());
  1793. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  1794. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  1795. equipmentProportion.setType(1);
  1796. break;
  1797. case 3:
  1798. equipmentProportion.setProportion(adminProportion.getPersonageProportion());
  1799. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  1800. equipmentProportion.setAgencyId(admin.getAgencyId());
  1801. TAdmin byId1 = adminService.getById(admin.getAgencyId());
  1802. equipmentProportion.setAgencyName(byId1.getUsername());
  1803. equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion());
  1804. equipmentProportion.setMerchantId(admin.getMerchantId());
  1805. TAdmin byId2 = adminService.getById(admin.getMerchantId());
  1806. equipmentProportion.setMerchantName(byId2.getUsername());
  1807. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  1808. equipmentProportion.setType(2);
  1809. break;
  1810. }
  1811. boolean save = proportionService.save(equipmentProportion);
  1812. }
  1813. } else {
  1814. return "原账户没有设置分销!";
  1815. }
  1816. }
  1817. }
  1818. return "success";
  1819. }
  1820. /**
  1821. * @param clientId
  1822. * @return
  1823. */
  1824. @GetMapping(value = "/getManagerId.htm")
  1825. @ResponseBody
  1826. public String getManagerId(String clientId) {
  1827. if (!StringUtils.isEmpty(clientId)) {
  1828. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1829. query.eq(TEquipment::getClientId, clientId);
  1830. List<TEquipment> list = equipmentService.list(query);
  1831. if (list.size() > 0) {
  1832. TEquipment equipment = list.get(0);
  1833. Long adminId = equipment.getAdminId();
  1834. if (adminId != null) {
  1835. String managerId = AdminUtils.encrypt(false, adminId);
  1836. if (StringUtils.isEmpty(equipment.getManagerId()) || !equipment.getManagerId().equals(managerId)) {
  1837. equipment.setManagerId(managerId);
  1838. equipmentService.updateById(equipment);
  1839. }
  1840. return managerId;
  1841. }
  1842. }
  1843. return "error";
  1844. }
  1845. return "error";
  1846. }
  1847. /**
  1848. * 修改优惠券开关状态
  1849. *
  1850. * @param clientId
  1851. * @return
  1852. */
  1853. @GetMapping(value = "/updateCouponStatus.htm")
  1854. @ResponseBody
  1855. public String updateCouponStatus(String clientId, String couponStatus) {
  1856. if (!StringUtils.isEmpty(clientId) && StringUtils.isNotEmpty(couponStatus)) {
  1857. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1858. query.eq(TEquipment::getClientId, clientId);
  1859. TEquipment equipment = equipmentService.getOne(query);
  1860. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1861. equipmentDesc.setCouponStatus(couponStatus);
  1862. equipmentDescService.updateById(equipmentDesc);
  1863. TAdmin admin = adminService.getById(equipment.getAdminId());
  1864. //同步数据到鲸准
  1865. if (admin.getId().toString().equals("372") || admin.getRelationAdminId().equals("372") || admin.getId().toString().equals("639") || admin.getId().toString().equals("238")) {
  1866. sendCouponStatus(clientId, equipment.getFullName(), equipment.getEqeStatus(), couponStatus);
  1867. }
  1868. return "success";
  1869. }
  1870. return "error";
  1871. }
  1872. private void sendCouponStatus(String clientId, String fullName, Integer eqeStatus, String couponStatus) {
  1873. String url = "http://47.106.13.109:3000/api/listenDeviceStatusChange";
  1874. Map<String, String> map = new HashMap<>();
  1875. map.put("clientId", clientId);
  1876. map.put("address", fullName);
  1877. map.put("status", String.valueOf(eqeStatus));
  1878. if (StringUtils.isEmpty(couponStatus)) {
  1879. map.put("wxStatus", "1");
  1880. } else {
  1881. map.put("wxStatus", couponStatus);
  1882. }
  1883. String data = JSON.toJSONString(map);
  1884. try {
  1885. String s = HttpClientSslUtils.doPost(url, data);
  1886. System.out.println("发送鲸准:" + s);
  1887. } catch (Exception e) {
  1888. e.printStackTrace();
  1889. }
  1890. }
  1891. /**
  1892. * @param clientId
  1893. * @return
  1894. */
  1895. @GetMapping(value = "/getYouHuiPrice.htm")
  1896. @ResponseBody
  1897. public String getYouHuiPrice(String clientId) {
  1898. LambdaQueryWrapper<TPrice> query = Wrappers.lambdaQuery();
  1899. query.eq(TPrice::getName, "优惠券");
  1900. List<TPrice> list = priceService.list(query);
  1901. if (list.size() > 0) {
  1902. TPrice tPrice = list.get(0);
  1903. Double price = tPrice.getPrice();
  1904. return new BigDecimal(price).setScale(0, RoundingMode.HALF_DOWN).toString();
  1905. } else {
  1906. return "5";
  1907. }
  1908. }
  1909. /**
  1910. * 修改商品名称
  1911. *
  1912. * @param clientId 设备个推Id
  1913. * @param
  1914. * @return
  1915. * @Param
  1916. */
  1917. @RequestMapping(value = "/updateProductName.htm", method = RequestMethod.POST)
  1918. @ResponseBody
  1919. public String updateProductName(String clientId, Long productId, String oldProductName, String newProductName) {
  1920. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1921. query.eq(TEquipment::getClientId, clientId);
  1922. List<TEquipment> list = equipmentService.list(query);
  1923. if (list.size() > 0) {
  1924. TEquipment equipment = list.get(0);
  1925. if (equipment != null && equipment.getId() != null) {
  1926. TProduct product = productService.getById(productId);
  1927. product.setModifyDate(new Date());
  1928. product.setName(oldProductName);
  1929. product.setProductName(newProductName);
  1930. productService.updateById(product);
  1931. return "修改成功success!";
  1932. }
  1933. }
  1934. return "更新失败error";
  1935. }
  1936. /**
  1937. * 上传机器状态之门的状态:
  1938. * type(类型,0:外门,1:内门),
  1939. * status(状态:0:关闭,1:开启)
  1940. *
  1941. * @param clientId
  1942. * @return status(状态:0:关闭,1:开启)
  1943. */
  1944. @GetMapping("/updateEquipmentStatus")
  1945. public ResponseModel<?> updateEquipmentStatus(String clientId, String type, String status) {
  1946. if (StringUtils.isEmpty(clientId) || StringUtils.isEmpty(type) || StringUtils.isEmpty(status)) {
  1947. return R.fail(ResponseCodesEnum.A0001, "adminId为空");
  1948. }
  1949. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1950. query.eq(TEquipment::getClientId, clientId);
  1951. TEquipment equipment = equipmentService.getOnly(query);
  1952. if (equipment != null && equipment.getId() != null) {
  1953. if (type.equals("0")) {
  1954. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1955. equipmentDesc.setOutDoor(status);
  1956. equipmentDescService.updateById(equipmentDesc);
  1957. return R.ok();
  1958. } else if (type.equals("1")) {
  1959. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1960. equipmentDesc.setInDoor(status);
  1961. equipmentDescService.updateById(equipmentDesc);
  1962. return R.ok();
  1963. }
  1964. }
  1965. return R.fail(ResponseCodesEnum.A0002);
  1966. }
  1967. /**
  1968. * 上传花型显示状态
  1969. *
  1970. * @param clientId 设备编号
  1971. * @param tProductBean 包含花型编号和状态
  1972. * @return
  1973. */
  1974. @RequestMapping(value = "/updateShowGoods", method = RequestMethod.POST)
  1975. @ResponseBody
  1976. public String updateShowGoods(@RequestParam String clientId, @RequestBody List<TProductBean> tProductBean) {
  1977. if (StringUtils.isEmpty(clientId) || tProductBean == null) {
  1978. return "参数为空";
  1979. }
  1980. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1981. query.eq(TEquipment::getClientId, clientId);
  1982. TEquipment equipment = equipmentService.getOnly(query);
  1983. if (equipment == null) {
  1984. return "找不到设备信息";
  1985. }
  1986. Long equipmentId = equipment.getId();
  1987. ArrayList<TProduct> tProducts = new ArrayList<>();
  1988. for (TProductBean productBean : tProductBean) {
  1989. String no = productBean.getNo();
  1990. String showType = productBean.getShowType();
  1991. LambdaQueryWrapper<TProduct> wrapper = new LambdaQueryWrapper<>();
  1992. wrapper.eq(TProduct::getEquipmentId, equipmentId);
  1993. wrapper.eq(TProduct::getNo, no);
  1994. TProduct product = productService.getOnly(wrapper);
  1995. product.setShowType(showType);
  1996. tProducts.add(product);
  1997. }
  1998. boolean res = productService.updateBatchById(tProducts);
  1999. if (!res) {
  2000. return "error";
  2001. }
  2002. return "success";
  2003. }
  2004. /**
  2005. * 上传DIY花型功能开关状态
  2006. *
  2007. * @param clientId:设备编号
  2008. * @param DIYFlowerStatus:开关状态, 0: 关闭, 1: 开启
  2009. * @return
  2010. */
  2011. @GetMapping(value = "/updateDIYFlowerStatus")
  2012. @ResponseBody
  2013. public String updateDIYFlowerStatus(String clientId, String DIYFlowerStatus) {
  2014. if (StringUtils.isNotEmpty(clientId) && StringUtils.isNotEmpty(DIYFlowerStatus)) {
  2015. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2016. query.eq(TEquipment::getClientId, clientId);
  2017. TEquipment equipment = equipmentService.getOne(query);
  2018. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2019. equipmentDesc.setDiyFlowerStatus(DIYFlowerStatus);
  2020. equipmentDescService.updateById(equipmentDesc);
  2021. // 如果为开启状态
  2022. if (DIYFlowerStatus.equals("1")) {
  2023. LambdaQueryWrapper<TDiyFlower> queryWrapper = Wrappers.lambdaQuery();
  2024. queryWrapper.eq(TDiyFlower::getEquipmentId, equipment.getId());
  2025. List<TDiyFlower> list = diyFlowerService.list(queryWrapper);
  2026. // 如何为空就添加新的花型形状和颜色
  2027. if (list.size() == 0) {
  2028. saveDIYProduct(equipment.getId());
  2029. }
  2030. }
  2031. return "success";
  2032. }
  2033. return "error";
  2034. }
  2035. /**
  2036. * 添加DIY花型产品
  2037. *
  2038. * @param id
  2039. */
  2040. private void saveDIYProduct(Long id) {
  2041. String[] str = {"圆五花-S01", "圆心-S02", "心-S03", "圆蝴蝶-S04", "圆四叶草-S05", "圆六花瓣-S06", "圆三叶草-A07", "圆三花瓣-S08", "蘑菇-S09",
  2042. "白糖-T01", "红糖-T02", "黄糖-T03", "蓝糖-T04"};
  2043. for (int i = 0; i < str.length; i++) {
  2044. TDiyFlower diyFlower = new TDiyFlower();
  2045. diyFlower.setCreateDate(new Date());
  2046. diyFlower.setModifyDate(new Date());
  2047. diyFlower.setEquipmentId(id);
  2048. String[] split = str[i].split("-");
  2049. diyFlower.setName(split[0]);
  2050. diyFlower.setNo(split[1]);
  2051. diyFlower.setShowType("1");
  2052. diyFlowerService.save(diyFlower);
  2053. }
  2054. }
  2055. /**
  2056. * 上传DIY花型形状/糖显示状态
  2057. *
  2058. * @param clientId 设备编号
  2059. * @param tProductBean 包含形状/糖的编号和状态
  2060. * @return
  2061. */
  2062. @RequestMapping(value = "/updateDIYFlowerShow", method = RequestMethod.POST)
  2063. @ResponseBody
  2064. public String updateDIYFlowerShow(@RequestParam String clientId, @RequestBody List<TProductBean> tProductBean) {
  2065. if (StringUtils.isEmpty(clientId) || tProductBean == null) {
  2066. return "参数为空";
  2067. }
  2068. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2069. query.eq(TEquipment::getClientId, clientId);
  2070. TEquipment equipment = equipmentService.getOnly(query);
  2071. if (equipment == null) {
  2072. return "找不到设备信息";
  2073. }
  2074. Long equipmentId = equipment.getId();
  2075. ArrayList<TDiyFlower> diyFlowers = new ArrayList<>();
  2076. for (TProductBean productBean : tProductBean) {
  2077. String no = productBean.getNo();
  2078. String showType = productBean.getShowType();
  2079. LambdaQueryWrapper<TDiyFlower> wrapper = new LambdaQueryWrapper<>();
  2080. wrapper.eq(TDiyFlower::getEquipmentId, equipmentId);
  2081. wrapper.eq(TDiyFlower::getNo, no);
  2082. TDiyFlower diyFlower = diyFlowerService.getOne(wrapper);
  2083. diyFlower.setShowType(showType);
  2084. diyFlowers.add(diyFlower);
  2085. }
  2086. boolean res = diyFlowerService.updateBatchById(diyFlowers);
  2087. if (!res) {
  2088. return "error";
  2089. }
  2090. return "success";
  2091. }
  2092. /**
  2093. * 花型数目 开机时上传
  2094. *
  2095. * @param clientId 个推
  2096. * @return
  2097. */
  2098. @RequestMapping(value = "/flowerNumber", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2099. @ResponseBody
  2100. public String flowerNumber(String clientId, String flowerNumber) {
  2101. if (!StringUtils.isEmpty(flowerNumber)) {
  2102. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2103. query.eq(TEquipment::getClientId, clientId);
  2104. TEquipment equipment = equipmentService.getOne(query);
  2105. equipment.setFlowers(flowerNumber);
  2106. equipmentService.updateById(equipment);
  2107. return "success";
  2108. }
  2109. return "fail";
  2110. }
  2111. /**
  2112. * 设备语言 开机时上传
  2113. *
  2114. * @param clientId 个推
  2115. * @return
  2116. */
  2117. @RequestMapping(value = "/upLoadLanguage", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2118. @ResponseBody
  2119. public String upLoadLanguage(String clientId, String language) {
  2120. if (!StringUtils.isEmpty(language)) {
  2121. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2122. query.eq(TEquipment::getClientId, clientId);
  2123. TEquipment equipment = equipmentService.getOne(query);
  2124. if (equipment == null) {
  2125. return "fail";
  2126. }
  2127. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2128. equipmentDesc.setLanguage(language);
  2129. equipmentDescService.updateById(equipmentDesc);
  2130. LambdaQueryWrapper<TProduct> wrapper = Wrappers.lambdaQuery();
  2131. wrapper.eq(TProduct::getEquipmentId, equipment.getId());
  2132. List<TProduct> products = productService.list(wrapper);
  2133. for (TProduct product : products) {
  2134. String no = product.getNo();
  2135. // 如果没改过名才更改
  2136. if (StringUtils.isEmpty(product.getName())) {
  2137. LambdaQueryWrapper<TNameDictionary> lambdaQueryWrapper = Wrappers.lambdaQuery();
  2138. lambdaQueryWrapper.eq(TNameDictionary::getLanguage, language);
  2139. lambdaQueryWrapper.eq(TNameDictionary::getNo, no);
  2140. TNameDictionary nameDictionary = nameDictionaryService.getOne(lambdaQueryWrapper);
  2141. if (nameDictionary != null) {
  2142. product.setModifyDate(new Date());
  2143. product.setProductName(nameDictionary.getName());
  2144. productService.updateById(product);
  2145. }
  2146. }
  2147. }
  2148. // if (equipmentDesc.getLanguage() == null || !(equipmentDesc.getLanguage().equals(language))) {
  2149. // }
  2150. return "success";
  2151. }
  2152. return "fail";
  2153. }
  2154. /**
  2155. * 获取DIY使用密码
  2156. * @return
  2157. */
  2158. @RequestMapping(value = "/getDIYPassword", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2159. @ResponseBody
  2160. public String getDIYPassword() {
  2161. TAdmin admin = adminService.getById(1L);
  2162. String diyPassword = admin.getDiyPassword();
  2163. return diyPassword;
  2164. }
  2165. @ApiOperation(value = "更新雪糕机工作模式")
  2166. @RequestMapping(value = "/upWorkingMode", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2167. @ResponseBody
  2168. public String upWorkingMode(String clientId, Integer workingMode) {
  2169. if (workingMode != null) {
  2170. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2171. query.eq(TEquipment::getClientId, clientId);
  2172. TEquipment equipment = equipmentService.getOne(query);
  2173. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2174. equipmentDesc.setWorkingMode(workingMode);
  2175. equipmentDescService.updateById(equipmentDesc);
  2176. return "success";
  2177. }
  2178. return "fail";
  2179. }
  2180. }