diff --git a/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java b/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java index a676a653..451d70b5 100644 --- a/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java +++ b/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java @@ -107,7 +107,6 @@ public class MedicaldesController { wrapper.leftJoin(MedicaldesBook.class,MedicaldesBook::getBookId,BookEntity::getId); wrapper.eq(MedicaldesBook::getTypeId,type); wrapper.eq(BookEntity::getBookType,0); - wrapper.eq(BookEntity::getState,1); wrapper.orderByAsc(MedicaldesBook::getSort); List list = bookService.list(wrapper); return R.ok().put("result", list); @@ -156,17 +155,18 @@ public class MedicaldesController { } //国际医师可能来自国外在省市里加入外国 - public String[] getCounts() { - //countId 为1 2 3 - String[] count = {"马来西亚","越南","加拿大"}; - return count; + public List getCounts() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.eq(SysDictDataEntity::getDictLabel,"inheritPro"); + List dataList = sysDictDataService.list(wrapper); + return dataList; } - public List getCityList(String count,int countId) { + public List getCityList(String cityName,int countId) { List cityList = new ArrayList<>(); City city = new City(); city.setProvId((long)countId); - city.setCityName(count); + city.setCityName(cityName); city.setCityId((long)countId); cityList.add(city); return cityList; @@ -184,8 +184,14 @@ public class MedicaldesController { wrapper.leftJoin(Province.class,Province::getProvId,City::getProvId); wrapper.selectAll(MedicaldesInherit.class); if ("0".equals(provId)){ + int[] val = new int[] {0}; //未知地址 - wrapper.in(MedicaldesInherit::getCityId,0,1,2,3); + if (getCounts()!=null&&getCounts().size() > 0){ + for (int i=1;i<=getCounts().size(); i++){ + val[i] = i; + } + } + wrapper.in(MedicaldesInherit::getCityId,val); }else { wrapper.eq(Province::getProvId,provId); } @@ -200,12 +206,12 @@ public class MedicaldesController { public R getMedicaldesProList() { String s = redisTemplate.opsForValue().get("Province"); List provinceList = new ArrayList<>(); - if (getCounts() != null){ - for (int i=0;i 0){ + for (int i=0;i prov = new ArrayList<>(); - if (1==provId){ - prov.addAll(getCityList(getCounts()[0],1)); - }else if (2==provId){ - prov.addAll(getCityList(getCounts()[1],2)); - }else if (3==provId){ - prov.addAll(getCityList(getCounts()[2],3)); - }else { + List list = getCounts(); + boolean flag = false; + if (list != null && list.size() > 0) { + for (SysDictDataEntity data:list) { + if (provId==Integer.parseInt(data.getDictType())){ + prov.addAll(getCityList(data.getDictValue(),Integer.parseInt(data.getDictType()))); + flag = true; + } + } + } + if (!flag) { prov = cityService.getBaseMapper().selectList(new QueryWrapper() .eq("prov_id", provId)); } @@ -241,11 +251,14 @@ public class MedicaldesController { @RequestMapping(path = "/getInheritById") public R getInheritById(String id) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); - wrapper.eq(MedicaldesInheritRelation::getInheritId,id); - MedicaldesInheritRelation relation = relationService.getOne(wrapper); - MedicaldesInherit inherit = inheritService.getById(id); - inherit.setSort(relation.getSort()); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.eq(MedicaldesInherit::getId,id); + wrapper.leftJoin(MedicaldesInheritRelation.class,MedicaldesInheritRelation::getInheritId,MedicaldesInherit::getId); + wrapper.leftJoin(City.class,City::getCityId,MedicaldesInherit::getCityId); + wrapper.leftJoin(Province.class,Province::getProvId,City::getProvId); + wrapper.leftJoin(" (select dict_type,dict_value from sys_dict_data where dict_label = 'inheritPro') dd on dd.dict_type = t.city_id"); + wrapper.select("t.*,ifnull(t2.city_name,ifnull(dd.dict_value,'其他')) as city_name,ifnull(t3.prov_name,ifnull(dd.dict_value,'其他')) as prov_name,t1.sort as sort"); + Map inherit = inheritService.getMap(wrapper); return R.ok().put("result",inherit); } @@ -279,15 +292,14 @@ public class MedicaldesController { @RequestMapping(path = "/getList") public List> getList(String type) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.select("count(1) count,ifnull(t3.prov_id,ifnull(dd.dict_type,'0')) AS prov_id,ifnull(t3.prov_name,ifnull(dd.dict_value,'其他')) AS prov_name "); wrapper.leftJoin(MedicaldesInheritRelation.class,MedicaldesInheritRelation::getInheritId,MedicaldesInherit::getId); wrapper.eq(MedicaldesInheritRelation::getTypeId,type); wrapper.leftJoin(City.class,City::getCityId,MedicaldesInherit::getCityId); wrapper.leftJoin(Province.class,Province::getProvId,City::getProvId); - wrapper.select("IFNULL(t3.prov_name, '其他') AS provinceName"); - wrapper.select("IFNULL(t3.prov_id, 0) AS provinceId"); - wrapper.select("count(*) as count"); - wrapper.groupBy("provinceName"); - wrapper.orderByAsc(MedicaldesInheritRelation::getSort); + wrapper.leftJoin(" (select dict_type,dict_value from sys_dict_data where dict_label = 'inheritPro') dd on dd.dict_type = t.city_id"); + wrapper.groupBy("prov_name","dict_value"); + wrapper.orderByAsc("t3.region_code","dict_value"); List> list = inheritService.listMaps(wrapper); return list; } diff --git a/src/main/java/com/peanut/modules/book/controller/MedicinalMaterialsController.java b/src/main/java/com/peanut/modules/book/controller/MedicinalMaterialsController.java index 645d9116..a504c737 100644 --- a/src/main/java/com/peanut/modules/book/controller/MedicinalMaterialsController.java +++ b/src/main/java/com/peanut/modules/book/controller/MedicinalMaterialsController.java @@ -9,9 +9,6 @@ import com.peanut.modules.book.service.MedicinalDrugService; import com.peanut.modules.book.service.MedicinalMaterialsService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -36,22 +33,28 @@ public class MedicinalMaterialsController { @RequestMapping("/getMaterialsList") public R getMaterialsList(@RequestBody Map params){ MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); - if (params.containsKey("name")&&StringUtils.isNotEmpty(params.get("name").toString())){ - wrapper.and(StringUtils.isNotEmpty(params.get("name").toString()),t->t.like(MedicinalMaterials::getName,params.get("name")).or().like(MedicinalMaterials::getOthername,params.get("name"))); + wrapper.select("id,name,img,latinname,othername,effect,taste,property,tropism,type,sort,hits"); + if (StringUtils.isNotEmpty(params.get("name").toString())){ + wrapper.and(t->t.like(MedicinalMaterials::getName,params.get("name")) + .or().like(MedicinalMaterials::getOthername,params.get("name"))); } - if (params.containsKey("type")&&StringUtils.isNotEmpty(params.get("type").toString())){ + if (StringUtils.isNotEmpty(params.get("type").toString())){ wrapper.like(MedicinalMaterials::getType,params.get("type")); } - if (params.containsKey("taste")&&StringUtils.isNotEmpty(params.get("taste").toString())){ - wrapper.like(MedicinalMaterials::getProperty,params.get("taste")); + if (StringUtils.isNotEmpty(params.get("effect").toString())){ + wrapper.like(MedicinalMaterials::getEffect,params.get("effect")); } - if (params.containsKey("property")&&StringUtils.isNotEmpty(params.get("property").toString())){ + if (StringUtils.isNotEmpty(params.get("taste").toString())){ + wrapper.like(MedicinalMaterials::getTaste,params.get("taste")); + } + if (StringUtils.isNotEmpty(params.get("property").toString())){ wrapper.like(MedicinalMaterials::getProperty,params.get("property")); } - if (params.containsKey("tropism")&&StringUtils.isNotEmpty(params.get("tropism").toString())){ - wrapper.like(MedicinalMaterials::getProperty,params.get("tropism")); + if (StringUtils.isNotEmpty(params.get("tropism").toString())){ + wrapper.like(MedicinalMaterials::getTropism,params.get("tropism")); } wrapper.orderByAsc(MedicinalMaterials::getSort); + wrapper.orderByDesc(MedicinalMaterials::getHits); Page page = materialsService.page(new Page<>( Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())),wrapper); return R.ok().put("result", page); @@ -59,7 +62,11 @@ public class MedicinalMaterialsController { @RequestMapping(path = "/getMaterials") public R getMaterials(String id) { - return R.ok().put("result", materialsService.getById(id)); + MedicinalMaterials materials = materialsService.getById(id); + int hits = materials.getHits() + 1; + materials.setHits(hits); + materialsService.saveOrUpdate(materials); + return R.ok().put("result", materials); } @RequestMapping(path = "/saveOrUpdateMaterials") @@ -81,25 +88,27 @@ public class MedicinalMaterialsController { @RequestMapping("/getDrugList") public R getDrugList(@RequestBody Map params){ MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); - if (params.containsKey("name")&&StringUtils.isNotEmpty(params.get("name").toString())){ + wrapper.select("id,name,english_name,pinyin_name,kind,prescription_type,insurance_type,type,sort,hits"); + if (StringUtils.isNotEmpty(params.get("name").toString())){ wrapper.and(StringUtils.isNotEmpty(params.get("name").toString()), t->t.like(MedicinalDrug::getName,params.get("name")) .or().like(MedicinalDrug::getEnglishName,params.get("name")) .or().like(MedicinalDrug::getPinyinName,params.get("name"))); } - if (params.containsKey("kind")&&StringUtils.isNotEmpty(params.get("kind").toString())){ + if (StringUtils.isNotEmpty(params.get("kind").toString())){ wrapper.like(MedicinalDrug::getKind,params.get("kind")); } - if (params.containsKey("prescriptionType")&&StringUtils.isNotEmpty(params.get("prescriptionType").toString())){ + if (StringUtils.isNotEmpty(params.get("prescriptionType").toString())){ wrapper.like(MedicinalDrug::getPrescriptionType,params.get("prescriptionType")); } - if (params.containsKey("insuranceType")&&StringUtils.isNotEmpty(params.get("insuranceType").toString())){ + if (StringUtils.isNotEmpty(params.get("insuranceType").toString())){ wrapper.like(MedicinalDrug::getInsuranceType,params.get("insuranceType")); } - if (params.containsKey("type")&&StringUtils.isNotEmpty(params.get("type").toString())){ + if (StringUtils.isNotEmpty(params.get("type").toString())){ wrapper.like(MedicinalDrug::getType,params.get("type")); } wrapper.orderByAsc(MedicinalDrug::getSort); + wrapper.orderByDesc(MedicinalDrug::getHits); Page page = drugService.page(new Page<>( Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())),wrapper); return R.ok().put("result", page); @@ -107,7 +116,11 @@ public class MedicinalMaterialsController { @RequestMapping(path = "/getDrug") public R getDrug(String id) { - return R.ok().put("result", drugService.getById(id)); + MedicinalDrug drug = drugService.getById(id); + int hits = drug.getHits() + 1; + drug.setHits(hits); + drugService.saveOrUpdate(drug); + return R.ok().put("result", drug); } @RequestMapping(path = "/saveOrUpdateDrug") diff --git a/src/main/java/com/peanut/modules/book/entity/MedicinalDrug.java b/src/main/java/com/peanut/modules/book/entity/MedicinalDrug.java index 41b9d773..16355a31 100644 --- a/src/main/java/com/peanut/modules/book/entity/MedicinalDrug.java +++ b/src/main/java/com/peanut/modules/book/entity/MedicinalDrug.java @@ -63,6 +63,11 @@ public class MedicinalDrug { */ private Integer sort; + /** + * 点击量 + */ + private Integer hits; + @TableLogic private Integer delFlag; } diff --git a/src/main/java/com/peanut/modules/book/entity/MedicinalMaterials.java b/src/main/java/com/peanut/modules/book/entity/MedicinalMaterials.java index 2f10c542..9eb3ec67 100644 --- a/src/main/java/com/peanut/modules/book/entity/MedicinalMaterials.java +++ b/src/main/java/com/peanut/modules/book/entity/MedicinalMaterials.java @@ -73,6 +73,11 @@ public class MedicinalMaterials { */ private Integer sort; + /** + * 点击量 + */ + private Integer hits; + @TableLogic private Integer delFlag;